Vamos programar em bash?

Primeiramente temos que saber o que é esse tal de bash? O bash é um interpretador de comandos, uma espécie de tradutor entre o sistema operacional e o usuário, normalmente conhecido como shell. Permite a execução de seqüências de comandos direto no prompt do sistema ou escritas em arquivos de texto, conhecidos como shell scripts. Foi liberado em 1989 e é mantido pelo projecto GNU.

Exemplo simples de um shell script em bash:

!/bin/bash
#indica o interpretador dos comandos
# trechos precedidos por '#" são ignorados!
echo "Olá {$USER}!"

Não há muito sentido em fazer um shell script contendo um só comando, mas este é um exemplo bem básico. No Linux o script tem que ter permissão de execução, isto pode ser feito com o comando chmod. Para exibir um manual do bash ou mesmo do comando ‘chmod’, digite na linha de comando ‘man bash’ ou ‘man chmod’ (sem aspas).

Histórico do Bash

O Bash é o shell desenvolvido para o projecto GNU, da Free Software Foundation, que se tornou padrão nas várias distribuições Linux. Pode ser usado também com outros sistemas operacionais, como o Unix; há versões para o sistema Microsoft Windows₢ (como o do projeto Cygwin), algumas com as bibliotecas necessárias embutidas no binário (no caso do winbash; o que torna desnecessário instalar o ambiente POSIX inteiro para ter apenas o bash). É compatível com o Bourne shell (sh), incorporando os melhores recursos do C shell (csh) e do Korn Shell (ksh).

Arquivos de Ambiente

Você pode customizar seu ambiente do bash utilizando alguns arquivos como:

 

  •     .bash_profile
  •     .bashrc
  •     /etc/profile

.bash_profile

Este arquivo fica localizado no diretório pessoal de cada usuário. É executado por shells que usam autenticação (nome e senha). Ele contém comandos que são executados para o usuário no momento do login no sistema após o /etc/profile. Note que este é um arquivo oculto pois tem um “.” no inicio do nome.

Por exemplo, colocando a linha abaixo cria um apelido para o comando “ls –color=auto” usando ls, assim toda vez que você digitar ls será mostrada a listagem colorida:

alias ls='ls --color=auto'

.bashrc

Possui as mesmas características do .bash_profile mas é executado por shells que não requerem autenticação (como uma seção de terminal no X).

Os comandos deste arquivo são executados no momento que o usuário inicia um shell com as características acima. Note que este é um arquivo oculto pois tem um “.” no inicio do nome.

/etc/profile

Este arquivo contém comandos que são executados para todos os usuários do sistema no momento de autenticação. Somente o usuário root pode ter permissão para modificar este arquivo.

Este arquivo é lido antes do arquivo de configuração pessoal de cada usuário (.profile(para usuário root) e .bash_profile). Pode ser utilizado caso seja necessário fazer alguma personalização do ambiente para todos os usuarios que utilizam o computador.

Quando é carregado através de um shell que requer autenticação (nome e senha), o bash procura estes arquivos em sequência e executa os comandos contidos, caso existam:

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

Interrompe a pesquisa assim que localiza o primeiro arquivo no diretório do usuário (usando a sequência acima). Por exemplo, se tem o arquivo ~/.bash_login e ~/.bash_profile no seu diretório de usuário, processará o /etc/profile e após isto o ~/.bash_profile, mas nunca processará o ~/.bash_login (a menos que o ~/.bash_profile seja apagado ou renomeado).

Caso o bash seja carregado através de um shell que não requer autenticação (um terminal no X, por exemplo), o seguinte arquivo é executado: ~/.bashrc.

Observação: Nos sistemas Debian, o perfil do usuário root está configurado no arquivo /root/.profile. A razão disto é porque se o bash for carregado através do comando sh, fará a inicialização clássica deste shell ao ler primeiro o arquivo /etc/profile e após o ~/.profile e ignora o .bash_profile e o .bashrc que são arquivos de configuração usados somente pelo Bash. Exemplo, ao inserir a linha mesg y no arquivo /etc/profile permite que todos os usuários do sistema recebam pedidos de ‘talk’ de outros usuários. Caso um usuário não quiser receber pedidos de ‘talk’, basta somente adicionar a linha mesg n no arquivo pessoal .bash_profile

 

Deixe uma resposta