Zum Inhalt springen

Arbeiten mit dem Terminal

Mit dem Terminal kannst du auf Textbasis mit deinem Computer interagieren, indem du Befehle eingibst und dieser darauf reagiert.

Wenn wir über das Terminal reden, fallen da oft auch Begriffe wie command line, shell, terminal und bash. Kommandozeile und Terminal werden oft synonym verwendet, bezeichnen aber eigentlich leicht unterschiedliche Dinge. Die Kommandozeile ist die textbasierte Schnittstelle, in der du Befehle eingibst. Das Terminal ist die Anwendung, in der du mit der Kommandozeile interagierst. Es stellt das Fenster und die Umgebung bereit, in der du deine Befehle eingeben und die Ergebnisse sehen kannst.

FmacOS Terminal

Zusätzlich zum Terminal gibt es noch die Shell. Die Shell ist ein Programm, das deine Befehle interpretiert und ausführt. Es gibt verschiedene Shells, wie zum Beispiel die Bash (häufig unter macOS und Linux verwendet), die Zsh oder die PowerShell (unter Windows). Jede Shell hat ihre eigenen Befehle und Funktionen.

Bei macOS findest du das Terminal über die Suche (Spotlight) oder im Verzeichnis Programme/Dienstprogramme. Bei Windows heißt das Terminal PowerShell, die du über die Suche und das Startmenü aufrufen kannst.

In beiden Fällen öffnet sich ein Fenster, das deine Befehle erwartet. Am Anfang steht immer ein sogenannter Command-Prompt, hier gekennzeichnet als $:

Terminal-Fenster
$

Probiere es doch gleich einmal aus. Gebe bitte ohne das $ den Befehl echo hallo ein und drücke ⏎ Enter (bzw. Return).

Terminal-Fenster
$ echo hallo
hallo

Das ist ein einfacher Befehl, der das Wort „hallo“ ausgibt. Das mag zunächst nicht sehr nützlich erscheinen, zeigt aber ein wichtiges Konzept. Im Terminal gibst du Befehle ein, wie echo. Diese Befehle nehmen Argumente entgegen, wie hallo.

Schauen wir uns nun an, was du noch alles mit dem Terminal machen kannst.

Grundlagen

Im Terminal arbeitest du immer in einem Verzeichnis bzw. einem „Ordner“. Um zu sehen, in welchem Verzeichnis du dich gerade befindest, gebe folgenden Befehl ein:

Terminal-Fenster
$ pwd
/Users/starterguide

pwd ist die Abkürzung für „print working directory“. Standardmäßig startet das Terminal immer in deinem Home-Verzeichnis, das nach deinem Anmeldenamen benannt ist. Das ist das gleiche Verzeichnis, das deinen Dokumente-Ordner auf macOS, bzw. Benutzer auf Windows enthält, also bist du damit wahrscheinlich vertraut.

Inhalte anzeigen

Um zu sehen, welche Dateien sich im aktuellen Arbeitsverzeichnis befinden, verwende den Befehl ls:

Terminal-Fenster
$ ls
Applications
Desktop
Documents
Downloads
README.md

Neben Ordnern und Dateien kann ls auch versteckte Dateien anzeigen, die mit einem Punkt beginnen. Das sind normalerweise Konfigurationsdateien, die du nicht sehen musst, aber manchmal nützlich sind. Um alle Dateien anzuzeigen, einschließlich der versteckten, verwende das -a-Flag:

Terminal-Fenster
$ ls -a
.
..
.Trash
.bash_history
Applications
Desktop
Documents
Downloads
README.md

Das -a-Flag ist ein Beispiel für eine Option. Eine Option ist eine Art Schalter, den du einem Befehl übergibst. In diesem Fall zeigt -a alle Dateien an, auch die versteckten.

Der folgende Befehl zeigt alle Dateien an, einschließlich der versteckten, und gibt zusätzliche Informationen zu jeder Datei aus:

