Sie sind hier:

Die ersten Schritte in der Bash

.

Die ersten Schritte in der Bash

2010-01-08 19:17 (Kommentare: 3)

Navigation und Helferlein

Es folgt nun der zweite Teil der Einführung in die Konsole, in meinem Fall der Bash. Woher das Ding seinen Namen hat und welche anderen Konsolen es unter Linux noch so gibt, habe ich bereits im Artikel 'Ein wundersames Ding - die Konsole' vorgestellt. Nun geht es um die Navigation durch die verschiedenen Ordnern und wie man Hilfe innerhalb der Bash findet. Zuvor gibt es ein paar einleitende Worte zum Aufbau der Befehlszeile.

Die Befehlzeile beginnt mit dem Usernamen@Standardordner:~$. In meinem Fall sieht das so aus: helena@helena-home:~$. Nennen wir diesen Teil der Befehlszeile Informationszeile.Wäre man als Superuser (kurz:su) angemeldet, würde die Informationszeile folgendermaßen aussehen: root@helena-home:~#. Der Superuser oder root hat Lese-, Schreib- und Ausführrechte, wohingegen der normale User nur Lese- und Schreibrechte hat. Der Root-User ist also mit dem Administrator unter Windows gleichzusetzen. Es gibt auch die Möglichkeit nur einzelne Befehle als root auszuführen, dafür setzt man ein sudo (Superuser do) vor den auszuführenden Befehl. Nach der Passworteingabeaufforderung hat man nun 15 Minuten lange root-Rechte. Nach Ablauf dieser Zeit wird der Root-Status wieder deaktiviert und man muss erneut das Passwort eingeben, bevor ein sudo-Befehl bearbeitet wird.

Dem aufmerksamen Leser ist bestimmt aufgefallen, dass sich nicht nur der User ändert (von helena zu root), sondern auch das letzte Zeichen in der Informationszeile - aus dem $-Zeichen ist ein #-Zeichen geworden. Das Rautensymbol zeigt ebenfalls an, dass man sich im Root-Modus befindet. Es gibt noch ein drittes Zeichen, das einen bestimmten Status anzeigt, nämlich die spitze Klamme >. Die spitze Klammer am Ende der Informationsszeile zeigt an, dass ein Kommando noch nicht abgeschlossen ist oder das weitere Eingaben erforderlich sind. Das $-Zeichen, das #-Symbol und die spitze Klammer nennt man auch Prompt.

Wichtig ist noch zu wissen, dass die Konsole, genauso wie Linux im allgemeinen, case-sensitiv ist, dass heißt sie unterscheidet zwischen Groß- und Kleinschreibung. Soviel zu den einleitenden Worten zur Konsole, weiter geht es nun mit der Navigation durch die verschiedenen Ordnerebenen des Dateisystems.

Für die Navigation durch die Ordner wird der Befehl cd - change directory (de: Wechsel das Verzeichnis) - benötigt. Davon ausgehend, dass die Konsole gerade geöffnet wurde, befindet man sich im Home-Verzeichnis. Möchte man nun in den Ordner Dokumente wechseln, gibt man diesen Befehl an:

helena@helena-home:~$ cd Dokumente

Nun befindet man sich im Dokumenten-Ordner. Um zu wissen, was dieser Ordner enthält, wird der Befehl ls - list (de: Liste) - gebraucht.

helena@helena-home:~/Dokumente$ ls
beruflich buecher dwl hp pakete.txt privat studentin
helena@helena-home:~/Dokumente$

Die blauen Wörter sind Ordner, wohingegen pakete.txt (na, wer errät es?) eine Textdatei ist. Um von hieraus direkt in den Root-Ordner (also in die höchste Ebene) zu gelangen, gibt man cd / ein.

helena@helena-home:~/Dokumente$ cd /
helena@helena-home:/$

Hätte ich nur in den höher liegenden Ordner gewollt und nicht in den Root-Ordner, hätte auch ein einfaches cd .. ausgereicht, um dort hinzu gelangen.

helena@helena-home:/$ cd /home/helena/Dokumente
helena@helena-home:~/Dokumente$ cd ..
helena@helena-home:~$

Zu erst navigiere ich zurück in den Dokumente-Ordner, dafür gibt man den gesamten Pfad an. Dann folgt er beschriebene Befehl und man ist zurück im höheren Ordner, in dem Fall der Ordner helena. Soviel erstmal zur Navigation innerhalb der Ordnerstrukturen, nun werden im weiteren die kleinen Helferlein der Bash vorgestellt.

