Linux Shell und Terminal-Hilfe und Beispiele

Die Befehlszeilen-Shell ist eine textbasierte Benutzeroberfläche für Ihr Betriebssystem. Im Gegensatz zu einer GUI-Shell, die eine grafische Darstellung der Dienste und Ressourcen des Systems verwendet, verwendet die Befehlszeilen-Shell nur Text. Sie ist die grundlegende Schnittstelle zwischen Ihnen und dem Betriebssystem und bietet Ihnen in vielen Fällen eine direktere Kontrolle über die Systemprozesse.

Wozu dient die Shell?

Wenn Sie mit Ihrem Betriebssystem kommunizieren möchten, können Sie alles, was Sie mit einer grafischen Benutzeroberfläche tun können, über die Befehlszeile ausführen. Nehmen wir zum Beispiel etwas, was Sie ständig tun müssen: Verschieben Sie Dateien in Ihrem Dateisystem. Über eine grafische Benutzeroberfläche können Sie die Symbole auswählen, die Ihre Dateien darstellen, in einen anderen Ordner ziehen und dort ablegen, um sie zu verschieben.

Mit der Befehlszeile kann diese Operation jedoch mit einem einzigen Befehl ausgeführt werden:

Sobald Sie sich daran gewöhnt haben, können Sie über die Befehlszeile Ihr System effizienter und präziser steuern als mit einer grafischen Benutzeroberfläche.

Warum heißt es "Shell"?

Die Benutzeroberfläche wird als "Shell" bezeichnet, da sie die äußere Schicht ist, die Sie von den innersten Teilen des Betriebssystems, dem Kernel, trennt. Technisch gesehen ist die grafische Benutzeroberfläche Ihres Betriebssystems auch eine "Shell", aber die Befehlszeile wird häufig als "Shell" bezeichnet.

Wie komme ich in die Befehlszeilen-Shell?

Der häufigste Weg zum Zugriff auf die Befehlszeilen-Shell ist die Verwendung eines Terminalemulators.

Wenn Sie eine Linux-Distribution verwenden, startet sie möglicherweise in X Window System (oder "X"), wodurch Sie Programme in einem eigenen Fenster ausführen und mit der Maus interagieren können. In X gibt es verschiedene Möglichkeiten, einen Terminalemulator zu starten, aber hier sind die häufigsten:

  • Viele Linux-Distributionen verwenden eine Desktop-Umgebung, die Microsoft Windows ähnelt und über ein "Startmenü" verfügt. In diesem Menü befindet sich Ihre Terminalanwendung normalerweise unter "Zubehör". Zum Beispiel wird bei Lubuntu der LXTerminal-Terminalemulator bereits installiert, und die Verknüpfung befindet sich im Zubehör-Menü.

    Wenn Sie den Menüpunkt Terminal auswählen, wird der Terminalemulator gestartet und Sie werden in eine Befehlszeile eingefügt.

  • Verschiedene Linux-Versionen verwenden verschiedene Arten von Fenstermanagern, die jeweils eine etwas andere Oberfläche haben. Bei vielen Fenstermanagern wird durch Klicken mit der rechten Maustaste auf den Desktop ein Menü angezeigt, das eine Terminaloption enthält. Beispielsweise verfügt das Rechtsklick-Menü in Crunchbang Linux über die Option "Terminal". Das Menü sieht wie folgt aus, nachdem Sie mit der rechten Maustaste auf eine beliebige Stelle auf dem Desktop geklickt haben.

    Hier hätte das Zubehör-Menü auch eine Option zum Ausführen des Terminals.

  • In vielen Linux-Versionen ist das gleichzeitige Drücken der Super-Taste und " T " der Standard-Hotkey zum Starten eines Terminals. (Der Super Key ist normalerweise der erste Schlüssel links von der Leertaste, auch Windows-Taste genannt).

Wenn Sie nicht wissen, wie Sie Ihren Terminalemulator starten, schlagen Sie in der Dokumentation Ihres jeweiligen Betriebssystems nach und suchen Sie nach "Terminal".

Die Eingabeaufforderung

Wenn Sie den Terminalemulator starten, wird eine Eingabeaufforderung angezeigt.