Terminal-Fenster
$ ls -la
drwxr-x---+ 79 starterguide staff 2528 Dec 19 10:59 .
drwxr-xr-x 5 root admin 160 Dec 18 20:27 ..
-rw-r--r--@ 1 starterguide staff 6148 Dec 19 10:59 .DS_Store

Der einzelne Punkt . steht für das aktuelle Verzeichnis und der doppelte Punkt .. steht für das übergeordnete Verzeichnis.

Pfade verstehen

Um effektiv auf dem Terminal zu arbeiten, musst du Pfade verstehen. Ein Pfad ist eine Reihe von Verzeichnis-Namen, die durch / getrennt sind und manchmal mit einem Dateinamen enden. Ein Verzeichnis ist nur ein anderer Name für einen „Ordner“. Lass uns zu pwd zurückkehren:

Terminal-Fenster
$ pwd
/Users/starterguide

Lass uns hier ein neues Verzeichnis namens Projects erstellen und dann in dieses Verzeichnis wechseln:

Terminal-Fenster
$ mkdir Projects
$ cd Projects

Das aktuelle Arbeitsverzeichnis ist jetzt /Users/starterguide/Projects.

mkdir ist die Abkürzung für „make directory“ und erstellt ein neues Verzeichnis. cd ist die Abkürzung für „change directory“ und ändert dein aktuelles Arbeitsverzeichnis. Wenn du jetzt ls eingibst, siehst du die Dateien deines Projects-Verzeichnisses. Da du dort allerdings noch keine Dateien erstellt hast, wird die Ausgabe leer sein.

Lass uns hier ein weiteres Verzeichnis namens Website erstellen und darin eine Datei namens README.md:

Terminal-Fenster
$ mkdir Website
$ cd Website
$ touch README.md

Das ganze sieht dann so aus:

  • Directory/Users/starterguide/
    • DirectoryProjects/
      • DirectoryWebsite/
        • README.md

Die vollständigen Pfade dazu wären:

/Users/starterguide/Projects
/Users/starterguide/Projects/Website
/Users/starterguide/Projects/Website/README.md

Relative Pfade

Du musst nicht immer den vollständigen Pfad zu einer Datei eingeben. Du kannst auf eine Datei verweisen, indem du ihren Pfad relativ zu deinem aktuellen Verzeichnist einngibst. Zum Beispiel sind diese beiden Pfade vom Home-Verzeichnis aus äquivalent:

/Users/starterguide/Projects/Website/README.md
Projects/Website/README.md

Der erste Pfad ist ein absoluter Pfad, was bedeutet, dass er am Root meines Laufwerks beginnt, wie durch das führende / angegeben. Der zweite Pfad ist ein relativer Pfad, was bedeutet, dass er in deinem aktuellen Arbeitsverzeichnis beginnt, demselben Verzeichnis, das angezeigt wurde, als wir pwd ausgeführt haben.

Home-Verzeichnis

Wie bereits erwähnt, befindet sich im Home-Verzeichnis all deine Dokumente und Dateien. Statt den absoluten Pfad zu deinem Home-Verzeichnis zu verwenden, kannst du auch die Tilde ~ verwenden, um dahin zu wechseln:

Terminal-Fenster
$ cd ~

Unter macOS erreichst du die Tilde mit ⌥ Option + N. Unter Windows befindet sich die Tilde zwischen dem Ü und der Return-Taste. Mit der Tastenkombination Alt Gr + + kannst du die Tilde eingeben.

Du kannst auch das ~ auch deinem Projects-Verzeichnis voranstellen. Alle drei der folgenden Pfade sind äquivalent:

/Users/starterguide/Projects/Website/README.md
Projects/Website/README.md
~/Projects/Website/README.md

Unabhängig davon, welches Verzeichnis dein aktuelles Arbeitsverzeichnis ist, kannst du zu deinem Verzeichnis wie folgt wechseln:

Terminal-Fenster
$ cd ~/Projects/Website

Pfade vereinfachen

Relative Pfade und die Tilde ~ sind die nicht einzigen Möglichkeiten, um Pfade für die Eingabe zu „konstruieren“. Du solltest auch . und .. kennenlernen.

