ubuntuusers.deWikiShellEinführung

Einführung

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Beim ersten Kontakt mit der Shell bzw. dem Terminal haben viele Menschen erstmal keine Ahnung, was sie nun machen sollen und stellen Fragen wie:

  • Wofür ist das Terminal gut?

  • Wie benutze ich es?

  • Was will es von mir?

Der Beginn: der Prompt

Öffnet man ein Terminalfenster, hat man meist ein schwarzes Fenster vor sich, in dem zwei Wörter stehen, z.B.:

erika@Notebook:~$ 

erika ist hier der Benutzername, beschreibt also den jeweils angemeldeten Nutzer. Notebook ist der Rechnername, der während der Installation vergeben wird. Diese Wörter bedeuten praktisch also: erika benutzt gerade ihr Notebook. Wenn bei der Installation andere Namen gewählt wurden, stehen hier natürlich die entsprechenden. Aber das Grundprinzip bleibt gleich und wird ab jetzt im Artikel als Beispiel genutzt:

benutzer@Rechner:~$ 

Und nun? Befehle eingeben!

Hinweis:

Unbedingt beachten: Unix/Linux und damit auch Ubuntu unterscheidet streng zwischen Groß- und Kleinschreibung. Tippfehler werden nicht verziehen!

Manchmal wird die Shell auch Eingabeaufforderung genannt, was gar nicht so falsch ist. Das Terminal ist genau genommen nur das Wirtsprogramm der Shell. Es nimmt die Eingaben des Benutzers zur Verarbeitung durch die Shell entgegen und stellt ihre Ausgaben und die von Kommandos dar. Die Shell ist ein Werkzeug, welches dem Benutzer die Möglichkeit gibt, Befehle an den Rechner zu geben. Ein einfaches Beispiel:

benutzer@Rechner:~$ ls 

Der Befehl ls bedeutet, dass die Namen der im Verzeichnis vorhandenen Dateien ausgegeben werden sollen. Einfach eingeben und drücken. Dies führt zu einer Ausgabe, z.B.

benutzer@Rechner:~$ ls
Desktop                                roms
doom3                                  runtime-workspace 

Im Home-Ordner finden sich also vier Dateien. Die jeweilige Farbe lässt sich in der obigen Ausgabe nicht wiedergeben, sie unterscheidet aber den Ordner Desktop vom Skript doom3. Ersterer ist typischerweise blau, letzteres grün. Dies hängt von der gewählten Shell ab.

Moment: Home-Ordner?

Richtig, denn im Homeverzeichnis befindet man sich normalerweise immer nach dem Öffnen des Terminals. Jeder Benutzer hat ein eigenes, privates Verzeichnis, /home/benutzer. Statt des langen Pfades kann und wird oft die Abkürzung ~ benutzt. Alle Wörter am Anfang der Zeile (auch Prompt genannt) bedeuteten also noch mehr: benutzer benutzt gerade den Rechner und befindet sich im eigenen Homeverzeichnis.

Die Navigation

Anzeige: vom eigenen Standpunkt aus

Natürlich will man sich auch andere Verzeichnisse angucken. Angenommen, der Inhalt des Ordners Desktop sei von Interesse. Also gibt man

benutzer@Rechner:~$ ls Desktop 

ein und schon sieht man den Inhalt des Ordners. In einigen Ordnern liegen manchmal noch weitere Unterordner, z.B. ein Ordner Icons. Will man nun dessen Inhalt ansehen, muss man ihn einfach anfügen, mit einem / getrennt:

benutzer@Rechner:~$ ls Desktop/Icons 

Verzeichnis wechseln

Oft ist es sinnvoll, Ordner zu betreten bzw. in diese zu wechseln. Dies geht genauso wie den Inhalt ausgeben, der Befehl dazu lautet cd:

benutzer@Rechner:~$ cd Desktop
benutzer@Rechner:~/Desktop$ 

Nun befindet man sich im Verzeichnis /home/benutzer/Desktop. Will man nun den Inhalt von Icons angucken, reicht ein

benutzer@Rechner:~/Desktop$ ls Icons 

Anzeige: von überall

Dies stellt uns vor ein Problem: Wie kommt man nun wieder an den Inhalt von /home/benutzer? Entweder wählt man den langen Weg und gibt den gesamten Pfad an:

benutzer@Rechner:~/Desktop$ ls /home/benutzer
Desktop                                roms
doom3                                  runtime-workspace 

Oder aber man nimmt die Abkürzung und geht wieder ein Verzeichnis nach oben:

benutzer@Rechner:~/Desktop$ cd .. 

Die zwei Punkte .. (das Leerzeichen davor nicht vergessen!) stehen immer für das übergeordnete Verzeichnis. Zusätzlich gibt es auch noch einen Punkt ., der immer für das aktuelle Verzeichnis steht. Dazu gleich mehr... Der eleganteste Weg lautet:

