Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Linux    

Utilizando o bash


Comentários  6
Visualizações  
31,178

O bash é a shell mais popular do Linux. É ele que vai servir como intermediador entre o usuário e o sistema operacional e seus comandos. Este tutorial é um bom ponto de partida para as suas principas funções!

Utilizando o bash

Após o login de um usuário no modo texto, o mesmo entra em uma shell. Uma shell é um interpretador de comandos: ela lê o que o usuário digita, interpreta e executa as aplicações de acordo com o que você executou.

Existem diversos tipos de shells, como o sh, bash, tcsh, ksh, tclsh, entre outras. Neste treinamento estaremos trabalhando com a shell GNU bash (GNU Bourne-Again SHell), pois ela é a mais utilizada por padrão em todas as distribuições Linux.

Características dos arquivos no Linux

Nos nomes dos arquivos, os caracteres MAIÚSCULOS e minúsculos fazem diferença. Isso quer dizer que por exemplo: os arquivos PROGRAMA.tar.gz e programa.tar.gz são dois arquivos completamente diferentes. Ou então: ls é um comando e LS é um erro.

No Linux, não existem extensões especiais para programas executáveis (como .exe, .com). Ao invés disso, os arquivos têm permissão de executável ou não-executável. Mais detalhes no

Além de arquivos comuns, no Linux existem os chamados links simbólicos, que são uma espécie de atalhos. Mais detalhes no comando ln.

Executando comandos

Como um interpretador de comandos, o que o bash sabe fazer de melhor é: executar comandos! Assim como os prompts de comando da maioria dos sistemas operacionais, para executar um comando, o bash lê o que o usuário digitou e procura em diretórios pré-definidos (PATH) se aquele comando existe. Caso o programa exista e o arquivo for executável, o bash irá executá-lo.

Por exemplo, para executar o comando que lista arquivos no diretório atual:

$ ls

Quando o usuário digitou ls, o bash procurou nos diretórios do PATH e achou um comando chamado ls no diretório /bin, então o executou. Agora se um programa executável estiver fora do PATH, só será possível executá-lo especificando seu caminho completo:

$ /opt/programa/nonpath

E se um arquivo executável estiver no diretório atual, executamos o comando:

$ ./programa

Para sair da shell (logout), aperte CTRL+D ou execute o comando exit.

Completação por Tab

A completação por Tab é um recurso que permite completar comandos ou nomes de arquivos mais rapidamente, sem precisar digitar todos os caracteres. Para utilizar, basta apenas digitar as primeiras letras do comando ou arquivo e apertar a tecla Tab. O bash irá completar o nome do comando ou arquivo para você automaticamente.

Caso haja mais de um arquivo começando com as letras que você digitou, apertando Tab mais uma vez fará com que o bash apresente todas as opções disponíveis. Por exemplo, se você quiser saber todos os comandos que começam com as letras mo, execute na shell:

$ mo
module-assistant  montage           mount             mozilla
mogrify           more              mountpoint        mozilla-firefox

Imagine, se você simplesmente apertar Tab duas vezes sem ter digitado nada, o bash irá lhe apresentar todos os comandos disponíveis no sistema!

Configurando o PATH

Quando falamos em PATH, queremos dizer se um determinado diretório está acessivel sempre, de qualquer lugar, para executar comandos. Quando um comando está dentro de um diretório PATH, quer dizer que de qualquer lugar você poderá executá-lo.

Se for necessário mudar o PATH para adicionar um diretório de algum programa que você instalou, basta apenas manipular a variável do bash chamada de $PATH. Para ver os atuais diretórios que estão no PATH da sua sessão atual, digite o seguinte comando:

$ echo $PATH
/home/coletivo/bin:/usr/local/bin:/usr/bin:/bin

Acima podemos ver que os diretórios no PATH são separados por dois pontos. Então para adicionar um novo diretório no PATH, basta reconfigurar a variável da seguinte forma:

$ PATH=$PATH:/novodiretorio

No comando acima, atribuímos à variável $PATH o valor dela mesma, adicionando :/novodiretorio. Agora o /novodiretorio também estará no PATH.

Procurando por comandos já digitados

Uma boa forma de salvar tempo é utilizar comandos já digitados ao invés de digitá-los novamente. Por padrão o bash implementa um histórico com uma lista de todos os comandos que você digitou. Este histórico fica no arquivo .bash_history, dentro do diretório HOME de cada usuário.

