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.
Se estiver errado, corrija-me ... .profile é usado por qualquer shell compatível com Bourne, enquanto .bash_profile é usado apenas pelo bash .. estou certo?
lakesh
2
@lakesh: Sim, qualquer shell que for compatível com bourne será lido .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.
bahamat
Existe algum tutorial para ler essas coisas do bash e do ksh? nunca ouviu falar destes antes ...
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é:
Na verdade, o primeiro de .bash_profile, .bash_login,.profile
Impressionante .. Obrigado ... especialmente para as referências ...
lakesh
10
Você sabe que existem muitos shells no mundo UNIX, mas a maioria deles é:
Bourne shell : /bin/sh(Inventor: Stephen Bourne)
BASH (Bourne Again Shell): /bin/bash(Inventor: Brian Fox, sob o projeto GNU) (shell poderoso)
Shell C : /bin/csh(Inventor: Bill Joy, Inventor da pilha TCP / IP)
Korn shell : /bin/ksh(Inventor: David Korn no Bell Labs)
Escudo Z : /bin/zsh(Escudo poderoso)
Shell TENEX C : /bin/tcsh(derivado de Shell C)
Shell Debian Almquist : /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:
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.
Arquivo de inicialização em cada shell
Concha TENEX C
~/.login Quando você entra
~/.logout Quando você se desconecta
~/.tcshrcmesmo que ~./bashrcno bash
Você pode definir variável $histfilecomo nome do arquivo de histórico e variável $historycomo número de comandos a serem mantidos.
Z shell
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:
Nota: se $ZDOTDIRnão estiver definido, ajuste para casa.
C shell
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.
Korn Shell
~/.profile
arquivo rc: definido pelo usuário
arquivo de logout: N / A
Bourne Novamente SHELL (BASH)
É uma concha muito poderosa e nasceu no projeto GNU e bifurcada pela Bourne Shell.
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.
Casca de Bourne
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.]
sua resposta
~/.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.
.profile é para coisas que não estão especificamente relacionadas 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.
precisa saber é o seguinte
acrescentar que declaração para a sua resposta .... cos que o que é a minha pergunta é ....
Respostas:
O
.profile
foi 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_profile
outro lado, é lido apenas porbash
. Destina-se a comandos incompatíveis com o shell Bourne padrão.fonte
.profile
. Por exemplo,bash
eksh
mas nãocsh
outcsh
. Ezsh
fornece ambossh
ecsh
compatibilidade para que ele leia ambos.profile
e.login
, assim comozsh
arquivos de pontos específicos.O original foi
sh
originado.profile
na inicialização.bash
tentará originar.bash_profile
primeiro, mas se isso não existir, ele origina.profile
1 .Observe que, se
bash
iniciado comosh
(por exemplo,/bin/sh
um link para/bin/bash
) ou iniciado com o--posix
sinalizador, ele tenta emularsh
e apenas lê.profile
.Notas de rodapé:
.bash_profile
,.bash_login
,.profile
Veja também:
fonte
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_profile
e~/.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:Seu shell é executado e, por padrão, cada shell possui um arquivo definido para
login
elogout
. Quando você logar em bash,~/.profile
é executado e quando vocêlogout
,~/.bash_logout
é executado.~/.bash_history
O arquivo mantém seu comando de entrada.Arquivo de inicialização em cada shell
Concha TENEX C
~/.login
Quando você entra~/.logout
Quando você se desconecta~/.tcshrc
mesmo que~./bashrc
no bashVocê pode definir variável
$histfile
como nome do arquivo de histórico e variável$history
como número de comandos a serem mantidos.Z shell
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:
Nota: se
$ZDOTDIR
não estiver definido, ajuste para casa.C shell
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.
Nota: csh é antigo. Use o tcsh.
Korn Shell
~/.profile
Bourne Novamente SHELL (BASH)
É uma concha muito poderosa e nasceu no projeto GNU e bifurcada pela Bourne Shell.
Quando você faz login, o bash é executado
~/.bash_profile
e~/.bash_profile
executado~/.bashrc
. Na verdade,~/.bashrc
não é um arquivo de inicialização do bash, porque o bash não o executa.Casca de Bourne
Está morto. Mesmo quando você usa
man sh
, você vê o manual dedash
. [Nota do editor: o poucodash
se aplica apenas a distribuições baseadas no Debian e no Debian como o Ubuntu.]sua resposta
~/.bash_profile
trabalhar sob bash, mas~/.profile
trabalhar sob Bourne e Korn shell.fonte
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.fonte