Das Terminal, die Shell, Konsole

Terminal, Konsole, Kommandozeile

In diesem Beitrag der Linux Bibel erlernen Sie die ersten Schritte mit dem Terminal unter Linux

Informationen

Gerade Windows-Nutzer bezeichnen das Terminal unter Linux als altertümliches Produkt, das kommt aber vor allem davon weil sie nicht wissen was damit alles möglich ist. Vieles lässt sich auf dem Terminal um einiges schneller erledigen als per Maus auf der grafischen Oberfläche. In diesem Beitrag werden wir erfahren wie man beginnt mit dem Terminal zu arbeiten, sie werden die wichtigsten Befehle kennen lernen und etwas mehr.

Terminal, Konsole, Shell?

Unter jeder Desktop-Umgebung nennt sich das Terminal anders, unter KDE nennt es sich Konsole, unter GNOME wieder Terminal und so weiter und so fort. Dies ist nur der Name des Fensters unter der jeweiligen grafischen Oberfläche, Shell ist wiederum ein allgemeiner Begriff.

Terminal, Konsole, Kommandozeile

In diesem Beitrag der Linux Bibel erlernen Sie die ersten Schritte mit dem Terminal unter Linux

Informationen

Gerade Windows-Nutzer bezeichnen das Terminal unter Linux als altertümliches Produkt, das kommt aber vor allem davon weil sie nicht wissen was damit alles möglich ist. Vieles lässt sich auf dem Terminal um einiges schneller erledigen als per Maus auf der grafischen Oberfläche. In diesem Beitrag werden wir erfahren wie man beginnt mit dem Terminal zu arbeiten, sie werden die wichtigsten Befehle kennen lernen und etwas mehr.

Terminal, Konsole, Shell?

Unter jeder Desktop-Umgebung nennt sich das Terminal anders, unter KDE nennt es sich Konsole, unter GNOME wieder Terminal und so weiter und so fort. Dies ist nur der Name des Fensters unter der jeweiligen grafischen Oberfläche, Shell ist wiederum ein allgemeiner Begriff.

Begriffe

Das Terminal kann man wie ein Eingabe-Fenster sehen, man gibt hier Befehle ein und die entsprechenden Ausgaben kommen wieder zurück, hinter dem Terminal – also was wir nicht sehen steht wiederum der Shell-Interpreter, dieser übersetzt unsere Eingaben für das System und dessen Ausgaben wieder für uns damit wir verstehen was uns das System sagen will. In den meisten Fällen ist dies ganz einfach die Bash. Dies wären zumindest einmal die Grundbegriffe, weitere werden wir später im Laufe dieses Beitrages kennen lernen.

Das Terminal öffnen

Wie schon beschrieben nennen sich die Fenster unter vielen Desktop-Umgebungen anders, bis auf KDE und einige weitere exotischen GUI’s ist jedoch fast immer ein Terminal im Namen, im Anwendungsmenü ist dieses Fenster meist im Bereich System zu finden. Im folgenden Beispiel zeige ich ganz einfach die Konsole unter KDE:

Begriffe

Das Terminal kann man wie ein Eingabe-Fenster sehen, man gibt hier Befehle ein und die entsprechenden Ausgaben kommen wieder zurück, hinter dem Terminal – also was wir nicht sehen steht wiederum der Shell-Interpreter, dieser übersetzt unsere Eingaben für das System und dessen Ausgaben wieder für uns damit wir verstehen was uns das System sagen will. In den meisten Fällen ist dies ganz einfach die Bash. Dies wären zumindest einmal die Grundbegriffe, weitere werden wir später im Laufe dieses Beitrages kennen lernen.

Das Terminal öffnen

Wie schon beschrieben nennen sich die Fenster unter vielen Desktop-Umgebungen anders, bis auf KDE und einige weitere exotischen GUI’s ist jedoch fast immer ein Terminal im Namen, im Anwendungsmenü ist dieses Fenster meist im Bereich System zu finden. Im folgenden Beispiel zeige ich ganz einfach die Konsole unter KDE:

Das Linux-Terminal unter KDE - Die Konsole

Das Linux-Terminal - Die Konsole

Eine weitere Möglichkeit mit dem Terminal zu arbeiten ist das so genannte virtuelle Terminal, arbeitet man mit diesem verlässt man die grafische Oberfläche komplett – diese läuft jedoch im Hintergrund weiter:

Das virtuelle Terminal unter Linux ohne grafische Oberfläche

Das virtuelle Terminal unter Linux ohne grafische Oberfläche

