PATH-Priorität verstehen
Ihr Teamleiter erklärt, dass die Reihenfolge der Verzeichnisse in der PATH-Variablen bestimmt, welche Version eines Befehls standardmäßig verwendet wird. Überprüfen wir Ihren PATH:
echo $PATH
Sie sehen eine durch Doppelpunkte getrennte Liste von Verzeichnissen. Zum Beispiel:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Die Reihenfolge ist wichtig: Verzeichnisse, die früher aufgeführt sind, haben eine höhere Priorität. Das bedeutet, wenn es zwei ausführbare Dateien mit demselben Namen in verschiedenen Verzeichnissen gibt, wird diejenige im Verzeichnis verwendet, das im PATH zuerst erscheint.
Das Lab-Setup hat bereits einen benutzerdefinierten ls-Befehl in ~/custom_bin erstellt. Fügen Sie dieses Verzeichnis an den Anfang Ihres PATH an, damit es vor den Systemverzeichnissen überprüft wird:
export PATH=$HOME/custom_bin:$PATH
Überprüfen Sie nun, welcher ls-Befehl standardmäßig ausgeführt wird:
which ls
Sie sollten eine Ausgabe ähnlich dieser sehen:
/home/labex/custom_bin/ls
Um jeden passenden ls-Befehl in Ihrem PATH zu sehen, führen Sie aus:
which -a ls
Sie sollten zuerst Ihren benutzerdefinierten Befehl sehen, gefolgt von den Systemversionen:
/home/labex/custom_bin/ls
/usr/bin/ls
/bin/ls
Dies demonstriert die PATH-Priorität deutlich: which ls gibt die erste passende ausführbare Datei zurück, während which -a ls die vollständige Suchergebnisliste anzeigt.