3.2 Syntax und grundlegende Befehle 

Vielleicht sind Sie zu Beginn ein wenig verwirrt durch Pfadangaben und Befehle, die Sie irgendwo gelesen haben. Wir müssen uns zuerst ein klein wenig mit der Struktur eines typischen Befehls beschäftigen. Ein Befehl kommt selten allein, er wird meist ergänzt durch Optionen und Pfadangaben. Die Eingabe von Befehlen in der Shell erfolgt nach dem Muster
<Befehl> -<Parameter> <Objekt>
Damit überhaupt erst ein Befehl ausgeführt wird, müssen Sie nach dessen Eingabe die
-Taste drücken. Dadurch wird das Linux-System veranlasst, den vorher eingegebenen Befehl auszuführen. Wenn Sie mehrere Prozesse (beispielsweise Programme) simultan in einem Terminal starten möchten, hängen Sie einfach ein »&« an den zu startenden Prozess.
Einstieg
Wir wollen der trockenen Materie nun etwas Leben einhauchen. Sie werden einige grundsätzliche Befehle kennenlernen und anwenden. Diese Auswahl ist mehr oder weniger willkürlich, stellt aber einen geeigneten Einstieg in das Thema dar.
Wer bin ich?
Mit dem Befehl who können Sie herausfinden, wer aktuell gerade auf Ihrem System eingeloggt ist:
who marcus tty7 2009-04-28 11:52 (:0) marcus pts/0 2009-04-28 14:23 (:0.0) marcus pts/1 2009-04-28 17:20 (:0.0)
Hier ist ausschließlich der Nutzer Marcus angemeldet. Wie man anhand der Meldungen tty7 und (:0) sehen kann, ist dieser Nutzer auf einer grafischen Oberfläche angemeldet. Die ursprüngliche Anmeldung geschah um 11:52 Uhr (erste Zeile), während die nachfolgenden Zeilen die Zeitpunkte für wiederholte Anmeldungen ausgeben.
Wenn mehrere Nutzer angemeldet sich, können Sie mit dem Befehl whoami erfahren, unter welchem angemeldeten Nutzer Sie gerade die Befehle eingeben. Im Zweifelsfall erscheint jetzt Ihr Name, der sich im Übrigen auch am Anfang jeder Terminalzeile befindet. Die Verwendung dieser beiden Befehle mag Ihnen obsolet erscheinen, aber bedenken Sie bitte, dass UNIX und damit auch Linux prinzipiell Mehrbenutzersysteme sind, die problemlos auch mit Hunderten von Nutzern umgehen können. Bei einer derart »großen Installation« können diese Befehle sehr hilfreich sein.
Ausgabe von Zeichen
Der Befehl echo hat eine mehr oder weniger triviale Aufgabe – er soll alles wiederholen, was Sie vorher eingegeben haben. So führt der Befehl
echo Immer diese Wiederholungen
zur Ausgabe einer Zeile mit dem Inhalt Immer diese Wiederholungen. Wenn Sie absichtlich mehrere Leerzeichen zwischen zwei Wörtern darstellen möchten, müssen Sie den Begriff in Anführungszeichen setzen:
echo "Immer diese Wiederholungen"
Dateien auflisten
Mit dem Befehl ls (Abkürzung für list = auflisten) können Sie alle Dateien auflisten, die sich aktuell in dem Verzeichnis befinden, in dem Sie sich gerade aufhalten:
ls de-Hamburg Dropbox Öffentlich Vorlagen Desktop Examples Musik software
Hierbei werden nicht nur Dateien im herkömmlichen Sinne, sondern auch Verzeichnisse und Gerätenamen aufgelistet.
Ein Beispiel: Sie möchten sich den Inhalt des Verzeichnisses /etc in »für Menschen lesbarer Form« (Parameter –h für human) sowie in Langform (Parameter –l für long) unter Berücksichtigung aller versteckten Dateien (Parameter –a für all) anzeigen lassen:
ls –lah /etc
Pager und Umleitungen
Durch obigen Befehl »huschen« sehr viele Einträge über Ihren Bildschirm. Das ging Ihnen zu schnell? Dann haben Sie zwei Möglichkeiten:
| 1. | Verwenden Sie zur Ausgabe einen sogenannten Pagerless wie less odermore more. Damit wird die Ausgabe größerer Textmengen bequem steuerbar: Der Text füllt immer nur eine Bildschirmseite und kann durch Betätigen der Leertaste jederzeit weiterbewegt werden. Möchten Sie die Textausgabe ganz abbrechen, so unterbrechen Sie die Pager-Ausgabe mittels |
ls –lah /etc | less
| 2. | In diesem Fall wird die Ausführung des Befehls ls durch das Pipeline-KommandoPipeline »|« an den Pager less weitergeleitet. So eine Umleitung ist sehr praktisch und kann auch auf andere Weise vorgenommen werden, wie die folgende Variante zeigt. |
| 3. | Das Ergebnis, das nach der Ausführung eines Befehls ausgegeben wird, kann auch in eine Datei umgeleitet werden. Möchten Sie sich z. B. einen Überblick über die Dateigrößen in Ihrem Heimatverzeichnis verschaffen, können Sie dazu den Befehl du (disk usage) in folgender Form einsetzen: |
du –h /home/'user' > status.txt
| 4. | Damit wird die Ausgabe des Befehls du in die Datei status.txt umgeleitet. Letztere kann dann wieder mit dem less-Pager angezeigt oder mit einem Editor Ihrer Wahl bearbeitet werden. Wozu so etwas nützlich ist? Nun, wenn Sie beispielsweise ein Problem in Ihrem System haben und dieses mithilfe der Internet-Community, hier insbesondere der Newsgroups im Usenet lösen möchten, sind aussagekräftige Listings von Programmausgaben unabdingbar. Aber dazu später mehr. |
| Joker oder Wildcards |
|
Wenn Sie sich z. B. in Ihrem /home-Verzeichnis befinden und sich alle Dateien mit einer bestimmten Endung anschauen wollen, also beispielsweise alle Bilder, die die Endung .png besitzen, dann können Sie sogenannte Joker oder Wildcards benutzen. Es gilt: |
| * ersetzt beliebig viele Zeichen, |
| ? ersetzt genau ein Zeichen, |
|
Zum Beispiel kann man mit ls *.png alle gesuchten Dateien mit der Endung .png anzeigen. |
Sie brauchen mitnichten für jede zu startende Anwendung ein separates Terminal oder einen getrennten Reiter darin zu öffnen. Hängen Sie zusätzlich ein Kaufmanns-Und-Zeichen (z. B. nautilus &) an, um den Prozess direkt im Hintergrund zu starten und die Konsole für weitere Eingaben freizugeben. Einfluss auf die eventuellen Fehlermeldungen hat dies nicht: Sie erscheinen weiterhin im Terminal.
Inhalt einer Datei ausgeben
Der Befehl cat (Abkürzung für catenate = verketten) sorgt dafür, dass Sie sich den Inhalt einer Datei ansehen können:
cat 'Dateiname'
Wie die deutsche Übersetzung vermuten lässt, kann dieser Befehl aber noch mehr. Mit
cat >> 'Dateiname'
können Sie einen beliebigen Text an das Ende der Datei anhängen. Den Text geben Sie in einer separaten Zeile nach diesem Befehl ein. Beenden können Sie diese Eingabe mit der Tastenkombination
+
.
Zählen
Mit dem Befehl wc (Abkürzung für word count = Wörter zählen) können Sie die Anzahl der Zeilen (-l), Wörter (-w) und Zeichen (-c) einer Datei zählen. Ohne Angabe einer dieser Optionen gibt Ihnen der Befehl alle drei Informationen aus:
wc beispiel.txt 2 10 49 beispiel.txt
Dateien kopieren
Mit dem Befehl cp (Abkürzung für copy = kopieren) können Sie Dateien kopieren. Als erstes Argument geben Sie die Quelldatei an, also die Datei, die Sie kopieren möchten. Das zweite Argument ist die Zieldatei, die Sie erstellen wollen:
cp test.txt /home/Benutzer/test_kopie.txt
Sie sollten sich angewöhnen, der Zeildatei einen anderen Namen zu geben, wenn sich Quell- und Zieldatei im gleichen Verzeichnis befinden sollen. Ansonsten wird die Quelldatei ohne Rückfrage überschrieben.
| Copy & Paste leicht gemacht |
|
Jeder Linux-Nutzer mag eine technische Errungenschaft, die unter Windows ihresgleichen sucht, mit Sicherheit nicht mehr missen: das Copy & Paste mittels zwei Mausklicks. Öffnen Sie zu diesem Zweck einmal zwei beliebige Fenster bzw. Anwendungen, und schreiben Sie einen willkürlichen Text in eines der beiden Fenster. Markieren Sie nun den Text unter Benutzung der linken Maustaste. Wechseln Sie in das zweite Fenster, klicken Sie mit der linken Taste an eine Stelle, und betätigen Sie anschließend die mittlere Maustaste: Der Text wurde nun automatisch an der Stelle des Cursors eingefügt. |
Dateien umbenennen oder verschieben
Um Dateien umzubenenneb oder zu verschieben, dient der Befehl mv (Abkürzung für move = bewegen). Wenn Sie eine Datei innerhalb des gleichen Verzeichnisses »bewegen«, wird sie umbenannt – eine Bewegung würde sonst keinen Sinn ergeben.
Wenn Sie ein anderes Verzeichnis angeben, wird die Datei verschoben:
mv test.txt /home/Benutzer/test.txt
Die Argumente entsprechen dabei demselben Prinzip wie beim Kommando cp. Wie beim vorherigen Befehl beschrieben, wird eine eventuell bereits vorhandene Zieldatei ohne Nachfrage überschrieben. Gehen Sie also mit Bedacht zu Werke.
| Autocomplete nutzen |
|
Der Umgang mit der Konsole erfordert eine Menge Schreibarbeit. Da wir alle von Natur aus faul und vergesslich sind, hilft Linux uns hier aus der Patsche. Wenn Sie z. B. nur noch den ersten Buchstaben eines Befehls wissen, dann brauchen Sie diesen nur in die Konsole zu tippen und zweimal auf die Tabulator-Taste (oben links auf der Tastatur, links neben dem
|
|
Wenn Sie immer nur die ersten Buchstaben eines Befehls eintippen und diese Buchstabenkombination schon eindeutig ist (d. h., wenn es nur einen einzigen Befehl gibt, der darauf passt), dann reicht ein einmaliges Drücken der Tabulatortaste, um diesen Befehl zu vervollständigen. Wenn Sie sich hiermit ein bisschen vertraut gemacht haben, werden Sie durch diese Methode der Schreibersparnis viel schneller durch die Konsole huschen können. Im Übrigen gilt dies auch für Pfadangaben. Probieren Sie es einfach mal aus! |
Dateien löschen
Mit dem Befehl rm (Abkürzung für remove = entfernen) können Sie Dateien aus Ihrem System entfernen: rm test.txt. Selbstverständlich können Sie an dieser Stelle auch mehrere Dateien (durch Leerzeichen getrennt) angeben.
| Multitasking |
|
Es gibt einige Tipps, die die Arbeit mit der Konsole deutlich erleichtern. So muss man z. B. nicht die Konsole wechseln (oder eine neue öffnen), wenn man einen Prozess startet. Sie erreichen dies durch ein an den Befehl angehängtes &. Durch ein doppeltes & werden zwei Befehle nacheinander ausgeführt, z. B. |
| (Befehl) && (Befehl) |
|
Die Tastenkombination
|
3.2.1 Umgang mit Verzeichnissen 

Sie müssen nicht nur wissen, wie Sie mit Dateien umgehen, sondern müssen sich auch mit Verzeichnissen und ihrer Nutzung auskennen. Daher wollen wir uns an dieser Stelle ein wenig mit den Verzeichnissen beschäftigen.
Hierarchie
In jedem Linux-System befinden Sie sich nach dem Anmelden oder beim Aufrufen eines Terminals in Ihrem persönlichen Verzeichnis, dem sogenannten Home-Ordner. In meinem Fall lautet der Pfad zu diesem Verzeichnis /home/marcus. Wir befinden uns hier in einem »Ast« des Verzeichnisbaums. Die Wurzel dieses Baum ist das Root-Verzeichnis (nicht zu verwechseln mit dem Benutzer root), das Sie sich mithilfe des Befehls ls ansehen können:
ls / bin dev initrd.img lib64 mnt root srv usr boot etc lib lost+found opt sbin sys var cdrom home lib32 media proc selinux tmp vmlinuz
Unter anderem können Sie hier das Verzeichnis /home erkennen, in dem Sie sich gerade befinden. Wenn Sie wissen wollen, wo Sie sich gerade innerhalb dieses Verzeichnisbaums aufhalten, können Sie den Befehl pwd (Abkürzung für print working directory = Arbeitsverzeichnis ausgeben) verwenden.
Wenn Sie einen Pfadnamen mit einem Schrägstrich beginnen wie beispielsweise /home/marcus/Dokumente/test.txt, dann versuchen Sie eine Datei vom Wurzelverzeichnis aus zu erreichen. Man spricht in diesem Fall von einer vollständigen oder absoluten Pfadangabe. Diese zeichnet sich dadurch aus, dass sie immer den kompletten Verzeichnispfad angibt.
Befindet sich die gesuchte Datei allerdings in Ihrem persönlichen Verzeichnis (home), dann benötigen Sie keine absolute Pfadangabe. Sie können stattdessen die »Adresse« der gesuchten Datei aus dem aktuellen Verzeichnis heraus beginnen:
Dokumente/test.txt
Man spricht in diesem Fall von einer relativen Pfadangabe. Das »relativ« bezieht sich auf die Tatsache, dass die Pfadangabe abhängig von Ihrem aktuellen Standort ist.
... Punkte
Wenn Sie sich anhand des Befehls ls -l einen Überblick über Ihr aktuelles Verzeichnis verschaffen, werden Sie in den ersten Zeilen in etwa Folgendes sehen:
drwxr-xr-x 55 marcus marcus 4096 2009-04-29 16:47 . drwxr-xr-x 4 root root 4096 2009-03-25 15:37 ..
An der letzten Stelle einer Zeile befindet sich die Angabe des enthaltenen Verzeichnisses oder einer Datei. Lediglich in den ersten beiden Zeilen befinden sich an dieser Stelle die Punkte, die Sie oben sehen. Die doppelten Punkte repräsentieren immer das Inhaltsverzeichnis der nächsthöheren Ebene. Wenn Sie sich in Ihrem persönlichen Verzeichnis befinden, beispielsweise in /home/marcus, dann beziehen sich die Punkte auf das nächsthöhere Verzeichnis marcus. So können Sie beim Wechseln des Verzeichnisses jederzeit mit der Angabe von .. in das hierarchisch nächsthöhere Verzeichnis wechseln.
Selbst das höchste Verzeichnis (das Wurzelverzeichnis »/«) besitzt solche Einträge. In diesem Fall handelt es sich hier um einen Verweis auf sich selbst, da es kein höheres Verzeichnis gibt. Der einfache Punkt verweist hingegen immer auf das aktuelle Inhaltsverzeichnis. Folgende Angaben sind absolut gleichwertig:
ls ls ./
Verzeichnis wechseln
Mit dem Befehl cd (Abkürzung für change directory = Verzeichnis wechseln) können Sie in andere Verzeichnisse wechseln:
cd Dokumente
Übrigens: Wenn Sie den Befehl cd ohne Angabe eines Zielverzeichnisses verwenden, gelangen Sie automatisch in Ihr persönliches Verzeichnis – egal, wo Sie sich gerade aufgehalten haben.
Ein Verzeichnis erstellen
Ein neues Verzeichnis erstellen Sie mit dem Befehl mkdir (Abkürzung für make directory = erzeuge Verzeichnis). Als Argument übergeben Sie dem Befehl den Namen des Verzeichnisses, das Sie erzeugen wollen. Ohne Angabe eines Pfadnamens als Argument wird das neue Verzeichnis im aktuellen Verzeichnis angelegt:
mkdir neu
Ein Beispiel: Öffnen Sie über Anwendungen • Zubehör • Terminal ein Terminal, und erstellen Sie eine Textdatei mit beliebigem Inhalt:
gedit test
Schreiben Sie einen beliebigen Text dort hinein, und speichern Sie ihn einfach ab. Nun tippen Sie Folgendes ein:
cp test neu/test
Dies verschiebt die Datei test aus dem Verzeichnis, in dem Sie sich gerade befinden (meistens /home), in einen neuen Unterordner neu in Ihrem /home-Verzeichnis, wenn Sie diesen vorher durch
mkdir neu
angelegt haben. Mit cd neu/ wechseln Sie in dieses Verzeichnis, und mit ls schauen Sie sich den Inhalt dieses Ordners an. Und siehe da, in diesem Ordner befindet sich die verschobene Datei test.
Verzeichnis löschen
Vorhandene Verzeichnisse können Sie mit dem Befehl rmdir (Abkürzung für remove directory = lösche Verzeichnis) löschen. Hierbei ist anzumerken, dass Sie prinzipiell nur leere Verzeichnisse löschen können. Wenn Sie ein Verzeichnis samt seines Inhalts löschen möchten, müssen Sie die Option -r (rekursiv) verwenden:
rm -r neu/
| Letzte Befehle anzeigen |
|
Die Konsole besitzt eine History, also einen Speicher, der die letzten eingegebenen Befehle abspeichert und bei Bedarf wieder zur Verfügung stellt. Dies ist sehr nützlich, wenn ein längerer Befehl mehrmals eingegeben werden soll. Als Standardwert werden die letzten 500 Befehle gespeichert. Sie können die Anzahl der zu speichernden Befehle in der Datei /.bashrc ändern. So wird zum Beispiel mit dem Eintrag export HISTSIZE=200 die History auf 200 Befehle reduziert. |
|
Sie können sich durch Eingabe von history die komplette Liste anzeigen lassen. Allerdings kann diese natürlich aufgrund der Speichergröße sehr umfangreich ausfallen. Wenn Sie nun bloß einen Befehl suchen, bei dem Sie sich nur noch an den Zusammenhang erinnern, dann können Sie mithilfe der Pipe und des Befehls less die Liste auf solche Befehle eingrenzen, bei denen das gewünschte Wort auftauchte. Dies geschieht mit history $|$ less webserver. Eine typische Ausgabe sieht dann so aus: |
| 48 less webserver/log/current.log 159 cd webserver/public_html/ |
|
In der ersten Spalte wird die dem gespeicherten Befehl zugeordnete Identifikationsnummer (PID) angegeben. Dies ist ungemein praktisch, da Sie, wenn Sie nun z. B. den zweiten Befehl wieder aufrufen möchten, einfach die PID eingeben können: !PID, also !159. Daraufhin wird Ihnen der zugehörige Befehl angezeigt, den Sie dann bearbeiten oder nach einem beherzten Enter ausführen können. Die Speicherung der Befehle geschieht übrigens einzeln für jeden Benutzer. Es steht also für jeden Benutzer jeweils ein eigener Speicher zur Verfügung. |
|
Wenn die History-Funktion nicht funktioniert, vergewissern Sie sich, dass Sie die nötigen Zugriffsrechte besitzen ls -la ~ | grep .bash_history. Wenn die Ausgabe die Zeile: |
| -rw------- 1 root root 124 2008-05-21 21:57 .bash_history |
|
zurückliefert, dann gehört die Datei dem Besitzer root und Sie können selbstverständlich nicht darauf zugreifen. Die Lösung besteht nun darin, dass Sie der Besitzer dieser Datei werden: |
| sudo chown $USER:$USER .bash_history |
|
Ein Aufruf von history 10 liefert eine Übersicht der zehn letzten Befehle, die eingegeben wurden. Wenn Sie nun einen Befehl aus der Liste benutzen möchten, dann können Sie diesen mit !n auswählen, also z. B. !8. |
|
Im übrigen können Sie mit einem doppelten Ausrufezeichen den letzten Befehl wiederholen und sofort ausführen. Dies ist aber noch längst nicht alles. Sie können in der Kommando-History auch suchen. Dies geschieht wiederum durch ein vorangestelltes Ausrufezeichen und den ersten Buchstaben des gesuchten Befehls: !u. Wird nur ein Befehl gefunden, wird dieser sofort ausgeführt. Bei mehreren Treffern erscheint zunächst eine Übersicht der gefundenen Befehle. |
Für die ersten Versuche mit der Konsole (in Fachkreisen auch »Shell« genannt) stellt die folgende Tabelle noch einmal die wichtigsten Shell-Befehle zusammen. Einige davon werden Sie im Laufe des Buchs noch näher kennenlernen. In Kapitel »Befehlsreferenz« finden Sie eine ausführliche Befehlsreferenz. Sie finden dort so gut wie alle notwendigen Befehle samt ihren Optionen – Ihr Nachschlagewerk.
| Befehl | Wirkung | Nützliche Parameter |
|
Navigation |
||
|
ls |
Verzeichnisinhalt anzeigen |
-a, -h, -l |
|
pwd |
Aktuellen Pfad anzeigen |
|
|
cd <Verzeichnis> |
In das Verzeichnis wechseln |
|
|
cd .. |
Eine Ebene höher gehen |
|
|
cd |
Wechsel ins Heimatverzeichnis |
|
|
Verzeichnisse |
||
|
mkdir |
Verzeichnis erstellen |
-m, -p |
|
rmdir |
Verzeichnis löschen |
-r, -v |
|
Dateien |
||
|
touch <Dateiname> |
Datei erzeugen |
|
|
rm <Dateiname> |
Datei löschen |
-r, -f, -d |
|
Dateien bearbeiten |
||
|
nano, vi |
Beliebte Editoren auf der Kommandozeile aufrufen |
|
|
less |
Ausgabe von Textdateien |
|
|
cat <Datei1> <Datei2> |
Textdatei 1 und Textdatei 2 zusammenführen |
|
|
Administrative Aufgaben |
||
|
sudo |
Befehl als Root ausführen |
|
|
sudo -s |
Eine Root-Shell öffnen |
|
|
halt, reboot |
System anhalten/neu starten (als Superuser auszuführen) |
|
Sie können mehr über diese Kommandos herausfinden, indem Sie sie in der Kommandozeile man bzw. info eingeben, gefolgt von dem eigentlichen Kommando. Viele Linux-Kommandos geben auch eine kurze Meldung zur Benutzung aus, wenn sie mit einer der folgenden Methoden gestartet werden: Kommandoname --help oder Kommandoname -h. Der Befehl whatis Kommandoname gibt eine einzeilige Zusammenfassung zu jedem Kommando mit einer Handbuchseite auf dem System aus.
| Kommandozeilenbasiertes Editieren |
|
Die Standard-Shell bash besitzt einige Fähigkeiten zur Bearbeitung von alten Eingaben (der History). Benutzen Sie einfach die Cursor-auf-Taste um alte Eingaben zurückzuholen, und danach wie üblich die Cursor-Tasten. Andere wichtige Tastenkombinationen sind: |
|
|
|
|
| Markieren mit linker Maustaste: Auswahl in die Zwischenablage kopieren |
| Mittlere Maustaste: Einfügen der Zwischenablage an der Cursor-Position |
|
|
|
In einer normalen Linux-Konsole funktioniert nur die linke
|
3.2.2 Manpages – Hilfe in der Konsole 

Wenn Sie mehr Informationen zu einem bestimmten Befehl brauchen, dann können Sie sich die sogenannten »manpages« zu dem jeweiligen Befehl ansehen. Die manpages sind teilweise recht umfangreiche Dokumentationen zu einzelnen Themen. Hier finden Sie z. B.
auch alle Optionen, die dem entsprechenden Befehl zugeordnet sind. Ein kleiner Wermutstropfen besteht darin, dass diese manpages überwiegend in englischer Sprache verfasst sind. Sie finden z. B. die manpage für den Befehl cp mit man cp. Dadurch wird die entsprechende Manual-Seite zum Befehl mit den möglichen Parametern aufgerufen und das aktuelle Terminal gesperrt. Sie verlassen die Manual-Seite wieder über die Taste
.
Diese Anleitungen haben unter Linux/Unix eine lange Tradition und werden ständig gepflegt. Sie sind sozusagen die erste Wahl bei der Dokumentation. Sie erreichen die manpage durch ein vorangestelltes man, z. B. man chmod.
| Deutsche Manpages |
|
Die Bedeutung der oben angegebenen nützlichen Parameter erfahren Sie durch Eingabe von man BEFEHL. Dadurch wird die entsprechende Manual-Seite zum Befehl mit den möglichen Parametern aufgerufen. Möchten Sie die entsprechenden Hilfestellungen in deutscher Sprache angezeigt bekommen, so müssen Sie das Paket manpages-de installieren. |




Jetzt bestellen