Der einzelne Punkt . bezieht sich immer auf das Verzeichnis, in dem du dich befindest, in unserem Beispiel ist das ~/Projects/Website. Der ist dann wichtig, wenn du zum Beispiel Dateien und Verzeichnisse löschen möchtest, doch dazu später mehr.

Die zwei Punkte .. beziehen sich immer auf das Verzeichnis, das dasjenige enthält, in dem du dich befindest, also das Verzeichnis über deinem aktuellen Arbeitsverzeichnis. Konkret bedeutet das, dass .. in unserem Beispiel für ~/Projects steht.

Du kannst mit den zwei Punkten .. auch in das übergeordnete Verzeichnis wechseln. Um von ~/Projects/Website zu ~/Projects zu wechseln, kannst du folgendes eingeben:

Terminal-Fenster
$ cd ..

Oder du gehst zwei Verzeichnisse zurück und wechselst von dort aus in ein anderes Verzeichnis:

Terminal-Fenster
$ cd ../../Documents

Aktuellen Pfad kopieren

Wenn du mit cd in ein bestimmtes Verzeichnis wechseln möchtest, musst du den Pfad kennen. So findest du ihn heraus:

  1. Öffne den Finder und navigiere zu dem Verzeichnis, dassen Pfad du kopieren möchtest.

  2. Drücke die ⌥ Option-Taste und klicke mit rechts auf das Verzeichnis.

  3. Wähle „Als Pfadname kopieren“ aus dem Kontextmenü.

  4. Wechsle zurück zum Terminal, gebe cd ein und füge den Pfad mit ⌘ Command + V ein.

    Terminal-Fenster
    $ cd /Pfad/zum/Verzeichnis

Pfad in VS Code öffnen

Wenn du den aktuellen Pfad in Visual Studio Code öffnen möchtest, kannst du das auch direkt aus dem Terminal heraus tun. Gebe dazu einfach code und den Pfad ein:

Terminal-Fenster
$ code .

Damit das funktioniert, musst du in VS Code zunächst die Shell Command installieren. Das geht über das Menü „Command Palette“ mit ⌘ Command + ⇧ Shift + P (macOS) oder Strg + ⇧ Shift + P (Windows) und der Suche nach „Shell Command: Install ‘code’ command in PATH“. Klicke auf den Eintrag oder bestätige mit ⏎ Enter. Danach kannst du code im Terminal verwenden.

Autovervollständigung

Auch mit deiner Kentniss von ~ und .., wirst du immer noch viele Verzeichnisnamen eingeben müssen. Glücklicherweise unterstützt das Terminal die Autovervollständigung, sowohl für Befehle, als auch für Verzeichnisse. Um dies in Aktion zu sehen, gib dies ein, aber drücke nach dem zweiten Befehl nicht die Eingabetaste, sondern die Tabulatortaste ⇥ Tab, die im zweiten Befehl angegeben ist. (Gib nicht [TAB] ein.)

Terminal-Fenster
$ cd ~/Proj[TAB]

Die Taste ⇥ Tab vervollständigt Proj automatisch zu Projects/. Von hier aus kannst du ein weiteres Mal die Tabulatortaste drücken und der Pfad wird zu Projects/Website/ vervollständigt.

Inhalte öffnen

Wenn du die Maus schon einmal beiseite gelegt hast und dich im Terminal befindest, möchtest du vielleicht von hier aus auch Dateien oder Verzeichnisse öffnen. Das geht mit dem Befehl open unter macOS und explorer unter Windows.

Terminal-Fenster
$ open .
$ open README.md

Der Punkt . steht für das aktuelle Verzeichnis und öffnet es im Finder, bzw. Explorer. Der Befehl open README.md öffnet die Datei README.md im Standardprogramm, das mit diesem Dateityp verknüpft ist.

Mit VS Code öffnen

Du kannst deine Dateien oder Verzeichnisse auch direkt über das Terminal in Visual Studio Code öffnen. Dazu musst du den Befehl code verwenden:

