Ab und zu ist hier von der Kommandozeile die Rede. Gemeint ist ein kleines aber sehr mächtiges Programm, das Shell genannt wird, und in einem sogenannten Terminalfenster läuft. Während dieses Werkzeug früher fast ausschließlich von Systemadministratoren und Entwickler genutzt wurde, kommen heutzutage auch Designer oder Webentwickler ohne grundlegende Kenntnisse der Shell praktisch nicht mehr aus.

Starten der Shell

Unter Mac OS X öffnet man mit CMD-Leertaste das Spotlight-Suchfeld und gibt dort Terminal ein.

Unter Linux gibt es unzählige Terminalprogramme. Sie haben in der Regel ein Programmicon, das an alte Röhrenmonitore erinnert, meistens mit einer stilisierten Eingabeaufforderung >_. Irgendwo unter Werkzeuge, Accessories, Utilties oder Ähnlichem wird man normalerweise fündig.

Typisches Icon für ein Terminalfenster
Typisches Terminalicon

Windows wird noch immer ohne vollwertige Shell ausgeliefert. Dort muss man sich mit dem Programm cmd.exe begnügen. Dieses findet man über den Start-Button, wenn man in das Suchfeld cmd.exe gefolgt von Enter eingibt.

Es öffnet sich ein größtenteils leeres Fenster. Die letzte sichtbare Zeile ist normalerweise von einem Dollarzeichen abgeschlossen, gefolgt von einem Strich oder Rechteck, manchmal blinkend, der sogenannten Eingabeaufforderung. Der Text zwischen Zeilenanfang und dem Dollarzeichen enthält in der Regel den Benutzernamen, den Rechnernamen und einen Teil des aktuellen Verzeichnisnamens.

Terminalfenster unter Mac OS X
Ein Terminalfenster auf dem Mac

Weil der Text vor dem Dollarzeichen von System zu System unterschiedlich und außerdem auch konfigurierbar ist, hat es sich bei Anleitungen im Netz eingebürgert, einfach nur ein Dollarzeichen darzustellen.

Befehle eingeben

Shellbefehle sind normalerweise kleine Dienstprogramme, die allerdings nur innerhalb einer Kommandozeilenumgebung sinnvoll eingesetzt werden können. Man ruft sie einfach über den Namen auf. Das Programmm ls existiert auf jedem Unixsystem:

{% highlight shell %} guido@macbook:~ \( ls Applications Documents Library Music Public Desktop Downloads Movies Pictures guido@macbook:~ \) {% endhighlight %}

Das Kommando ls *l*i*s*tet den Inhalt des aktuellen Verzeichnisses. Das Pendant zu ls unter Windows ist das Programm dir.

Argumente und Optionen

Man kann das Verhalten dieser Befehle über Optionen und Argumente verändern, die über Leerzeichen vom Befehlsnamen getrennt eingegeben werden:

{% highlight shell %} guido@macbook:~ \( ls -l /Users/guido total 13296 drwx------ 6 guido staff 204 Feb 23 13:37 Applications drwxr-xr-x+ 30 guido staff 1020 Jun 5 15:36 Desktop drwxrwxr-x+ 162 guido _appserveradm 5508 Jun 4 10:27 Documents drwxr-xr-x+ 70 guido staff 2380 Jun 5 14:49 Downloads drwx------@ 68 guido staff 2312 May 16 08:45 Library drwx------+ 10 guido staff 340 May 5 19:22 Movies drwx------+ 12 guido staff 408 Feb 4 09:06 Music drwx------+ 7 guido staff 238 Jul 28 2015 Pictures drwxr-xr-x+ 5 guido staff 170 Aug 20 2014 Public guido@macbook:~ \) {% endhighlight %}

Optionen beginnen immer mit einem Bindestrich, alles andere sind Argumente. Im Beispiel wurde also die Option -l verwendet, die eine lange, ausführliche Ausgabe erzeugt. /Users/guido ist ein Argument, im Falle von ls gibt man damit das zu listende Verzeichnis bzw. die zu listenden Dateien an.

