GNU/Linux >> Znalost Linux >  >> Linux

Úplný pohled na to, kde je v Bash nastavena proměnná cesty?

Na několika místech jsem četl, že PATH se nastavuje v /etc/profile nebo .profile soubor, který je v domovském adresáři.

Jsou to jediná místa, kde je zasazena cesta? Chci tomu lépe porozumět.

V /etc/profile soubor, jak říká následující komentář "system-wide .profile file for the Bourne shell" . Znamená to, že soubory profilu jsou hlavní konfigurační soubory pro bash?

V tomto souboru nevidím PATH var je vůbec nastaven. V .profile soubor v domovském adresáři je tento řádek:

PATH="$HOME/bin:$PATH"

Tím se resetuje PATH podle vzhledu, protože zřetězuje již nastavenou $PATH řetězec s $HOME/bin: že jo? Ale pokud etc/profile a ~/.profile jsou jediným nastavením souborů PATH kde je $PATH pocházející z tohoto řádku kódu, pokud není definován v /etc/profile ?

Může někdo zkušený poskytnout široké a podrobné vysvětlení PATH variabilní? Díky!

Přijatá odpověď:

Existuje mnoho míst, kde je PATH lze nastavit.

login program ji nastaví na výchozí hodnotu. Způsob konfigurace této výchozí hodnoty závisí na systému. Na většině neembedded systémů Linux je převzat z /etc/login.defs s různými hodnotami pro uživatele root a pro ostatní uživatele. Podívejte se na login(1) manuál ve vašem systému, abyste zjistili, co dělá.

Na systémech používajících PAM, konkrétně pam_env modulu lze proměnné prostředí nastavit v celosystémovém souboru /etc/environment a soubor pro uživatele ~/.pam_environment .

Většina způsobů, jak se přihlásit (ale ne úlohy cron), spustí přihlašovací shell, který načte konfigurační soubory pro celý systém a pro jednotlivé uživatele. Tyto soubory mohou změnit hodnotu PATH , obvykle pro přidání položek, ale někdy i jinými způsoby. Které soubory se čtou, závisí na tom, jaký je přihlašovací shell. Shelly ve stylu Bourne/POSIX čtou /etc/profile a ~/.profile . Bash čte /etc/profile , ale u souboru pro uživatele čte pouze první existující soubor z ~/.bash_profile , ~/.bash_login a ~/.profile . Zsh čte /etc/zshenv , ~/.zshenv , /etc/zprofile , ~/.zprofile , /etc/zlogin a ~/.zlogin . Mnoho relací GUI zařizuje načtení /etc/profile a ~/.profile , ale to závisí na správci zobrazení, na desktopovém prostředí nebo jiném spouštěcím skriptu relace a na tom, jak je každá distribuce nastavila.


Linux
  1. The Bash ‘?

  2. Najděte adresu URL souboru

  3. Jak změnit proměnnou PATH v Linuxu

  1. Proměnná ve skriptu Bash, která si zachovává hodnotu z posledního spuštění

  2. Jak získám absolutní adresář souboru v bash?

  3. Kde je v Ubuntu nastavena proměnná PATH?

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

  2. Jak načíst poslední řádek textového souboru do proměnné pomocí Bash?

  3. Kde je terminálový pohled na tty7