Ich versuche etwas zu installieren und unter den Schritten war dieser:
"Legen Sie es auf Ihre $PATH
"
Was bedeutet das? Was ist das?
Ich habe sowohl diese Site als auch Google durchsucht, aber jeder hält es für selbstverständlich!
Ich versuche etwas zu installieren und unter den Schritten war dieser:
"Legen Sie es auf Ihre $PATH
"
Was bedeutet das? Was ist das?
Ich habe sowohl diese Site als auch Google durchsucht, aber jeder hält es für selbstverständlich!
Antworten:
In einem Terminal ausführen:
echo $PATH
oder
printf "%s\n" "$PATH"
Was Sie sehen, ist eine Liste von Verzeichnissen, die wie folgt aussehen:
/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Wenn Sie eine ausführbare Datei in eines dieser Verzeichnisse stellen, müssen Sie den Pfad zur ausführbaren Datei / zum Skript nicht festlegen, sondern können sie anhand ihres Namens als Befehl ausführen.
Ausführbare Dateien in $PATH
sollten laut Konvention keine Spracherweiterung haben (obwohl sie funktionieren würden)
Sie können ein Verzeichnis (dauerhaft) hinzufügen, $PATH
indem Sie der ~/.profile
Datei die folgende Zeile hinzufügen (standardmäßig nicht sichtbar, drücken Sie Ctrl+ Him Dateimanager, um es sichtbar zu machen):
export PATH=$PATH:/path/to/dir
(wie $PATH
) findet ihr hier (danke für die Vorschläge @Letizia)
$PATH
ist eine dateispeicherortbezogene Umgebungsvariable .
Wenn Sie einen auszuführenden Befehl eingeben, sucht das System in den von angegebenen Verzeichnissen PATH
in der angegebenen Reihenfolge.
Sie können die angegebenen Verzeichnisse anzeigen, indem Sie echo $PATH
im Terminal eingeben .
Angenommen, es ist eine ausführbare Datei foobar01.sh
vorhanden, /home/user/foo1/foo2/foobar01.sh
die Sie regelmäßig ausführen möchten. Das Eingeben des gesamten "Pfades" wäre zeitaufwändig. Also fügen wir das Verzeichnis der $PATH
Variablen hinzu und können es foobar.sh
direkt ausführen, ohne den Pfad anzugeben.
Sie können es hinzufügen, $PATH
indem Sie den folgenden Befehl eingeben
export PATH=$PATH:/home/user/foo1/foo2
Ich gehe davon aus, dass Sie aus einem Windows-Hintergrund stammen (entschuldige mich, wenn dies nicht der Fall ist). In Laienbegriffen ist ein Pfad (oder der Suchpfad) die Liste der Verzeichnisse, die nach allem durchsucht werden, was Sie in der Befehlszeile eingeben. Wenn Sie einen integrierten Befehl wie ls eingeben, wird nach einer angegebenen Liste von Verzeichnissen gesucht. Sie können Ihren Pfad nachschlagen, indem Sie echo $ PATH eingeben. Hier ist ein Unterschied zwischen Windows und * nix: Standardmäßig sucht Windows immer nach der ausführbaren Datei im aktuellen Verzeichnis. Wenn Sie beispielsweise eine Datei mit dem Namen uptime.bat in c: \ myscripts haben und Sie c: \ myscripts cd eingeben, wird sie ausgeführt. In * nix wird jedoch der Pfad abgefragt und die ausführbare Datei gefunden (falls verfügbar).
Wenn Sie Ihre Skripte in einem Verzeichnis namens / home / teresa / scripts speichern, müssen Sie den vollständigen Pfad zu diesem Verzeichnis angeben, um diese Skripte auszuführen. Beispiel: / hone / teresa / checkHost. Eine Variation wäre cd / home / teresa und geben Sie dann ./checkHost ein (beachten Sie das ./, was bedeutet, dass Sie die Datei explizit auffordern, im aktuellen Verzeichnis ausgeführt zu werden.
Um dies zu vermeiden, können Sie einfach eingeben
Exportieren Sie PATH = $ PATH: / home / teresa / scripts
Dies bedeutet, dass zusätzlich zu dem bereits vorhandenen Pfad auch in / hone / teresa / scripts gesucht wird. Das Problem dabei ist jedoch, dass diese Einstellung nach dem Abmelden nicht mehr angezeigt wird. Bearbeiten Sie also die versteckte Datei ~ / .bashrc, suchen Sie dort die PATH-Zeile und hängen Sie sie entsprechend an. Ich gehe davon aus, dass Sie Bash verwenden. Bei anderen Shells unterscheiden sich Syntax und Datei.
Als neuer Benutzer ist es sehr verlockend zu haben. im Suchpfad, was im Grunde bedeutet, dass auch im aktuellen Verzeichnis gesucht wird. Dies wird jedoch aus Gründen, die an anderer Stelle erörtert wurden, nicht als gute Praxis angesehen.
HTH