Einführung: Schnittstelle Kommandozeile

Also, was hat es nun mit diesem CLI
(Kommandozeilenschnittstelle) auf sich?

by Peter Kelly (critter)

Dieses Lernprogramm setzt voraus, dass ein grundlegendes, vollständig aktualisiertes PCLinuxOS 2009.2 mit einem KDE 3.5 Desktop installiert ist. Es mag zwar kleinere Unterschiede zwischen verschiedenen Installationen und Desktop Umgebungen geben, aber die grundlegenden Konzepte sind die gleichen.

Viele, die Linux neu kennenlernen und Hilfe suchen sind oft verwirrt, wenn man ihnen sagt: „Geben Sie im Terminal …........ein“ oder „Das machen Sie am Besten auf der Kommandozeile ….......“.

Terminal? Kommandozeilenschnittstelle? Konsole? Was heißt das alles? Nun, in diesem Zusammenhang ist die Verwendung dieser drei Begriffe austauschbar. CLI steht als Abkürzung für command line interface und es stellt eine Möglichkeit zur Verfügung, mit Ihrem Computer zu kommunizieren. Im Gegensatz dazu finden wir das übliche GUI (graphical user interface), das wir in Desktop- Umgebungen wie KDE oder Windows vorfinden.

Warum sollten wir uns um so was kümmern? Nun, meistens brauchen wir uns darum nicht zu kümmern. Das GUI erledigt fast alles, was irgend jemand im täglichen Gebrauch benötigen könnte. Hier ist das Schlüsselwort 'fast'. Manchmal gibt es doch Sachen, die Sie ausführen lassen wollen und es gibt keinen Knopf auf den man klicken kann und keinen Menueintrag dafür.

Alles, was Sie mit Hilfe eines GUI ausführen können, lässt sich auch mit dem CLI erreichen und eine Menge mehr. Die unangenehme Seite ist, dass Sie die Befehle dazu lernen müssen. Natürlich nicht alle Befehle, denn es gibt hunderte. Ein grundlegendes Arbeitswissen von ein paar Dutzend der gebräuchlichsten (Befehle) jedoch wird Sie zu einem geübten Nutzer der Kommandozeile machen.

Der Start

Wollen Sie die Zehen ins Wasser strecken? Dann folgen Sie mir.

pic1

Öffnen Sie das PCLinuxOS Kontrollzentrum

Unter dem Eintrag 'System' klicken Sie auf 'Benutzerverwaltung' und auf 'neuen Benutzer anlegen'. Nennen Sie diesen, wie Sie wollen,- meiner heißt Jane,- melden Sie sich beim System ab und melden Sie sich als diesen neuen Benutzer an. Falls wir Mist gebaut haben (und etwas nicht klappt) löschen Sie den Benutzer und legen Sie ihn erneut an. Es ist nichts Schlimmes passiert; Ihr (Benutzer)Konto ist unversehrt.

Klicken Sie den Menü Knopf an und unter 'weitere Anwendungen>Terminals' wählen Sie Konsole. Aus diesem Menü könnten Sie irgend etwas anderes auswählen, aber für das was ich möchte stellt dieses den bequemsten Weg dar.

Es öffnet sich ein Fenster mit schwarzem Hintergrund, das ungefähr so aussieht:

pic2

Das nennt man die Eingabezeile (prompt), weil von Ihnen erwartet wird, dass Sie etwas eingeben. Sie erhalten auch einige Informationen: Der aktuelle Benutzer ist Jane, die an einem Computer mit dem Eigennamen home arbeitet (wenn Sie den Eigennamen des Computers nicht geändert haben, wird an Ihrem prompt localhost stehen). Das Tilde Zeichen ~ ist eine Abkürzung für 'mein Heimatverzeichnis', welches angibt, wo Jane innerhalb des Dateisystems eingebunden ist. Das $ Zeichen zeigt an, dass Jane ein normaler Benutzer ist und nicht der Superbenutzer root, dessen Eingabeaufforderung normalerweise mit einem Hash Zeichen # endet. Das ist Standard in PCLinuxOS. Es kann aber in fast alles, was Sie wollen, geändert werden. Manche Leute haben zum Beispiel gerne das aktuelle Datum als Prompt.

Wir schauen uns um

Also, die Eingabeaufforderung (im Folgenden der Prompt, d. Übersetzer) zeigt uns, dass sich Jane in ihrem Heimatverzeichnis befindet. Ändern wir dies!

Geben Sie Folgendes ein und drücken Sie Enter (die Eingabetaste):

cd /usr/bin

Vergewissern Sie sich, dass Sie nur Kleinbuchstaben verwenden, da Linux zwischen Groß- und Kleinschreibung unterscheidet.

Jetzt sieht der Prompt so aus:

pic3

Der Befehl cd bedeutet Verzeichnis wechseln und der /usr/ bin Teil gibt dem Befehl an, in welches Verzeichnis er wechseln soll. Allerdings ist das vom Prompt angezeigte Verzeichnis nicht /usr/ bin und in einem Linux Dateisystem gibt es viele Verzeichnisse mit Namen bin.

Es ist sehr wichtig, dass wir genau wissen, wo wir uns befinden, wenn wir damit anfangen, mit den Sachen herum zumachen – hier gibt es keine hübsche Graphik. Um genau das herauszufinden, geben Sie den Befehl pwd ein, die Kurzform für ''print work directory'' und drücken Sie Enter.

pic4

Dies bestätigt uns, wo wir sind und stellt einen neuen Prompt für die Eingabe des nächsten Befehls bereit. Gehen wir mal zurück, geben Sie cd ein und drücken Sie Enter (das mit dem Enter zum Abschicken des Befehls kennen Sie jetzt). Bei Eingabe von cd ohne alles gelangt man schnell von irgendwo im Dateisystem ins Heimatverzeichnis.

Bisher ist das nicht sehr eindrucksvoll und wie gesagt, Sie können hier alles machen wie innerhalb einer GUI, tatsächlich!

Geben Sie firefox ein. Sehen Sie, Sie haben noch vollen Zugriff auf alle Ihre graphischen Anwendungen, wenn Sie innerhalb von KDE ein Terminal laufen lassen. Aber jetzt können Sie auf der Kommandozeile nichts mehr eingeben. Schließen Sie also Firefox und Sie können die Kommandozeile in Ihrem Terminal (oder auf Ihrer Konsole, wenn Sie wollen) wieder verwenden. Ich zeige Ihnen später, wie Sie einen Befehl ausführen lassen können und trotzdem den Zugang zur Kommandozeile behalten.

Schauen wir uns in diesem Verzeichnis etwas um.

Geben Sie ls ein (das bedeutet, dass der Verzeichnisinhalt, in diesem Fall der von Janes Heimatverzeichnis, aufgelistet wird).

pic5

Das ist eine sehr kurze und wenig informative Auflistung des Verzeichnisinhalts. Wenn wir mehr Information haben wollen, können wir eine modifizierte Version des ls- Befehls verwenden. Geben Sie z. B. ls -l ein (beachten Sie das Leerzeichen). Jetzt geben Sie ls -a ein. Sehen Sie den Unterschied? -a und -l nennt man Optionen (des Befehls). Die meisten Linux Befehle erlauben eine Menge Optionen.

-a (alle Dateien) listet weniger Details, aber mehr Dateien auf. Standardmäßig ist jede Datei, die mit einem Punkt beginnt, versteckt. Das hat nichts mit Sicherheit zu tun, sondern dient der Bequemlichkeit und verhindert eine Überladung (der Anzeige).

Die -l Option bedeutet eine ausführliche Liste auszugeben. Optionen können sogar kombiniert werden, damit Sie die Ergebnisse erhalten, die Sie wollen.

Versuchen Sie ls -al.

Wie kann man diese Optionen im Gedächtnis behalten? Das brauchen Sie nicht. Wenn Sie bei fast jedem Befehl den Befehlsnamen, gefolgt von --help eingeben, wird angezeigt, was zur Verfügung steht. Von den verfügbaren Optionen werden Sie in der Praxis nur wenige verwenden.

Geben Sie ls --help ein.

Das ist zu schnell durchgelaufen, um es lesen zu können, wir müssen es also verlangsamen.

Geben Sie ls --help | less ein.

Der less Befehl zeigt weniger Information in einer Ausgabe. Das Zeichen für den senkrechten Strich | befindet sich, zumindest auf meiner Tastatur, oberhalb dem backslash Zeichen. Was es damit auf sich hat, erkläre ich später. Zur Anzeige einer neuen Seite können Sie Enter oder die Leerzeichentaste drücken, auch die page up / page down Tasten funktionieren. Zum Verlassen drücken Sie 'q'.

