So verwenden Sie den Linux-Befehl

Haben Sie sich jemals gefragt, wie Linux-Befehle wirklich funktionieren? Der Befehl `type` hilft Ihnen zu verstehen, ob ein eingegebener Befehl ein Alias, eine ausführbare Datei, eine Shell-Funktion, ein interner Befehl oder ein reserviertes Wort ist. Entdecken Sie, wie Ihre Befehle ausgeführt werden und gewinnen Sie tiefere Einblicke in Ihr Linux-System.

Was der Befehl ‚type‘ aufdeckt

Wenn wir Befehle in das Terminal eingeben, machen wir uns selten Gedanken darüber, wie das Betriebssystem sie verarbeitet. Wir geben den Befehl ein, erhalten ein Ergebnis und setzen unsere Arbeit fort. Doch ein tieferes Verständnis der Befehlsausführung kann unser Wissen über Linux und Unix-ähnliche Systeme erweitern.

Befehle, die wir in der Befehlszeile verwenden, lassen sich in folgende Kategorien einteilen:

  • Alias: Ein benutzerdefinierter Befehl, der komplexe oder lange Befehlssequenzen vereinfacht.
  • Festplattendatei: Eine ausführbare Binärdatei, wie z.B. `/usr/bin/top`.
  • Shell-Funktion: Eine benutzerdefinierte Funktion, die in der Befehlszeile oder in Skripten verwendet wird.
  • Integrierter Befehl: Ein Befehl, der direkt von der Shell ausgeführt wird, z.B. `pwd`.
  • Reserviertes Wort: Ein Wort, das von der Shell speziell verwendet wird, wie `if` oder `elif`.

Der `type`-Befehl, dokumentiert in den Manpages, hilft uns, die Kategorie eines bestimmten Befehls zu identifizieren. Hier ist eine kurze Anleitung, um die Ausgabe des Befehls zu interpretieren.

Anwendung des Befehls ‚type‘

Lassen Sie uns einige Beispiele für jede der Befehlskategorien betrachten:

type date

Der `date`-Befehl ist eine ausführbare Datei auf der Festplatte.

type ls

Der `ls`-Befehl ist ein Alias, der den eigentlichen `ls`-Befehl mit der Option `–color=auto` erweitert.

type lowdown

Der Befehl `lowdown` ist eine benutzerdefinierte Funktion, die eine schnelle Übersicht über einige Systemressourcen bietet. Sie kombiniert die Ausgaben von `whoami`, `w`, `free` und `df`.

type pwd

Der Befehl `pwd` ist ein integrierter Befehl der Bash-Shell.

type elif

Der Befehl `elif` ist ein reserviertes Wort der Bash-Shell.

Mehrere Befehle gleichzeitig untersuchen

Mit `type` können Sie mehrere Befehle gleichzeitig überprüfen:

type date top ls

Die Option ‚-t‘ für kurze Ausgaben

Die Option `-t` gibt die Befehlskategorie in einem einzigen Wort aus. Sie können sich diese Option als „Typ-Kurzform“ merken.

type -t date
type -t pwd
type -t lowdown

Die Option ‚-a‘ für alle Fundstellen

Die Option `-a` listet alle Fundstellen eines Befehls auf, einschließlich Aliase und ausführbare Dateien. Diese Option funktioniert nicht in Kombination mit `-p`.

Wenn ein Alias den gleichen Namen wie ein zugrunde liegender Befehl hat, zeigt die Option `-a` Informationen sowohl zum Alias als auch zum Befehl.

type -a ls

Die Option ‚-f‘ zur Deaktivierung von Funktionssuchen

Die Option `-f` deaktiviert die Suche nach benutzerdefinierten oder systemdefinierten Funktionen. Betrachten Sie diese Option als „Funktionssuche aus“. Wenn der angegebene Befehl eine Funktion ist, gibt `type` aus, dass der Befehl nicht gefunden wurde.

type -f top
type -f lowdown

Die Option ‚-P‘ für Pfadsuchen

Die Option `-P` durchsucht nur die Verzeichnisse, die in der Umgebungsvariablen `$PATH` definiert sind. Diese Option kann man sich als „Pfadsuche“ merken.

type -P date chmod adduser

Die Option ‚-p‘ für Festplattendateien

Die Option `-p` gibt nur dann eine Antwort aus, wenn der Befehl eine ausführbare Datei auf der Festplatte ist. Diese Option sollte nicht mit der Option `-P` verwechselt werden.

type -p mount
type -p ls
type -p -a ls

`type` gibt keine Antwort für `ls` aus, da `ls` ein Alias und keine Plattendatei ist. Jedoch liefert die Kombination mit der Option `-a` die darunterliegende Plattendatei, auf die der Alias verweist.

Fazit

Der Befehl `type` bietet eine einfache, aber aufschlussreiche Möglichkeit, die interne Funktionsweise von Linux-Befehlen zu verstehen. Wir tendieren dazu, alles, was wir in ein Terminal eingeben, als „Befehl“ zu bezeichnen, aber die Implementierungen sind vielfältig. Mit `type` können wir diese Unterschiede aufdecken und so unser System besser kennenlernen.