lehrkraefte:blc:informatik:glf22:bashintro

This is an old revision of the document!


Kommandozeile (bash)

Auf der Kommandozeile (auch Terminal oder Konsole genannt), können Programme gestartet, im Dateisystem navigiert, Dateien manipuliert werden (kopieren, umbenennen, verschieben) und eigentlich alles gemacht werden, was auf einem Computer gemacht werden kann.

Das mag auf den ersten Blick kompliziert erscheinen, hat aber auch verschiedene Vorteile:

  • Mit der Tabulator-Taste können Dateinamen vervollständigt werden.
  • Kommandos können einfach wiederholt werden (z.B. mit Pfeiltaste nach oben, durch Definition mit alias oder man speichert die Kommandozeile gleich in eine Datei).
  • Es kann mit vielen Dateien auf einmal gearbeitet werden, z.B. durch Verwendung von Wildcards wie *, ?, etc.
  • Nachhaltiges Lernen: bash (die Kommandozeile, die wir einsetzen) und die gängigsten Kommandos haben sich in den letzten 30 Jahren kaum verändert und werden es auch in Zukunft nicht tun.
  • Sieht aus wie im Hacker-Film ;-)

Die Struktur ist folgende:

command arg1 arg2 arg3

wobei

  • command der Name eines Befehls (z.B. cd) oder Programms ist (wie z.B. python oder ls).
  • arg1 etc. die Argumente sind. Je nach Befehl können unterschiedlich viele (oder auch keine) Argumente angegeben werden.
    • Typischerweise sind Argumente Datei- oder Ordnernamen oder zusätzliche Optionen
  • Der Befehl, bzw. Programm werden im aktuellen Verzeichnis (working directory) ausgeführt. Alle Datei- und Verzeichnisangaben, die nicht mit / beginnen, beziehen sich auf das aktuelle Verzeichnis.

Beispiele:

cd jokerchain
python jokerchain.py -d 2042-03-14

Kommandozeilenargumente werden durch Leerschläge getrennt. Das ist ein Problem, wenn Dateinamen Leerschläge enthalten. Diese müssen dann entweder durch Backslashes geschützt oder der ganze Dateinamen zwischen Anführungszeichen (doppelte oder einfache) geschrieben werden. Z.B.

cd "OneDrive - xyz Blabla"
cd OneDrive\ -\ xyz\ Blabla

Die Tabulatortaste kann zur Ergänzung benutzt werden, wandelt dabei aber immer in die zweite Version mit Backslashes um

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.

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

python hello.py startet das Pythonprogramm, dass in der Datei hello.py im aktuellen Verzeichnis gespeichert ist.

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.

code startet Visual Studio Code, zum Editieren von Text-Dateien und speziell zum Programmieren.

  • code . öffnet das aktuelle Verzeichnis (.) zum Bearbeiten der Dateien.
  • code hello.py öffnet die Datei hello.py zum Editieren. Falls die Datei nicht existiert, wird sie dann unter diesem Namen gespeichert.
  • lehrkraefte/blc/informatik/glf22/bashintro.1663763069.txt.gz
  • Last modified: 2022/09/21 14:24
  • by Ivo Blöchliger