[Zurück] [Home] [Weiter]       http://rowa.giso.de  

Eine frei verwendbare Unix-Grundlagenschulung mit muLinux

Konfigurationsskripte, Punktdateien

Wer mit DOS zu tun hatte, kennt die Dateien CONFIG.SYS und AUTOEXEC.BAT. Diese Dateien werden beim Starten des Systems abgearbeitet. CONFIG.SYS ist vor allem für das Einbinden der notwendigen Treiber für die Hardware zuständig, während AUTOEXEC.BAT mehr die Arbeitsumgebung einstellt. Unix ist als Multiuser-Betriebsystem natürlich wesentlich komplexer und es werden beim Starten wesentlich mehr Dateien (/etc) abgearbeitet.

Nun will aber jeder Nutzer im System seine eigenen Einstellungen verwenden. Dazu dienen die Punktdateien in seinem Heimatverzeichnis. Punktdateinamen beginnen mit einem Punkt (.*) und beinhalten Nutzer-Einstellungen für bestimmte Anwendungen. Die Standard-Login-Shell ist auch eine Anwendung und wird durch die Datei .profile voreingestellt. Um genau zu sein: Es gibt mehrere Shells, die über unterschiedliche Punktdateien konfiguriert werden. Der Einfachheit halber behandeln wir nur die vorgegebene Shell. Zur Erinnerung: Die Shell kümmert sich um die Kommunikation mit dem Nutzer mittels der so beliebten Unix-Befehle.

So nun wollen wir uns mal diese Punktdateien anschauen. Bisher hatten wir sie ja noch nie gesehen. Der Befehl ls zeigt diese wohl nicht an? Richtig! Diese Dateien sind nämlich versteckt! Alle Dateien mit einem Punkt am Anfang werden normalerweise nicht angezeigt. Es sind gewissermaßen X-Files (aber nicht ganz so langweilig). Wir müssen dazu ls mit der Option -a aufrufen. Dann werden alle Dateien angezeigt.

/# ls -a

Ja, aber wir sehen trotzdem keine Punktdateien! Das Problem ist, es gibt unter muLinux keine Punktdateien! Wir müssen uns unsere eigenen Punktdateien anlegen. Also wieder eine Aufgabe für uns und unseren geliebten vi.

.profile

Diese Datei wird von der Standard-Shell mit dem Namen bash beim Einloggen aufgerufen und abgearbeitet. Diese Datei muß sich im Heimatverzeichnis des Nutzers befinden. Die Heimatverzeichnisse liegen normalerweise als Unterverzeichnisse im Verzeichnis /home. Wir sind jetzt aber der Nutzer root. Wir müssen daher unsere Datei .profile im Verzeichnis / anlegen. Dies sollte man sonst nicht tun.

/# cd /
/# vi .profile

date
~
~
~
~
~
~
~
~

Beim Einloggen soll also das aktuelle Datum angezeigt werden. Wir speichern diese Datei ab und testen diese durch Einloggen auf einer anderen Konsole (z. B. mit Alt + F2). Es müßte jetzt das Datum angezeigt werden.

Jetzt können wir auch die Datei sehen.

/# ls -a

Man kann übrigens auch die Optionen von ls kombinieren:

/# ls -la

Wir können noch einen schönen Spruch anfügen und ein DOS-Prompt simulieren. Zum Beispiel:

/# cd /
/# vi .profile

date
echo "Viel Spass!"
PS="C:\> "
~
~
~
~
~
~

Wir müssen uns natürlich wieder neu einloggen, um die Änderung zu sehen.

Die Datei .profile ist also eine Skript-Datei, die beim Einloggen aufgerufen wird. Man kann hier Befehle und Variablen-Definitionen eintragen, die automatisch ausgeführt werden.

Wer die Datei wieder verwenden will, muß sie natürlich auf die Arbeitsdiskette speichern.

/etc/profile

Die Punktdateien liegen also in jedem Homeverzeichnis und können also auch von dem jeweiligen Nutzer bearbeitet werden. Nun ist Unix nicht Unix, wenn nicht ein gewisser root Kontrolle über alles hat. Wenn es darum geht, Voreinstellungen für alle Nutzer vorzugeben, muß es dazu eine Datei geben, die nur unser Ober-Mufti verändern darf. Diese Datei heißt /etc/profile.