Um das virtuelle Terminal zu nutzen startet man dieses mit der Tastenkombination Strg + Alt + F1, je nach Distribution ist man hier bereits angemeldet, ist dies nicht der Fall gibt man erst seinen Nutzernamen an, bestätigt mit der Eingabe-Taste und gibt dann sein Passwort ein. Mit Strg + Alt + F1 bis F6 kann man zwischen 6 dieser virtuellen Terminals wechseln und mit Strg + Alt + F7 kommt man wieder auf die grafische Oberfläche zurück.

Der Aufbau des Terminal-Promts

Wenn wir das Terminal öffnen sehen wir eigentlich nichts anderes als den Terminal-Prompt, dieser setzt sich so zusammen:

Nutzername@Rechnername:~$

Zumindest ist dies in den meisten Fällen so, der hintere Teil nach dem Rechnernamen kann auch leicht anders aussehen – je nach Distribution. In meinem Beispiel würde dies so aussehen:

robertg@robert-pc-mini:~$

Würde man sich als Administrator anmelden, also zum Nutzer root werden würde die ganze Geschichte etwas abweichen:

root@Rechnername:/Pfad/zum/aktuellen/Verzeichnis#

In meinem Beispiel:

root@robert-pc-mini:/home/robertg#

Arbeiten mit dem Terminal

Wie schon beschrieben ist dies eine erste Einführung in das Arbeiten mit dem Terminal, sie werden die wichtigsten Befehle kennen lernen, was man damit anstellen kann und wie man mit Optionen arbeitet. Weiter führende Artikel finden sich dann im selben Bereich im Menü unter System.

Als erstes gilt es zu wissen – einen Befehl alleine einzugeben genügt nicht, ohne Bestätigung des Nutzers durch die Eingabe-Taste funktioniert überhaupt nichts. Erst durch drücken der Eingabe-Taste wird die dem entsprechende Aktion ausgelöst.

Viele Befehle, beinahe alle verfügen über zugehörige Optionen. Mit solchen lassen sich Befehle verfeinern oder genauer beschreiben. Angegeben werden solche Optionen ganz einfach hinter dem Befehl nach einem Bindestrich ““.

Die wichtigsten Befehle

ls – Verzeichnis-Inhalt ansehen

Der Befehl “ls” dient dazu sich den Inhalt des aktuellen Verzeichnisses in dem man sich gerade befindet anzusehen. Ein kleines Beispiel:

ls
Der Befehl ls unter Linux zeigt den Verzeichnis-Inhalt an

Der Befehl ls unter Linux zeigt den Verzeichnis-Inhalt an

Verzeichnisse und Dateien werden je nach Einstellungen der Distribution in unterschiedlichen Farben dar gestellt. Will man etwa auch versteckte Dateien und Verzeichnisse sehen nutzt man die Option “a” – also:

ls -a
Versteckte Dateien mit ls am Terminal anzeigen

Versteckte Dateien mit ls am Terminal anzeigen

Mehr Informationen zu Dateien und Verzeichnissen erhält man durch die Option “l“, Optionen kann man natürlich auch miteinander kombinieren – etwa “la“:

ls -la
Mehr Informationen mit ls am Terminal anzeigen

Mehr Informationen mit ls am Terminal anzeigen

cd – Verzeichnisse wechseln

Mit dem Befehl “cd” kann man auf dem Terminal im Dateisystem navigieren, also von einem in das andere Verzeichnis und wieder zurück wechseln.

Als kleines Beispiel befinde ich mich in meinem Home-Verzeichnis, hier gibt es ein Unter-Verzeichnis namens Dokumente, in dieses will ich wechseln. Will man ein Verzeichnis angeben gibt man hinter dessen Namen einen Slash “/” an:

cd Dokumente/

Hier lassen sich auch gleich mehrere Verzeichnisse überspringen, etwa:

cd Dokumente/Firma/Rechnungen/

Um ein Verzeichnis zurück zu wechseln nutzt man die Option “..” – also:

cd ..

Mit:

cd

ohne jegliche Option gelangt man wieder in das erste Verzeichnis zurück, in diesem Fall also in das Home-Verzeichnis. Wie wir unter Die Verzeichnis-Hierarchie lesen können findet sich im Wurzel-Verzeichnis das komplette System das sich “/” nennt, so würde man also mit:

cd /

in das Wurzel-Verzeichnis gelangen. Oder mit:

cd /etc/apt/

in das angegebene Unter-Verzeichnis.

mv – Dateien verschieben und umbenennen