Para procurar por um comando digitado anteriormente, comece apertando a sequência de teclas CTRL+R. Quando feito isso, o prompt muda, indicando “(reverse-i-search)`’:”. Comece a digitar o comando e ele vai tentando achar para você. Se ele achou um comando e você quer procurar por outros comandos que têm a mesma palavra, continue apertando CTRL+R para visualizar o que ele achou a mais. Por final, quando encontrar o comando desejado, aperte ENTER para executá-lo, ou a seta para o lado para editá-lo antes de pressionar ENTER.

Outro jeito de visualizar o histórico de comandos é executar:

$ history

E o bash lhe mostrará uma lista de comandos precedidos pelo número de sequência do comando, ou seja, a ordem com que ele foi executado. Escolha uma linha, grave o número dessa linha e então para re-executar o comando, digite:

$ !numero

Por padrão o bash guarda 500 comandos em seu histórico. Para aumentar ou diminuir este limite, basta apenas mudar o valor da variável $HISTFILESIZE para a quantidade de comandos desejada:

$ HISTFILESIZE=2000

No caso acima mudamos a quantidade de comandos guardados no histórico para 2000.

Apelidos de comandos

Os aliases, ou apelidos, são um jeito fácil de criar atalhos para os comandos mais usados. Por exemplo, se eu tenho um comando “comando_realmente_grande -lZdsW” mas não quero ficar digitando tudo isto, posso criar um alias chamado “comando” da seguinte forma:

$ alias comando=”comando_realmente_grande -lZdsW”

Então toda vez que eu digitar comando, vai ser a mesma coisa que digitar todo este comando e seus parâmetros. Para visualizar todos os apelidos configurados para a sua atual sessão de shell, execute:

$ alias

Gerenciamento de tarefas

O bash oferece um gerenciamento de tarefas simples, que permite os usuários, em uma mesma shell, executar vários programas ao mesmo tempo, aproveitando os recursos de multi-tarefa do sistema operacional.

Quando um usuário executa um comando, dizemos que ele está no “plano ativo” (foreground), ou seja, está aparecendo na tela e o usuário pode interagir com ele. Além do plano ativo, existe o plano de fundo (background), onde um programa fica funcionando, mas não mostra na tela e nem interage com o usuário.

Por exemplo, comece executando uma aplicação que ficará funcionando no plano ativo:

$ man bash

Você pode interagir pela página de manual normalmente. Agora vamos suspender este programa e deixá-lo sendo executado no plano de fundo. Para isso, comece apertando a combinação de teclas CTRL+Z (Suspender). O bash irá sair da tela da página de manual e voltar ao prompt, com a seguinte mensagem:

[1]+  Stopped                 man bash

Isto significa que o programa 1 desta shell foi suspendido. Para mandá-lo para o plano de fundo, utilize o comando bg:

$ bg 1

Quando suspendemos o programa, ele parou completamente de funcionar e esperou uma ação do usuário. O comando bg fez com que o programa voltasse a funcionar, mas em plano de fundo. Para trazer o programa de volta ao plano ativo, utilize o comando fg:

$ fg 1

Assim a tela da página de manual irá aparecer novamente, do jeito que você a deixou. Você pode também executar múltiplos processos dessa forma. Agora se quisermos executar um comando mandando-o diretamente para o plano de fundo, ao invés do plano ativo, basta acrescentar o sinal “&” no final do comando, assim:

$ man bash &

Para listar os programas que estão suspendidos ou em plano de fundo, digite:

$ jobs

Arquivos de configuração

Muitas das coisas que aprendemos sobre o bash servem apenas para a sessão atual do usuário. Em outras palavras, se você criou apelidos para comandos ou mudou o tamanho do histórico de comandos, quando você efetuar o logoff tudo se perderá. No próximo login, você terá que fazer tudo novamente…

…A não ser que você utilize os arquivos de configuração e inicialização do bash.

O conteúdo do arquivo /etc/profile contém todos os comandos padrões para todos os usuários do sistema, uma vez que iniciaram uma sessão de login na shell. Nele podemos ver o PATH e o visual do prompt sendo configurados, por exemplo.

Já o conteúdo do arquivo .bash_profile dentro do diretório HOME do usuário contém os comandos de login para o usuário dono do HOME correspondente.

Em outras palavras, se você quiser deixar suas modificações (como variáveis e apelidos) permanentes, basta colocar os comandos dentro destes arquivos e os comandos serão re-executados toda vez que você iniciar uma shell interativa.


Comentários  6
Visualizações  
31,178


TagsLeia também

Apaixonado por Linux e administração de sistemas. Viciado em Internet, servidores, e em passar conhecimento. Idealizador do Devin, tem como meta aprender e ensinar muito Linux, o que ele vem fazendo desde 1997 :-)


Leia também



Comentários

6 respostas para “Utilizando o bash”

  1. grazy disse:

    kkkkkkkkkk to fora

  2. slowtux disse:

    Este artigo ficou muito bom. Obrigado.

  3. Felipe Machado disse:

    Excelente didática, cara. Parabéns!

  4. Ansol disse:

    blá blá blá, não ajudou em nada na hora de colar na prática de sistemas operacionais

Deixe uma resposta