it-swarm-eu.dev

Jaký je rozdíl mezi ~ / .profile a ~ / .bash_profile?

Jaký je rozdíl mezi ~/.profile a ~/.bash_profile?

71
lakesh

The .profile byla původní konfigurace profilu pro Bourne Shell (a.k.a., sh). bash, protože je společností Bourne kompatibilní, Shell ji přečte a použije. The .bash_profile na druhé straně čte pouze bash. Je určen pro příkazy, které nejsou kompatibilní se standardním Bourne Shell.

53
bahamat

Původní sh získalo při spuštění .profile.

bash se nejprve pokusí zdroj .bash_profile, ale pokud to neexistuje, bude zdroj .profile1.

Pokud je bash spuštěno jako sh (např. /bin/sh Je odkaz na /bin/bash) Nebo je spuštěno s příznakem --posix, snaží se napodobit sh a přečte pouze .profile.

Poznámky pod čarou:

  1. Vlastně první z .bash_profile, .bash_login, .profile

Viz také:

27
Mikel

Víte, že ve světě UNIX existuje mnoho granátů, ale většina z nich je:

  • Bourne Shell: /bin/sh (Vynálezce: Stephen Bourne)
  • BASH (Bourne Again Shell): /bin/bash (Inventor: Brian Fox, pod GNU) (silný Shell)
  • C Shell: /bin/csh (Inventor: Bill Joy, vynálezce zásobníku TCP/IP)
  • Korn Shell: /bin/ksh (Vynálezce: David Korn pod Bell Labs)
  • Z Shell: /bin/zsh (Výkonná skořápka)
  • TENEX C Shell: /bin/tcsh (odvozeno od C Shell)
  • Debian Almquist Shell: /bin/dash (Odvozeno od Almquist Shell (popel v projektu NetBSD)) (Dash narozený z lenny)

Ale vaše otázka je o ~/.bash_profile a ~/.profile:

Když se přihlásíte do počítače UNIX, přesměruje se do vašeho domovského adresáře podle prostředí Shell, které vybral správce v posledním poli /etc/passwd jako :

mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash

Vaše prostředí se spustí a ve výchozím nastavení má každý soubor prostředí soubor pro login a logout. Když se přihlásíte na bash, ~/.profile je spuštěno a když logout, ~/.bash_logout je spuštěn. ~/.bash_history file zachovává váš vstupní příkaz.

Inicializační soubor v každém prostředí

TENEX C Shell

  • ~/.login Při přihlášení
  • ~/.logout Když se odhlásíte
  • ~/.tcshrc stejný jako ~./bashrc v bash

Můžete nastavit proměnnou $histfile jako název souboru historie a proměnné $history jako počet příkazů k zachování.

Z Shell

Opravdu je to mocný Shell a pokud máte volný čas, ujistěte se, že do něj migrujete.

Kromě jiných Shell, Z Shell má mnoho konfiguračních souborů a inicializačních souborů, jen píšu:

$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin

Poznámka: pokud $ZDOTDIR unset, home set.

C Shell

Poznámka: TENEX C Shell byl vidličkou od C Shell. C Shell podporuje BSD. Pokud znáte programování v jazyce C, měli byste být příjemní, protože jeho syntaxe je podobná.

~/.login
~/.cshrc
~/.logout

Poznámka: csh je starý. Místo toho použijte tcsh.

Korn Shell

  • ~/.profile
  • rc file: user define
  • logout file: N/A

Bourne Again Shell (BASH)

Je to velmi mocný Shell a narodil se v rámci projektu GNU) a viděl Bourne Shell.

~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history

Při přihlášení se spustí bash ~/.bash_profile a ~/.bash_profile běží ~/.bashrc. Vskutku ~/.bashrc není inicializační soubor bash, protože bash jej nespustí.

Bourne Shell

Je mrtvý. I když používáte man sh, uvidíte manuál dash. [Poznámka editora: bit o dash se vztahuje pouze na distribuce Debianu a Debianu jako Ubuntu.]

Tvoje odpověď

~/.bash_profile pracovat pod bash, ale ~/.profile pracovat pod Bourne a Korn Shell.

11
PersianGulf

Přihlašovací prostředí je jednoduše prostředí, ve kterém se můžete přihlásit jako ssh nebo na konzoli. Shell bez přihlášení je Shell, do kterého se také nemůže přihlásit někdo. Shell bez přihlášení je často používán programy/systémovými službami.

Pokud jde o váš třetí bod. Je to pravda .bashrc se provádí na každé instanci Shell. Nicméně .bash_profile se používá pouze při přihlášení. To je důvod pro dva oddělené soubory.

.profile je pro věci, které se nevztahují konkrétně k Bash, stejně jako proměnné prostředí $ PATH by měly být k dispozici kdykoli. .bash_profile je konkrétně pro přihlašovací skořápky nebo skořápky provedené při přihlášení.

5
anzenketh