Warum Administratoren das Terminal nutzen
Server im Rechenzentrum oder in der Cloud haben fast nie einen Bildschirm, eine Maus oder Fenster. Du verbindest dich über das Netzwerk mit ihnen, meist per SSH (Secure Shell, eine verschlüsselte Verbindung zu einem entfernten Rechner), und bekommst genau eines: eine Zeile, in die du Befehle tippst. Darunter erscheint die Antwort als Text. Genau das ist ein Terminal.
Was zuerst altmodisch wirkt, hat handfeste Vorteile:
- Schnell: Ein Befehl erledigt, wofür du sonst zehnmal klicken müsstest.
- Wiederholbar: Befehle lassen sich aufschreiben und später als Skript immer wieder ausführen, auf einem oder auf hundert Servern.
- Überall gleich: Jeder Linux-Server versteht dieselben Grundbefehle, egal wer ihn eingerichtet hat.
- Sparsam: Text braucht kaum Bandbreite. Ein Terminal funktioniert auch über eine schwache Verbindung.
Zwei Begriffe begegnen dir ständig. Das Terminal ist das Fenster, in dem du tippst und Text zurückbekommst. Die Shell ist das Programm darin, das deine Befehle versteht und ausführt. Unter Linux ist das fast immer die Bash, unter Windows die PowerShell. Im Alltag sagt man auch einfach Konsole oder Kommandozeile.
Probier es gleich aus: Klicke in das dunkle Feld, tippe help und drücke Enter.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Die Eingabeaufforderung lesen
Vor dem Cursor steht immer eine kurze Zeile, zum Beispiel azubi@lernarena:~$. Das ist die Eingabeaufforderung, auf Englisch Prompt. Sie sagt dir, wo du bist und wer du bist:
| Teil | Bedeutung |
|---|---|
| azubi | Der Benutzer, mit dem du angemeldet bist. |
| @lernarena | Der Name des Rechners (Hostname). Wichtig, sobald du mit mehreren Servern gleichzeitig arbeitest. |
| :~ | Der Ordner, in dem du gerade bist. Die Tilde ~ steht für deinen Home-Ordner, hier /home/azubi. |
| $ | Du arbeitest als normaler Benutzer. Steht dort ein #, bist du root, der Administrator mit allen Rechten. |
In Anleitungen im Netz steht vor Befehlen oft ein $, zum Beispiel $ ls -l. Das Zeichen zeigt nur, dass hier ein Befehl folgt. Du tippst es nicht mit.
Dein erster Befehl
Ein Befehl ist ein Wort, das du hinter den Prompt tippst und mit Enter abschickst. Das Terminal führt ihn aus, zeigt die Antwort und wartet mit einem neuen Prompt auf den nächsten Befehl. Drei einfache Befehle zum Anfang:
| Befehl | Was er tut |
|---|---|
| whoami | Zeigt, als welcher Benutzer du angemeldet bist („who am I“, wer bin ich). |
| date | Zeigt Datum und Uhrzeit des Servers. Viele Server laufen in UTC, der Weltzeit. |
| echo Hallo | Gibt den Text dahinter einfach wieder aus. Klingt banal, ist in Skripten ständig im Einsatz. |
Linux unterscheidet konsequent zwischen Groß- und Kleinschreibung. whoami funktioniert, WhoAmI nicht: Einen Befehl mit diesem Namen gibt es nicht. Befehle schreibst du fast immer klein.
Finde heraus, als welcher Benutzer du angemeldet bist, und lass dir Datum und Uhrzeit des Servers anzeigen.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Ziele
- Finde heraus, als welcher Benutzer du angemeldet bist (offen)
- Lass dir Datum und Uhrzeit des Servers anzeigen (offen)
Musterlösung anzeigen
whoami
dateEin möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Die Uhrzeit ist die des Servers in UTC, deshalb weicht sie von deiner Uhr ab.
Befehl, Option, Argument
Die meisten Befehle folgen demselben Aufbau. Hier am Beispiel ls -l /etc:
| Teil | Beispiel | Bedeutung |
|---|---|---|
| Befehl | ls | Was passieren soll. ls listet den Inhalt eines Ordners auf (list). |
| Option | -l | Wie es passieren soll. -l zeigt die lange Form mit Details. |
| Argument | /etc | Womit oder wo. Hier der Ordner /etc statt des Ordners, in dem du gerade bist. |
Dazu ein paar Regeln, die für fast alle Befehle gelten:
- Leerzeichen trennen die Teile.
ls -list ls mit einer Option,ls-lwäre ein Befehl namens „ls-l“, den es nicht gibt. - Kurze Optionen bestehen aus einem Minus und einem Buchstaben:
-l,-a. Mehrere lassen sich zusammenfassen:ls -l -aist dasselbe wiels -la. - Lange Optionen haben zwei Minus und ein ganzes Wort. Sie sind leichter zu lesen, zum Beispiel
ls --allstattls -a. - Optionen und Argumente sind meist freiwillig.
lsohne alles zeigt den aktuellen Ordner in der kurzen Form. - Leerzeichen im Namen brauchen Anführungszeichen:
ls "mein ordner". Sonst hält die Shell „mein“ und „ordner“ für zwei Argumente.
Zwei Optionen von ls brauchst du gleich in den Übungen:
| Eingabe | Was du siehst |
|---|---|
| ls -l | Die lange Form: jede Datei in einer eigenen Zeile, mit Rechten, Besitzer, Größe und Datum. |
| ls -a | Alle Dateien (all), auch die versteckten. Unter Linux ist eine Datei versteckt, wenn ihr Name mit einem Punkt beginnt, zum Beispiel .bashrc. Ohne -a zeigt ls sie nicht an. |
| ls -la | Beides zusammen: alle Dateien in der langen Form. |
So sieht ls -l in deinem Home-Ordner aus. Was die Spalten bedeuten, lernst du in Lektion 5; für den Anfang reicht: ganz rechts steht der Name, links davon Datum und Größe in Byte. Datum und Uhrzeit sehen bei dir anders aus, weil die Dateien im Übungs-Terminal immer ein paar Tage alt sind.
azubi@lernarena:~$ ls -l
total 20
-rw-r--r-- 1 azubi azubi 20 Sep 28 09:30 bericht.txt
drwxr-xr-x 2 azubi azubi 4096 Sep 2 09:30 bilder
-rw-r--r-- 1 azubi azubi 40 Sep 14 09:30 notizen.txt
drwxr-xr-x 3 azubi azubi 4096 Sep 18 09:30 projekte
-rw-r--r-- 1 azubi azubi 28 Sep 22 09:30 todo.txtIn deinem Home-Ordner liegen versteckte Dateien. Tippe zuerst nur ls und danach ls -a: Welche Namen kommen dazu? Zeige zum Schluss alle Dateien in der langen Form, indem du -l und -a kombinierst.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Ziele
- Zeige mit ls auch die versteckten Dateien an (offen)
- Zeige alle Dateien in der langen Form mit Details (offen)
Musterlösung anzeigen
ls -a
ls -laEin möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Statt ls -la geht auch ls -l -a oder ls -l --all. In der Liste tauchen außerdem . und .. auf: der aktuelle und der übergeordnete Ordner. Mehr dazu in Lektion 2.
In /etc liegen unter Linux die Einstellungen des Systems. Liste den Inhalt dieses Ordners auf, ohne dorthin zu wechseln. Zeige danach nur die Datei /etc/hostname in der langen Form.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Ziele
- Liste den Inhalt des Ordners /etc auf, ohne dorthin zu wechseln (offen)
- Zeige nur die Datei /etc/hostname in der langen Form (offen)
Musterlösung anzeigen
ls /etc
ls -l /etc/hostnameEin möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Das Argument kann ein Ordner oder eine einzelne Datei sein. In hostname steht übrigens der Name des Rechners, der auch im Prompt auftaucht.
Hilfe holen, ohne das Terminal zu verlassen
Niemand kennt alle Optionen auswendig. Deshalb bringt Linux seine Anleitungen gleich mit:
| Eingabe | Was du bekommst |
|---|---|
| man ls | Die Anleitung zu ls (manual). Auf einem echten Linux ausführlich und auf Englisch, du blätterst mit der Leertaste und beendest mit q. Im Übungs-Terminal bekommst du eine deutsche Kurzfassung. |
| ls --help | Eine kurze Übersicht der Optionen direkt im Terminal. |
| help | Im Übungs-Terminal: alle Befehle, die es kennt. In der echten Bash listet help die Befehle, die in die Shell eingebaut sind. |
Dazu kommen ein paar Tasten, die dir viel Tipparbeit sparen:
| Taste | Wirkung |
|---|---|
| Pfeil hoch / runter | Holt frühere Befehle zurück, zum Wiederholen oder Ändern. |
| Tab | Ergänzt Befehle und Namen. Gibt es mehrere Treffer, zeigt das Übungs-Terminal sie an; auf einem echten Linux drückst du dafür zweimal Tab. |
| Strg+C | Bricht die aktuelle Eingabe ab, auf einem echten Linux auch einen laufenden Befehl. |
| Strg+L | Leert den Bildschirm, wie der Befehl clear. |
Der Befehl history zeigt dir außerdem alle Befehle, die du bisher getippt hast, jeweils mit einer Nummer davor.
Diese Aufgabe ist freiwillig. Hier steht nicht, wie es geht, du findest es selbst heraus, genau wie später im Beruf. Rufe die Anleitung zu ls auf und suche darin die Option, mit der das Neueste oben steht. Liste deinen Home-Ordner damit auf. Lass dir zum Schluss alle Befehle anzeigen, die du in diesem Terminal getippt hast.
Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.
Ziele
- Rufe die Anleitung zu ls auf (offen)
- Liste deinen Home-Ordner so auf, dass das Neueste oben steht (offen)
- Lass dir die Befehle anzeigen, die du bisher getippt hast (offen)
Musterlösung anzeigen
man ls
ls -lt
historyEin möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Mit ls -lt siehst du zusätzlich die Zeiten und erkennst, dass bericht.txt die neueste Datei ist.
Fehlermeldungen lesen
Fehler gehören dazu, auch bei Profis. Wichtig ist, die Meldung zu lesen, statt einfach noch einmal dasselbe zu tippen. Auf Linux-Servern sind die Meldungen meist englisch. Vier davon siehst du ständig:
| Meldung | Bedeutung |
|---|---|
| command not found | Den Befehl gibt es nicht. Meist ein Tippfehler oder falsche Großschreibung. |
| No such file or directory | Datei oder Ordner gibt es an dieser Stelle nicht. Name und Pfad prüfen. |
| Permission denied | Dir fehlt das Recht dafür. Um Rechte geht es in Lektion 5. |
| invalid option | Diese Option kennt der Befehl nicht. Ein Blick in die Anleitung hilft. |
Im Übungs-Terminal steht unter jeder Fehlermeldung zusätzlich ein Hinweis auf Deutsch. Auf einem echten Server gibt es den nicht, deshalb lohnt es sich, die englischen Meldungen von Anfang an mitzulesen. Probier es aus: Tippe im freien Terminal oben lss oder ls gibtsnicht.
Unter Windows
Jetzt selbst testen
Vier Fragen zum Abschluss. Du hast so viele Versuche, wie du willst.
Der Prompt lautet root@web01:/var/log#. Was stimmt?
Was ist in ls -l /etc das Argument?
Welche Eingabe macht dasselbe wie ls -l -a?
Das Terminal meldet: bash: Ls: command not found. Woran liegt das?