Der Befehl type zeigt dir, wie die Shell einen bestimmten Befehl interpretiert. Damit findest du heraus, ob es sich um einen Alias, eine Funktion, ein Shell-Builtin oder eine ausführbare Datei handelt.
Syntax
type [OPTIONEN] BEFEHL...
Der type-Befehl ist ein Shell-Builtin und in Bash, Zsh und Ksh verfügbar. Das Verhalten kann je nach Shell leicht variieren. Die folgenden Beispiele beziehen sich auf Bash.
Grundlegende Verwendung
Um den Typ eines Befehls zu ermitteln, übergib ihn einfach als Argument:
type wc
Ausgabe:
wc ist /usr/bin/wc
Du kannst mehrere Befehle gleichzeitig prüfen:
type sleep head
Ausgabe:
sleep ist /bin/sleep
head ist /usr/bin/head
Die verschiedenen Befehlstypen
Mit der Option -t gibt type nur ein einzelnes Wort aus, das den Typ beschreibt:
| Typ | Bedeutung |
|---|---|
alias | Shell-Alias |
function | Shell-Funktion |
builtin | In die Shell eingebauter Befehl |
file | Ausführbare Datei auf der Festplatte |
keyword | Reserviertes Wort der Shell |
Beispiele für jeden Typ
Alias:
type -t grep
alias
Auf vielen Systemen ist grep als Alias für grep --color=auto definiert.
Builtin:
type -t echo
builtin
Ausführbare Datei:
type -t cut
file
Schlüsselwort:
type -t for
keyword
Alle Treffer anzeigen
Mit der Option -a zeigt type alle Fundstellen eines Befehls:
type -a pwd
pwd ist ein Shell-Builtin
pwd ist /bin/pwd
Der Befehl pwd existiert sowohl als Shell-Builtin als auch als eigenständiges Programm. Bei der Eingabe wird das Builtin bevorzugt.
Den Pfad einer ausführbaren Datei finden
Die Option -p gibt nur den Pfad aus, wenn der Befehl eine ausführbare Datei ist:
type -p cat
/bin/cat
Bei Builtins liefert -p keine Ausgabe:
type -p pwd
Keine Ausgabe, da pwd primär ein Builtin ist.
Die Option -P (Großbuchstabe) durchsucht dagegen den PATH auch dann, wenn der Befehl kein externes Programm ist:
type -P pwd
/bin/pwd
Funktionen ignorieren
Die Option -f überspringt Shell-Funktionen bei der Suche. Das ist nützlich, wenn du wissen willst, ob hinter einer Funktion auch ein gleichnamiges Programm existiert.
type vs. which
Beide Befehle helfen beim Auffinden von Befehlen, aber type liefert mehr Informationen:
| Befehl | Findet Aliase | Findet Funktionen | Findet Builtins |
|---|---|---|---|
type | Ja | Ja | Ja |
which | Nein | Nein | Nein |
Der which-Befehl durchsucht nur den PATH nach ausführbaren Dateien. Der type-Befehl kennt dagegen alle Arten von Befehlen, die die Shell versteht.
Zusammenfassung
Der type-Befehl zeigt dir, wie die Shell einen Befehl interpretiert. Er unterscheidet zwischen Aliassen, Funktionen, Builtins, ausführbaren Dateien und Schlüsselwörtern. Besonders nützlich ist er, wenn du verstehen willst, warum sich ein Befehl anders verhält als erwartet.