Einführung
Der which
Mit dem Befehl können Benutzer die Liste der Pfade in $PATH
durchsuchen Umgebungsvariable und gibt den vollständigen Pfad des als Argument angegebenen Befehls aus. Der Befehl funktioniert, indem er die ausführbare Datei findet, die dem angegebenen Befehl entspricht.
In diesem Tutorial lernen Sie, den which
zu verwenden Befehl.
Voraussetzungen
- Ein System, auf dem Linux ausgeführt wird
- Zugriff auf das Terminal (Strg + Alt + T )
Linux, welche Befehlssyntax und -optionen
Die Syntax für which
Befehl ist:
which -a [argument]
Argumente
Die [argument]
Variable gibt den Befehl oder die Befehle an, die Sie suchen möchten.
Der folgende Befehl gibt beispielsweise die Position des cat-Befehls aus:
which cat
Optionen
Die which
Befehl hat nur eine Option, -a
. Es ist optional und wird verwendet, um alle gefundenen Übereinstimmungen zu drucken.
Der Befehl sucht von links nach rechts nach Übereinstimmungen. Wenn in den unter $PATH
aufgelisteten Verzeichnissen mehrere Übereinstimmungen gefunden werden , which
druckt nur den ersten. Die -a
Option weist which
an um alle Spiele auszudrucken.
Wichtig: Bei vielen Linux-Distributionen which
schließt die Shell-integrierten Befehle aus und gibt ihre Position nicht aus.
Zum Beispiel:
which -a touch
Mehrere Übereinstimmungen zu haben bedeutet manchmal, dass eine Übereinstimmung ein symbolischer Link zur anderen ist. Es ist jedoch möglich, zwei Versionen desselben Befehls an verschiedenen Orten zu haben oder zwei verschiedene Befehle mit demselben Namen.
Hinweis: Im Gegensatz zu vielen anderen Befehlen ist which
hat kein --help
Möglichkeit. Um die Befehlsbeschreibung und Hilfe anzuzeigen, führen Sie man which
aus .
Exit-Status
Die which
Der Befehl gibt einen der folgenden Werte zurück, die seinen Beendigungsstatus angeben:
0
. Alle Argumente wurden gefunden und sind ausführbar.1
. Ein oder mehrere Argumente existieren nicht oder sind nicht ausführbar.2
. Es wurde eine ungültige Option angegeben.
Beispiele für Linux-Welche Befehle
Die folgenden Beispiele zeigen, wie die which
Befehl funktioniert und wie man die verfügbare Option verwendet.
1. Zeigen Sie den Pfad jeder ausführbaren Datei an
Um den Pfad eines beliebigen Befehls anzuzeigen, übergeben Sie den Befehlsnamen als Argument nach which
.
Zum Beispiel:
which tr
Die Ausgabe zeigt den Pfad zur ausführbaren Datei des tr-Befehls, die sich in /usr/bin/tr befindet .
2. Mehrere Pfade von ausführbaren Dateien anzeigen
which
akzeptiert mehrere Argumente und gibt den Pfad zu jedem in der angegebenen Reihenfolge aus.
Zum Beispiel:
which nc mount sort
Der Befehl arbeitet die bereitgestellte Liste ab und gibt die Ergebnisse für die Befehle nc, mount und sort aus, wobei jedes Ergebnis durch ein Zeilenumbruchzeichen getrennt wird.
3. Alle Instanzen auflisten
which
zeigt nur die erste gefundene Übereinstimmung in $PATH
an variable Verzeichnisliste. Verwenden Sie den -a
Option, um jede Übereinstimmung für den angegebenen Befehl anzuzeigen.
Beispielsweise gibt die Suche nach Instanzen des Befehls less zwei Ergebnisse aus, wenn -a
verwendet wird Möglichkeit:
which -a less
Verwenden Sie den Befehl ls, um die Dateidetails zu überprüfen und festzustellen, ob es sich bei beiden Versionen um ausführbare Dateien handelt. Ausführen:
ls -lh /usr/bin/less
ls -lh /bin/less
Die Ausgabe zeigt zwei identische Versionen desselben Befehls an zwei Stellen, beide 176 KB groß und beide ausführbar.
Hinweis: Das /bin Das Verzeichnis enthält ausführbare Dateien, die vom Systemadministrator und anderen Benutzern verwendet werden können und die für Notfallreparaturen des Systems erforderlich sind. Die Datei /usr/bin Verzeichnis ist das primäre Verzeichnis für ausführbare Befehle auf dem System.
4. Finden Sie symbolische Links
Verwenden Sie den -a
Die Option listet alle Pfade auf, die eine Instanz des angegebenen Programms enthalten. Während mehrere Versionen desselben Programms auf einem System existieren können, ist manchmal eine der Instanzen nur ein symbolischer Link und keine Binärdatei.
Wenn Sie beispielsweise den folgenden Befehl ausführen, werden zwei Instanzen des Befehls atq ausgegeben:
which -a atq
Verwenden Sie wieder den ls
Befehl, um die Details für beide Dateien zu überprüfen. Ausführen:
ls -lh /usr/bin/atq
ls -lh /bin/atq
Die Ausgabe zeigt, dass beide Dateien symbolische Links sind (->
) nur 2 Byte groß und zeigt auf den at-Befehl.
5. Shell-integrierte Funktionen ausschließen
Wie bereits erwähnt, der which
Der Befehl schließt eingebaute Shell-Ins von seiner Ausgabe aus.
Wenn Sie beispielsweise nach dem Speicherort der Befehle read und man fragen, wird nur der Speicherort für man
ausgegeben ausführbare Befehlsdatei als read
ist ein Bash-Shell-Befehl.
which read man
Fazit
Dieses Tutorial hat gezeigt, wie man which
verwendet Befehl in Linux, um den Pfad zur ausführbaren Binärdatei eines Befehls zu finden. Weitere wichtige Linux-Befehle und Beispiele für deren Verwendung finden Sie in unserem Cheat-Sheet für Linux-Befehle, das Sie herunterladen können.