Mit dem Befehl “mv” lassen sich bestehende Dateien nicht nur verschieben sondern auch umbenennen. Um beispielsweise der Datei “Dateiname_1” den neuen Dateinamen “Dateiname_2” zu geben würde es genügen den Befehl:

mv Dateiname_1 Dateiname_2

auszuführen.

Um die Datei “Dateiname_1” vom aktuellen Verzeichnis in das Unter-Verzeichnis Dokumente zu verschieben:

mv Dateiname_1 Dokumente

Dabei kann man natürlich auch mehrere Verzeichnisse überspringen, etwa:

mv Dateiname_1 Dokumente/Firma/Rechnungen/

Auch mehrere Dateien oder Verzeichnisse kann man zur selben Zeit verschieben, bei Verzeichnissen (auch nur bei einzelnen) gilt es die Option “R” zu nutzen damit auch der Verzeichnis-Inhalt verschoben wird:

mv -R Bilder/ Bilder_2/ Bilder-3/ Dokumente/

In diesem Fall werden die drei erst genannten Verzeichnisse in das letzte angegebene verschoben.

Auch lassen sich gleich alle Dateien im aktuellen Verzeichnis in ein anderes Verschieben, dazu nutzt man die Wildcard “*“:

mv * /lib/fimrware/

Wobei man auch hier noch zwischen Datei-Formaten unterscheiden kann, um als Beispiel nur JPEG-Dateien zu verschieben (also Dateien mit der angegebenen Datei-Endung):

mv *.JPEG Bilder/Katze/

cp – Dateien kopieren

Der Befehl “cp” dient dazu Dateien und Verzeichnisse an andere Stellen im Dateisystem zu kopieren – also nicht zu verschieben, sie bleiben an der bisherigen Stelle erhalten und im neuen Verzeichnis neu erstellt. Geht es um Verzeichnisse gilt es auch hier die Option “R” zu nutzen um den Inhalt des / der Verzeichnisse mit zu kopieren. Als Beispiel möchte ich die Datei “Dateiname_1” in ein weiteres Verzeichnis kopieren:

cp Dateiname_1 Dokumente/Firma/Rechnungen/

Oder bei einem Verzeichnis eben:

cp -R Rechnungen/ Dokumente/Firma/

Wie Sie mehrere Dateien oder Verzeichnisse, alle kopieren entnehmen Sie ganz einfach dem Befehl “mv” direkt über diesem. Auch ist es möglich etwa die Datei “Dateiname_1” im selben Verzeichnis unter einem anderen Namen zu kopieren, etwa als Sicherung:

cp Dateiname_1 Dateiname_neu

rm – Dateien und Verzeichnisse löschen

Mit dem Befehl “rm” lassen sich Dateien und Verzeichnisse löschen, achten Sie hier jedoch bitte darauf vorsichtig zu sein – Dateien und Verzeichnisse die so gelöscht werden landen nicht im Papierkorb sondern werden ohne jeden Umweg tatsächlich von der Festplatte geputzt.

Als erstes möchte ich ganz einfach die Datei “Dateiname” löschen:

rm Dateiname

Dasselbe funktioniert auch mit mehrere Dateien die man hintereinander angibt:

rm Dateiname Dateiname_1 Dateiname_2

Oder mit allen Dateien im Verzeichnis:

rm *

Oder nur mit Dateien mit einer bestimmten Datei-Endung:

rm *.txt

Möchte ich ein komplettes Verzeichnis samt Inhalt löschen nutzt man die Optionen “rf” – also:

rm -rf Verzeichnis/

touch – Dateien anlegen

Mit dem Befehl “touch” lassen sich Dateien aller Art anlegen, als Beispiel möchte ich ganz einfach die Datei “Dateiname.txt” anlegen:

touch Dateiname.txt

mkdir – Verzeichnisse anlegen

Mit dem Befehl “mkdir” lassen sich Verzeichnisse samt zugehörigen Unter-Verzeichnissen anlegen. Ich möchte Das Verzeichnis “Dokumente” anlegen:

mkdir Dokumente

Man sieht hier ist es nicht nötig den Slash anzugeben – der Befehl kann keine normalen Dateien sondern nur Verzeichnisse anlegen. Nun möchte ich das selbe Verzeichnis samt Ordner-Hierarchie anlegen, hierzu nutzt man die Option “p“:

mkdir -p Dokumente/Firma/Rechnungen

less – Textdateien anzeigen

