ubuntuusers.de

Hilfe

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Bei der Benutzung oder der Erstellung eines Skripts für die Shell[1] Bash benötigt man oft Hilfe zum Verständnis eines Schlüsselworts oder Befehls. Hierfür kann man gut das in die Bash eingebaute Hilfesystem nutzen.

Kurze Version

Die eigene Hilfestellung der Bash ist zugänglich über die Kommandos[2] type und help.

  1. Wenn man Hilfe zum Kommando KOMMANDO sucht, gibt man zuerst ein:

    type KOMMANDO 
  2. Wenn nun „Schlüsselwort“ oder „eingebaute Funktion“ (shell builtin) angezeigt wird,

    • dann gibt man ein:

      help KOMMANDO 

    • sonst:

      man KOMMANDO 

      Außerdem können noch diese Befehle helfen:

      KOMMANDO -h 

      KOMMANDO --help 

      info KOMMANDO 

Hilfestellung durch die Bash

Alle Kommandos, welche die Bash ausführen kann, gehören in eine (manchmal auch mehrere) von drei Kategorien:

  • Schlüsselworte

  • interne Kommandos

  • externe Kommandos

Schlüsselworte sind beim Programmieren verwendete reservierte Worte wie beispielsweise if, while, for.

Interne Kommandos sind in das Programm Bash eingebaut, können aber im Gegensatz zu Schlüsselworten neu definiert werden. Externe Kommandos sind Programme, die bei Bedarf erst im Dateisystem gesucht, geladen und in einem neuen Prozess ausgeführt werden.

Schlüsselworte und interne Kommandos sind innerhalb der Bash beschrieben, während man für externe Kommandos z.B. deren Manpage lesen kann.

Das interne Kommando type zeigt die Kategorie eines (oder auch mehrerer) Kommandos an:

type for local sed man 

for Ist ein reserviertes Schlüsselwort der Shell.
local ist eine von der Shell mitgelieferte Funktion.
sed ist /bin/sed
man gehasht ergibt (/usr/bin/man)

Im Beispiel zu sehen ist:

  • for ist ein Schlüsselwort.

  • local ist ein internes Kommando.

  • sed und man sind externe Kommandos. Die Bash hat sich für den schnellen Zugriff das externe man intern gemerkt.

Manchmal gibt es Alternativen für ein Kommando, type verrät diese mit der Option -a:

type -a echo printf 

echo ist eine von der Shell mitgelieferte Funktion.
echo ist /bin/echo
printf ist eine von der Shell mitgelieferte Funktion.
printf ist /usr/bin/printf

Das Kommando echo (und ebenso printf) gibt es also sowohl als internes wie als externes Kommando. Wenn man ein Kommando einfach eingibt, wird die erste aufgelistete Variante ausgeführt. Wenn man wirklich das externe Kommando ausführen will, muss man den kompletten Pfad zur Datei angeben oder den externen Kommando das interne Kommando command voranstellen. Internes und externes Kommando machen nicht zwangsläufig dasselbe!

Schlüsselworte und interne Kommandos erklärt die Bash auf Anforderung mit dem internen Kommando help:

help echo 

echo: echo [-neE] [Argument ...]
    Ausgabe der Argumente auf die Standardausgabe.
    
    Zeigt die Argumente auf der Standardausgabe gefolgt von einem
    Zeilenumbruch an.
    
    Optionen:
      -n                  Keinen Zeilenumbruch anfügen
      -e                  Interpretation der folgenden Escape-Sequenzen zulassen
      -E                  Keine Interpretation der Escape-Sequenzen.
…

Die erste Zeile ist so zu lesen: Alles in eckigen Klammern [ ] ist optional. Dies gehört zu einer weit verbreiteten Konvention für Manpages und andere Dokumentation in der *nix-Welt.

Mit den Auslassungspunkten „...“ wird hier ausgedrückt, dass das davor stehende Element wiederholt werden darf.

Weitere Regeln dieser Konvention kann man der Manpage des externen Kommandos man entnehmen:

man man 

…
       Fettdruck        genau wie angegeben eingeben
       Kursivdruck      durch passendes Argument ersetzen
       [-abc]           Ein oder mehrere Argumente innerhalb der [ ] sind optional.
       -a|-b            Durch | abgegrenzte Optionen können nicht zusammen benutzt werden.
       Argument ...     Das Argument kann wiederholt werden.
       [Ausdruck] ...   Der gesamte Ausdruck innerhalb [ ] kann wiederholt werden.

Die Erstellung dieses Artikel wurde motiviert durch einen Beitrag im Internet. Er ist aber eine freie Adaption und keine getreue Übersetzung:

Diese Revision wurde am 21. März 2020 11:38 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung, Einsteiger, Shell