Wir verallgemeinern das mal: Linux Befehle haben die nachstehende allgemeine Form: {cmd} {options} {argument}

Also: {Befehl} {Optionen} {Argument}

  • cmd ist der Befehlname, z. B. ls
  • options wie -a oder -l dienen dazu, die Ausgabe oder die Ergebnisse des Befehls zu modifizieren. Ihnen werden normalerweise ein oder mehrere Striche vorangestellt.
  • argument bezeichnet Information, die Sie dem Befehl übergeben, wie z. B. ein Verzeichnisname wie /home in das gewechselt werden soll.

Mit voranstehender Information sind Sie jetzt für Erkundungen bereit.

Wenn Sie als normaler Benutzer angemeldet sind, können Sie mit den folgenden Befehlen, die hauptsächlich Informationen ausgeben oder Ihre aktuelle Position im Dateisystem verändern, keinen Schaden am System anrichten. Einige der angezeigten Informationen können im Moment etwas kryptisch erscheinen, aber ich werde sie alle erklären, wenn wir einige weitere Befehle kennengelernt haben.

ls
cd
pwd
free    Speicherbelegung anzeigen
df      Belegung des Festplattenspeichers anzeigen
date    Zeit und Datum am Bildschirm ausgeben
cal     einen Kalender am Bildschirm ausgeben

Veränderungen durchführen

Hier müssen wir ein bisschen vorsichtiger sein, weil wir an Dateien und Verzeichnissen Veränderungen vornehmen und einige auch löschen werden. Aber dafür haben wir dieses Test-Verzeichnis eingerichtet. (Das haben Sie doch gemacht,oder?)

Mit cd Enter gelangen wir zurück in unser Heimatverzeichnis, von wo auch immer im System.

Erzeugen Sie mit dem Befehl mkdir mydir1 ein neues Verzeichnis mydir1. Überprüfen Sie mit dem ls Befehl, ob es eingerichtet wurde.

Jetzt werden wir eine neue Datei erzeugen. Eine Art, dies auszuführen ist die Benutzung des touch Befehls.

touch myfile1

Der touch Befehl wurde nicht hierfür entworfen, aber dafür wird er heutzutage hauptsächlich verwendet. Die neue Datei wird da sein, aber sie befindet sich nicht in unserem neuen Verzeichnis, also verschieben wir sie.

mv myfile1 mydir1
ls                   die Datei ist verschoben
ls mydir1            hier ist sie in unserem neuen Verzeichnis, also wechseln wir in dieses
cd mydir1
file myfile1         zeigt den leeren Dateityp an
pic6

Erinnern Sie sich an das Zeichen für den vertikalen Strich, das wir mit dem less Befehl benutzt haben? Ich habe die Ausgabe des ls –help Befehls verwendet und sie an den less Befehl weitergegeben, damit wir sie an dem von uns gewählten Zeitpunkt lesen können. Das 'größer als' Zeichen > kann in 'gleicher' Weise genutzt werden.

ls -l /                gibt eine Liste der Wurzel des Dateisystem aus 
ls -l / > myfile1

hier wird die Ausgabe abgefangen, bevor sie am Bildschirm ausgegeben und anschließend in unsere Datei umgeleitet wird. Das ist ein Teil von etwas, was man Umleitung nennt. Damit werden wir uns in ausführlicherer Form später beschäftigen.

Jetzt zeigt file myfile1, dass die Datei vom Typ 'ASCII text' ist. Um den Inhalt anzusehen, können wir den cat Befehl benutzen (Kurzform für concatenate).

cat myfile1

pic7

Ich hasse es, lange Befehle einzugeben.

So geht es den meisten Leuten. Sie haben vielleicht festgestellt, dass Linux Befehle zur Kürze neigen (z. B. ls, cat, df, cd, rm). Linux basiert auf Unix, einem Betriebssystem, dessen Entwicklung 40 Jahre zurückreicht. Zu dieser Zeit gab es keine graphische Schnittstelle und alles wurde über die Kommandozeile ausgeführt. Mit den Jahren haben die Leute viele Wege entwickelt, um die Tipparbeit zu reduzieren und wiederholt auszuführende Aufgaben schneller zu machen, das werden Sie noch bemerken.

