Personalizando o BASH

O BASH é uma interface de interação(shell) e também uma linguagem de programação. Existem outras alternativas de shell, mas no GNU/Linux o BASH é o mais utilizado.

Por ser uma linguagem de programação, obiviamente, o BASH possui suporte a variáveis. Essas variáveis podem ser do tipo local ou global.

As variáveis locais são válidas apenas no shell onde foram criadas, não é possível que um ‘processo filho’ utilize as variáveis locais de um ‘processo pai’. A sintaxe para definir uma variável local é:



nomeVariavel='valor'

Para acessar o valor de uma variável é necessário utilizar o sinal ‘$’, veja um exemplo:



nomeVariavel='valor'

echo $nomeVariavel

# imprime valor

É importante salientar, que diferente de outras linguagens, não deve haver espaços entre o nome da variável, o sinal de igual(=) e o valor da variável.

Para tonar uma variável local acessível para ‘processos filhos’ é utilizado o comando ‘export’, assim:



export nomeVariavel='valor'

As variáveis globais são aquelas acessíveis por todos os porcessos, geralmente essas variáveis contém valores com informações e configurações do BASH. Por exemplo:

  • $PS1 Define a string do prompt do BASH
  • $PATH Define o caminho utilizado para encontrar os programas
  • $HOME Define o diretório home do usuário

O comando ‘env’ lista as variáveis globais e o comando ‘set’ lista todas as variáveis.

Para automatizar a configuração de variáveis é possível utilizar alguns arquivos especiais. São eles:

  • /etc/profile
  • /etc/bashrc
  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile
  • ~/.bashrc
  • ~/.bash_logout

O arquivo ‘/etc/profile’ é executado durante o processo de autenticação. O arquivo ‘/etc/bashrc’ é executado quando o BASH é inicializado.

Por exemplo, quando é realizado o login através do terminal com ‘ctrl + alt + F2’, o arquivo ‘/etc/profile’ e o arquivo ‘/etc/bashrc’ serão executados porquê ocorreu o login e o bash foi inicializado. Quando é aberto um shell através da interface gráfica( xterm ), apenas o arquivo ‘/etc/bashrc’ será executado porquê o BASH foi inicializado, mas não houve login.

Os arquivos ‘/etc/profile’ e ‘/etc/bashrc’ são executados para todos os usuários, ou seja, a configuração realizada neles ocorre em todos os usuários do sistema. Em alguns casos é necessário realizar configurações especifcas por usuário, para isso existem os arquivos ‘~/.bash_profile’, ‘~/.bash_login’, ‘~/.profile’, ‘~/.bashrc’ e ‘~/.bash_logout’.

Esses arquivos ficam na pasta home de cada usuário. Na maioria das vezes apenas alguns desses arquivos são necessários e realmente estão na pasta home do usuário. Porém, é acerto afirmar que algum deles estará na pasta home de cada usuário do sistema.

Esses arquivos são executados assim:

Depois do ‘/etc/profile’: Primeiramente é procurado o arquivo ‘~/.bash_profile’, se esse não existir, é procurado o ‘~/.bash_login’, se esse também não existir, é procurado ‘~/.bash_login’. Perceba que apenas um desses arquivos será executado… Quando um desses arquivos é encontrado, ele é executado e o BASH para de procurar.

Depois do ‘/etc/bashrc’: ‘~/.bashrc’

Antes do logout: ‘~/.bash_logout’

Esse artigo termina aqui, mas vale lembrar que no Ubuntu existem algumas diferenças… No Ubuntu existe o arquivo ‘/etc/bash.bashrc’ e o arquivo ‘/etc/environment’. Fica como ‘lição de casa’ pesquisar o que cada um deles faz 🙂

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *