Diese Website soll keine Website nur für Bash- oder generell Unix-Shell-Experten sein. Genausowenig ist diese Website vornehmlich nur für Unix-Serveradministratoren gedacht. Vielmehr möchte ich hier dem Linuxneuling und Anfänger, der auf einem Linuxdesktop mit grafischer Oberfläche arbeitet, die Shell, also die Textkonsole von Linux mit ihren Vorzügen vorstellen.
Das heißt nicht, das nicht manche Inhalte auch für Administratoren interessant sind, aber der bereits erfahrene Anwender wird hier nicht sehr viel neues entdecken.
Auf dieser Website werden folgende typografische Konventionen verwendet:
Dies ist einzutippender Shellcode oder Scriptcode
Dies ist Ausgabe des Rechners
Dies ist eine Variable
03.11.10: Der Artikel über CD brennen in der Shell wurde aktualisiert und ergänzt.
Warum wird sich sicherlich mancher fragen, sollte man auf einem Desktoprechner mit grafischer Oberfläche eine Textkonsole benutzen? Wer sich noch an DOS erinnert, weiß welcher Fortschritt in der Bedienung das Windows-System gegenüber der DOS-Kommandozeile hat.
Unter Unix ist dies jedoch anders: Die Unixkommandozeile besticht gegenüber DOS mit vielen Komfortfunktionen und kann durch Scripts weiter angepaßt werden. Ein Linux oder Unix-System kann vollständig über die Shell bedient werden. Selbst Dinge wie CD's brennen oder einfache Bildmanipulationen können über die Kommandozeile durchgeführt werden. Viele grafische Programme greifen für Ihre Tätigkeiten im Hintergrund einfach auf die Shellprogramme zu. Außerdem kann über die Shell auch ein entfernter Rechner über das Netzwerk ferngesteuert werden. In der Systemadministration eines Rechners ist die Shell ohnehin fast nicht wegzudenken.
Unix und damit auch Linux (welches als Unix-Abkömmling gesehen werden kann) ist vollständig modular aufgebaut. Betriebssystem und grafische Oberfläche sind 2 voneinander getrennte Teile. Ein Linuxsystem kann auch ohne grafische Oberfläche betrieben werden. Das macht das System sehr flexibel. Daher gibt es für Linux auch verschiedene grafische Oberflächen. Strenggenommen ist dies sogar noch mal 3-geteilt: Der sogenannte X-Server "zeichnet" die Linien auf die Oberfläche des Monitors (ist also unter Windows vergleichbar mit dem Grafikkartentreiber) der Windowmanager stellt die Applikationen als Fenster dar und ordnet diese Fenster an. Als drittes kann, muß aber nicht, eine Desktopumgebung benutzt werden, die den Anwendungen ein einheitliches Look and Feel verleiht und komfortabler zu bedienen ist, als ein einfacher Windowmanager. Die beiden bekanntesten Desktopumgebungen sind KDE und Gnome.
Genauso wie es verschiedene Windowmanager und Desktopumgebungen gibt, gibt es auch verschiedene Kommandozeileninterpreter, also Shells. Die Unix-Urshell war die Bourne-Shell (kurz sh). Die Standardshell auf einem Linuxsystem ist die aus dem GNU-Projekt hervorgegangene Bash (Abkürzung für das Wortspiel Bourne Again Shell). Grundsätzlich läßt sich auf einem Linuxsystem aber auch eine andere Shell als die Bash benutzen. Beliebt ist z. B. auch die Korn-Shell (ksh). Die Bourne-Shell bietet nicht so viele Komfortfunktionen wie die Bash und die Korn-Shell, welche dadurch auch auf Nicht-Linux-Systemen (z. B. Solaris oder BSD) immer mehr Anhänger findet.
Da diese Seite sich an Linux-User wendet, werde ich jedoch nicht auf die Unterschiede der Shells eingehen und die Bash vorraussetzen. Die meisten Beispiele auf dieser Seite sind jedoch so weit es geht möglichst kompatibel zu anderen Shells gehalten.
Anmerkung: Ich verwende auf dieser Website den Begriff Linux und meine dabei das Betriebssystem das sich korrekterweise GNU/Linux nennt. Der Begriff "Linux" wird inzwischen auch Umgangssprachlich für das ganze Betriebssystem oder für Distributionen verwendet, so das ich diesen Begriff hier zur Vereinfachung ebenfalls für das GNU/Linux-System verwende, obwohl mir bewußt ist, das Linux eigentlich nur den Kernel bezeichnet.