Begonnen wird mit den einfachen Hilfen bis hin zu den komplexeren, wie den Manpages. whatis - what is ...? (de: Was ist...?) - ist ein Befehl, der einem relativ wenige Informationen liefert. Er durchsucht die Indexdatenbank nach Kruzebeschreibungen. Exakt das ist es auch, was er uns sagt, wenn wir ihn nach sich selbst fragen.

helena@helena-home:~$ whatis whatis
whatis (1) - durchsucht die Indexdatenbank nach Kurzbeschreibungen

Ein ähnlich aufgebauter Befehl ist apropos. Zu meist liefert er ein wenig mehr Informationen als whatis, befragt man ihn aber nach whatis, gibt er genau die gleiche Auskunft.

helena@helena-home:~$ apropos whatis
whatis (1) - durchsucht die Indexdatenbank nach Kurzbeschreibungen

Es gibt bei den meisten Befehlen auch die Option -h. Das h steht dann für help (de: Hilfe). Auch whatis hat diese Option zur Verfügung.

helena@helena-home:/home$ whatis -h
Usage: whatis [OPTION...] KEYWORD...

-d, --debug emit debugging messages
-v, --verbose print verbose warning messages
-r, --regex interpret each keyword as a regex
-w, --wildcard the keyword(s) contain wildcards
-l, --long do not trim output to terminal width
-C, --config-file=FILE use this user configuration file
-L, --locale=LOCALE define the locale for this search
-m, --systems=SYSTEM use manual pages from other systems
-M, --manpath=PATH set search path for manual pages to PATH
-s, --section=SECTION search only this section
-?, --help give this help list
 --usage give a short usage message
-V, --version print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to cjwatson@debian.org.
helena@helena-home:/home$

Zuerst wird angezeigt wie die Syntax des Kommandos whatis aufgebaut ist, nämlich whatis [OPTION...] KEYWORD... . Dann werden die Optionen in Kurz- und Langform aufgelistet, zusammen mit den Auswirkungen der jeweiligen Option. Sie habe ich in kursiv gesetzt, um die Lesbarkeit zu erhöhen, normalerweise sind einige Leerzeichen eingefügt. Dann wird noch beschrieben, dass keine Unterscheidung zwischen der Lang- und Kurzform der Option vorgenommen wird. -h hat also die gleichen Auswirkungen wie -help und -?. Hier zeigt sich also, dass es noch eine weitere Möglichkeit gibt, mit einer Option Hilfen abzufragen. Das -h gleich -help ist, ist nicht in jedem Fall so, deshalb sollte dies immer nachgeschlagen werden, wenn man sich unsicher ist. Bei dem Optionen gibt es keine einheitliche Vergabe. Die Programierer versuchen ihr möglichstesfür die Einheitllichkeit der Optionen, aber das kann leider nicht in jedem Fall eingehalten werden.

Die Manpages sind wohl die ausführlichsten Hilfen, die in der Bash zu erreichen sind. Sie werden standardmässig bei Ubuntu mit installiert und sind zu meist auf englisch. Eine gute Möglichkeite seine Englischkenntnisse aufzubessern. Teilweise sind die Manpages auch übersetzt, aber das ist in den seltesten Fällen so. Manpages werden mit dem Befehl man aufgerufen.

helena@helena-home:/home$ man whatis 

WHATIS(1)                                               Manual Hilfsprogramme                                               WHATIS(1)

NAME
       whatis - durchsucht die Indexdatenbank nach Kurzbeschreibungen

SYNTAX
       whatis [-dhV] [-r|-w] [-m System[,...]] [-M Pfad] Schlüsselwort ...

BESCHREIBUNG
       Innerhalb  jeder  Manualseite  ist  eine Kurzbeschreibung vorhanden.  whatis sucht Schlüsselwort in den Kurzbeschreibungen der
       Indexdatenbank.  Falls es eine solche nicht im Manualpfad gibt, durchsucht es die whatis- Datenbank nach Schlüsselwort.  Diese
       Version von whatis kann Schlüsselwörter suchen, die Wildcards oder reguläre Ausdrücke enthalten.

       mandb  erzeugt  die Indexdatenbank für jeden Manualpfad. Um eine Datei im alten Stil als whatis- Datenbank aus der Indexdaten‐
       bank zu erzeugen, ist folgender Befehl einzugeben

       whatis -M Pfad -w '*' | sort > manpath/whatis

       wobei Pfad eine Manualhierarchie wie /usr/man ist.

