![]() |
Linux für Webworker - Kommandoreferenz | ||
| |||
Die meisten Linux-Kommandoe wirken auf den ersten Blick eher unscheinbar und einfach. Doch oft verbirgt sich hinter einem Kommando aus zwei Buchstaben eine schier unüberschaubare Optionsvielfalt. In dieser kleinen Referenz sind die wichtigsten Optionen der Kommandos aus dem Hauptartikel zusammengefasst. Ausserdem sind, wo es sinnvoll erschien, weitere Optionen beschrieben.
Die Referenz ist weder in Hinblick auf die Kommandozahl, noch auf deren Optionen vollständig! Es werden nur die gebräuchlichsten und für den Zusammenhang der Web-Projektverwaltung wichtigsten beschrieben!
Vollständige Dokumentationen der Kommandos erhalten Sie meist durch die eingebauten
Hilfefunktionen.
ls [Optionen] [Namen]
Zeigt den Inhalt von Verzeichnissen an. Ohne Angabe von Namen werden Dateien aus dem aktuellen Verzeichnis aufgelistet. Bei Angabe von einem oder mehreren Namen wird entweder der Inhalt aus den Verzeichnissen Name gelistet, oder alle Dateien des Arbeitsverzeichnisses auf die Name passt.
Sehr nützliche Optionen sind -l, -a, --color oder -R.
| Option | Alias | Erläuterung |
|---|---|---|
-a |
Listet alle Dateien auf. Auch normalerweise versteckte, welche mit einem Punkt beginnen (z.B. auch .htaccess wird nur bei Verwendung dieses Schalters angezeigt). | |
--color |
--colour | Dateinamen werden in Abhängigkeit ihres Dateityps eingefärbt. |
--full-time |
Zeitstempel der Verzeichniseinträge werden voll angegeben. Normalerweise werden Abkürzungen verwendet. | |
-k |
--kilobytes | Gibt die Dateigrößen in Kilobytes aus. |
-l |
--format=long | Gibt den Inhalt im erweiterten Format aus. Unter anderem werden Zugriffsrechte, Besitzer, Länge und Änderungszeitpunkt ausgegeben. |
-r |
--reverse | Kehrt Sortierreihenfolge um. |
-t |
--sort=time | Sortiert anhand der letzten Änderung. Neueste werden zuerst angezeigt. |
-F |
--classify | Dateitypen werden mit folgenden Zeichen markiert: / für Verzeichnisse, * für Programme und @ für symbolische Links. Es gibt auch noch | für sog. FIFOs und = für Sockets. |
-R |
--recursive | Der Inhalt von Unterverzeichnissen wird rekursiv wiedergegeben. |
-S |
--sort=size | Sortierung nach Größe, beginnend mit den größten Dateien. |
chmod [Optionen] Modus Dateien
| Option | Alias(e) | Erläuterung |
|---|---|---|
-c |
--changes | Für jede geänderte Datei wird eine Meldung ausgegeben. |
-R |
--recursive | Steigt rekursiv in Unterverzeichnisse ab und ändert dort Dateien, auf die das Muster passt. |
-v |
--verbose | Gibt Meldungen für jede Datei aus, auch wenn diese nicht verändert wurden. |
Im Hauptartikelteil unter
Rechte im Dateisystem wurde schon die
Angabe des Modus mittels einer dreistelligen Oktalzahl erklärt. Es gibt noch eine weitere Möglichkeit, die Rechte
in der Form Wer Operator Was anzugeben. Die Optionen werden in den folgenden Tabellen erläutert:
| Option | Bedeutung |
|---|---|
u |
Benutzer |
g |
Gruppe |
o |
Andere |
a |
Alle (default) |
| Operator | Bedeutung |
|---|---|
+ |
Recht hinzufügen. |
- |
Recht abziehen. |
= |
Recht explizit zuweisen und andere Rechte entfernen. |
| Option | Bedeutung |
|---|---|
r |
Lesen |
w |
Schreiben |
x |
Ausführen |
u |
aktuelle Rechte des Benutzers |
g |
aktuelle Rechte der Gruppe |
o |
aktuelle Rechte aller anderen |
1: chmod 755 Datei<ENTER> 2: chmod u=rwx,g=rx,o=rx Datei<ENTER> 3: chmod g=u Datei<ENTER>
Im ersten Beispiel wird Datei für den Benutzer das Lese-, Schreib- und Ausführungsrecht, der Gruppe und allen anderen das Lese- und Ausführungsrecht explizit zugewiesen. Das zweite Beispiel macht genau dasselbe in der Optionsschreibweise. In der dritten Zeile werden der Gruppe die Rechte des Besitzers zugewiesen.
mkdir [Optionen] Verzeichnisse
Erstellt ein oder mehrere Verzeichnisse. Um ein Verzeichnis zu erstellen, benötigen Sie Schreibrechte im Mutterverzeichnis. Sie können die Rechte im aktuellen Verzeichnis durch die Eingabe von ls -la | grep "\.$" überprüfen. Der Eintrag mit dem einzelnen Punkt ist das aktuelle Verzeichnis.
| Option | Alias(e) | Erläuterung |
|---|---|---|
-p |
--parents | Unterverzeichnisse in nicht existierenden Verzeichnissen erstellen. |
--verbose |
Meldungen für erzeugte Verzeichnisse ausgeben. |
mkdir -p website/foo/bar
Mit dem -p-Schalter wird ein kleiner Verzeichnisbaum auf einmal erstellt. Erzeugt wird zuerst das Verzeichnis "website", danach innerhalb dessen "foo" und darunter "bar".
mv [Optionen] Quellen Ziel
Bewegt Quellen nach Ziel. Wenn Ziel eine Datei im selben Verzeichnis wie Quellen ist, entspricht dies einem Umbenennen. Wenn Sie als Quellen mehrere Dateien (z.B. *.html) angeben, muss Ziel ein existierendes Verzeichnis sein.
| Option | Alias(e) | Erläuterung |
|---|---|---|
-b |
--backup | Erstellt Sicherungskopien, bevor evtl. existierende Zieldateien überschrieben werden. |
-i |
--interactive | Verlangt eine Bestätigung, bevor existierende Zieldateien überschrieben werden. |
-v |
--verbose | Gibt den Namen jeder verschobenen Datei aus. |
mv -v *.foo zielverzeichnis/ > move.log<ENTER>
Dieses Kommando bewegt alle Dateien mit der Endung "foo" in das Zielverzeichnis. Dabei werden alle Vorgänge in der Datei move.log aufgezeichnet. Damit kann man immer kontrollieren, was man gerade "angestellt" hat.
cp [Optionen] Quellen Ziel
Kopiert eine oder mehrere Dateien von Quellen nach Ziel. Sind Quelle und Ziel einzelne Dateien, so wird von Quellen ein Duplikat namens Ziel erstellt. Wenn Sie als Quellen mehrere Dateien (z.B. *.html) angeben, muss Ziel ein existierendes Verzeichnis sein.
| Option | Alias(e) | Erläuterung |
|---|---|---|
-i |
--interactive | Verlangt eine Bestätigung, bevor existierende Zieldateien überschrieben werden. |
-r |
--recursive | Kopiert Dateien und Verzeichnisse rekursiv. |
-v |
--verbose | Gibt die Namen der kopierten Dateien aus. |
rm [Optionen] Dateien
Löscht eine oder mehrere Dateien. Um Dateien zu löschen, benötigen Sie das Schreibrecht für das Verzeichnis, in dem die Datei enthalten ist. Für die Datei selbst benötigen Sie es nicht, Sie müssen allerdings das Löschen bestätigen, falls Sie kein Schreibrecht für die Datei besitzen.
| Option | Alias(e) | Erläuterung |
|---|---|---|
-i |
--interactive | Erwartet vor dem Löschen jeder Datei eine Bestätigung. |
-r |
--recursive | Wenn Sie ein Verzeichnis angegeben haben, wird das Verzeichnis samt Inhalt komplett gelöscht. |
-v |
--verbose | Meldung ausgeben, bevor eine Datei gelöscht wird. |
Es gibt unter Linux standardmäßig keine Möglichkeit, gelöschte Dateien "mal eben aus dem Papierkorb zu holen". Was gelöscht ist, ist verloren. Seien Sie also vorsichtig, wenn Sie rm benutzen. Prüfen Sie insbesondere beim Einsatz des -r-Schalters Ihre Eingaben auf Richtigkeit! Ein einzelner Punkt oder ein Slash zuviel kann fatale Folgen haben!
cat [Optionen] [Dateien]
Gibt den Inhalt von einer oder mehrerer Dateien auf der Standardausgabe aus. Dateien ist tatsächlich optional, denn cat kann auch von der Standardeingabe lesen (z.B. in einem Pipe-Kontext).
| Option | Alias(e) | Erläuterung |
|---|---|---|
-n |
--number | Numeriert Ausgabezeilen durch. |
-v |
--show-nonprinting | Gibt Steuerzeichen (nicht-druckbare) mit aus. |
1: cat -n Datei<ENTER> 2: cat foo.txt bar.txt > foobar.txt<ENTER> 3: ls -l *.gif | cat -n -<ENTER> 4: cat > neu.txt << STOP<ENTER>
Das erste Kommando gibt die Datei mit durchnummerierten Zeilen auf dem Bildschirm aus. Das zweite erstellt eine neue
Datei foobar.txt mit den Inhalten von foo.txt und bar.txt. Das dritte Konstrukt ist
etwas komplizierter: Die Ausgabe des
ls-Kommandos
wird an cat weitergereicht (gepiped). cat liest in diesem Fall von der Standardeingabe, was durch
den Strich (-, kann auch weggelassen werden, ist aber korrekter!) symbolisiert wird. Diese wird dann durch den -n-Schalter durchnummeriert. Das Ergebnis ist also
eine durchnumerierte Liste aller gif-Dateien im Verzeichnis. In der vierten Zeile wird eine neue Datei erzeugt. Und zwar
werden Ihre Tastatureingaben so lange gelesen und in die Datei geschrieben, bis Sie STOP<ENTER> eingeben.
more [Optionen] [Dateien]
Dieser Pager besitzt zwar einige Optionen, allerdings keine nennenswerten. Meistens wird more ohne Optionen aufgerufen und dann im interaktiven Modus (während der Dateianzeige) gesteuert. Die wichtigsten Tastaturkommandos folgen hier auf einen Blick (in spitzen Klammer stehen die zu drückenden Tasten):
| Kommando | Wirkung |
|---|---|
<SPACE> |
Zeigt die nächste Textseite an. |
<q> |
Abbrechen, Beenden. |
<b> |
Zeigt vorige Textseite an. |
| </>muster | Sucht nach muster und springt ersten Treffer an. |
<n> |
Wiederholt die letzte Suche. |
ls -lR / | more<ENTER>
Wenn Ihre Kommandos längere Ausgaben vermuten lassen, sollten Sie immer einen Pager wie more oder auch
less die Ausgabe seitenweise
darstellen lassen. Das Kommando im Beispiel würde z.B. alle Dateien rekursiv ab dem Stammverzeichnis ausgeben. Die Pipe zum Pager verhindert dabei schlimmere Augenverletzungen
beim Durchscrollen ;-].
less [Optionen] [Dateien]
Bei less handelt es sich nicht etwa um keinen Pager, die Beschreibung "opposite of more" wurde vielmehr gewählt, weil less die vielen Mängel von more ausgleichen sollte (das tut es auch). Wenn Sie less auf Ihrem Rechner installiert haben, sollten Sie es more vorziehen. Die grundlegenden Kommandos sind gleich, jedoch können Sie mit diesem Pager, z.B. problemlos mit den Cursortasten vor- und zurückblättern. Ausserdem werden Suchtreffer hervorgehoben.
less bietet noch viele weitere interessante Kommandos, die aber den Rahmen dieser Referenz sprengen würden. Weitere Infos finden Sie z.B. durch die Eingabe von man less.
ln [Optionen] Quellname [Zielname]
Erzeugt einen Link mit Namen Zielname auf die Datei Quellname. Wird das Ziel weggelassen, so wird der Link im aktuellen Verzeichnis angelegt. Ist das Ziel ein Verzeichnis, wird ein gleichnamiger Link darin angelegt. Existierende Dateien werden durch Zielname überschrieben! Die erzeugten Links können genau wie ihre Quelldateien angesprochen werden. Änderungen wirken sich auf die Quelldateien aus!
| Option | Alias(e) | Erläuterung |
|---|---|---|
-i |
--interactive | Fragt nach, bevor evtl. Dateien überschrieben werden. |
-s |
--symbolic | Erstellt einen symbolischen Link. Erlaubt damit Verknüpfungen zu Verzeichnissen. Der Name der Zieldatei ist durch die Ausgabe von ls -l sichtbar. |
Lesen Sie auch den Abschnitt
Arbeiten mit Links im Hauptartikel.
tar [Optionen] Tardatei Dateien
Kopiert Dateien aus oder in Tardatei. Tatsächlich ist die Angabe von Dateien optional, auf diese Verwendungsweise wird hier aber nicht weiter eingegangen.
| Option | Alias(e) | Erläuterung |
|---|---|---|
-c |
--create | Neues Archiv anlegen. |
-r |
--append | Dateien an das Ende des Archivs anfügen. |
-t |
--list | Ausgabe von Dateien, wenn sie im Archiv gespeichert sind. |
-x |
--extract | Dateien aus dem Archiv extrahieren. |
Die obigen Schalter sind "Funktionsoptionen". Einer davon (und nur einer) wird bei jeder tar-Operation benötigt.
| Option | Alias(e) | Erläuterung |
|---|---|---|
-v |
--verbose | Dateinamen, die an Aktionen beteiligt sind, ausgeben. |
-z |
Dateien komprimieren bzw. dekomprimieren. | |
-W |
--verify | Archiv nach dem Anlegen auf seine Integrität prüfen. |
| -X Datei | --exclude Datei | Dateien aus Datei beim Archivieren bzw. Extrahieren nicht berücksichtigen. |
Obwohl tar eigentlich ein Programm zur Bandsicherung ist, wird es häufig verwendet, um Archivdateien (sog. tarballs) zu erzeugen und verarbeiten. Hier die beiden geläufigsten Anwendungen:
1: tar cvfz tarchiv.tgz * 2: tar xvfz tarchiv.tgz *.html
Das erste Kommando sichert alle Dateien des aktuellen Verzeichnisses (auch Unterordner) in ein komprimiertes Archiv. Mit dem zweiten werden aus diesem Archiv alle HTML-Dateien wieder ins Arbeitsverzeichnis kopiert. Wenn Sie ein komprimiertes Archiv (-z-Schalter) erzeugen wollen, sollten Sie als Dateiendung .tgz oder .tar.gz benutzen, um dies anzuzeigen.
Der -f-Schalter in Verbindung mit einem Archivnamen ist erforderlich, wenn Sie in eine Datei sichern, oder Dateien aus einer Datei extrahieren möchten.
wget [Optionen] URL
Lädt ggf. komplette Webseiten herunter und speichert sie im aktuellen Arbeitsverzeichnis. wget kann, falls erwünscht, einen evtl. abgebrochenen Download an der Abbruchstelle wieder fortsetzen. Der Funktionsumfang von wget ist gewaltig. Es empfiehlt sich also auch die manpage man wget zu durchforsten.
| Option | Alias(e) | Erläuterung |
|---|---|---|
-q |
--quiet | Unterdrückt sämtliche Ausgaben. |
-nv |
--non-verbose | Es werden nur Fehlermeldungen und wichtige Informationen angezeigt. |
| -i Datei | --input-file=Datei | Die zu holenden URLs werden aus Datei gelesen, wobei Datei auch ein HTML-Dokument sein kann. |
-c |
--continue | Ein evtl. abgebrochener Download wird an der Abbruchstelle durch erneutes Aufrufen des wget-Kommandos fortgesetzt. |
| -U string | --user-agent=string | Sendet die Clientkennung string an den Server. Diese Kennung erscheint i.d.R. in den Webserverlogfiles. |
--passive-mode |
Wird meist für ftp hinter Firewalls benötigt. | |
-r |
--recursive | Lädt HTML-Dokumente rekursiv herunter, d.h. es werden alle verlinkten Dokumente geladen. |
| -l Tiefe | --level=Tiefe | Steigt bei rekursiven Downloads maximal bis zu Tiefe Ebenen ab. |
-k |
--convert | Konvertiert HTML-Links so, daß ein offline-Lesen des Dokuments möglich wird. |
-p |
--page-requisites | Lädt auch die Bilder, Stylesheets oder Sounds, die zu HTML-Dokumenten gehören mit herunter. |
| -O Datei | --output-document Datei | Schreibt alle geholten Inhalte in Datei. Wenn Datei ein Strich ist (-) werden die Inhalte auf die Standardausgabe geschrieben. |
Die folgende Codezeile ist eigentlich mehr als ein Beispiel für wget. Es zeigt sehr schön, dass Linux ein richtiges Baukastenbetriebssystem ist, mit dem man sich aus einzelnen kleinen Kommandos eine komplexe Funktion basteln kann.
wget -q -O - http://forum.de.selfhtml.org/ | grep "(PERL)" | lynx -stdin<ENTER>
Dieses Kommando enthält drei durch Pipesymbole (|) getrennte Abschnitte. Zunächst wird mit wget der aktuelle Stand des SELFHTML-Forums geholt. Der Schalter -q unterdrückt dabei jegliche Ausgabe. Der -O-Schalter in Verbindung mit dem Strich (-) bewirkt das Schreiben des HTML-Inhalts auf die Standardausgabe. Durch das Pipe-Symbol wird nun grep dazu veranlasst, die Standardeingabe (also die Forumshauptdatei) zu verarbeiten. Der Ausdruck "(PERL)" bewirkt, daß nur Zeilen, die "(PERL)" enthalten zurückgegeben werden. Dadurch wird zwar auch der Rest des HTML-Dokuments verworfen, aber für dieses Beispiel reicht es. Nun ist nämlich lynx dran, der durch den Schalter -stdin dazu gebracht wird, die Standardeingabe zu lesen und als HTML darzustellen. Das Ergebnis ist die Anzeige aller Threads zum Thema PERL.
© 2007
Impressum, für diese Seite:
selfeature@speedesign.de