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
.
Wenn man Hilfe zum Kommando KOMMANDO sucht, gibt man zuerst ein:
type KOMMANDO
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
undman
sind externe Kommandos. Die Bash hat sich für den schnellen Zugriff das externeman
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 dem 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.
Links¶
Die Erstellung dieses Artikel wurde motiviert durch einen Beitrag im Internet. Er ist aber eine freie Adaption und keine getreue Übersetzung: