This is an old revision of the document!
Kommandozeile (= bash = git-bash)
Lernziele/Ziel der Prüfung: Ihr findet euch in einem Verzeichnisbaum zurecht und zeigt dies in der git-bash! cd, cp, ls, mv etc.
Für die Prüfung unerlässlich:
- git-bash ausführbar
- python-Programme können ausgeführt werden (z.B.
python guide.py) - Wissen, wie man eine Zip-Datei in einem gewünschten Verzeichnis entpackt. (Am einfachsten Datei per rechter Maustaste an gewünschtem Ort speichern, dort per
unzip NAME.zipauspacken. - Wissen, wie man ein Verzeichnis samt ALLER Unterverzeichnisse in eine zip-Datei packt (bitte nicht 7zip oder so etwas):
zip -r NAME_DER_ZIP_DATEI.zip NAME_DES VERZEICHNISSES(Die Option-r(für “rekursiv”) ist äusserst wichtig, denn sie sorgt dafür, dass nicht nur der Inhalt des Verzeichnisses, sondern auch der Inhalt aller Unterverzeichnisse “eingepackt” wird.) - Die Abgabe der Prüfung erfolgt als zip-Datei!
Die folgenden Befehle/Fähigkeiten werden voraussichtlich in der Prüfung benötigt (es sei denn, man macht lieber alles “naiv mit Windows-Mitteln”).
- Sich im Verzeichnisbaum bewegen (mit
cd, etwacd ..für eine Ebene nach oben odercdzum Wechsel ins Home-Verzeichnis) - Inhalt des aktuellen Verzeichnisses anlegen (mit
ls). - Dateien kopieren und verschieben (mit
cpundmv). - Wildcards verwenden
- Auffinden von Dateien (mit
find). - Ausgabe des Inhalts von Dateien (mit
cat). - eine Datei oder alle Dateien im aktuellen Verzeichnis inklusive Unterverzeichnis nach einem Muster durchsuchen (mit
grep) - Sortieren (mit
sort). - Anlegen einer Datei mit Textinhalt (etwa per
codeoder percode DATEINAMEoder perecho TEXT > DATEINAME) - Anlegen eines Verzeichnisses (mit
mkdir) - Wer Aufgaben nicht vollständig erledigt bekommt, kann Teillösungen in einer Text-Datei dokumentieren (für Teilpunkte).
- Wer aus Versehen in der gegebenen Verzeichnisstruktur etwas Wichtiges löscht, sollte ein neues Verzeichnis erstellen und dort “neu anfangen” und dies in der Dokumentationsdatei dokumentieren. Am Ende alle relevanten Verzeichnisse als Zip-Datei abgeben.
for-Schleifen werden nicht verlangt.
Hier nochmal “dasselbe” etwas konkreter:
ls,cd(navigieren)mv,cp(verschieben, kopieren)- Wildcards, um Dateinamenmuster zu beschreiben, auch über mehrere Verzeichnisse (z.B.
mv */*/*.song bli/bla/blu/.). cat datei.txt(Dateiinhalt ausgeben)cat *(Inhalt aller Dateien im aktuellen Verzeichnis ausgeben)
echo 'kleiner Text' > neueDatei.txt(Text in eine Datei umleiten, Inhalt wird komplett ersetzt)find(alle Dateien vom aktuellen Verzeichnis aus mit vollständigem Pfadnamen anzeigen)find . -name '*cool*'(alle Datein vom aktuellen Verzeichnis aus anzeigen, diecoolim Namen haben.
grep(Text filtern)grep nadel heuhaufen.txt(Alle Zeilen der Datei heuhaufen.txt anzeigen, die die Zeichenkettenadelenthalten).grep -R nadel(Rekursiv alle Dateien anzeigen, die 'nadel' in einer Zeile enthalten).find | grep nadel(Listet alle Datei- und Verzeichnisnamen ab dem aktuellen Verzeichnis auf, dienadelim Dateinamen haben. Die «Pipe»|bedeutet, dass die Ausgabe des ersten Kommandos als Eingabe des nächsten Kommandos benutzt wird.
sort datei.txt(Inhalt alphabetisch sortieren)sort -n datei.txt(Inhalt nummerisch sortieren)
code datei.txt(Datei mit Texteditor bearbeiten, bzw. neu anlegen und bearbeiten).code ../verzeichnis1/verzeichnis2/datei.txt(Datei in einem anderen Verzeichnis öffen).
python programm.pyführt ein Python-Programm aus (programm.pymuss sich im aktuellen Verzeichnis befinden).
- Abbruch von Prozessen geht in der git-bash (oft) mit
Ctrl-c. Alternative: Neu starten. - Python verlassen per
Ctrl-z + Enteroderexit() + Enter. - Wenn man ein Programm startet, etwa Visual Studio Code per
code DATEINAME, so kann man in der git-bash nichts mehr eingeben, solange dieses Programm läuft (d. h. zum Weiterarbeiten in der git-bash muss man das Programm schliessen). Alternative: Mit dem “Kaufmanns-Und”&am Ende kann man ein Programm “parallel” laufen lassen, also etwa percode DATEINAME &. Dann kann man die git-bash weiterhin verwenden. (In Linux geht auch nachträglichCtrl+zplus Eingabebg+Enter in der git-bash, um ein Programm im Hintergrund/parallel laufen zu lassen;bgsteht für “background”, also Hintegrund.)
Mit Hilfe der Kommandozeile (auch Terminal oder Konsole oder bash genannt) kann man per Tastatureingaben am Computer arbeiten, was diverse Vorteile hat (siehe später).