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.