Řešení 1:
.bash_profile a .bashrc jsou specifické pro bash , zatímco .profile je čteno mnoha shelly bez jejich vlastních konfiguračních souborů specifických pro shell. (.profile byl používán původním Bourne shellem.) .bash_profile nebo .profile je čteno přihlašovacími shelly spolu s .bashrc; subshells pouze pro čtení .bashrc . (Mezi řízením úloh a moderními okenními systémy, .bashrc sám o sobě moc nezvykne. Pokud používáte screen nebo tmux , obrazovky/okna obvykle spouštějí dílčí shelly namísto přihlašovacích shellů.)
Myšlenka za tím byla, že jednorázové nastavení provedl .profile (nebo jeho verze specifická pro shell) a věci pro jednotlivé shelly od .bashrc . Například obecně chcete načíst proměnné prostředí pouze jednou za relaci místo toho, abyste je narušili pokaždé, když spustíte subshell v rámci relace, zatímco vždy chcete své aliasy (které se nešíří automaticky jako proměnné prostředí).
Další důležité konfigurační soubory shellu:
/etc/bash_profile (záložní /etc/profile ) se čte před .profile uživatele pro konfiguraci celého systému a podobně /etc/bashrc v podskořápkách (pro tento neexistuje žádná záložní). Mnoho systémů včetně Ubuntu také používá /etc/profile.d adresář obsahující skriptlety shellu, které jsou . (source )-ed z /etc/profile; fragmenty jsou zde pro jednotlivé shelly s *.sh aplikovat na všechny shelly kompatibilní s Bourne/POSIX a další rozšíření vztahující se na tento konkrétní shell.
Řešení 2:
.profil
.profile je pro věci, které se konkrétně netýkají Bash , jako jsou proměnné prostředí PATH a přáteli a měl by být kdykoli k dispozici.
Například .profile by měl být také načten při zahájení relace grafické plochy.
.bashrc
.bashrc slouží ke konfiguraci interaktivního použití Bash, jako je Bash aliases , nastavení vašeho oblíbeného editor , nastavením Bash prompt , atd.
.bash_profile
.bash_profile slouží k zajištění toho, aby obě věci v .profile a .bashrc jsou načteny pro login shells .
Například .bash_profile může to být něco jednoduchého jako
. ~/.profile
. ~/.bashrc
Pokud byste vynechali .bashrc , pouze .profile bude načten.
Řešení 3:
Podle manuálové stránky bash .bash_profile se provádí pro přihlašovací shelly, zatímco .bashrc se provádí pro interaktivní nepřihlašovací shelly.
Co je tedy přihlašovací nebo nepřihlašovací shell?
Když se přihlašujete (zadejte uživatelské jméno a heslo) přes konzoli, buď sedíte u počítače, nebo vzdáleně přes ssh:.bash_profile se provede pro konfiguraci vašeho shellu před úvodním příkazovým řádkem. Pokud jste se však již přihlásili do počítače a otevřeli jste nové okno terminálu (xterm) v Gnome nebo KDE, pak .bashrc se provádí před příkazovým řádkem okna. .bashrc se také spustí, když spustíte novou instanci bash zadáním /bin/bash v terminálu.
Výjimkou z pokynů pro okna terminálu je Terminal.app pro Mac OS X, která ve výchozím nastavení spouští přihlašovací shell pro každé nové okno terminálu a volá .bash_profile místo .bashrc . Ostatní emulátory terminálu GUI mohou dělat totéž, ale většina to nedělá.
Více zde.