Estou configurando uma nova máquina Linux que recebi de nosso departamento de TI e notei que .profile
não é carregado quando inicio uma nova sessão de terminal. O shell atual é o Bash , embora eu tenha mudado do sh padrão que ele veio. Como faço para carregar .profile
na inicialização?
Eu acessar o shell via SSH : ssh myusername@remotemachine
. Eu tenho privilégios de administrador.
Respostas:
Quando o Bash é iniciado como um shell de logon interativo, um dos arquivos que ele pode processar é
~/.profile
.Quando é iniciado como um shell interativo sem logon, não é. Ele processa
/etc/bash.bashrc
(se esse arquivo ou um arquivo semelhante estiver ativado na sua versão do Bash) e~/.bashrc
.Você pode adicionar o seguinte ao seu
~/.bashrc
(mas tenha cuidado para que os loops ou valores sejam alterados inadvertidamente):fonte
[ -z "$SOME_VAR_SET_IN_PROFILE" ] && . ~/.profile
Depende de como você inicia seu shell. Como já foi dito, um shell de login carregará seu perfil (ele procurará .bash_profile primeiro e depois tentará .profile). Se encontrar um desses, carrega-os. Um shell sem logon (interativo ou não interativo) irá originar .bashrc.
Eu sugiro colocar tudo em .bashrc. A divisão .profile / .bashrc era meio arbitrária e fazia mais sentido nos velhos tempos do UNIX, quando tty não era apenas um nome de dispositivo e significava um TeleType real. Ele foi criado para iniciar certas coisas (como verificar e-mails) no login 'principal' de um servidor, e apenas itens de configuração normais para outros shells. Na maioria dos Linux, você fará logon agora, não está realmente fazendo login em um shell, pois está acessando alguma interface gráfica (KDE, gnome, CDE 'shudder'). Os "processos de login de geração" agora são resolvidos pelo seu gerenciador de sessões. É muito menos relevante agora.
Minha sugestão: faça seu .profile consistir apenas em:
como a primeira linha do .bashrc, proteja-se de coisas estranhas que acontecem ao executar um script bash saltando cedo:
fonte
.profile
deve ser mantido agnóstico. Sugiro configurar.bash_profile
para carregar.profile
e depois carregar.bashrc
. coloque apenas coisas agnósticas.profile
, comoPATH
eLC_*
outras coisas. Coloque o resto.bashrc
.