GNU/Linux >> Znalost Linux >  >> Linux

Jaké jsou funkční rozdíly mezi .profile .bash_profile a .bashrc

Ř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.


Linux
  1. Rozdíl mezi ~/.profile a ~/.bash_profile?

  2. Jaký je rozdíl mezi `chattr +i FILE` a `chmod -w FILE`?

  3. Jaké jsou rozdíly mezi rdesktop a xfreerdp?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. MySQL vs. MariaDB:Jaké jsou hlavní rozdíly mezi nimi

  3. Jaké jsou rozdíly mezi subdoménou, zaparkovanou doménou a doplňkovou doménou?

  1. Jaké jsou základní rozdíly mezi mainstreamovými *nix shelly?

  2. Jaké jsou hlavní rozdíly mezi Bsd a Gnu/linux Userland?

  3. Linux – Jaké jsou hlavní rozdíly mezi operačními systémy založenými na Bsd a Linux?