GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Hinzufügen eines neuen Eintrags zur PATH-Variablen in ZSH

Fügen Sie hier diese Zeile zu .zshrc hinzu :

export PATH=/home/david/pear/bin:$PATH

BEARBEITEN :Dies funktioniert, aber die obige Antwort von ony ist besser, da sie die Vorteile der strukturierten Schnittstelle nutzt, die ZSH für Variablen wie $PATH bereitstellt . Dieser Ansatz ist Standard für bash , aber soweit ich weiß, gibt es keinen Grund, es zu verwenden, wenn ZSH bessere Alternativen bietet.


Tatsächlich ermöglicht Ihnen die Verwendung von ZSH, eine spezielle Zuordnung von Umgebungsvariablen zu verwenden. Sie können also einfach Folgendes tun:

# append
path+=('/home/david/pear/bin')
# or prepend
path=('/home/david/pear/bin' $path)
# export to sub-processes (make it inherited by child processes)
export PATH

Für mich ist das ein sehr nettes Feature, das auf andere Variablen propagiert werden kann. Beispiel:

typeset -T LD_LIBRARY_PATH ld_library_path :

Sie können anhängen zu Ihrem PATH auf minimale Art und Weise. Klammern sind nicht erforderlich, es sei denn, Sie hängen mehr als ein Element an. Es benötigt auch normalerweise keine Anführungszeichen. Also der einfache, kurze Weg zum Anhängen ist:

path+=/some/new/bin/dir

Diese Kleinbuchstaben-Syntax verwendet path als Array , wirkt sich aber auch auf das großgeschriebene Partneräquivalent PATH aus (an die es über typeset "gebunden" wird ).

(Beachten Sie, dass kein : wird als Trennzeichen benötigt/gewünscht .)

Allgemeine interaktive Verwendung

Dann wird das übliche Muster zum Testen eines neuen Skripts/einer neuen ausführbaren Datei:

path+=$PWD/.
# or
path+=$PWD/bin

Allgemeine Konfigurationsnutzung

Sie können Pfadeinstellungen um Ihre .zshrc streuen (wie oben) und es wird natürlich dazu führen, dass die früher aufgeführten Einstellungen Vorrang haben (obwohl Sie gelegentlich dennoch die "vorangestellte" Form path=(/some/new/bin/dir $path) verwenden möchten ).

Verwandte Leckerbissen

Behandlung von path auf diese Weise (als Array) bedeutet auch:keine Notwendigkeit, rehash zu tun um die neu gepfadeten Befehle zu finden.

Sehen Sie sich auch vared path an als dynamische Möglichkeit, path zu bearbeiten (und andere Dinge).

Möglicherweise interessiert Sie nur path für diese Frage, aber da wir über Exporte und Arrays sprechen, beachten Sie, dassArrays im Allgemeinen nicht exportiert werden können.

Sie können sogar PATH verhindern vor doppelten Einträgen (siehe hier und hier):

typeset -U path

PFAD vorbelegt

Der Grund, warum Ihr Pfad bereits einige Einträge enthält, liegt daran, dass Ihre System-Shell-Dateien den Pfad für Sie festlegen. Dies wird in ein paar anderen Beiträgen behandelt:

  • Warum und wo wird die Umgebungsvariable $PATH gesetzt?
  • Wo ist die Quelle von $PATH? Ich kann es nicht in .zshrc
  • finden

Linux
  1. Erkundung des neuen Podman-Geheimbefehls

  2. Hinzufügen eines neuen Dienstes zu Linux systemd

  3. $path-Variable Env-Variable?

  4. 2 Möglichkeiten, die $PATH-Variable in Ubuntu dauerhaft festzulegen

  5. So ändern Sie die PATH-Variable in Linux

Vollständige Ansicht, wo die Pfadvariable in Bash festgelegt ist?

Hinzufügen von Ordnern zu Ihrer Pfadumgebungsvariablen?

So setzen Sie die $Path-Variable in Linux

Gibt es eine Qt-Installationspfadvariable, die ich in der .pro-Datei verwenden kann?

Lokalisieren der Quelle einer Funktion in zsh

Auswirkungen auf die Sicherheit bei der Verwendung relativer Pfade in der PATH-Umgebungsvariable?