Anmerkung: Diese Beispiele werden alle mit der Bourne-Again-Shell ( bash ) ausgeführt, der Standard-Befehlszeilen-Shell unter Linux.

Sehen wir uns diese Eingabeaufforderung genau an. Die Eingabeaufforderung kann beliebig konfiguriert werden. Standardmäßig sieht es jedoch so aus, wie wir es hier sehen, und liefert nützliche Informationen, bevor wir einen Befehl eingeben.

Im Einzelnen erfahren Sie, wer wir sind (Benutzername) und wo wir sind (welches System wir verwenden und unser Arbeitsverzeichnis). Was bedeuten die einzelnen Teile der Eingabeaufforderung:

dein NameDein Benutzername.
@Ein at-Symbol trennt den Benutzernamen und den Hostnamen.
dein GastgeberDer Systemhostname.
:Der Doppelpunkt ist das Zeichen, das den Hostnamen und das Arbeitsverzeichnis voneinander trennt.
~Unser aktuelles ("Arbeits") Verzeichnis. Die Tilde (" ~ ") ist ein Sonderzeichen, das unser Heimatverzeichnis darstellt. Wenn Sie eine Shell-Sitzung starten, ist dies das Verzeichnis, in dem Sie normalerweise standardmäßig arbeiten.
$Ein Sonderzeichen, das angibt, dass wir keine Superuser-Privilegien haben. Wenn Sie als root (der Superuser) angemeldet sind, ändert sich dieses Zeichen in ein # .

Befehle eingeben

Lassen Sie uns unseren ersten Befehl eingeben. Wir sollten mit der Auflistung der Dateien beginnen, die sich in unserem Home-Verzeichnis befinden. Die einfachste Möglichkeit, alle diese Dateien anzuzeigen, ist der Befehl ls . Geben Sie an der Eingabeaufforderung ls ein und drücken Sie die Eingabetaste.

Wie oben gezeigt, listet der Befehl ls den Inhalt des Verzeichnisses auf und platziert uns an einer anderen Eingabeaufforderung.

Hinweis: Bei allen Befehlen und Dateinamen in Unix und Linux wird die Groß- und Kleinschreibung beachtet. Der Befehl ls muss beispielsweise wie oben in Kleinbuchstaben eingegeben werden.

Für eine detailliertere Auflistung des Verzeichnisinhalts können Sie Befehlszeilenoptionen angeben, die auch als Schalter bezeichnet werden . Dies sind zusätzliche Argumente für den Befehl, die die Funktionsweise des Befehls ändern. Hier verwenden wir die Option -l ( Langlistenformat verwenden), um weitere Informationen aus unserer Liste zu erhalten.

Wie oben gezeigt, liefert der Befehl ls -l viel mehr Informationen über den Inhalt unseres Home-Verzeichnisses. Im Moment ist die wichtigste Information, die wir beachten sollten, dass der erste Buchstabe der Auflistung ein d ist, was bedeutet, dass jeder dieser Verzeichnisinhalte selbst ein Verzeichnis ist.

Bevor wir etwas anderes tun, löschen wir den Bildschirm, um das durch die Ausgabe erzeugte Durcheinander aus unseren vorherigen Befehlen zu entfernen. Verwenden Sie den Befehl clear, indem Sie clear an einer neuen Eingabeaufforderung eingeben und die Eingabetaste drücken.

Nachdem Sie die Eingabetaste gedrückt haben, wird der Bildschirm gelöscht und Sie werden an einer neuen Eingabeaufforderung oben auf dem Terminalbildschirm angezeigt.

Verzeichnis wechseln

Gehen wir mit dem Befehl cd ("change directory") in unseren Dokumentenordner . Um das aktuelle Verzeichnis zu ändern, geben Sie " cd " und dann ein Leerzeichen sowie den Namen des Verzeichnisses ein, in das Sie wechseln möchten, und drücken Sie die Eingabetaste.

Der Befehl cd geht davon aus, dass der Name eines von Ihnen angegebenen Verzeichnisses relativ zu Ihrem aktuellen Verzeichnis ist. Um in das Dokumentenverzeichnis zu wechseln, das sich in unserem aktuellen Verzeichnis befindet, geben Sie " cd documents " ein.

