Quando você faz login em um console no modo de texto ou na rede, seu shell de login é executado. Ele lê alguns arquivos de configuração de todo o sistema e por usuário; aqui estão os mais comuns (se o seu shell não estiver listado aqui, consulte a documentação dele):
- sh, ksh:
/etc/profile
; %código% - bash:
~/.profile
;/etc/profile
, se ausente~/.bash_profile
, se ausente~/.bash_login
. - zsh:
~/.profile
,/etc/zshenv
,/etc/zprofile
,/etc/zlogin
(se interativo);/etc/zshrc
,~/.zshenv
,~/.zprofile
,~/.zlogin
(se interativo) - csh, tcsh:
~/.zshrc
- fish:
~/.login
,/usr/share/fish/config.fish
; ~ / .config / fish / config.fish '
Esses arquivos podem carregar outros arquivos; em particular, muitas distribuições configuram /etc/fish/config.fish
para carregar arquivos em /etc/profile
.
Se algum desses arquivos contiver algo que faça com que o shell saia, você será desconectado sem ter a oportunidade de digitar um comando.
Você pode adicionar uma linha contendo /etc/profile.d
ao topo do arquivo aplicável para ver um rastreamento dos comandos que são executados. (Isso é para shells estilo Bourne; use set -x
em csh, e peixe não tem tal coisa )
Quando você faz login via GUI (em um gerenciador de exibição ), seu shell de login não é executado; no entanto, a maioria dos sistemas organiza para executar sh ou bash e carregar set echo
e /etc/profile
.
Se você está preso porque não consegue fazer login:
- Tente pressionar Ctrl + C durante a sequência de login. Se você acertar no momento certo, ele irá interromper o shell assim que ele estiver começando a carregar o arquivo de perfil e você terá uma linha de comando.
- Executa comandos pela rede.
~/.profile
move umassh mymachine.example.com 'mv .profile no.profile'
problemática para fora do caminho; ele não carrega os arquivos de perfil porque o shell remoto não é um shell de login. (Mas o bash é estranho: ele carrega~/.profile
se seu pai é.bashrc
ourshd
mesmo que o shell não seja interativo.) - Acesse a conta por FTP ou SFTP.