Neben kurzen Optionen mit einem Bindestrich und einem Buchstaben erlauben viele Programme auch lange Optionen mit zwei Bindestrichen und aussagekräftigen Namen. Es hat sich als Konvention eingebürgert, dass die meisten Kommandozeilenprogramme auf die Option -h oder --help mit der Ausgabe einer Hilfeseite reagieren.

Auf Linuxsystemen kann man Optionen und Argumente meist beliebig mischen, auf anderen Systemen eher nicht. Dort sollte man immer erst die Optionen und dann die Argumente angeben.

Windows verhält sich hier anders. Optionen fangen normalerweise mit einem Slash (/) an, Hilfe wird meist mit der Option /? angefordert.

Verzeichnis wechseln

Anleitungen im Netz enthalten oft die Aufforderung in ein bestimmtes Verzeichnis zu wechseln, zum Beispiel nach /var/log/messages. Dies macht man mit dem Kommando cd wie *c*hange *d*irectory:

{% highlight shell %} guido@macbook:~ \( cd /usr/bin/ guido@macbook:/usr/bin \) {% endhighlight %}

Den Befehl cd gibt es auch unter Windows. Allerdings werden unter Windows Verzeichnisbestandteile durch einen Backslash (\) getrennt, was leider auf deutschen Tastaturen extrem umständlich einzugeben ist.

Gerade bei langen Pfaden kann man sich natürlich leicht vertippen, und teilweise weiß man auch nicht, wie der vollständige Pfadname überhaupt lautet. Manche finden deshalb ein anderes Vorgehen einfacher. Zunächst gibt man an der Eingabeaufforderung den Anfang des Befehls ein, nämlich cd (mit abschließendem Leerzeichen, öffnet auf dem Mac ein Finder-Fenster (Windows-Explorer unter Windows), navigiert in das dem Zielverzeichnis übergeordnete Verzeichnis und zieht dann das Icon des Zielverzeichnis in das Terminalfenster. Normalerweise sollte dort jetzt der vollständige Pfadname stehen, und man drückt einfach nur noch Enter.

Befehle mit Administratorrechten ausführen

Manche Befehle benötigen Administratorrechte. Dies erreicht man auf dem Mac und unter Linux, indem man dem Befehl durch ein Leerzeichen getrennt, einfach ein sudo voranstellt:

{% highlight shell %} guido@macbook:/var \( ls /var/backups ls: backups: Permission denied guido@macbook:/var \) sudo ls /var/backups Password: file1 file2 file3 guido@macbook:/var $ {% endhighlight %}

Als Passwort muss man sein eigenes Benutzerkennwort eingeben. Für eine gewisse Zeit merkt sich sudo das Passwort. Verwendet man sudo innerhalb dieser Zeitspanne, wird man deshalb nicht wieder nach einem Passwort gefragt.

Alternativ kann man sich mit dem Befehl su bzw. besser su - auch dauerhaft zu Root (Root ist der Unix-Administrator) machen. Dazu muss das Rootpasswort eingeben. Kennt man dies nicht (zum Beispiel auf dem Mac oder mit Ubuntu Linux), kommt man eventuell mit sudo su - auch mit dem eigenen Benutzerpasswort zum Ziel.

Weil der Prompt (die Eingabeaufforderung) für den Unix-Superuser Root normalerweise mit einem Doppelkreuz statt einem Dollarzeichen endet, findet man in Anleitungen im Netz manchmal auch dieses Doppelkreuz statt des Dollars. In der Regel soll damit ausgedrückt werden, dass man für die angegegebenen Kommandos Superuser-Rechte benötigt.

Unter Windows gibt es weder su noch sudo. Dort muss man stattdessen das Terminal mit Administratorrechten starten, also Start, ins Suchfenster cmd.exe eingeben, und dann Strg-Umschalt-Enter statt einfach Enter drücken.

Es gibt im Netz unzählige Tutorials, die weitere Informationen zur Shell bieten. Nach Shell Tutorial googeln hilft garantiert weiter. Die populärste interaktive Shell ist vermutlich Bash, weshalb Bash inzwischen fast ein Synonym für Shell ist.