Erster Kontakt
Alles Weitere in diesem Kurs passiert im Terminal. Auf dieser Seite tippst du deinen ersten Befehl, verstehst jeden seiner Bestandteile und verpackst ihn in ein Shell-Skript. Die Befehle selbst lernst du ab Modul 3 systematisch; hier geht es um das Gefühl dafür, wie die Kommandozeile tickt.
Das Terminal öffnen
Abschnitt betitelt „Das Terminal öffnen“Ctrl+Alt+T öffnet ein Terminalfenster. Alternativ die Super-Taste (Windows-Taste) drücken, «terminal» tippen, Enter.
Es gibt kein Fenster zu öffnen: Nach dem Login auf der Konsole oder per SSH bist du direkt in der Shell. Mit Alt+F2 bis F6 wechselst du auf der Konsole zwischen sechs unabhängigen Terminals, Alt+F1 bringt dich zurück.
Das Programm, das im Terminal auf deine Eingaben wartet, ist die Shell, auf Ubuntu die Bash. Das Terminal ist nur das Fenster, die Shell interpretiert, was du tippst.
Den Prompt lesen
Abschnitt betitelt „Den Prompt lesen“Die Shell meldet sich mit dem Prompt:
anna@ubuntu-vm:~$| Teil | Bedeutung |
|---|---|
anna |
Dein Benutzername |
ubuntu-vm |
Der Hostname der VM |
~ |
Das aktuelle Verzeichnis. Die Tilde steht für dein Home-Verzeichnis /home/anna. |
$ |
Normaler Benutzer. Ein # an dieser Stelle hiesse: Du bist root, der Administrator. |
Ein Befehl wird mit Enter abgeschickt. Danach erscheint die Ausgabe und dann wieder ein Prompt. Kommt kein Prompt mehr, läuft noch etwas; Ctrl+C bricht ab.
Der erste Befehl
Abschnitt betitelt „Der erste Befehl“Tippe (nicht kopieren) diesen Befehl und drücke Enter:
cat /etc/passwd > ~/myUsers.txtNichts passiert? Doch, nur sichtbar ist nichts. Schau nach:
ls -l ~/myUsers.txthead -n 3 ~/myUsers.txtls -l zeigt, dass die Datei existiert und wie gross sie ist. head -n 3 zeigt die ersten drei Zeilen.
Was ist passiert? Die Zeile besteht aus vier Teilen:
| Teil | Rolle | Erklärung |
|---|---|---|
cat |
Befehl | Ein Programm, das eine Datei liest und ihren Inhalt ausgibt. Der Name kommt von «concatenate». |
| Leerschlag | Trennzeichen | Die Shell zerlegt die Zeile an Leerschlägen in Wörter. Das erste Wort ist der Befehl, der Rest sind Argumente. |
/etc/passwd |
Argument | Die Datei, die cat lesen soll. Ein absoluter Pfad, beginnt beim Wurzelverzeichnis /. |
> ~/myUsers.txt |
Umleitung | Ohne das > landet die Ausgabe im Terminal. Mit > schreibt die Shell sie stattdessen in die genannte Datei. Existiert die Datei, wird sie überschrieben. |
Die Datei /etc/passwd enthält pro Zeile einen Benutzer des Systems. Trotz ihres Namens stehen keine Passwörter darin, die liegen seit Jahrzehnten in /etc/shadow, die nur root lesen darf. Die Felder (Name, Nummer, Home-Verzeichnis, Shell) nimmst du in Modul 6 auseinander.
Hands-on: Was erwartest du, wenn du den Befehl ohne Umleitung ausführst? Und wenn du den ersten Befehl ein zweites Mal ausführst, wird die Datei dann doppelt so lang? Probiere beides aus und prüfe mit wc -l ~/myUsers.txt, das die Zeilen zählt.
Das erste Shell-Skript
Abschnitt betitelt „Das erste Shell-Skript“Ein Shell-Skript ist eine Textdatei mit Befehlen, die die Shell der Reihe nach ausführt. Das erste Skript enthält genau den Befehl von oben. Skripte, die du selbst schreibst, gehören nach ~/bin.
- Verzeichnis anlegen und hineinwechseln:
Terminal-Fenster mkdir -p ~/bincd ~/bin - Datei im Editor
nanoöffnen. Er ist auf Ubuntu Desktop und Server vorinstalliert:Terminal-Fenster nano listuser.sh - Den folgenden Text abtippen. Ersetze Datum und Namen durch deine Angaben.
listuser.sh #!/bin/bash## listuser.sh# Gibt alle Benutzer des Systems aus## 2026-11-05 / Vorname Nachname## Das (einzige) Kommando in unserem ersten Shell-Skriptcat /etc/passwd - Speichern mit Ctrl+O, Enter, dann
nanoverlassen mit Ctrl+X. - Das Skript ausführbar machen und starten:
Terminal-Fenster chmod +x listuser.sh./listuser.sh
Die Ausgabe sollte derjenigen von cat /etc/passwd entsprechen.
Was die Zeilen bedeuten
Abschnitt betitelt „Was die Zeilen bedeuten“#!/bin/bashist der Shebang. Er muss in der ersten Zeile stehen und sagt dem System, welches Programm die Datei ausführen soll. Mit#!/usr/bin/python3wäre es ein Python-Skript.- Die Zeilen mit
#sind Kommentare, die Shell ignoriert sie. Der Kopf mit Name, Zweck, Datum und Autor ist das Minimum, das jedes Skript in diesem Kurs trägt. Die vollständige Vorlage steht in der Skript-Konvention. cat /etc/passwdist der eigentliche Befehl. Ein Skript mit einem einzigen Befehl ist natürlich unsinnig, aber ab Modul 8 werden daraus Programme mit Menüs, Funktionen und Fehlerbehandlung.
Warum chmod +x
Abschnitt betitelt „Warum chmod +x“Eine neue Datei ist in Linux nicht ausführbar. chmod +x setzt das Ausführungsrecht. Vergleiche vorher und nachher:
ls -l listuser.shVor chmod steht am Anfang -rw-rw-r--, danach -rwxrwxr-x. Jedes x bedeutet «darf ausgeführt werden». Das ganze Rechtesystem kommt in Modul 4. Ohne das Recht antwortet die Shell mit Permission denied. Übrigens funktioniert bash listuser.sh auch ohne x, weil dann nicht die Datei, sondern bash ausgeführt wird, das die Datei nur liest.
Warum ./
Abschnitt betitelt „Warum ./“Wenn du nur listuser.sh tippst, antwortet die Shell mit command not found, obwohl die Datei direkt vor deiner Nase liegt. Die Shell sucht Befehle nämlich nicht im aktuellen Verzeichnis, sondern in den Verzeichnissen der Variable PATH:
echo "$PATH"Das aktuelle Verzeichnis ist aus Sicherheitsgründen nicht dabei: Sonst könnte jemand in einem gemeinsam genutzten Ordner ein Programm namens ls ablegen, das du versehentlich startest. ./listuser.sh heisst «die Datei listuser.sh hier im aktuellen Verzeichnis» (. steht für das aktuelle Verzeichnis) und umgeht die Suche.
Lösung anzeigen
#!/bin/bash## listuser.sh# Gibt alle Benutzer des Systems aus## 2026-11-05 / Vorname Nachname#
# Titel, Benutzerliste, Anzahlecho "Benutzer auf diesem System:"cat /etc/passwdechoecho "Anzahl: $(wc -l < /etc/passwd)"mkdir -p ~/labs/01-einstiegcp ~/bin/listuser.sh ~/labs/01-einstieg/~/labs/01-einstieg/listuser.sh$(...) führt den Befehl in der Klammer aus und setzt seine Ausgabe an dieser Stelle ein. Mehr dazu in Modul 7.
Selbstcheck · 5 Fragen
Weiterführend
Abschnitt betitelt „Weiterführend“- ubuntuusers-Wiki: Shell, ein Überblick, was die Shell ist und kann.
- ubuntuusers-Wiki: Nano, die wichtigsten Tastenkürzel des Editors.
man cat,man chmod: die eingebaute Hilfe, mehr dazu in Modul 5.