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.zip
auspacken. - 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 odercd
zum Wechsel ins Home-Verzeichnis) - Inhalt des aktuellen Verzeichnisses anlegen (mit
ls
). - Dateien kopieren und verschieben (mit
cp
undmv
). - 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
notepad
oder 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, diecool
im Namen haben.
grep
(Text filtern)grep nadel heuhaufen.txt
(Alle Zeilen der Datei heuhaufen.txt anzeigen, die die Zeichenkettenadel
enthalten).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, dienadel
im 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)
notepad datei.txt
(Datei mit Texteditor bearbeiten, bzw. neu anlegen und bearbeiten).notepad ../verzeichnis1/verzeichnis2/datei.txt
(Datei in einem anderen Verzeichnis öffen).
python programm.py
führt ein Python-Programm aus (programm.py
muss 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 + Enter
oderexit() + Enter
. - Wenn man ein Programm startet, etwa per
notepad DATEINAME
, so kann man in der git-bash nichts mehr eingeben, solange dieses Programm läuft (d. h. zum Weiterarbeiten muss man das Programm schliessen). Alternative: Mit dem “Kaufmanns-Und” & am Ende kann man ein Programm “parallel” laufen lassen, also etwa pernotepad DATEINAME &
. Dann kann man die git-bash weiterhin verwenden. (In Linux geht auch nachträglichCtrl+z
plus Eingabebg
+Enter in der git-bash, um ein Programm im Hintergrund/parallel laufen zu lassen;bg
steht 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).