GNU/Linux >> Znalost Linux >  >> Linux

Přidání nové položky do proměnné PATH v ZSH

Zde přidejte tento řádek do .zshrc :

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

UPRAVIT :Toto funguje, ale onyho odpověď výše je lepší, protože využívá strukturované rozhraní, které ZSH poskytuje pro proměnné jako $PATH . Tento přístup je standardní pro bash , ale pokud vím, není důvod to používat, když ZSH poskytuje lepší alternativy.


Ve skutečnosti vám použití ZSH umožňuje používat speciální mapování proměnných prostředí. Takže můžete jednoduše udělat:

# 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

Pro mě je to velmi elegantní funkce, kterou lze rozšířit na další proměnné. Příklad:

typeset -T LD_LIBRARY_PATH ld_library_path :

Můžete připojit na váš PATH minimálním způsobem. Není potřeba závorek, pokud nepřipojujete více než jeden prvek. Obvykle také nepotřebuje uvozovky. Takže jednoduchý a krátký způsob připojení je:

path+=/some/new/bin/dir

Tato syntaxe malých písmen používá path jako pole , ale také ovlivní jeho ekvivalent velkými písmeny, PATH (ke kterému je „vázán“ přes typeset ).

(Všimněte si, že žádné : je potřeba/chtěná jako odděla .)

Běžné interaktivní použití

Potom se běžný vzor pro testování nového skriptu/spustitelného souboru stává:

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

Běžné použití konfigurace

Nastavení cesty můžete posypat kolem .zshrc (jak je uvedeno výše) a přirozeně to povede k tomu, že dříve uvedená nastavení budou mít přednost (i když občas můžete chtít použít "předřazený" formulář path=(/some/new/bin/dir $path) ).

Související informace

Ošetření path tento způsob (jako pole) také znamená:není třeba provádět rehash získat nově pathed příkazy, které mají být nalezeny.

Podívejte se také na vared path jako dynamický způsob úpravy path (a další věci).

Může vás zajímat pouze path pro tuto otázku, ale protože mluvíme o exportech a polích, všimněte si, žepole obecně nelze exportovat.

Můžete dokonce zabránit PATH z přebírání duplicitních záznamů (viz toto a toto):

typeset -U path

PATH je předem vyplněna

Důvod, proč vaše cesta již obsahuje nějaké položky, je způsoben tím, že vaše systémové soubory shellu nastavují vaši cestu. Toto je popsáno v několika dalších příspěvcích:

  • Proč a kde je nastavena proměnná env $PATH?
  • Kde je zdroj $PATH? Nemohu to najít v .zshrc

Linux
  1. 2 způsoby, jak trvale nastavit proměnnou $PATH v ubuntu

  2. Zadejte bod připojení cesty

  3. Procházení prvků proměnné cesty v Bash

  1. Přidání nové služby do Linux systemd

  2. Odstraňte nadbytečné cesty z proměnné $PATH

  3. Existuje proměnná instalační cesty Qt, kterou mohu použít v souboru .pro?

  1. Nový rodičovský proces, když rodičovský proces zemře?

  2. $path Variable Env Variable?

  3. Jak nastavit proměnnou $Path v Linuxu