In der grafischen Oberfläche kann man eine Shell bspw. über Programme wie "iTerm" oder "Terminal" starten.
Die Eingabeaufforderung der Shell besteht nicht nur aus einem blinkenden Cursor für die Eingabe, sondern
auch noch aus dem Prompt. Dieser gibt meist den Kontext der Arbeit durch die Anzeige des Rechner- und
Benutzernamens sowie des Arbeitsverzeichnisses wieder. Der Prompt kann von jedem Benutzer auch personalisiert
werden.
Beispiel-Prompts:
$
user@host$
user@host:/home/user$
#
/root#
Dass Informationen wie der Rechner- und Benutzername angezeigt werden, hilft vor allem beim Arbeiten auf verschiedenen Rechnern im Netzwerk. Das Arbeitsverzeichnis hilft dabei, den Ausgangspunkt relativer Pfade zu bestimmen.
Unix-Systeme kennen keine Laufwerke und sprechen alle Speichermedien über den VFS-Layer und einen Verzeichnisbaum an. So ergeben sich zwei verschiedene Arten, wie man Dateien und Verzeichnisse referenzieren kann.
Bei der Angabe eines absoluten Pfades wird der Dateiname immer von der Wurzel / des Dateisystems aus angegeben.
Jeder Prozess - und damit auch die Shell - besitzt mit dem aktuellen Arbeitsverzeichnis einen Kontext. Von diesem Verzeichnis aus kann man Verzeichnis- oder Dateinamen auch relativ angeben.
Ein relativer Pfad beginnt nicht mit der Wurzel des Dateisystems, sondern wird relativ zum aktuellen Arbeitsverzeichnis des Prozesses interpretiert, indem das Arbeitsverzeichnis implizit vor den relativen Pfad gesetzt und das Ergebnis schließlich als absoluter Pfad gelesen wird.
Erst so wird es möglich, dass man zum Beispiel einen Texteditor mit text.txt als Argument aufrufen kann, anstatt sich über den Pfad /home/user/text.txt auf die Datei zu beziehen.
Man kann sich das Arbeitsverzeichnis mit dem pwd-Befehl anzeigen lassen. Die Abkürzung steht für print working directory.
$ pwd
/home/gerhard
Ein neuer Prozess entsteht unter Unix stets als Kopie eines bereits bestehenden Prozesses. Als Kopie erbt er alle Eigenschaften wie eben auch das Arbeitsverzeichnis.
Mit dem cd-Befehl wechselt man das Arbeitsverzeichnis. Er ist die Abkürzung für change directory und erwartet eine Pfadangabe als Argument. Diese kann wieder relativ oder absolut gemacht werden, wobei man zwei Spezialfälle relativer Pfade unterscheidet:
$ ./schach
$ pwd
/home/gerhard
$ cd ..
$ pwd
/home
$ cd gerhard
$ pwd
/home/gerhard
Am Beispiel von cd kann man sehen, dass Shellbefehle in der Regel im Erfolgsfall keine Meldung ausgeben.
Anders verhält es sich im Fehlerfall, also wenn man mit cd in ein nicht existierendes Verzeichnis
wechseln will:
$ cd user1
-bash: cd: user1: Datei oder Verzeichnis nicht gefunden