Schauen wir uns mal diese Datei an.

/# cd /etc
/# less profile

Sicherlich sind wir jetzt etwas verwirrt über die vielen Sachen die da drin stehen. Nicht alles wurde in dem Abschnitt "Einfache Shell-Skripte" beschrieben. Zuerst werden hier einige Shell-Variablen zugewiesen.
TERM definiert den Bildschirmtyp. Dieser ist meist linux.
PS1 Shell-Prompt
PS2 Sekundärer Prompt bei interaktive Shell-Skripte (dazu kommen wir später)
ingoreeof hat nur Bedeutung, wenn die Shell interaktiv läuft. Bei dem Wert 10 führt jedes EOF-Zeichen (end of file) zum Verlassen der Shell.
PATH Pfade (engl. path) zu den ausführbaren Programmen. Diese Variable gibt es auch für DOS. Hier erfolgt die Trennung der Verzeichnisse mit einem Doppelpunkt.

Dann werden diese Variablen mit export zu allgemeingültigen Variablen erklärt. Das heißt, diese Variablen gelten auch für die Kind-Prozesse.

Dann kommt eine Abfrage ob mit dieser Diskette zum ersten mal gebootet wird. Dies erfolgt mit der Bedingungsabfrage if ... fi:

if [ Bedingung ]; then
     führe diese Befehle aus
fi

Wenn (engl. if) die Bedingung zutrifft, dann (engl. then) führe die Befehle bis zum fiaus. Wir werden uns später mit diesen Möglichkeiten der Shell-Skript-Programmierung beschäftigen.

Hier wird also beim ersten booten der Befehl welcome ausgeführt. Diesen kann man natürlich auch von Hand starten. welcome gibt die Begrüßungsinformationen aus. welcome ist übrigens auch ein Shell-Skript und kann mit less betrachtet werden. Dazu muß man es erst mit which finden.

Weiterhin werden in der Datei /etc/profile die Farben (engl. color) für die Bildschirmausgabe definiert. Diese definieren wir aber bei muLinux mit dem Befehl setup -f misc. Allerding müssen wir dazu über einen Farbmonitor verfügen.

/# setup -f misc
Do you want some miscellaneous setting?: y
Enter MY_BOOKMARKS: ... [Enter]
Enter LISTING [multi-column]> colored
Enter LYNX_LISTING: ... [Enter]
Do you want Shell history? [y]:... [Enter]
Do you want push/pop support in the shell (y/n)? [Enter]
Enter TIMEZONE [+0]: ... [Enter]
Enter SIGNATURE:  ... [Enter]
Enter Editor [elvis]:        ... [Enter]
Enter WINDOW_MANAGER [fvwm95]: ... [Enter]
This terminal support colors (TRUE/FALSE)? TRUE

Der Befehl ls gibt jetzt ein farbiges Listing aus. Verzeichnisse werden z. B. blau dargestellt.

/# ls

a       cdrom   home    mnt     root    setup   tmp
bin     dev     lib     nfs     samba   startup usr
c       etc     linuxrc proc    sbin    swap    var

Sind wir damit zufrieden, speichern wir die Konfiguration.

/# setup -s tutorial01

Die Farbwerte werden bei muLinux in der Datei /etc/color gespeichert. In die Datei /etc/colors.conf wird TRUE (engl. für wahr) eingetragen. Beide Dateien werden von /etc/profile ausgewertet.

Zum Schluß der Datei /etc/profile wird noch der Sprücheklopfer fortune aufgerufen. So erscheint bei jedem Einloggen eine Weisheit. Leider verstehe ich diese nicht. Wer auf diese Sprüche verzichten will, kann die entsprechende Zeile mit einem # auskommentieren. Man kann natürlich seine eigenen Weisheiten in die Datei /usr/game/lib/fortune.db eintragen.

Hinweis: Im "richtigen" Unix bzw. Linux werden in der Datei /etc/profile voreingestellte Zugriffsrechte mit dem Befehl umask festgelegt. Ebenso lassen sich mit ulimit maximale Speicherbereiche für vom Nutzer zu startende Prozesse zuweisen.

[Zurück] [Home] [Weiter]