Wenn Sie eine Sitzung am Terminal durchführen (beachten Sie, wie sich die Begriffe Terminal, Konsole und CLI vermischen), dann läuft bei Ihnen eine Anwendung mit der Bezeichnung Shell. Die Shell nimmt Ihre Eingaben entgegen und interpretiert Sie so, dass der Computer damit arbeiten kann. Für Unix/Linux gibt es viele Shells. Die ursprüngliche Shell hieß Thompson Shell oder auf der Kommandozeile sh. Sie wurde von Stephen Bourne mit vielen zusätzlichen Eigenschaften weiterentwickelt, war aber immer noch als sh bekannt. Heute heißt die bekannteste Shell bash (bourne again shell). Sie ist die Standardshell in PCLinuxOS.

Das können Sie mit der Eingabe von echo $SHELL mithilfe der Kommandozeile überprüfen.

Bash ist ein sehr mächtiges Programm, welches Ihnen unendlich viel Schreibarbeit ersparen kann. Wenn Sie die Pfeiltaste "hoch" mehrmals drücken, erscheinen die letzten Befehle, die Sie am Prompt eingegeben haben und können direkt editiert werden. Drücken der Pfeiltaste "runter" führt schrittweise zurück. Geben Sie history ein und Sie erhalten eine nummerierte Liste aller Befehle, die Sie während dieser Sitzung benutzt haben.

Geben Sie ! (die Zahl) ein, z. B. !38, dann wird dieser Befehl am Bildschirm ausgegeben und anschließend ausgeführt.

Zeit gewinnen kann man auch mit einer anderen Eigenschaft, die Kommandozeilenvervollständigung genannt wird. So geht’s:

Geben Sie hi ein und drücken Sie die Tabulatortaste.

Sie erhalten eine Liste mit allen Befehlen, die Sie ausführen lassen können und die mit hi beginnen.

Wenn Sie die 's' Taste und Tabulatortaste drücken, ergänzt die Kommandozeile den history Befehl und wartet darauf, dass Sie zur Ausführung des Befehls irgendwelche Optionen oder Argumente eingeben (Abschluss mit Enter). Dies hilft nicht nur Tipparbeit zu sparen, sondern dient auch als Referenz, wenn Sie sich nicht mehr richtig an den Befehl erinnern und wenn nach fehlerhafter Eingabe ein Abbruch erfolgt.

Wenn Sie einen Befehl teilweise eingegeben haben und einen Rechtschreibfehler feststellen, dann können Sie nachstehende Tastenkombinationen benutzen, um dahin zu gelangen:

ctrl + a bringt Sie zum Startpunkt der Zeile.

ctrl + e bringt Sie zum Zeilenende.

alt + b bringt Sie ein Wort zurück.

alt + f bringt Sie ein Wort nach vorne.

Es gibt noch mehr, aber diese hier kann man leicht behalten und sie reichen in der Regel aus.

Wenn Sie vorher einen langen Befehl eingegeben haben und ihn nicht noch mal wiederholen wollen, dann startet ctrl-r eine Rückwärtssuche. Beginnen Sie damit, den Befehl einzugeben und während Ihrer Eingabe wird die Shell diese auf Übereinstimmung mit den wichtigsten relevanten vorhergegangenen Befehlen überprüfen. Wenn Sie exakte Übereinstimmung feststellen, drücken Sie Enter.

Geben Sie einen Buchstaben z. B. 'a' ein und drücken Sie dann Tab.

pic8

Antworten Sie mit 'y'.

Dies gibt Ihnen einen Überblick im Hinblick auf die Anzahl der Befehle, mit denen wir es zu tun haben (fast 2000 in einer Basisinstallation von PCLinuxOS 2010.7). Keine Angst. Von diesen Befehlen werden Sie immer nur eine kleine Anzahl brauchen, aber wenn Sie etwas machen müssen, dann gibt es einen Befehl oder einen Befehlssatz, der es für Sie durchführt.

So, Sie haben Ihre Zehen ins Wasser gestreckt, wie fühlt es sich an? Hoffentlich nicht so schlecht, denn das nächste Mal werden wir hüfttief darin waten und Dinge ausführen, die Rootrechte benötigen. Hier ist die Kommandozeile erst recht zu Hause.