Inhalt

GNU/Linux - Hilfe in der BASH-Shell

Voraussetzungen
  • Eine GNU/Linux Installation, bzw. eine Linux Kommandozeile wie z.B. die GNU Bash.
  • Um eine sichere Systemumgebung zu gewährleisten, bin ich als regulärer Benutzer mit sudo Berechtigung angemeldet.

Folgende Festlegung gelten:

Zeilenanfang Bedeutung
# Wenn ein Kommando mit einem # beginnt, muss der folgende Linux-Befehl mit Root-Rechten, entweder direkt als Root-Benutzer oder mit dem Befehl sudo ausgeführt werden.
$ Bedeutet, dass der angegebene Linux-Befehle als regulärer, nicht privilegierter Benutzer ausgeführt werden kann.

Als Betriebssystem nutze ich in der Regel Fedora Workstation. Die gezeigten Befehle sollten aber unter allen gängigen, modernen Distribuionen mit der GNU Bash Shell funktionieren.

Hilfe zur Selbsthilfe

In der Bash-Shell stehen dir verschiedene Befehle zur Verfügung, um weitere Hilfe und Unterstützung zu erhalten. Hier sind einige der gängigsten Befehle, die du verwenden kannst:

  1. help: Gibt eine Liste der eingebauten Befehle in der Bash-Shell und deren Verwendung aus.
  2. man: Zeigt eine Handbuchseite für ein bestimmtes Kommando oder eine Bibliothek an.
  3. info: Zeigt die Dokumentation für ein bestimmtes Kommando oder eine Bibliothek im “info”-Format an.
  4. apropos oder whatis: Gibt eine Liste von Befehlen aus, die zu einem bestimmten Stichwort passen.
  5. type: Zeigt an, ob ein bestimmtes Kommando ein eingebauter Befehl oder eine externe Binärdatei ist.

Help

Wenn man das eigentliche Kommando schon kennt, aber sich nicht sicher ist, wie genau es zu verwenden ist, dann liefert in der Regel der Schalter -- help einen ersten Ansatz.

In der ersten Zeile der Ausgabe von --help steht in der Regel, wie der Aufruf des Befehls aufgebaut ist. Hier ein Beispiel am Befehl ls.

1
2
$ ls --help
Aufruf: ls [OPTION]... [DATEI]...

Der Befehl ls erwartet zuerst die Optionen und dann eine Datei. Da die beiden Angaben allerdings in eckigen Klammern [ ] stehen, bedeutet das, dass sie optional sind. Das Kommando ls also auch ohne weitere Angaben funktioniert.

Für den Fall, dass die Ausgabe zu lang für den Bildschirm ist oder im Terminal nicht gescrollt werden kann, dann kann die Ausgabe an den Befehl less weitergeleitet werden. So wird das Ergebnis seitenweise angezeigt und mit den Hoch / Runter Tasten kann man im Text, ohne die Maus, scrollen.

1
$ ls --help | less

Der senkrechte Balken | wird Pipe genannt und mit einem deutschen Tastaturlayout mit der Tastenkombination AltGr und der größer / kleiner als Taste, rechts neben der Shift Taste, erzeugt. Mit der Taste q kann die Anzeige beendet werden und man befindet sich wieder in seiner Shell.

Das Handbuch

Fast alle Befehle und Programme bringen ein Handbuch mit. Der Aufruf ist man plus das Kommando oder Programm zu dem man Informationen bekommen möchte. Zum Beispiel so:

1
$ man dnf

Der Befehl man bringt direkt die Möglichkeit seitenweise zu scrollen und mit q das Programm zu beenden mit.

Alle Handbücher durchsuchen

Es besteht auch die Möglichkeit alle Handbücher auf dem System nach einem Begriff zu durchsuchen. Eigentlich handelt es sich hierbei auch um den Befehl man mit dem Schalter -k, aber es kann auch direkt der Befehl apropos genutzt werden. Hier zwei Beispiele mit dem gleichen Ergebnis.

1
2
3
4
5
$ man -k browser
firefox (1)          - a Web browser for X11 derived from the Mozilla browser
git-web--browse (1)  - Git helper script to launch a web browser
links (1)            - lynx-like alternative character mode WWW browser
links2 (1)           - lynx-like alternative character mode WWW browser

oder

1
2
3
4
5
$ apropos browser
firefox (1)          - a Web browser for X11 derived from the Mozilla browser
git-web--browse (1)  - Git helper script to launch a web browser
links (1)            - lynx-like alternative character mode WWW browser
links2 (1)           - lynx-like alternative character mode WWW browser

Was ist?

Der Befehl whatis zeigt eine einzeilige Zusammenfassung eines Befehls an, welche aus der Manpage (dem handbuch) des Befehls stammt. Es ist eine schnelle Möglichkeit zu sehen, was ein Befehl tatsächlich tut.

Suchen und finden

Dateisuche mit Hilfe einer Datenbank

Der Befehl locate bietet eine Suchfunktion, welche datenbankgestützt ist. Das heißt, dass ein Index erstellt worden ist. Die meisten Distributionen aktualisieren die Datenbank einmal täglich. Also können nur Dateien gefunden werden, welche zum Zeitpunkt der Indexierung vorhanden waren.
Ein Vorteil von locate ist, dass ich keinen Pfad für die Suche angeben muss und die Suche sehr, sehr schnell ist. Mit dem Befehl updatedb kann man die Indexierung auch manuell anstoßen.

Dateien finden ohne Datenbank

1
$ find /home/benutzer -type f -iname hausaufgaben.txt

Also erst der Befehl find, dann der Pfad ab dem die Suche beginnt. Mit -type f wird die Suche auf Dateien (Files) eingeschränkt und mit dem Schalter -iname wird der zu suchende Begriff angegeben und zwar ohne die Groß- und Kleinschreibung zu beachten. Wichtig ist hierbei, dass find genau nachdem angegebenen String sucht. Wer nach „Butter“ sucht, findet nicht „Butterbrot“. Dafür kann man den Suchbegriff mit Hilfe von * erweitern.

Wenn zum Beispiel ab dem Ordner / gesucht werden soll, braucht es Root-Berechtigungen oder man bekommt, auf Grund der fehlenden Berechtigungnen, viele Fehlermeldungen.

Text in Dateien finden

Um Text innerhalb von Dateien zu finden, gibt es den Befehl grep.

1
$ grep -rnwi '/Pfad/zu/Ordner/' -e 'Textschnipsel'

Die Schalter in dem Beispiel stehen für folgende Optionen:

  • r für rekursiv
  • n zeigt die Zeile der Datei an, wo der Text gefunden wurde
  • w bedeutet, dass der Suchbegriff als Ganzes übereinstimmen muss
    • Wer nach „Butter“ mit dem Schalter w sucht, findet nicht „Butterbrot“
  • i Es wird nicht zwischen Groß- und Kleinschreibung unterschieden
  • l kann optional ergänzt werden, um nur den Dateipfad auzugeben, in welcher der Textschnipsel vorkommt

Wo befindet sich ein Befehl / Programm

Der Befehl whereis listet auf, wo im Dateisystem ein Befehl oder Programm “liegt”. Das heißt zum einen, in welchem Pfad die ausführbare Datei, die Konfigurationsdateien, eventuell mit anderen Programmen geteilte Dateien und auch das Manual des Befehls oder Programms liegen.

Zum besseren Verständnis, ein Beispiel:

1
2
$ whereis firefox
firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz
  • /usr/bin/ die Binärdatei
  • /etc/ die Konfiguration
  • /usr/share/man/ das Handbuch