Die Eingabeaufforderung zeigt jetzt das neue Arbeitsverzeichnis an: ~ / documents. Dies entspricht dem vollständigen Pfadnamen: / home / yourname / documents . Unabhängig davon, bei welchem ​​Benutzer Sie angemeldet sind, steht " ~ " immer für Ihr Basisverzeichnis. Im Beispiel ist das neue Arbeitsverzeichnis auch in der Titelleiste unseres Terminalfensters zu sehen.

Hinweis: Im Gegensatz zu MS-DOS und Microsoft Windows werden hierarchische Verzeichnisnamen in Linux durch einen Schrägstrich (" / ") und nicht durch einen Backslash (" \ ") getrennt. Diese Symboländerung ist ein grundlegender Unterschied zwischen diesen verschiedenen Betriebssystemen.

Sie können Ihr aktuelles Verzeichnis jederzeit mit dem Befehl pwd ("print working directory") überprüfen.

Der Befehl gibt den Namen des aktuellen Verzeichnisses an das Terminal aus, in diesem Fall " / home / yourname / documents ". Auch bei " ~ / documents " steht das " ~ " für unser Home-Verzeichnis, nämlich / home / yourname . Wenn wir uns also in unserem Home-Verzeichnis befinden, würden wir durch Eingabe von " cd documents ", " cd / home / yourname / documents " oder " cd ~ / documents " alle im gleichen Verzeichnis abgelegt .

Lassen Sie uns nun ein Verzeichnis nach oben in unser Home-Verzeichnis verschieben. Der spezielle Verzeichnisname " .. " (der doppelte Punkt) bedeutet "ein Verzeichnis nach oben".

Wir sind jetzt wieder in unserem Heimatverzeichnis.

Hinweis: Wenn Sie sich mit MS-DOS besser auskennen, beachten Sie, dass zwischen CD und den beiden Punkten ein Leerzeichen stehen muss.

Dateien verschieben

Machen wir uns jetzt mit dem Verschieben von Dateien vertraut.

Nehmen wir an, wir haben gerade zwei Bilder mit einem Webbrowser heruntergeladen und in unserem Downloadordner gespeichert. Lass uns dort reingehen und einen Blick darauf werfen. Zuerst wechseln wir das Verzeichnis in das Download- Verzeichnis.

Listen Sie dann die Dateien mit dem Befehl ls im Verzeichnis auf.

Hier sehen wir zwei JPEG-Dateien. Lassen Sie uns sie aus dem Download- Ordner holen und an geeigneter Stelle ablegen, z. B. im Ordner images. Um diese Dateien zu verschieben, verwenden wir den Befehl mv ("move").

Der Befehl mv hat die folgende allgemeine Form.

 mv [ OPTIONEN ...] QUELLE BESTIMMUNG 

OPTIONS wird in Klammern eingeschlossen, da Sie zum Abschließen des Befehls keine Optionen angeben müssen. Die Argumente SOURCE und DESTINATION sind beide erforderlich.

SOURCE ist der Name der Datei oder der Dateien, die Sie verschieben möchten. DESTINATION ist, wo Sie sie verschieben möchten. Wenn DESTINATION ein Verzeichnisname ist, werden die Datei ( en) in dieses Verzeichnis verschoben.

Wir befinden uns derzeit im Verzeichnis / home / yourname / downloads und möchten die Dateien in / home / yourname / images verschieben . Wir können unser ZIEL über den vollständigen Pfadnamen (" / home / yourname / images ") oder als Pfadnamen relativ zu unserem aktuellen Verzeichnis (" ../images ") angeben oder eine Tilde als Abkürzung für unser Home-Verzeichnis verwenden ( " ~ / images "). Alle sind gleichwertig und ergeben das gleiche Ergebnis. Verwenden wir den relativen Pfadnamen für DESTINATION : ../images .

Also, wie spezifizieren wir unsere QUELLE ?

Wir möchten beide Dateien verschieben, und dies sind die einzigen Dateien im Verzeichnis. Die einfachste Möglichkeit, sie anzugeben, wäre mv zu sagen: "Verschieben Sie alle Dateien in diesem Verzeichnis nach ../images ." Wir können dies mit einem Platzhalter tun.

