type‑Befehl unter Linux

Zeige Befehlsarten an

Willst du manchmal wissen: Was wird jetzt eigentlich ausgeführt, wenn ich ls tippe ❓ Oder bei einem anderen Befehl? Super! Denn dieser Artikel zeigt dir, wie du genau das mit type herausfinden kannst, welche zusätzlichen Informationen du bekommst und wie du diese Ausgabe für Skripte nutzbar machst.

Grundlegende Syntax

Der Bash‑Builtin type liefert Informationen darüber, wie der aktuelle Shell‑Interpreter einen Namen auflöst:

1
type [OPTIONEN] NAME ...

Hierbei ist NAME ein beliebiger Befehl, Alias, Funktion, Keyword‑ oder Shell‑Builtin. Ohne Optionen gibt type den Typ des Namens und - falls es ein ausführbares Programm ist - den vollständigen Pfad aus.

Hinweis: type ist ein Bash‑Builtin. Andere Shells (wie zsh, fish) besitzen eigene, meist kompatible Varianten, die aber leicht unterschiedliche Optionen haben können.

Einfaches Beispiel

1
2
3
$ type ls pwd
ls is aliased to `ls --color=auto'
pwd is a shell builtin

Das sagt also, dass ls ein Alias ist, der von der Distribution (hier Ubuntu/Debian) angelegt wird. Hingegen ist pwd ein eingebautes Shell‑Builtin, also kein eigenständiges Programm im Dateisystem.

Wichtige Optionen von type

Option Bedeutung
-a Zeigt alle Vorkommen des Namens an - Aliase, Funktionen, Builtins und jedes im $PATH gefundene Executable.
-f Gibt nur den Pfad zum ausführbaren Programm zurück, ohne Informationen zu Aliasen, Funktionen oder Builtins.
-t Gibt nur den Typ als reine Zeichenkette zurück: alias, builtin, file, function oder keyword.
-p Wie -f, aber ignoriert Aliase, Funktionen und Builtins - es wird ausschließlich nach einer Datei im $PATH gesucht.
-P Gibt den Pfad zum 1. Treffer im $PATH zurück, selbst wenn ein Alias oder eine Funktion gleichen Namens existiert.

Tipp: Kombiniere Optionen, um exakt das zu erhalten, was du brauchst, zum Beispiel type -a -t git → gibt alias und file zurück.

Praktische Beispiele

Alle Vorkommen eines Befehls

1
2
3
$ type -a type
type is a shell builtin
type is /usr/bin/type

Auch type selbst ist sowohl ein Builtin (von Bash) als auch ein externes Programm (/usr/bin/type).

Nur den Pfad erhalten - ohne Alias/Funktion

1
2
$ type -f ls
/bin/ls

Hier wird sofort das ausführbare Programm angezeigt, egal ob ein Alias definiert ist.

Nur den Typ zurückgeben

1
2
$ type -t cd
builtin

Für Skripte ist das sehr nützlich, weil du dann zum Beispiel if [ "$(type -t mycmd)" = "alias" ]; then ... verwenden kannst.

Pfad nur aus $PATH - Alias/Funktion ignorieren

1
2
3
$ alias grep='grep --color=auto'
$ type -p grep
/usr/bin/grep

Obwohl grep als Alias existiert, liefert -p den tatsächlichen Programm‑Pfad.

Erstes $PATH‑Ergebnis - selbst bei vorhandenen Aliasen

1
2
3
$ alias ps='ps -ef | grep -v grep'
$ type -P ps
/bin/ps

Die Option -P ist besonders praktisch, wenn du wissen möchtest, welches Programm ein Alias überschreibt - also wer dahinter steckt 😷

Fazit

Der type‑Befehl ist ein universelles Werkzeug, um in Bash (und den meisten anderen POSIX‑kompatiblen Shells) schnell zu erkennen, wie ein Name interpretiert wird.

  • Verwende type ohne Optionen, um einen schnellen Überblick zu bekommen.
  • Setze -a ein, wenn du jedes mögliche Vorkommen willst - das hilft beim Debuggen komplexer Alias‑Chains.
  • Die Optionen -f, -p und -P liefern dir den exakten Pfad, den du für Skripte, Debugging oder zur Umgehung eines überschriebenen Built-ins benötigst.
  • Und -t liefert nur den Typ, was ideal ist für bedingte Logik in Bash‑Skripten.

Mit diesen Optionen bist du in der Lage, alle Unklarheiten über die Herkunft eines Befehls zu beseitigen - ein Muss für Systemadministratoren, Entwickler und alle, die das Terminal regelmäßig nutzen.

Verwandte Befehle

Willst du tiefer einsteigen? Dann sieh dir auch die verwandten Befehle zu type an:

  • file - erkennt Dateitypen, nicht nur Shell‑Befehle.
  • stat - liefert detaillierte Dateiinformationen (Zeitstempel, Berechtigungen, …).
  • which - ein einfacher Wrapper, der im Grunde type -p nachahmt.
  • command - führt Befehle ohne Alias/Funktions‑Überschreibung aus.

Hilfe zu type

Mehr zu type findest du unter:

1
2
3
man bash   # und danach /type suchen
tldr type  # kompaktes Cheat‑Sheet
info bash   # umfassende Online‑Info

Falls auf deinem System ein Fehler erscheint, wenn du man type eingibst, liegt das daran, dass type ein Bash‑Builtin ist und keine eigene Man‑Page besitzt. Öffne einfach man bash und suche dort nach type.

Mehr zu man findest du unter tldr man. Details zum Befehl tldr gibt es hier.

Erstellt mit Hugo
Theme Stack gestaltet von Jimmy