Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
lehrkraefte:blc:informatik:glf22:bashintro [2022/09/21 13:58] Ivo Blöchliger [Grundlegende Struktur eines Kommandos] |
lehrkraefte:blc:informatik:glf22:bashintro [2022/09/23 08:15] (current) Ivo Blöchliger [alias] |
* ''arg1'' etc. die **Argumente** sind. Je nach Befehl können unterschiedlich viele (oder auch keine) Argumente angegeben werden. | * ''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 | * 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: | Beispiele: |
Die Tabulatortaste kann zur Ergänzung benutzt werden, wandelt dabei aber immer in die zweite Version mit Backslashes um | Die Tabulatortaste kann zur Ergänzung benutzt werden, wandelt dabei aber immer in die zweite Version mit Backslashes um |
</WRAP> | </WRAP> |
| |
| ===== Auswahl einiger Befehle und Programme ===== |
| ==== ls (list files) ==== |
| ''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 (-t) in umgekehrter Reihenfolge (-r) anzeigen. So wird die neueste Datei zuunterst angezeigt. |
| * ''ls -lhSr'' Dateien nach Grösse (-S) in umgekehrter Reihenfolgen (-r) in «human readable format» (-h) anzeigen. Damit erscheinen die grössten Dateien zuunterst (praktisch zum Aufräumen). |
| |
| ==== cd (change directory) ==== |
| ''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. |
| |
| ==== pwd (print working directory) ==== |
| Zeigt das aktuelle Verzeichnis an. Dieses wird normalerweise schon automatisch auf der Kommandozeile angezeigt. |
| |
| ==== python ==== |
| * ''python'' started den interativen Python-Interpreter |
| * ''python hello.py'' startet das Pythonprogramm, dass in der Datei ''hello.py'' **im aktuellen Verzeichnis** gespeichert ist. |
| |
| ==== cp (copy) ==== |
| ''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 (move) ==== |
| ''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 (remove) ==== |
| ''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 (Visual Studio Code) ==== |
| ''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. |
| |
| ===== alias ===== |
| Um Tipp-Arbeit zu sparen, können Sie das ''cd''-Kommando zum Wechseln ins Informatik-Verzeichnis auch abspeichern. Gehen Sie dafür wie folgt vor: |
| |
| * Gehen mit ''cd'' ins gewünschte Verzeichnis. |
| * Geben Sie ''pwd'' ein und kopieren Sie den gesamten (absoluten) Pfad. |
| * Starten Sie ''code ~/.bashrc'' um die Konfig-Datei in Ihrem Home-Verzeichnis zu editieren. |
| * Fügen Sie dort folgende Zeile (inklusive einfachen und doppelten Anführungszeichen) mit dem oben kopierten Pfad ein: |
| <code bash> |
| alias cdinfo='cd "hier die komplette Pfadangabe von oben einfügen"' |
| </code> |
| * Speichern Sie die Datei. |
| * Starten Sie die git-bash neu. |
| * Testen Sie das neue Kommando ''cdinfo'' |
| |
| ====== Adventure auf der bash Kommandozeile ====== |
| Laden Sie folgendes Archiv herunter und **entpacken** sie dieses {{lehrkraefte:blc:informatik:glf22:adventurequest.zip}}. Achtung, **es reicht nicht**, sich den Inhalt des Archivs im Dateimanager anzusehen. |
| |
| Öffnen Sie dann die ''git-bash'' und navigieren Sie mit 'cd' in den Ordner ''adventurequest''. Starten Sie dort das Python-Script ''guide.py'' wie folgt: |
| python guide.py |
| und versuchen Sie die gestellte Aufgaben zu lösen. Schauen Sie sich ruhig um mit ''ls'', ''cd ordnername'' und ''cd ..'' um wieder zurück zu gelangen. |
| |
| |