Ich verwende zsh und versuche, /home/david/pear/bin
der PATH
Variablen einen neuen Eintrag ( ) hinzuzufügen , aber ich weiß nicht wie.
Was mich am meisten verwirrt, ist, dass PATH
meine ~/.zshrc
Datei keinen einzigen Verweis auf eine Variable enthält, sondern Folgendes echo $PATH
zurückgibt:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Also PATH
wird irgendwo eine Variable gesetzt.
PATH="/home/david/pear/bin:/usr/bin:etc"
damitPATH=/home/david/pear/bin:/usr/bin:etc
es in zshrc bleibt.PATH
von dem übergeordneten Prozess erbt , der sie gestartet hat, und wenn sie dann ausgeführt wird.zshrc
(.bashrc
oder was auch immer), können Sie diesem Pfad zusätzliche Dinge hinzufügen.Mit ZSH können Sie eine spezielle Zuordnung von Umgebungsvariablen verwenden. Sie können also einfach Folgendes tun:
Für mich ist das eine sehr nette Funktion, die auf andere Variablen übertragen werden kann. Beispiel:
quelle
~/.zshrc
wird nach beschafft.profile
und überschreibt alles in.profile
. Es dauerte eine Weile, bis ich an meinen Haaren gezogen hatte, um es herauszufinden.-x
und nur eindeutige Werte in einer Variablen mit-U
typeset -TUx PATH path
path=(...)
(ohne Referenzierung$path
oder$PATH
innerhalb)path=(... $path)
Zuweisen , Voranstellen undpath+(...)
Anhängen.Sie können auf
PATH
minimale Weise an Ihre anhängen . Klammern sind nicht erforderlich, es sei denn, Sie fügen mehr als ein Element hinzu. Es braucht normalerweise auch keine Anführungszeichen. So kurzer Weg zum Anfügen der einfachen, ist:Gemeinsame Nutzung
Dann lautet das übliche Muster zum Testen eines neuen Skripts / einer neuen ausführbaren Datei:
Diese Kleinbuchstaben-Syntax wird
path
als Array verwendet , wirkt sich jedoch auch auf das Partneräquivalent in Großbuchstaben ausPATH
(über das sie "gebunden" isttypeset
).(Beachten Sie, dass kein Nein
:
als Trennzeichen benötigt / gewünscht wird .)Verwandte Leckerbissen
path
Diese Behandlung (als Array) bedeutet auch: Sie müssen a nichtrehash
ausführen, um die neu gefundenen Befehle zu finden.Betrachten Sie
vared path
auch eine dynamische Möglichkeit zum Bearbeitenpath
und andere Dinge.Sie interessieren sich vielleicht nur
path
für diese Frage, aber da es sich um Exporte und Arrays handelt, beachten Sie, dass Arrays im Allgemeinen nicht exportiert werden können.Sie können sogar verhindern,
PATH
dass doppelte Einträge übernommen werden (siehe dies und das ):quelle
path+='my/path' # for fun
. Es ist offensichtlich, wenn Sie Leerzeichen haben, aber nicht so sehr, wenn Sie Kommentare haben.path
. Ein Vorgänger:
ist erforderlich fürPATH
, wie in .zshrcPATH+=:/Users/path/to/my/folder
ein Liner, ohne
~/.zshrc
Datei zu öffnenoder
Um den Effekt zu sehen, gehen Sie
source ~/.zshrc
auf dieselbe Registerkarte oder öffnen Sie eine neue Registerkartequelle
OPTION 1: Fügen Sie diese Zeile zu ~ / .zshrc hinzu:
Danach müssen Sie ausführen,
source ~/.zshrc
damit Ihre Änderungen wirksam werden. ODER schließen Sie dieses Fenster und öffnen Sie ein neuesOPTION 2: Führen Sie es in der Terminalkonsole aus, um diesen Pfad nur zur aktuellen Terminalfenstersitzung hinzuzufügen. Wenn Sie das Fenster / die Sitzung schließen, geht es verloren.
quelle
Pfad zu ~ / .zshrc hinzugefügt
sudo vi ~/.zshrc
neuen Pfad hinzufügen
Aktualisieren Sie ~ / .zshrc
Speichern Sie ~ / .zshrc
source ~/.zshrc
Überprüfen Sie den Pfad
echo $PATH
quelle
Bash
Weg.