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.
~/.profilemove 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~/.profilese seu pai é.bashrcourshdmesmo que o shell não seja interativo.) - Acesse a conta por FTP ou SFTP.