Ein Platzhalter ist ein Sonderzeichen, das mehr als einen Dateinamen (oder mehr als einen Teil des Dateinamens) darstellen kann. Hier verwenden wir den Sternchen-Platzhalter (" * "). Wenn wir * als vollständigen Dateinamen verwenden, wendet die Shell unseren Befehl auf jede Datei in unserem Arbeitsverzeichnis an.

Unser Befehl lautet also wie folgt: " mv * ../images ". Geben wir es jetzt ein.

Es sieht so aus, als ob nichts passiert ist, aber auf diese Weise sagt uns die Shell, dass keine Fehler aufgetreten sind. Wenn ein Problem aufgetreten ist, wird eine Fehlermeldung oder Warnung angezeigt.

Vergewissern Sie sich, dass die Dateien verschoben wurden. Wir können den Inhalt eines anderen Verzeichnisses auflisten, indem Sie ls ausführen und einen Pfadnamen angeben. In diesem Fall lautet unser Pfadname " ../images ".

Die Bilder sind beide vorhanden, zusammen mit einem anderen bereits existierenden Verzeichnis (" wallpapers "). Wir sollten ein neues Verzeichnis erstellen, um unsere Bilder besser zu organisieren und zu verhindern, dass das Hauptverzeichnis der Bilder überladen wird. Lass uns das jetzt machen.

Verzeichnisse erstellen

Wechseln wir in das Bilderverzeichnis, in dem sich jetzt unsere beiden Pinguinbilder befinden.

Lassen Sie uns nun ein neues Verzeichnis für unsere Pinguinbilder erstellen. Das Erstellen neuer Verzeichnisse wird mit dem Befehl mkdir ausgeführt.

Die einfachste Form des Befehls mkdir besteht darin, ihm ein Argument zu geben: den Namen des neuen Verzeichnisses. Wir möchten ein neues Verzeichnis in unserem aktuellen Verzeichnis erstellen, sodass wir mkdir keinen vollständigen Pfadnamen angeben müssen, sondern nur den Namen des Verzeichnisses. Nennen wir unser neues Verzeichnis pinguin-pix .

Der Befehl, den wir eingeben werden, ist " mkdir penguin-pix ", um ein neues Verzeichnis zu erstellen .

Vergewissern Sie sich jetzt, dass es dort ist, indem Sie den Inhalt des Verzeichnisses auflisten.

Hinweis: Wenn Sie den Inhalt des Verzeichnisses auflisten, sehen Sie, dass Dateinamen und Verzeichnisnamen unterschiedliche Farben haben, um die verschiedenen Dateien und Verzeichnisse zu identifizieren. Obwohl das Hervorheben von Farben bei den meisten Shells üblich ist, tun dies nicht standardmäßig alle Shells.

Wenn wir die Farbe der Namen nicht erkennen können, können Sie immer überprüfen, welche dieser Dateien Verzeichnisse sind, indem Sie ls mit der Option -l (lange Liste) aufrufen.

Die zusätzlichen Informationen umfassen Folgendes.

  • Berechtigungen - wer hat Zugriff auf die Datei und welche Art von Zugriff.
  • Eigentum - wer ist der Besitzer der Datei?
  • Autorschaft - wer hat die Datei erstellt?
  • Dateigröße - Größe der Datei in Bytes.
  • mtime - Datum und Uhrzeit der letzten Änderung der Datei.

Der erste Buchstabe in den Zeilen für Pinguin-Bilder und Hintergrundbilder ist ein " d ", das darauf hinweist, dass es sich um Verzeichnisse handelt. Weitere Informationen zu Dateilisten finden Sie in der Dokumentation des Befehls chmod .

Wir können jetzt unsere Bilder in das neue Verzeichnis verschieben. Um mv mitzuteilen, welche Dateien verschoben werden sollen, können wir erneut einen Platzhalter verwenden. Diesmal sollten wir jedoch sicherstellen, dass nur die Bilddateien und nicht die Verzeichnisse verschoben werden. Da beide Bilddateien mit der JPEG-Erweiterung .jpg enden, können Sie den Dateinamen " * .jpg " angeben: Dies teilt der Shell mit: "Die Dateien, die ich verschieben möchte, sind alle Dateien im aktuellen Verzeichnis, die mit .jpg enden". Unser Befehl sieht dann so aus: " mv * .jpg Pinguinpix ."

