lehrkraefte:blc:informatik:ffprg1-2023:files-directories-commandline

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
lehrkraefte:blc:informatik:ffprg1-2023:files-directories-commandline [2023/02/01 08:51] – [Kommandozeile] Ivo Blöchligerlehrkraefte:blc:informatik:ffprg1-2023:files-directories-commandline [2023/02/01 08:53] (current) – [Leerschläge und Sonderzeichen sind Mist] Ivo Blöchliger
Line 1: Line 1:
 +====== Kommandozeile ======
 +Wir lernen hier ''bash'', was die wohl am weitesten verbreitete Shell im Unix-Umfeld ist. Insbesondere auch auf unserem Webserver. Die meisten Kommandos funktionieren so auch in der Windows Power-Shell. 
 +  * Universell, «zeitlos», präzise und effizient
 +  * Schärft das Verständnis und Selbstvertrauen im Umgang in der digitalen Welt
 +  * Sieht aus wie Hacker in einer Filmszene (naja, je nach Qualität des Films...)
 +
 +===== Grundlegende Struktur eines Kommandos =====
 +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
 +<WRAP important>
 +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
 +</WRAP>
 +
 +===== Die wichtigsten Kommandos =====
 +==== ls (list files) ====
 +Zeigt Dateien im aktuellen Verzeichnis an. Führe ich automatisch nach jedem Befehl ''cd'' aus.
 +  * ''ls -a'' Alle Dateien (auch versteckte) anzeigen
 +  * ''ls -l'' Mehr Infos zu Dateien anzeigen
 +  * ''ls -ltrh'' Mehr Infos (-l), Nach Datum geordnet (-t), umgekehrt geordnet (-r), Dateigrösse humand readable (-h)
 +==== pwd (print working directory) ====
 +Zeigt den absoluten Pfad des aktuellen Verzeichnisses an.
 +==== Tabulator-Taste ====
 +Mit der Tabulator-Taste (ganz links, oberhalb von Caps-Lock) können Datei-, Verzeichnisnamen und Kommandonamen vervollständigt werden. Das ist nicht nur viel schneller, sondern garantiert auch, dass man keine einfachen Tippfehler macht.
 +
 +Die Vervollständigung wird so weit eingefügt, wie eindeutig. Drückt man abermals die Tabulator-Taste, werden alle verbleibenden Möglichkeiten angezeigt. Dann können weiter Buchstaben eingegeben werden, und die Tabulator-Taste wieder gedrückt werden.
 +
 +==== cd (change directory) ====
 +Wechselt das Verzeichnis
 +  * ''cd'' Wechselt ins Home-Verzeichnis (gleicher Effekt wie ''cd ~'', wobei ''~'' für das Home-Verzeichnis steht.
 +  * ''cd pfad'' wechselt ins angegebene Verzeichnis
 +  * ''cd ..'' wechselt ins übergeordnete Verzeichnist (''..'' ist ein spezielles Verzeichnis, das auf das übergeordnete Verzeichnis verweist. Das Verzeichnis ''.'' verweist auf «sich selbst»).
 +
 +==== Leerschläge und Sonderzeichen sind Mist ====
 +Leerschläge trennen einzelne Kommandozeilenargumente. Enthalten Datei- oder Verzeichnisnamen Leerschläge, müssen die «geschützt» werden. Entweder durch voranstellen eines Backslash ''\'' oder man schreibt den ganzen Dateinamen in Anführungszeichen (einfache oder doppelte).
 +
 +Meine Empfehlung: **Für Dateinamen verwende man nur Buchstaben a-z, Ziffern 0-9, und Minus und Bodenstrich**. Dann gibt es auf wohl keinem System Probleme. Grossschreibung vermeide ich deswegen, weil Windows nicht zwischen Gross- und Kleinschreibung unterscheidet. Das führt spätestens dann zu Problemen, wenn man eine Datei ''a.txt'' und ''A.txt'' hat, die Windows dann als eine einzige Datei betrachtet und z.B. beim Kopieren die erste mit der zweiten überschreibt.
 +
 +==== mkdir (make directory) ====
 +mkdir legt Verzeichnisse an.
 +  * ''mkdir name'' Legt im aktuellen Verzeichnis ein neues Verzeichnis mit Name ''name'' an.
 +  * ''mkdir -p foo/bar/baz'' Legt gleich mehrere verschachtelte Verzeichnisse an.
 +
 +==== rmdir (remove directory) ====
 +Löscht leere Verzeichnisse.
 +  * ''rmdir name'' Löscht das Verzeichnis name
 +
 +==== code ====
 +Startet Visual Code, am nützlichsten sind folgende Varianten:
 +  * ''code .'' Öffnet den aktuellen Ordner
 +  * ''code datei'' Öffnet die angegebene Datei
 +
 +
 +
 +
 +