Eine Rechnung finden, ganz ohne Maus
Auf dem Server eines Webshops liegen Tausende Dateien. Die Buchhaltung braucht die Rechnungen vom letzten Monat.
Der Server hat keinen Desktop und keine Maus. Sie sehen ein Fenster und einen blinkenden Cursor.
So arbeiten die meisten Server. Sie bewegen sich darauf mit kurzen Befehlen.
Am Ende dieser Lektion
Notiz
Ich kann in einer Shell mit Dateien und Ordnern arbeiten.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Shell | das Programm, das Ihre Befehle liest und ausführt | |
| Pfad | die Adresse einer Datei oder eines Ordners | /home/student/projects |
| Arbeitsverzeichnis | der Ordner, in dem Sie gerade sind | |
| Umleitung | die Ausgabe eines Befehls in eine Datei schreiben | >> |
| Pipe | die Ausgabe eines Befehls an den nächsten weitergeben | | |
| Modus | die Zugriffsrechte einer Datei als Buchstaben: wer sie lesen, ändern oder ausführen darf | rw-r--r-- |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Pfad ist die Adresse einer Datei
Die Shell ist immer „in“ einem Ordner. Das ist das Arbeitsverzeichnis. Befehle wirken dort, wenn Sie nichts anderes sagen.
Ein Pfad, der mit / beginnt, ist ein vollständiger Pfad. Er gilt von überall.
Ein Pfad ohne / am Anfang ist ein relativer Pfad. Die Shell sucht ihn im Arbeitsverzeichnis. Zwei Punkte, .., bedeuten den Ordner darüber.
Ein Beispiel: Wohin führt cd
| Sie sind in | Sie tippen | Sie landen in |
|---|---|---|
| /home/student | cd projects | /home/student/projects |
| /home/student/projects | cd app | /home/student/projects/app |
| /home/student/projects/app | cd .. | /home/student/projects |
| /home/student/projects | cd /var/log | /var/log |
| /var/log | cd projects | Eine Fehlermeldung: kein solcher Ordner |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Wo bin ich?
pwdHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was liegt hier?
lsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Zwei Ordner tiefer gehen
cd projects/appHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Hineinsehen
lsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Zurück nach Hause
cdHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele glauben, cd projects funktioniere in jedem Ordner. Der Befehl sucht nur im aktuellen Ordner. Führen Sie zuerst pwd aus, oder tippen Sie einen vollständigen Pfad mit / am Anfang.
mkdir, cp und mv verändern etwas
mkdir legt einen Ordner an. cp kopiert eine Datei, das Original bleibt liegen. mv verschiebt eine Datei. Geben Sie ihr im selben Ordner einen neuen Namen, benennt mv sie um.
rm löscht eine Datei. Auf einem Server gibt es keinen Papierkorb. Was gelöscht ist, ist weg.
Führen Sie die nächsten vier Befehle der Reihe nach aus.
Einen Ordner anlegen
mkdir -p ladendatenHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine Datei hineinkopieren
cp projects/docs/notes.txt ladendaten/notizen.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Kopie umbenennen
mv ladendaten/notizen.txt ladendaten/aufgaben.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Den Ordner prüfen
ls ladendatenHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Umleitung und Pipe verbinden Befehle
Ein Befehl zeigt seine Antwort auf dem Bildschirm. Eine Umleitung schreibt sie stattdessen in eine Datei. > ersetzt die Datei. >> hängt am Ende an.
Eine Pipe, |, gibt die Antwort an den nächsten Befehl weiter. ls | wc -l listet Namen und zählt dann die Zeilen.
Eine Zeile anhängen
echo "Bestellung 2043 versendet" >> ladendaten/aufgaben.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Datei lesen
cat ladendaten/aufgaben.txtHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Dateien in einem Ordner zählen
ls projects/app | wc -lHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Noch ein häufiger Fehler
Warnung
Viele halten > und >> für dasselbe. > wirft den alten Inhalt weg und beginnt neu. >> behält ihn und hängt an. Nehmen Sie >>, außer Sie wollen neu beginnen.
Ein Beispiel: ein Modus als drei Ziffern
| Buchstaben | Besitzer | Gruppe | Andere | Ziffern |
|---|---|---|---|---|
| rw-r--r-- | rw- = 4+2 = 6 | r-- = 4 | r-- = 4 | 644 |
| rwxr-xr-- | rwx = 4+2+1 = 7 | r-x = 4+1 = 5 | r-- = 4 | 754 |
| rwx------ | rwx = 7 | --- = 0 | --- = 0 | 700 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine Buchstabengruppe als Zahl
# Eine Dreiergruppe von Buchstaben, ausgerechnet.
gruppe = "r-x"
summe = 0
if gruppe[0] == "r":
summe = summe + 4
if gruppe[1] == "w":
summe = summe + 2
if gruppe[2] == "x":
summe = summe + 1
print(summe)
# Ändern Sie gruppe auf "rw-" und starten Sie noch einmal.
Weiterführend
Tippen Sie diese Befehle selbst. Legen Sie in ladendaten einen Ordner rechnungen an. Erzeugen Sie darin mit einem einzigen Befehl drei leere Dateien: touch nimmt mehrere Namen.
Zählen Sie die Dateien dann mit einer Pipe, und schreiben Sie die Zahl mit > in ladendaten/anzahl.txt. Sagen Sie voraus, was cat ladendaten/anzahl.txt ausgibt, bevor Sie es ausführen.