Es wurde keine Fehlermeldung ausgegeben, dh der Befehl wurde erfolgreich ausgeführt. Vergewissern Sie sich, dass die Dateien verschoben wurden, indem Sie den Inhalt von Pinguin-Pix auflisten.

Dateien entfernen

Wir haben zwei Pinguinbilder, aber vielleicht haben wir entschieden, dass wir nur real-penguin.jpg und nicht mehr tux-the-penguin.jpg brauchen. Wir können diese Datei mit dem Befehl rm ("remove") löschen.

Wir müssen rm den zu löschenden Dateinamen angeben. Wir befinden uns derzeit im Verzeichnis images, aber unser Bild befindet sich jetzt im Unterverzeichnis penguin-pix . Wir könnten unser Arbeitsverzeichnis in penguin-pix ändern und dann den Befehl ausführen. Dies ist jedoch nur eine zusätzliche Arbeit, wir können diesen Schritt überspringen, indem wir das Verzeichnis als Teil des Pfads verwenden.

Unser Befehl wird so aussehen: " rm penguin-pix / tux-the-penguin.jpg ."

Wieder einmal führt die Shell unseren Befehl aus, ohne Rückmeldung zu geben. Der Befehl wurde erfolgreich ausgeführt, so dass die Shell uns zur Eingabeaufforderung zurückgibt und uns mitteilt, dass sie für einen anderen Befehl bereit ist.

Warnung: Im Gegensatz zum Ziehen einer Datei in den Papierkorb oder in den Microsoft Windows-Papierkorb können Sie das Löschen von Dateien mit rm nicht rückgängig machen. Entfernen Sie Ihre Dateien vorsichtig! Einmal weg, ist es (praktisch) unmöglich, sie zurückzubekommen.

Lassen Sie uns einfach überprüfen, ob die Datei wirklich weg ist.

Verzeichnisse entfernen

Das ist großartig für Dateien, aber was ist mit Verzeichnissen? Standardmäßig entfernt rm nur Dateien und keine Verzeichnisse.

Der Befehl rmdir ("Verzeichnis entfernen") entfernt ein Verzeichnis, sofern es leer ist. Testen Sie es, indem Sie ein neues, leeres Verzeichnis mit dem Befehl " mkdir test-directory " erstellen .

Vergewissern Sie sich, dass es mit dem Befehl " ls -l " vorhanden ist.

Wir können jetzt unser brandneues Verzeichnis mit dem Befehl " rmdir test-directory " entfernen und durch erneutes Ausführen des Befehls " ls -l " überprüfen, ob es nicht mehr vorhanden ist.

Ja, es ist weg.

Was würde jedoch passieren, wenn wir versuchen würden, " Penguin-pix " zu rmdir ?

Wir können dieses Verzeichnis nicht rmdir, weil es nicht leer ist.

Wenn Sie sicher sind, dass Sie penguin-pix und alles darin entfernen möchten (einschließlich aller darin enthaltenen Dateien und Verzeichnisse), können Sie den Befehl rm mit der Option -r verwenden .

Normalerweise arbeitet rm nicht in einem Verzeichnis. Wenn der Befehl jedoch mit der Option -r aufgerufen wird, entfernt er ein Verzeichnis rekursiv. Dies bedeutet, dass es in das Verzeichnis und in ein beliebiges Unterverzeichnis verschoben wird und alles einschließlich des Verzeichnisses löscht. Wenn wir also den Befehl " rm -r penguin-pix " ausführen, werden das Verzeichnis und die darin enthaltene Datei entfernt. Wenn sich darin Verzeichnisse befinden, wären diese ebenfalls gelöscht worden.

Warnung! Für diesen Befehl gibt es kein Rückgängigmachen. Wenn Sie ein Verzeichnis rm -r verwenden, werden dieses Verzeichnis und alles darin für immer entfernt! Wie die meisten Linux-Befehle ist rm sehr mächtig und sollte mit Vorsicht verwendet werden.

