lehrkraefte:blc:informatik:glf4-24:bash-kommandos

Wichtige und praktische Kommandos

ls zeigt die Dateien im aktuellen Verzeichnis an. Nützliche Optionen:

  • ls -a alle Dateien anzeigen (auch versteckte)
  • ls -l Zusätzliche Informationen anzeigen.
  • ls -ltr Dateien nach Datum (-t) in umgekehrter Reihenfolge (-r) anzeigen. So wird die neueste Datei zuunterst angezeigt.
  • ls -lhSr Dateien nach Grösse (-S) in umgekehrter Reihenfolgen (-r) in «human readable format» (-h) anzeigen. Damit erscheinen die grössten Dateien zuunterst (praktisch zum Aufräumen).

cd wechselt das aktuelle Verzeichnis.

  • Ohne Argument (einfach cd alleine) wechselt ins Home-Verzeichnis, unter Windows typischerweise /c/Users/benutzername/, unter Linux/MacOS /home/benutzername.
  • cd .. wechselt ins Elternverzeichnis (eine Ebene zurück).
  • cd informatik/jokerchain wechselt zwei Verzeichnisse auf einmal.

mkdir legt ein neues Verzeichnis an:

  • mkdir test Legt im aktuellen Verzeichnis ein neues Verzeichnis test an.
  • mkdir -p alles/auf/einmal Legt verschachtelte Verzeichnisse auf einmal an (anstatt mkdir alles, cd alles, mkdir auf, cd auf, mkdir einaml, cd ../..)

rmdir löscht ein leeres Verzeichnis

  • rmdir test Löscht das leere Verzeichnis test im aktuellen Verzeichnis. Schlägt fehl und tut nichts, wenn das Verzeichnis nicht leer ist.

Zeigt das aktuelle Verzeichnis an. Dieses wird normalerweise schon automatisch auf der Kommandozeile angezeigt.

cp kopiert Dateien.

  • cp orignal.txt kopie.txt kopiert die Datei original.txt unter neuem Namen kopie.txt.
  • cp test.txt foo/bar/. kopiert die Datei test.txt unter gleichem Namen in den Ordner bar, der sich im Ordner foo befindet.
  • cp *.md backup/. kopiert alle Dateien, die mit .md aufhören in den Ordner backup.
  • cp -r meinordner /c/backup/. kopiert den Ordner meinordner rekursiv (d.h. mit allen Dateien und Ordnern, die darin sind) in den Ordner /c/backup
  • cp -vrau meinordner /c/backup/. zeigt den Vorgang an (-v für verbose), (-r) rekursiv, (-a) archiv (d.h. die Zieldatei erhält die gleichen Attribute, wie die Quelldatei. Insbesondere werden die Datumsangaben übernommen), -u für update, d.h. nur neuere bzw. im Ordner backup nicht existierende Dateien werden kopiert. Das eignet sich sehr gut für wiederholte schnelle Backups.

mv verschiebt Dateien (bzw. benennt diese um).

  • mv alt neu benennt die Datei alt in neu um.
  • mv datei ordner/. verschiebt die Datei datei in den Ordner ordner.
  • mv jocker-chain2022*.md backup/. verschiebt alle Dateien, die mit jocker-chain2022 beginnen und mit .md aufhören in den Ordner backup.
  • mv ordner1 ordner2/. verschiebt den Ordner ordner1 mitsam allem Inhalt in den Ordner ordner2.

rm löscht Dateien. Mit Vorsicht zu gebrauchen. Die Dateien werden dabei nicht in den Papierkorb verschoben, d.h. die Löschung ist unwiderruflich.

Wo immer ein oder mehrere Dateinamen angegeben werden können, können diese mit einem Muster beschrieben werden.

Dabei stehen

  • * für beliebige, beliebig viele Zeichen (auch keines). Typische Beispiele:
    • *.txt Alle Dateien, die die Endung .txt haben.
    • IMG_3*.jpg Alle Dateien, die mit IMG_3 beginnen und mit .jpg enden. Z.B. IMG_3.jpg, IMG_3210.jpg
  • ? für genau ein belibiges Zeichen. Typische Beispiele:
    • hallo0?.txt passt z.B. auf hallo00.txt, hallo0z.txt aber nicht auf hallo007.txt oder hallo0.txt
  • [a-z] steht für genau ein Kleinbuchstabe a-z. [3-6] steht für genau eine Ziffer 3 bis und mit 6.
  • {jpg,png,gif} steht für genau eines der aufgeführten Wörter. Typishces Beispiel:
    • *.{jpg,jpeg,png,gif} Alle Dateien die mit eine der aufgeführten Endungen haben.
  • Laden Sie folgendes zip-Archiv herunter wildcards.zip und speichern Sie es in C:\ofi.
  • Navigieren Sie mit dem cd Kommando dorthin und überprüfen Sie mit dem ls Kommando, ob die zip-Datei auch dort liegt.
cd /c/ofi
ls
  • Entpacken Sie das Archiv mit
unzip wildcards.zip
  • Wechseln Sie (mit cd ins Verzeichnis wildcards und verschieben (mv) Sie die Dateien wie folgt:
    • Alle .jpg-Dateien von 2022 in ein Unterverzeichnis 2022 (mit mkdir 2022 anlegen!)
    • Alle .jpg-Dateien von 2023 in ein Unterverzeichnis 2023
    • Alle Logos, die «ganz-fertig» sind, in ein Unterverzeichnis logos-ganz-fertig.
    • Alle anderen Logos in ein Unterverzeichnis logos-archiv.
  • Überprüfen Sie am Schluss, ob Sie alles richtig gemacht haben, indem sie die Datei verifier.bash starten:
bash verifier.bash
  • Studieren Sie den Code in verifier.bash mit folgender Erklärung:
    • echo gibt alles was folgt auf die Konsole aus (z.B. zur Information).
    • ls -R gibt alle Dateien und Verzeichnisse rekursiv aus (d.h. auch den Inhalt der Unterverzeichnisse etc.).
    • | nimmt die Ausgabe der Kommandozeile davor und nutzt diese als Eingabe für die nächste Kommandozeile.
    • diff vergleicht den Inhalt zweier Dateien zeilenweise und gibt die Unterschiede aus. Wird eine Datei als - angegeben, wird mit der Eingabe (d.h. hier mit der Ausgabe von ls -R) anstatt einer Datei gearbeitet.

Diese Aufgabe gibt es als Screencast vorgelöst: weltöffentlich und anonym oder auf dem kantonalen Sharepoint

  • lehrkraefte/blc/informatik/glf4-24/bash-kommandos.txt
  • Last modified: 2024/02/14 15:22
  • by Ivo Blöchliger