Qual é a diferença entre ~/.profilee ~/.bash_profile?
Qual é a diferença entre ~/.profilee ~/.bash_profile?
Respostas:
O .profilefoi a configuração do perfil original para o shell Bourne (aka, sh). bash, sendo um shell compatível com Bourne, ele será lido e utilizado. Por .bash_profileoutro lado, é lido apenas por bash. Destina-se a comandos incompatíveis com o shell Bourne padrão.
.profile. Por exemplo, bashe kshmas não cshou tcsh. E zshfornece ambos she cshcompatibilidade para que ele leia ambos .profilee .login, assim como zsharquivos de pontos específicos.
O original foi shoriginado .profilena inicialização.
bashtentará originar .bash_profileprimeiro, mas se isso não existir, ele origina .profile1 .
Observe que, se bashiniciado como sh(por exemplo, /bin/shum link para /bin/bash) ou iniciado com o --posixsinalizador, ele tenta emular she apenas lê .profile.
Notas de rodapé:
.bash_profile, .bash_login,.profileVeja também:
Você sabe que existem muitos shells no mundo UNIX, mas a maioria deles é:
/bin/sh(Inventor: Stephen Bourne)/bin/bash(Inventor: Brian Fox, sob o projeto GNU) (shell poderoso)/bin/csh(Inventor: Bill Joy, Inventor da pilha TCP / IP)/bin/ksh(Inventor: David Korn no Bell Labs)/bin/zsh(Escudo poderoso)/bin/tcsh(derivado de Shell C)/bin/dash(Derivado da shell Almquist (ash no projeto NetBSD)) (Dash nascido de lenny)Mas sua pergunta é sobre ~/.bash_profilee ~/.profile:
Quando você faz login em uma máquina UNIX, ela é redirecionada para o diretório inicial, de acordo com o shell escolhido por um administrador no último campo /etc/passwd, como:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
Seu shell é executado e, por padrão, cada shell possui um arquivo definido para logine logout. Quando você logar em bash, ~/.profileé executado e quando você logout, ~/.bash_logouté executado.
~/.bash_historyO arquivo mantém seu comando de entrada.
~/.login Quando você entra~/.logout Quando você se desconecta~/.tcshrcmesmo que ~./bashrcno bashVocê pode definir variável $histfilecomo nome do arquivo de histórico e variável $historycomo número de comandos a serem mantidos.
Na verdade, é um shell poderoso e, se você tiver tempo livre, certifique-se de migrar para ele.
Exceto em outros shell, o shell Z tem muitos arquivos de configuração e arquivos de inicialização, apenas escrevo:
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
Nota: se $ZDOTDIRnão estiver definido, ajuste para casa.
Nota: O shell TENEX C foi bifurcado no shell C. C shell suporta por BSD. Se você está familiarizado com a programação em linguagem C, deve se sentir confortável, pois sua sintaxe é semelhante.
~/.login
~/.cshrc
~/.logout
Nota: csh é antigo. Use o tcsh.
~/.profileÉ uma concha muito poderosa e nasceu no projeto GNU e bifurcada pela Bourne Shell.
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
Quando você faz login, o bash é executado ~/.bash_profilee ~/.bash_profileexecutado ~/.bashrc. Na verdade, ~/.bashrcnão é um arquivo de inicialização do bash, porque o bash não o executa.
Está morto. Mesmo quando você usa man sh, você vê o manual de dash. [Nota do editor: o pouco dashse aplica apenas a distribuições baseadas no Debian e no Debian como o Ubuntu.]
~/.bash_profiletrabalhar sob bash, mas ~/.profiletrabalhar sob Bourne e Korn shell.
Um shell de logon é simplesmente um shell no qual você pode fazer o login via ssh ou no console. Um shell sem login é um shell em que alguém também não pode entrar. Um shell sem login é frequentemente usado por programas / serviços do sistema.
Quanto ao seu terceiro ponto. É verdade que .bashrcé executado em cada instância do shell. No entanto, .bash_profileé usado apenas no login. Assim, o motivo dos dois arquivos separados.
.profileé para itens que não estão especificamente relacionados ao Bash, como as variáveis de ambiente $ PATH, que também devem estar disponíveis a qualquer momento. .bash_profileé especificamente para shells de login ou shells executados no login.