lehrkraefte:blc:informatik:glf22:bashintro

Differences

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

Link to this comparison view

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]
Line 18: Line 18:
   * ''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:
Line 28: Line 29:
 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.
 +
 +
  • lehrkraefte/blc/informatik/glf22/bashintro.1663761511.txt.gz
  • Last modified: 2022/09/21 13:58
  • by Ivo Blöchliger