Definição automática de variáveis


Quando o Bash é iniciado, vários arquivos de texto são executados com comandos shell que inicializam o ambiente do shell. Para definir variáveis shell ou de ambiente automaticamente ao iniciar o shell, é possível editar esses scripts de inicialização do Bash.

Os scripts exatos que são executados dependem do fato de o shell ser interativo ou não interativo e um shell de login ou sem login. Um usuário insere comandos diretamente em um shell interativo, enquanto um shell não interativo é executado em segundo plano sem intervenção do usuário, como um script. Um shell de login é invocado quando um usuário faz login localmente pelo terminal ou remotamente pelo protocolo SSH. Um shell sem login é invocado a partir de uma sessão existente, como abrir um terminal na GUI do GNOME.

Para shells de login interativos, os arquivos /etc/profile e ~/.bash_profile configuram o ambiente Bash. Os arquivos /etc/profile e ~/.bash_profile também fornecem os arquivos /etc/bashrc e ~/.bashrc, respectivamente. Para shells interativos que não são de login, somente os arquivos /etc/bashrc e ~/.bashrc configuram o ambiente Bash. Enquanto os arquivos /etc/profile e /etc/bashrc se aplicam a todo o sistema, os arquivos ~/bash_profile e ~/.bashrc são específicos do usuário.

Os shells não interativos invocam todos os arquivos que a variável BASH_ENV define. Essa variável não é definida por padrão.

Para criar uma variável que esteja disponível para todos os shells interativos, edite o arquivo ~/.bashrc. Para aplicar uma variável apenas uma vez depois que o usuário fizer login, defina-a no arquivo ~/.bash_profile.

Por exemplo, para alterar o editor padrão ao fazer login por SSH, você pode modificar a variável EDITOR em seu arquivo ~/.bash_profile:

# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
export EDITOR=nano

A melhor maneira de ajustar as configurações que afetam todas as contas de usuários é adicionando um arquivo com uma extensão .sh que contenha as alterações no diretório /etc/profile.d. Para criar os arquivos no diretório /etc/profile, faça login como o usuário root.

Referências