Auf der Kommandozeile (auch Terminal oder Konsole oder bash genannt), können per Tastatureingaben Programme gestartet werden, kann im Dateisystem navigiert werden, können Dateien manipuliert werden (kopieren, umbenennen, verschieben) und kann eigentlich alles gemacht werden, was auf einem Computer möglich ist.
Das mag auf den ersten Blick kompliziert erscheinen, hat aber einige Vorteile:
alias in der Datei .bashrc speichern. Man kann auch ganze Befehlsfolgen in Skripten/Programmen speichern.*, ?, oder mit geeigneten Schleifen.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.Vielleicht ganz interessant:
Die Struktur eines bash-Kommandos ist folgende:
command arg1 arg2 arg3 …
wobei
command der Name eines Befehls (z.B. cd) oder eines 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./ beginnen, beziehen sich auf das aktuelle Verzeichnis.bash-Kommandos werden mit der Return-Taste abgeschickt.
Beispiele:
cd /c/ofi4XXX/ unzip adventurequest.zip python guide.py
Kommandozeilenargumente werden durch Leerschläge getrennt. Das ist ein Problem, wenn Dateinamen Leerschläge enthalten. Diese müssen dann entweder durch Backslashes geschützt werdem oder der ganze Dateinamen muss 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
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/time (-t) in umgekehrter Reihenfolge/reverse (-r) anzeigen. So wird die neueste Datei zuunterst angezeigt.ls -lhSr Dateien nach Grösse/size (-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.
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 wechselt ins Unterverzeichnis informatik (falls dieses existiert).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.
pwd zeigt das aktuelle Verzeichnis an. Dieses wird normalerweise schon automatisch auf der Kommandozeile angezeigt.
python started den interativen Python-Interpreterpython hello.py startet das Pythonprogramm hello.py, falls dieses im aktuellen Verzeichnis existiert.
cp kopiert Dateien.
cp orignal.txt kopie.txt kopiert die Datei original.txt und speichert die Kopie unter dem 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/backupcp -vrau meinordner /c/backup/. zeigt den Vorgang an (-v für verbose), (-r für rekursiv), (-a für 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.
unzip dateiname.zip
Entpackt die Datei in dateiname.zip ins aktuelle Verzeichnis.
ACHTUNG: KLAPPT WOHL NICHT AUF ALLEN WINDOWS-RECHNERN; Ausweg: Datei-Manager, rechte Maus-Taste auf Verzeichnis.
zip -r paeckchen.zip verzeichnisname
Packt das Verzeichnis 'verzeichnisname inklusive aller Unterverzeichnisse (wegen -r für rekursiv) in eine Zip-Datei namens paeckchen.zip.
ACHTUNG: Das Verzeichnis (= die Quelle) steht hier am Ende des Befehls (als letztes Argument), das Ziel ist das erste Argument.
Aus der Kommandozeile können wir mit code den Editor Visual Studio Code öffnen (dank des entsprechenden alias in der Datei .bashrc).
Damit können auch gleich Dateien geöffnet werden, indem diese auf der Kommandozeile als Argumente angegeben werden. Z.B.
code .bashrc öffnet die Datei .bashrc im aktuellen Ordner (und bietet an, diese anzulegen, falls sie nicht existiert). Die “richtige” Datei '.bashrc' liegt im Home-Verzeichnis.code *.txt öffnet alle Dateien im aktuellen Verzeichnis, deren Namen mit .txt enden.code dokumente öffnet das Verzeichnis “dokumente”, falls dieses existiert.
Der Befehl alias bietet sich an, um eigene Kommandos zusammenzustellen.
alias ohne Argumente zeigt alle definierten Aliases an.alias ofi='cd /c/ofi4XXX/' definiert den Befehl ofi als den Wechsel ins Verzeichnis /c/ofi4XXX.
Ergänzen Sie das obige ofi-Alias wie folgt am Ende der Datei ~/.bashrc:
code ~/.bashrc in Visual Studio Code. (Der Tilde mit dem Slash ~/ sorgt dafür, dass die Datei im Home-Verzeichnis geöffnet wird, auch wenn Sie in einem anderen Verzeichnis sind.alias ofi='cd /c/ofi4XXX' .source ~/.bashrc (in der bash) laden Sie die neue Datei (statt eines Neustarts). Das alias ofi sollte jetzt definiert und einsatzbereit sein. Probieren Sie es in der bash aus.C:\ofi4XXX\ (mit Link speichern unter)adventurequest.zip. ofi oder ausführlich per cd /c/ofi4XXX. ls, ob die zip-Datei auch dort liegt.unzip adventurequest.zipls, ob auch ein neues Verzeichnis entstanden ist.cd adventurequest Tab Enter.python guide.py.adventurequest zurück und starten Sie den Guide mit python guide.py, bis alle Aufgaben erledigt sind.
Versuchen Sie die gestellten Aufgaben zu lösen. Schauen Sie sich ruhig mit ls um. Verwenden Sie cd ordnername, um in einen Unterordner zu wechseln, und cd .. um wieder zurückzugelangen (also in den übergeordneten “Eltern-Ordner”).
Hinweis: Die letzte Aufgabe (alle Bibliotheken ausrüsten) ist sehr anspruchsvoll.