Die Helfer der Kommandozeile

Axel Beckert

Debian / ETH Zürich

abe@debian.org
http://noone.org/abe/

Übersicht

  • Die Kommandozeile zerlegt
  • Kurze und lange Optionen
  • Typische, oft vorkommende Optionen
  • Wo bin ich? Was ist hier?
  • Verzeichnisse
  • Kopieren, Verschieben und Umbenennen
  • Löschen
  • Suchen
  • Dateien anzeigen
  • Wie kriege ich Hilfe auf der Kommandozeile?

Die Kommandozeile zerlegt

Prompt  Befehl  Optionen  Parameter
>  mv  -v -i  datei1 datei2
$  cp  --recursive --preserve  datei1 datei2 verzeichnis
#  rm  -rf  verzeichnis

Lange und kurze Optionen

Programme auf BSDs und traditionellen Unixen haben oft nur Ein-Buchstaben-Optionen, dafür kombinierbar

GNU-Programme haben oft kurze (ein Buchstabe mit "-" beginnend) und lange Varianten (Wort mit "--" beginnend) ihrer Optionen.

Typische, oft vorkommende Optionen

Kurz Lang Bedeutung
-h --help Hilfe
--usage Ausführliche Hilfe
-v, -V --version Version anzeigen
-v --verbose Ausführliche Ausgabe
-f --force Ausführung erzwingen
-i --interactive Fragen vor destruktiven Aktionen
-r, -R --recursive In Verzeichnisse hinabsteigen
-p --preserve Datei-Informationen (User, Rechte, Änderungszeit, etc.) sofern möglich beibehalten
-d3, -d 3 --debug=3 Debug-Level 3

Wo bin ich? / Was ist hier?

  • pwd: print working directory — Gib Arbeitsverzeichnis aus.
  • ls: list — Liste auf.
  • ls -a: list all — Liste alles, auch Verstecktes, auf.
  • ls -l: list long format — Liste im langen Format
  • ls -d verzeichnisname: list directory — Liste Verzeichnis statt Verzeichnisinhalt auf.
  • ls -F: list with classification — Liste mit Typ-Indikator (*/@) auf.

Verzeichnisse

  • mkdir verzeichnisname: make directory — Erstelle Verzeichnis.
  • mkdir -p verzeichnisname/unterverzeichnisname make directory and parents — Erstelle Verzeichnis und falls nötig auch sämtliche Elternverzeichnisse.
  • cd verzeichnisname: change directory — Wechsle Verzeichnis.
  • cd ohne Parameter: Gehe ins Home-Verzeichnis.
  • cd -: Gehe zurück ins vorherige Verzeichnis.

Kopieren, Verschieben und Umbenennen (1)

Welche Befehle für was?

  • mv: move — Verschieben und Umbenennen
  • cp: copy — Kopieren

Dateien kopieren und verschieben

  • mv alt neu, cp datei kopie
  • mv datei1 datei2 verz, cp datei1 datei2 verz
  • mv *.txt verz, cp *.txt verz

Kopieren, Verschieben und Umbenennen (2)

Optionen zu mv und cp

  • mv -v …, cp -v …: verbose — wortreich, ausführlich
  • mv -i …, cp -i …: interaktiv, vor Überschreiben fragen
  • cp -r …: recursive — rekursiv, auch Unterverzeichnisse kopieren
  • cp -p …: preserve — Dateirechte und Änderungsdatum beibehalten bzw. mitkopieren

Löschen

  • rm datei: Datei "datei" löschen
  • rm *.txt: Dateien mit Endung "txt" löschen
  • rmdir verzeichnis: Leeres Verzeichnis löschen
  • rm -r verzeichnis: rekursiv: Verzeichnis inkl. aller darin enthaltenen Dateien und Unterverzeichnisse löschen.
  • rm -i *.txt: Vor dem Löschen jeder Datei nachfragen
  • rm -f *.txt: Auch vor dem Löschen schreibgeschützter Dateien nicht nachfragen

Schnelles Suchen in Liste der Dateinamen

Frage: Wo auf dem Rechner liegt eine Datei, die eine bestimmte Zeichenkette im Namen hat.

  • locate xyz: Lokalisiere
  • locate -i xyz: Lokalisiere unabhängig von Groß- und Kleinschreibung

Direkte Suche in bestimmtem Verzeichnis

  • find . -name '*txt*': Finde Dateien oder Verzeichnisse im aktuellem Verzeichnis (".") mit "txt" im Namen.
  • find xyz -iname '*txt*': Finde Dateien oder Verzeichnisse im Verzeichnis "xyz" mit "txt" (Groß-/Kleinschreibung egal) im Namen.
  • find abc xyz -mtime -1: Finde Dateien oder Verzeichnisse in den Verzeichnissen "abc" und "xyz", die vor weniger als einem Tag angelegt oder verändert wurden.
  • find . -type d: Finde alle Verzeichnisse unterhalb des aktuellen Verzeichnisses.
  • find verzeichnis: Finde alle Dateien und Verzeichnisse unterhalb des Verzeichnisses "verzeichnis".

Wie bekomme ich Hilfe?

  • Text, gut zum Durchsuchen: man programmname (Hilfe dazu: man man)
  • Strukturiert mit Hyperlinks: info programmname (Hilfe dazu: info info; Übersicht über sämtliche vorhandene Dokumentation: info ohne Parameter)

Navigation in man/less

Eingabe Bedeutung
/text<Eingabe> Vorwärts suchen nach "text"
?text<Eingabe> Rückwärts suchen nach "text"
n Nächster Treffer in aktueller Suchrichtung
<Cursor runter>, <Eingabe>, <Ctrl-n>, j Eine Zeile nach unten
<Cursor hoch>, <Ctrl-p>, k Eine Zeile zurück
<Bild ab>, <Leertaste> Eine Seite vor
<Bild auf>, b Eine Seite zurück
<Pos1>, g Zum Textanfang springen
<Ende>, <Shift-g> Zum Textende springen
q Beenden

Nach was suchen? Was anschauen?

Problem: Eine sog. "man page" kann locker über 5000 Zeilen haben und ist meist keine Bettlektüre sondern eine Referenz.

  • Kurzanleitung ("Synopsis"): Kurze, generische Bsp. der Verwendung
  • Optionen ("Options")
  • Beispiele ("Examples")
  • Siehe auch ("See also")
  • Umgebung ("Environment")
  • Dateien ("Files")

Links

Danke

  • Alexander Wirt und Ralph Sontag für die Idee zu diesem Vortragsthema
  • Neil Franklin für Fehler finden und Kommentare
  • Eric S. Meyer für S5
  • Euch fürs Interesse und Zuhören