OPTIONEN
       -d, --debug
              Ausgeben von Fehlerinformationen.

       -r, --regex
              Interpretiert jedes Schlüsselwort als regulären Ausdruck.  Wenn ein Schlüsselwort irgendeinem Teil  eines  Seitennamens
              entspricht, wird eine Übereinstimmung gefunden.

       -w, --wildcard
              Das  Schlüsselwort kann Wildcards wie in der Shell beinhalten.  Um eine Übereinstimmung zu finden, muß ein expandiertes
              Schlüsselwort mit einem kompletten Seitennamen übereinstimmen.

       -m System[,...], --systems=System[,...]
              Wenn auch Manualseiten von einem anderen Betriebssystem installiert sind, so kann auf sie mit dieser Option zugegriffen
              werden. Um beispielsweise die Manualseiten von NewOS zu durchsuchen, muß -m NewOS angegeben werden.

              Das  angegebene System kann eine durch Kommata abgetrennte Aufzählung von Betriebssystemnamen sein. Die normalen Seiten
              werden durch den Betriebssystemnamen man angesprochen. Diese Option überschreibt die Umgebungsvariable $SYSTEM.

       -M Pfad, --manpath=Pfad

Hierbei handelt es sich nur um einen Auszug aus der Manpage von whatis und es ist eine seltene deutsche Ausgabe. Manpage sind in ihren Abschnitten immer gleich aufgebaut:

  1. Ausfürhbare Programme oder Shellbefehle
  2. Systemaufrufe (Kernelfunktionen)
  3. Bibliotheksaufrufe (Funktionen in System-Bibliotheken)
  4. Spezielle Dateien
  5. Dateiformate und Konventionen
  6. Spiele
  7. Makropakete und Konventionen
  8. Systemadministrationsbefehle (meist nur für root ansehbar)
  9. Kernelroutinen (nicht Standard)

Soll nur ein bestimmter Abschnitt der Manpage angezeigt werden, gibt man dies folgendermaßen an:

helena@helena-home:/home$ man 2 whatis

Für whatis existiert allerdings kein zweiter Abschnitt. Wird der Befehl man ohne Abschnittsangabe eingegeben, dann werden alle Abschnitte durchsucht und angezeigt. Die Manpages können durch das Drücken von q wieder verlassen werden, die Navigation erfolgt über die Pfeiltasten (zeilenweise) oder über die Tasten Bild ab und Bild auf.

Es existiert auch noch der Befehl info. info whatis schickt mich allerdings direkt auf die Manpage, auch alle anderen Versuche eine Info-Siete aufzurufen scheitern. Selbst info info gibt mir die Manpage an und nicht die Info-Seite. In der Theorie sind Info-Seitenanders aufgebaut als Manpage. Sie arbeiten mit Verlinkungen auf die anderen Abschnitte. Wenn ich hierzu neuere Informationen habe und weiß, warum dass so nicht klappt, wird es einen Nachtrag zum Artikel geben.

Damit neigt sich dieser Artikel auch seinem Ende zu. Einige Tipps zum Schluss habe ich aber noch, um sich tiefer in die Materie einzuarbeiten, sind die Manpages wirklich hilfreich - wie man man oder man cd. Da ich meine Informationen nur aus der Bash oder meinem Gedächnis habe, gibt es dieses Mal keine Quellen. Ich hoffe, mein Artikel findet Gefallen und Anklang. Auf Verbesserungsvorschläge und Hinweise bin ich natürlich gespannt, wie immer.

Nachtrag: Da mir die Session abgeschmiert ist, nachdem ich Dreiviertel des Artikels fertig hatte, möge man mir verzeihen, dass dieser Artikel so knapp noch heute online kommt. Veröffentlich habe ich um 23:58.

Schlagwörter von diesem Beitrag

Zurück

Einen Kommentar schreiben

Kommentar von Dunkelangst | 2010-01-09

Deine Linux Serie erinnert mich irgendwie an meine Linux Basics [1]... *g*

Nein im Ernst, Dein Artikel hier ist sehr gut geschrieben. ;-) Weiter so!

[1]: http://www.dunkelangst.org/wiki/index.php/Linux-basics

Kommentar von Helena | 2010-01-09

Vielen Dank! *freu*

Kommentar von Marc Reimann | 2010-01-24

Hallo Helena,
schöner Artikel!
Ich würde mich freuen wenn du noch mehr auf den Bereich SYNTAX eingehn würdest. Also wie man den liest und verwendet, wann man was in einem Befehl wie schreibt eben.

Viele Grüße

zum Seitenanfang