Der Befehl “less” dient dazu Textdateien anzuzeigen damit man diese lesen kann. Dabei kann es sich um Textdateien aller Art handeln, also reinen Text, Quellcode, HTML, PHP oder was auch sonst immer. Als Beispiel:

less Dateiname.txt
Textdateien am Terminal unter Linux mit less öffnen

Textdateien am Terminal unter Linux mit less öffnen

Mit den Pfeiltasten gehen Sie eine Zeile weiter rauf oder runter, mit der Leertaste eine Seite weiter und mit der Taste q beenden Sie die Software.

Befehle miteinander verknüpfen

Man muss wenn man auf dem Terminal mehrere Arbeiten angehen will und diese zusammen hängen, also die Ausgabe eines Befehls mit dem nächsten zusammen hängt nicht unbedingt die erste Ausgabe kopieren und zum nächsten Befehl hinzu fügen – man übergibt diese ganz einfach an den nächsten Befehl. Hier gibt es unterschiedliche Varianten.

Einen Befehl mit einem anderen verknüpfen

Auf dem virtuellen Terminal, also wenn man komplett ohne grafische Oberfläche arbeitet lassen sich längere Ausgaben nur schwer lesen da man nicht scrollen kann. So übergibt man die längere Ausgabe ganz einfach an eine Software mit der dies eben doch möglich ist wie etwa dem schon zuvor besprochenen Befehl less.

Nehmen wir beispielsweise einmal den Befehl “dmesg” (als Administrator), dieser gibt alle Kernel-Meldungen wieder seit dem letzten Neustart, dies ist eine recht lange Ausgabe. Um die ganze Ausgabe lesen zu können würde ich vorschlagen die Ausgabe eben an Less weiter zu geben. Eine Ausgabe gibt man an einen anderen Befehl weiter durch die Pipe “|“. Dies funktioniert ganz einfach indem man zuerst den ersten Befehl angibt, die Pipe setzt und dann den nächsten Befehl startet:

dmesg | less

Das war es dann auch schon, die Ausgabe des Befehls dmesg wird an less weiter gegeben und dieser zeigt die Ausgabe des ersten an.

Befehle hintereinander ausführen

Nun möchte ich mehrere Befehle starten die zusammen hängen, um beispielsweise Debian auf dem Terminal zu aktualisieren würde man folgende Befehle nutzen:

apt update
apt full-upgrade y

Dies würde bedeuten man müsste warten bis der erste Befehl abgeschlossen ist und kann dann erst den zweiten Befehl starten, funktioniert doch viel einfacher wenn man beide Befehle zur selben Zeit starten könnte, inzwischen geht man eine rauchen. Zwei Möglichkeiten, die erste startet den zweiten Befehl auch dann wenn der erste nicht erfolgreich abgeschlossen wurde, etwa durch einen Fehler:

apt update & apt full-upgrade y

Die zweite startet den zweiten Befehl nur dann wenn der erste Befehl auch tatsächlich erfolgreich abgeschlossen wurde:

apt update && apt full-upgrade y

Die zweite Art wäre das Gegenteil von der ersten, wird der erste Befehl nicht erfolgreich ausgeführt soll der zweite ausgeführt werden. In diesem Beispiel möchte ich in das Verzeichnis Dokumente wechseln, ist dieses nicht vorhanden soll es erstellt werden:

cd Dokumente/ || mkdir Dokumente

In Dateien schreiben / Aus Dateien lesen

Als kleines Beispiel möchte ich die Ausgabe des Befehls “ls -la” in eine neu zu erstellende Datei namens “Dateien.txt” schreiben, existiert diese bereits wird diese komplett überschrieben:

ls -la > Dateien.txt

Möchte ich eine bereits bestehende Datei nicht überschreiben sondern die Ausgabe des Befehls an den bereits bestehenden Text anhängen:

ls -la >> Dateien.txt

Möchte ich nun beispielsweise den Text aus der gerade erstellten Datei in den Prompt einfügen:

< Dateiname.txt

Hilfe & Erleichterungen auf dem Terminal

Die Shell bietet so einiges an Hilfe und Erleichterungen an, wir kennen bereits Optionen mit denen sich Befehle verfeinern lassen. Doch wie erfährt man welche Optionen ein Befehl hat? Ganz einfach, man sieht sich die so genannte Manpage an. Nehmen wir einmal den gleich zu Beginn besprochenen Befehl “ls“, er besitzt unzählige Optionen – um an dessen Manpage zu kommen nutzt man einfach den Befehl “man” – also:

man ls

Innerhalb der Manpage arbeitet man ganz normal wie mit dem Befehl “less“.

