GNU/Linux >> Znalost Linux >  >> Linux

Jak přidat adresář do PATH v Linuxu

Když zadáte příkaz do příkazového řádku, v podstatě říkáte shellu, aby spustil spustitelný soubor s daným názvem. V Linuxu tyto spustitelné programy jako ls , find , file a další, obvykle žijí v několika různých adresářích ve vašem systému. Jakýkoli soubor s oprávněními ke spuštění uloženým v těchto adresářích lze spustit z libovolného umístění. Nejběžnější adresáře, které obsahují spustitelné programy, jsou /bin , /sbin , /usr/sbin , /usr/local/bin a /usr/local/sbin .

Ale jak shell ví, jaké adresáře má hledat spustitelné programy? Prohledává shell celý souborový systém?

Odpověď je jednoduchá. Když napíšete příkaz, shell prohledá všechny adresáře zadané v uživateli $PATH proměnná pro spustitelný soubor s tímto jménem.

Tento článek ukazuje, jak přidat adresáře do $PATH v systémech Linux.

Co je $PATH v Linuxu #

$PATH Environment variable je dvojtečkou oddělený seznam adresářů, který říká shellu, které adresáře má hledat spustitelné soubory.

Chcete-li zkontrolovat, jaké adresáře jsou ve vaší $PATH , můžete použít buď printenv nebo echo příkaz:

echo $PATH

Výstup bude vypadat nějak takto:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Pokud máte dva spustitelné soubory se stejným názvem umístěné ve dvou různých adresářích, shell spustí soubor, který je v adresáři, který je na prvním místě v $PATH .

Přidání adresáře do $PATH #

Existují situace, kdy můžete chtít přidat další adresáře do $PATH variabilní. Některé programy mohou být například nainstalovány na různých místech nebo můžete chtít mít vyhrazený adresář pro své osobní skripty, ale umět je spouštět bez zadání absolutní cesty ke spustitelným souborům. Chcete-li to provést, stačí přidat adresář do vaší $PATH .

Řekněme, že máte adresář s názvem bin umístěného ve vašem domovském adresáři, ve kterém máte uložené skripty shellu. Chcete-li přidat adresář do vaší $PATH zadejte:

export PATH="$HOME/bin:$PATH"

export příkaz exportuje upravenou proměnnou do prostředí podřízených procesů shellu.

Nyní můžete spouštět své skripty zadáním názvu spustitelného skriptu, aniž byste museli zadávat úplnou cestu k souboru.

Tato změna je však pouze dočasná a platná pouze v aktuální relaci shellu.

Aby byla změna trvalá, musíte definovat $PATH proměnná v konfiguračních souborech shellu. Ve většině distribucí Linuxu se při zahájení nové relace čtou proměnné prostředí z následujících souborů:

  • Globální konfigurační soubory specifické pro shell, jako je /etc/environment a /etc/profile . Tento soubor použijte, pokud chcete, aby byl nový adresář přidán všem uživatelům systému $PATH .

  • Konfigurační soubory specifické pro jednotlivé uživatele. Pokud například používáte Bash, můžete nastavit $PATH proměnná v ~/.bashrc soubor. Pokud používáte Zsh, název souboru je ~/.zshrc .

V tomto příkladu nastavíme proměnnou do ~/.bashrc soubor. Otevřete soubor pomocí textového editoru a na jeho konec přidejte následující řádek:

nano ~/.bashrc
~/.bashrc
export PATH="$HOME/bin:$PATH"

Uložte soubor a načtěte nový $PATH do aktuální relace shellu pomocí source příkaz:

source ~/.bashrc

Chcete-li potvrdit, že byl adresář úspěšně přidán, vytiskněte hodnotu vaší $PATH zadáním:

echo $PATH

Závěr č.

Přidání nových adresářů do vašeho uživatelského nebo globálního $PATH proměnná je docela jednoduchá. To vám umožní spouštět příkazy a skripty uložené na nestandardních umístěních, aniž byste museli zadávat úplnou cestu ke spustitelnému souboru.

Stejné pokyny platí pro jakoukoli distribuci Linuxu, včetně Ubuntu, CentOS, RHEL, Debian a Linux Mint.

Pokud máte nějaké dotazy, neváhejte zanechat komentář.


Linux
  1. Jak čistě přidat do $path?

  2. Linux – Ldd nenajde cestu, jak přidat?

  3. Jak změnit Shell v Linuxu

  1. Jak přidat soubor .so do java.library.path v Linuxu

  2. Jak přidat Chromedriver do PATH v linuxu?

  3. Jak mohu upravit $PATH na linuxu?

  1. Jak nastavit proměnnou $PATH v Linuxu

  2. Jak přidat adresář do PATH v Linuxu [s příklady]

  3. Jak mohu vytvořit strom adresářů v C++/Linux?