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.