Lokalisierung von Linux-Befehlen

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Das Linux-Betriebssystem verfügt über eine Vielzahl von Befehlen, die Benutzern helfen, verschiedene Aufgaben auszuführen. Wenn Sie mit Linux arbeiten, ist es wichtig, nicht nur zu wissen, wie Sie diese Befehle verwenden, sondern auch, wo sie im System zu finden sind. Dieses Wissen kann für die Fehlerbehebung, die Systemkonfiguration und das Verständnis, wie Linux ausführbare Dateien organisiert, von entscheidender Bedeutung sein.

In diesem Lab (Praktikum) werden Sie lernen, wie Sie Befehle in Linux mit dem Befehl which lokalisieren können. Dieses Tool hilft Ihnen, die genaue Position von ausführbaren Dateien zu ermitteln, die aufgerufen werden, wenn Sie einen Befehl im Terminal ausführen. Sie werden untersuchen, wie Sie which für einzelne Befehle, mehrere Befehle verwenden können und verstehen, was es bedeutet, wenn ein Befehl nicht gefunden werden kann.

Am Ende dieses Labs werden Sie ein solides Verständnis der Befehlslokalisierung in Linux haben, was eine grundlegende Fähigkeit für jeden Linux-Benutzer oder -Administrator ist.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/FileandDirectoryManagementGroup -.-> linux/find("File Searching") linux/FileandDirectoryManagementGroup -.-> linux/which("Command Locating") linux/FileandDirectoryManagementGroup -.-> linux/whereis("File/Command Finding") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/TextProcessingGroup -.-> linux/sed("Stream Editing") subgraph Lab Skills linux/ls -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} linux/cat -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} linux/cd -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} linux/pwd -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} linux/find -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} linux/which -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} linux/whereis -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} linux/grep -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} linux/sed -.-> lab-271443{{"Lokalisierung von Linux-Befehlen"}} end

Grundlagen der Befehlslokalisierung mit which

In Linux sucht das System, wenn Sie einen Befehl im Terminal eingeben, nach diesem Befehl in den Verzeichnissen, die in Ihrer Umgebungsvariable PATH aufgeführt sind. Der Befehl which hilft Ihnen, genau zu ermitteln, wo ein ausführbares Programm gespeichert ist.

Lassen Sie uns zunächst in unser Projektverzeichnis wechseln:

cd ~/project

Nun verwenden wir den Befehl which, um den Speicherort eines gängigen Befehls wie ls zu finden, der zur Auflistung der Verzeichnisinhalte verwendet wird:

which ls

Wenn Sie diesen Befehl ausführen, sollten Sie eine Ausgabe wie die folgende sehen:

/usr/bin/ls

Diese Ausgabe sagt Ihnen, dass die ausführbare Datei des Befehls ls unter /usr/bin/ls gespeichert ist. Das bedeutet, dass das System die ausführbare Datei an diesem Speicherort ausführt, wenn Sie ls in Ihrem Terminal eingeben.

Das Verständnis des Speicherorts von Befehlen ist aus mehreren Gründen nützlich:

  • Es hilft Ihnen, zu überprüfen, dass Sie die richtige Version eines Befehls verwenden.
  • Es ist unerlässlich, wenn Sie Befehlsbezogene Probleme beheben.
  • Es ist nützlich, wenn Sie Shell-Skripte schreiben, die absolute Pfade benötigen.

Lassen Sie uns ein weiteres Beispiel mit dem Befehl pwd versuchen, der Ihr aktuelles Arbeitsverzeichnis anzeigt:

which pwd

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

/usr/bin/pwd

Der Befehl which findet nur ausführbare Programme, die sich in Ihrem PATH befinden. Er findet keine eingebauten Shell-Befehle (wie cd) oder Aliase, die Sie möglicherweise eingerichtet haben.

Lokalisieren mehrerer Befehle

Der Befehl which kann mehrere ausführbare Dateien in einem einzigen Befehl lokalisieren. Dies ist nützlich, wenn Sie die Speicherorte mehrerer Befehle auf einmal überprüfen möchten, da Sie sich so die Zeit sparen, mehrere Befehle eingeben zu müssen.

Versuchen wir, die Speicherorte mehrerer Befehle auf einmal zu finden:

which ls pwd cat

Dadurch wird der Pfad für jeden dieser Befehle ausgegeben, beispielsweise:

/usr/bin/ls
/usr/bin/pwd
/usr/bin/cat

Jede Zeile zeigt den absoluten Pfad zur jeweiligen ausführbaren Befehlsdatei an.

Wenn Sie versuchen, einen eingebauten Shell-Befehl oder einen nicht existierenden Befehl zu lokalisieren, gibt which möglicherweise kein Ergebnis für diesen bestimmten Befehl zurück. Beispielsweise:

which cd

Sie sehen möglicherweise keine Ausgabe, da cd ein eingebauter Shell-Befehl ist und keine ausführbare Datei in Ihrem PATH.

Versuchen wir es mit einer Mischung aus anderen gängigen Befehlen:

which find grep sed

Sie sollten eine Ausgabe sehen, die die Pfade dieser gängigen Textverarbeitungswerkzeuge (text utilities) anzeigt:

/usr/bin/find
/usr/bin/grep
/usr/bin/sed

Dies zeigt, wie Sie mit dem Befehl which effizient mehrere Befehle auf einmal überprüfen können.

Verständnis von Szenarien, in denen ein Befehl nicht gefunden wird

Nicht alle Befehle, die Sie mit which suchen, werden gefunden. Dies kann aus mehreren Gründen passieren:

  1. Der Befehl existiert nicht auf Ihrem System.
  2. Der Befehl existiert, befindet sich aber nicht in Ihrem PATH.
  3. Der Befehl ist ein eingebauter Shell-Befehl (shell built-in) oder ein Alias.

Lassen Sie uns diese Szenarien untersuchen.

Zunächst versuchen wir, einen Befehl zu lokalisieren, der wahrscheinlich nicht auf Ihrem System existiert:

which nonexistentcommand

Sie sollten keine Ausgabe oder eine Fehlermeldung sehen, die darauf hinweist, dass der Befehl nicht gefunden wurde:

which: no nonexistentcommand in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

Nun überprüfen wir einen eingebauten Shell-Befehl:

which cd

Wie bereits erwähnt, sehen Sie möglicherweise keine Ausgabe, da cd ein eingebauter Shell-Befehl und keine ausführbare Datei ist.

Um zu überprüfen, ob ein Befehl ein eingebauter Shell-Befehl ist, können Sie den Befehl type verwenden:

type cd

Sie sollten eine Ausgabe wie die folgende sehen:

cd is a shell builtin

Lassen Sie uns ein weiteres Beispiel mit dem Befehl alias versuchen, der ebenfalls ein eingebauter Shell-Befehl ist:

type alias

Die Ausgabe sollte bestätigen, dass alias ein eingebauter Shell-Befehl ist:

alias is a shell builtin

Das Verständnis dieser Szenarien ist wichtig, wenn Sie Befehlsbezogene Probleme beheben oder in verschiedenen Linux-Umgebungen arbeiten, in denen Befehle möglicherweise an nicht-standardmäßigen Orten installiert sind.

Erkundung von Alternativen mit whereis

Während which nützlich ist, um ausführbare Dateien in Ihrem PATH zu finden, bietet Linux auch andere Befehle zur Lokalisierung von Dateien. Einer dieser Befehle ist whereis, der die Binärdatei, die Quellcode-Datei und die Handbuchseite (manual page) für einen Befehl finden kann.

Lassen Sie uns whereis verwenden, um mehr Informationen über den Befehl ls zu erhalten:

whereis ls

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

Diese Ausgabe sagt Ihnen:

  • Der Speicherort der ausführbaren ls-Datei: /usr/bin/ls
  • Der Speicherort der Handbuchseite für ls: /usr/share/man/man1/ls.1.gz

Lassen Sie uns ein weiteres Beispiel mit dem Befehl grep versuchen:

whereis grep

Sie könnten eine Ausgabe wie die folgende sehen:

grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz

Der Befehl whereis ist besonders nützlich, wenn Sie mehr als nur den Speicherort der ausführbaren Datei benötigen. Beispielsweise, wenn Sie die Dokumentation lesen oder Quellcode-Dateien finden möchten.

Um den Unterschied zwischen which und whereis zusammenzufassen:

  • which zeigt nur den Speicherort der ausführbaren Datei in Ihrem PATH an.
  • whereis zeigt die Speicherorte der ausführbaren Datei, der Quellcode-Dateien und der Handbuchseiten an.

Beide Befehle sind wertvolle Werkzeuge zur Lokalisierung von Befehlen in Linux, wobei jeder für etwas andere Zwecke dient.

Zusammenfassung

In diesem Lab haben Sie essentielle Fähigkeiten zum Finden von Befehlen im Linux-Betriebssystem gelernt:

  1. Sie haben mit den Grundlagen der Verwendung des which-Befehls begonnen, um den Speicherort von ausführbaren Dateien in Ihrem PATH zu ermitteln.
  2. Sie haben entdeckt, wie Sie mehrere Befehle gleichzeitig mit einem einzigen which-Befehl lokalisieren können.
  3. Sie haben untersucht, was passiert, wenn Befehle nicht gefunden werden können, und gelernt, zwischen ausführbaren Dateien und eingebauten Shell-Befehlen (shell built-ins) zu unterscheiden.
  4. Sie haben über den whereis-Befehl als Alternative erfahren, der umfassendere Informationen über die Speicherorte von Befehlen liefert.

Diese Fähigkeiten bilden einen grundlegenden Teil des Linux-Befehlszeilenwissens und werden Ihnen helfen:

  • Befehlsbezogene Probleme zu beheben
  • Zu verstehen, wie das Linux-System ausführbare Dateien organisiert
  • Effektivere Shell-Skripte zu schreiben
  • Mit größerem Selbstvertrauen durch das Linux-Dateisystem zu navigieren

Das Finden von Befehlen ist ein kleiner, aber wichtiger Aspekt der Linux-Systemverwaltung und -nutzung. Wenn Sie weiterhin mit Linux arbeiten, werden diese Fähigkeiten zur zweiten Natur werden und als Bausteine für fortgeschrittenere Operationen dienen.