Terminal-Fenster
$ code .
$ code README.md

Damit das funktioniert, musst du in VS Code zunächst die Shell Command installieren. Das geht über das Menü „Command Palette“ mit ⌘ Command + ⇧ Shift + P (macOS) oder Strg + ⇧ Shift + P (Windows) und der Suche nach „Shell Command: Install ‘code’ command in PATH“. Klicke auf den Eintrag oder bestätige mit ⏎ Enter. Danach kannst du code im Terminal verwenden.

Inhalte löschen

Du kannst Dateien und Verzeichnisse löschen, indem du den Befehl rm verwendest — das steht für „remove“. Nehmen wir an, wir haben eine Datei namens test.txt erstellt und wollen sie löschen.

Um auf Nummer sicher zu gehen, dass du auch nur die Datei löscht, die du löschen möchtest, stelle den Punkt . voran. Dieser steht für das aktuelle Verzeichnis:

Terminal-Fenster
$ rm ./test.txt

Was ist denn, wenn wir mehrere Dateien auf einmal löschen möchten?

Nehmen wir an, wir haben drei Dateien: test1.txt, test2.txt und test3.txt. Um diese drei Dateien zu löschen, können wir das *-Symbol verwenden, das als Glob oder Wildcard bekannt ist. Das * bedeutet „alles, was vorher und nachher passt“. Konkret löscht du alle drei Dateien so:

Terminal-Fenster
$ rm ./test*.text

Auch Verzeichnisse werden mit rm gelöscht. Allerdings musst hier einen Paramter, ein sogenanntes „Flag“ verwenden:

Terminal-Fenster
$ rm -r ./test

Das -r steht für „rekursiv“ und sagt rm, dass es sowohl test als auch alles darin löschen soll.

Zusammenfassend:

  • rm ist ein Kommando.
  • -r ist ein Parameter bzw. ein Flag.
  • test ist einn Argument.

Flags kommen in der Regel, aber nicht immer, vor Argumenten.

Prozesse abbrechen

Stell dir vor, du hast gerade einen Prozess gestartet, den du abbrechen möchtest. Zum Beispiel liest du mit ls ein Verzeichnis aus und das dauert dir zu lange. Oder du startest mit dem Starterkit den Webserver und möchtest diesen beenden. Oder du hast gerade angefangen, Dateien zu löschen und merkst, dass es die falschen sind.

Du kannst den Prozess abbrechen, indem du die ⌃ Control + C bei macOS bzw. Strg + C bei Windows gleichzeitig drückst. Das c steht für „cancel“, also Abbruch.

Nützliche Tipps

Desto länger deine Befehle werden, desto nerviger wird es, diese Kommandos zu wiederholen. Zum Glück hilfst uns das Terminal, das zu vermeiden.

Drücke die Pfeiltaste nach oben , um den zuletzt ausgeführten Befehl zu wiederholen. Drücke die Taste mehrmals, um durch die letzten Befehle zu blättern. Drücke ⏎ Enter, um den Befehl auszuführen.

Doch was ist, wenn der Befehl, den du suchst schon eine Weile her ist und du ewig blättern müsstest? Drücke in diesem Fall bei macOS die Tasten ⌘ Command + R bzw. bei Windows Strg + R gleichzeitig. Das gestattet dir die „Rückwärtssuche“. Gib einfach Zeichen ein, die in deinem ursprünglichen Befehl vorkamen, und das Terminal wird ihn finden. Wenn du mehrere Befehle mit ähnlichen Namen ausgeführt hast, musst du möglicherweise mehr Zeichen eingeben, um ihn eindeutig zu identifizieren. Sobald du den Befehl gefunden hast, den du möchtest, drücke ⏎ Enter, um ihn auszuführen, oder den Pfeil nach rechts, um ihn in die Befehlszeile zu setzen, aber nicht auszuführen.


Dieses Tuturial basiert auf dem Command Line Tutorial von onyxfish. Es wurde für die Zwecke dieses Guides angepasst und erweitert. Vielen Dank für die großartige Arbeit!