Verwenden Sie zum Kopieren einer Datei den Befehl cp .

 cp QUELLE DESTINATION 

SOURCE ist der Name der Datei, die Sie kopieren möchten, und DESTINATION ist der Pfadname, der das Ziel der neuen Datei angibt. Das Ziel kann ein neuer Dateiname oder der Name des Verzeichnisses sein, in dem sich eine Kopie befinden soll.

Nehmen wir an, wir haben eine Textdatei mit dem Namen orig.txt in unserem Dokumentenordner, und wir möchten eine Kopie davon mit dem Namen copy.txt erstellen . Der Befehl, den wir verwenden sollten, ist " cp orig.txt copy.txt ".

Wenn wir andererseits ein Verzeichnis als Ziel des Befehls cp angeben, wird eine Kopie mit demselben Namen wie das Original im Zielverzeichnis erstellt. Im nächsten Beispiel machen wir sechs Dinge.

  1. Listen Sie den Inhalt des Arbeitsverzeichnisses auf.
  2. Erstellen Sie ein neues Verzeichnis, genannt Kopien .
  3. Listen Sie den Inhalt des Arbeitsverzeichnisses auf, das jetzt das Kopienverzeichnis enthält .
  4. Listen Sie den Inhalt des Kopienverzeichnisses auf (es gibt keine. Es ist leer).
  5. Kopieren Sie copy.txt in das Kopienverzeichnis .
  6. Listen Sie den Inhalt des Kopienverzeichnisses auf, das jetzt eine Kopie von copy.txt enthält .

Umbenennen einer Datei

Mit dem Befehl mv können Sie auch den Namen einer Datei ändern. Der Befehl " mv orig.txt original.txt " benennt beispielsweise die Datei orig.txt in original.txt um .

Verzeichnis umbenennen

Das Umbenennen von Verzeichnissen funktioniert genauso wie das Umbenennen von Dateien mit dem Befehl mv . Hier erstellen wir ein Verzeichnis mit dem Namen " copy ", benennen es jedoch in " copy " um und verwenden dazu den Befehl " mv copy models ".

Wenn das Kopierverzeichnis Dateien oder Verzeichnisse enthält, bleiben diese unverändert. Das einzige, was sich ändern würde, ist der Name des Verzeichnisses, in dem sie enthalten sind.

Automatische Vervollständigung

Die meisten Linux-Befehlszeilen-Shells vervollständigen das von Ihnen eingegebene Wort automatisch, wenn Sie die Tabulatortaste drücken. Durch die automatische Vervollständigung können Sie Zeit sparen, insbesondere bei langen Dateinamen. Angenommen, Sie haben drei Dateien in Ihrem Dokumentenordner: penguin-diving.jpg, penguin.jpg und penguins.jpg .

Wenn Sie einen Befehl eingeben und dann " p " eingeben und die Tabulatortaste drücken, vervollständigt die Shell das Wort "Pinguin" für Sie.

Es hört dort auf, weil alle Dateien mit dem Wort Pinguin beginnen, aber danach ist nicht sicher, welche Datei Sie angeben möchten.

Wenn Sie sich in einer Situation befinden, in der es mehr als eine automatische Vervollständigung der Übereinstimmung gibt, die Sie bereits eingegeben haben, drücken Sie die Tabulatortaste zweimal, um alle möglichen Übereinstimmungen aufzulisten. In der Situation oben, wo Sie p und Tab eingegeben haben und die Shell den Pinguin automatisch für Sie autokompliziert. Drücken Sie zweimal die Tabulatortaste, um alle möglichen Optionen anzuzeigen, und Sie werden wieder an der Eingabeaufforderung angezeigt, wobei der Befehl dort eingefügt wird, wo Sie aufgehört haben.

Autocompletion funktioniert auch zum Vervollständigen von Pfadnamen und Befehlsnamen.

Die Shell verlassen

Wenn Sie den Befehl exit eingeben, wird die Befehlsshell beendet. Schließen Sie entweder das Terminalfenster oder bereiten Sie das manuelle Schließen des Terminalfensters vor.