Manpages - Hilfe zu Befehlen am Terminal unter Linux

Manpages - Hilfe zu Befehlen am Terminal unter Linux

Nun wissen wir wie wir die möglichen Optionen zu einzelnen Befehlen erfahren, aber wie wissen wir welchen Befehl wir für eine bestimmte Aufgabe nutzen könnten wenn wir noch recht wenig Ahnung vom Terminal haben? Hierzu dient der Befehl “apropos“, er durchsucht die gerade besprochenen Manpages nach einem von Ihnen vorgegebenen Stichwort. Nehmen wir einmal an ich möchte auf dem Terminal etwas kopieren:

apropos kopieren
Apropos - Befehle zu Aufgaben unter Linux finden

Apropos - Befehle zu Aufgaben unter Linux finden

Alle Befehle deren Manpage das gesuchte Stichwort enthalten werden nun mit einer kurzen Beschreibung aufgelistet. Sollte nichts gefunden werden versucht man den englischen Begriff was vor allem bei nicht auf Debian basierenden Systemen vor kommen kann.

Befehle und Namen abkürzen

Nun sind manche Dateinamen, Verzeichnis-Namen und Befehle mitunter recht lange, auch hier bietet die Shell eine nette kleine Hilfe – die Vervollständigung von Befehlen und Namen von Dateien und Verzeichnissen. Nehmen wir einmal an ich will mit dem Befehl “iptables” die Firewall konfigurieren – ich muss zugeben Linux-Administratoren sind faule Säcke, warum den kompletten Befehl eingeben wenn auch ein paar Zeichen genügen. Als Beispiel würde ich es einfach damit versuchen:

ip + Tabulator

Durch drücken der Tabulator-Taste zeigt die Shell spätestens nach dem zweiten Mal jeden Befehl an der mit den angegebenen Zeichen beginnt:

Befehle und Namen unter Linux am Terminal abkürzen

Befehle und Namen unter Linux am Terminal abkürzen

Geben Sie so lange nötige Zeichen ein bis kein anderer Befehl mehr gleicht und drücken nun die Tabulator-Taste – der Befehl wird automatisch vervollständigt und Sie brauchen nur noch mit der Eingabe-Taste bestätigen. Die selbe Geschichte funktioniert mit Namen von Dateien und Verzeichnissen.

Alte Befehle wieder starten

Nehmen wir einmal an Sie haben vor kurzem einen sehr langen Befehl mit entsprechenden Optionen gestartet, Sie benötigen den selben nun wieder. Nutzen Sie einfach die Pfeil nach oben-Taste, drücken Sie diese mehrmals bis Sie wieder am Befehl angelangt sind. Sie können diesen nun einfach mit der Eingabe-Taste bestätigen oder verändern.

Liegt der Befehl schon länger zurück und Sie haben inzwischen viele andere Befehle gestartet kann dies natürlich zur Tortour werden, drücken Sie einfach die Tastenkombination Strg + r und geben nun die ersten Zeichen des Befehls an, entsprechende Treffer werden nun angezeigt. Diesen Befehl können Sie auch ändern oder einfach bestätigen.

Als normaler Nutzer / Als Administrator

Je nach Aufgabe starten Sie Befehle als normaler Nutzer oder eben als Administrator, manche Befehle lassen sich ausschließlich als Administrator nutzen. Um Befehle als normaler Nutzer zu starten tun Sie dies ganz einfach ohne Änderung. Um Befehle als Administrator zu starten – also als Nutzer root nutzen Sie je nach Distribution die Befehle “su” oder “sudo“, was Sie nutzen müssen haben Sie selbst bei der Installation des Systems fest gelegt – haben Sie ein eigenes Passwort für den Administrator angelegt nutzen Sie su, andernfalls sudo.

Gibt es also ein Passwort für den Nutzer root starten Sie auf dem Terminal einfach den Befehl:

su

Nun wird das Passwort des Administrators abgefragt, geben Sie es an und bestätigen, alle Befehle die Sie nun starten werden mit Administrator-Rechten ausgeführt, um wieder zum normalen Nutzer zu werden starten Sie den Befehl:

exit

Auf den restlichen Systemen stellen Sie jedem Befehl den Sie als Administrator ausführen wollen den Befehl “sudo” voran, also etwa:

sudo rm -rf Dokumente/

Bei vielen aufeinander folgenden Befehlen als Administrator kann dies mühsam werden, starten Sie den Befehl:

sudo su

Alle nun folgenden Befehle werden als Administrator ausgeführt bis Sie dies mit:

exit

beenden.