benutzer@Rechner:~/Desktop$ cd $HOME 

und bringt einen von jedem beliebigen Platz zurück in das eigene Homeverzeichnis. Drei Punkte gibt es nicht ;)

Stattdessen kann man auch einfach nur

benutzer@Rechner:~/Desktop$ cd 

eingeben und landet dadurch ebenfalls im Homeverzeichnis.

Programme starten

Nicht nur als Ersatz für einen Dateimanager ist das Terminal brauchbar, sondern auch, um unabhängig von der grafischen Oberfläche Programme starten zu können.

Allgemeiner Start

Als Beispiel sei hier die Bildverarbeitung GIMP genannt: um sie zu starten, genügt es, einfach den Namen ins Terminal zu tippen und mit zu bestätigen:

benutzer@Rechner:~$ gimp 

Wichtig ist dabei, dass das Programm im Pfad liegt. Im was? Im Pfad, auch PATH genannt. Es gibt eine Umgebungsvariable, in der bestimmte Ordner stehen. Wenn man jetzt einen Programmnamen eingibt, sucht die Shell automatisch in diesen Ordnern und führt das Programm aus, wenn es vorhanden ist.

Wenn ein Programm nicht im Pfad zu finden ist, dann startet es auch nicht. Solche Programme startet man zumeist, indem die Startdatei per Hand ausgeführt wird. Man bewegt sich also wie oben beschrieben mit cd in das Verzeichnis, im dem die Datei gespeichert ist und startet diese dann mit:

benutzer@Rechner:~$ ./programmname 

Wie oben beschrieben, steht das ./ immer für das aktuelle Verzeichnis, es wird also nicht im Pfad gesucht. Dies betrifft insbesondere auch Programme im eigenen Homeverzeichnis. Diese können nur mit einem führenden Punkt ./ gestartet werden:

benutzer@Rechner:~$ ./mein_programm 

Alternativ dazu kann man ein Programm natürlich immer auch durch den richtigen und kompletten Pfad starten:

benutzer@Rechner:~$ /pfad/zum/programm/programm_name 

Übergabe eines Argumentes

Bei praktisch allen Programmen, die Dateien bearbeiten oder wiedergeben, kann man diese Dateien auch gleich mit angeben. Diese Angaben nennt man dann Argument. So kann man Gimp z.B. gleich sagen, welches Bild bearbeitet werden soll:

benutzer@Rechner:~$ gimp /home/user/Bild.png 

Programme im Terminal beenden

Die meisten Programme, die man über das Terminal aufgerufen hat, kann man mit der Tastenkombination Strg + C, bei aktiviertem Terminal, wieder beenden. Einige Programme, die nur im Terminal laufen, wie z.B. das Programm man zum Anzeigen der manpage (Handbuchseite) eines Befehls, werden mit der Taste Q (für Quit) beendet.

Achtung!

Zu beachten ist hierbei, dass keine grafischen Programme gestartet werden können, wenn der XServer nicht gestartet ist und ergo kein Fenstermanager diese Programme zeichnen könnte. In einem "reinen" Terminal (oder auch Konsole), erreichbar über die Tastenkombination Strg + Alt + F1- F6 ist man also ausschließlich auf textbasierte Programme wie beispielsweise Nano oder mpg123 angewiesen.

Wer ein Terminalfenster aus seiner Desktop-Umgebung öffnet und dort Befehle eingibt, hat dieses Problem nicht.

Ein Beispiel

Aber nun genug mit trockener Theorie. Warum schwärmen Fortgeschrittene und Profis immer wieder von der Kommandozeile, deren Vorzüge dem Nichteingeweihten oft verborgen bleibt? Daher noch ein kleines Bonbon bzw. eine Aufgabe zum Abschluß: starte mit 1 Minute Vorbereitungszeit einen eigenen kleinen Webserver. Keine Ahnung? – zur Lösung.

Vielleicht lässt sich jetzt erahnen, welches Potential die Nutzung der Kommandozeile bietet. Falls ja, dann weiter im Text. Ansonsten auch egal – früher oder später holt das Thema sowieso jeden Linux-Nutzer ein, ob man will oder nicht ...

Das Ende: geschafft?!

Prima, aber dieser Artikel sollte nur als kleiner Einstieg dienen. Um weitere Aufgaben mit dem Terminal zu lösen, braucht man noch weitere Befehle, die man in der Befehlsübersicht samt Erklärungen findet. Dabei aber niemals vergessen: Rom wurde auch nicht an einem Tag erbaut. Die Kommandozeile braucht ihre Zeit...

Und nicht vergessen: die Komfortfunktionen im Bash-Artikel anschauen, so spart z.B. die Autovervollständigung per Tab ⇆ Zeit und Nerven.

Diese Revision wurde am 2. Oktober 2011 um 12:26 Uhr von Commander Data erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Shell, Einsteiger

Passwort vergessen?