Bash - O interpretador de comandos

Este artigo é destinado para usuários iniciantes que desejam entender ou saber um pouco mais sobre o principal interpretador de comandos do Linux.

[ Hits: 58.527 ]

Por: Rafael Reuber em 22/04/2006


Bash - O interpretador de comandos



Um comando do Linux é uma palavra especial que representa uma ou mais ações. Um interpretador de comandos também é conhecido como shell ou modo texto. Ele é o programa responsável por interpretar essas instruções enviadas pelo usuário e seus programas para o kernel. No Linux, você poderá ter vários interpretadores de comandos (ao contrário do que acontece no Windows que só tem o command.com).

O interpretador de comandos é que executa comandos lidos do teclado ou de um arquivo executável. É a principal ligação entre o usuário. Entre os programas interpretadores de comandos pode-se destacar o bash, ash, csh, tesh, sh.

Entre eles o mais usado é o bash (Bourne Again Shell), criado por S.R. Bourne. Os comandos podem ser enviados de duas maneiras para o interpretador:

a) Interativa: Os comandos são digitados no teclado pelo usuário e passados ao interpretador de comandos um a um. Neste modo o computador depende do usuário para executar uma tarefa ou o próximo comando.

b) Não-interativa: São usados arquivos de comandos (scripts) criados pelo usuário para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um, e dependendo do término do comando, o script pode checar qual será próximo comando que será executado e dar continuidade ao processamento.

Esse sistema é útil quando temos que digitar por várias vezes seguidas um mesmo comando ou para compilar algum programa complexo.

Uma característica interessante do Bash é que ele possui a função de auto-completar os nomes de comandos que foram digitados via entrada padrão. Isso é feito pressionando-se a tecla TAB; o comando é completado e acrescentando um espaço.

Isso funciona sem problemas para comandos internos; caso o comando não seja encontrado, o Bash emite um beep. Por exemplo, na sua pasta raiz tente digitar cd pro (aperte TAB)+as( aperte TAB)+os( aperte TAB)+d(aperte TAB) e veja como foi fácil digitar um caminho para entrar no local: /proc/asound/oss/devices.

Existem alguns atalhos úteis que podem ser utilizados no bash para facilitar no dia-a-dia no Linux:

Alt+b Move o cursor uma palavra para trás.
Alt+f Move o cursor uma palavra para frente.
Ctrl+a Ir para o início da linha.
Ctrl+c Para o comando.
Ctrl+d Logout.
Ctrl+e Ir para o final da linha.
Ctrl+l Apaga a tela (O mesmo que clear).
Ctrl+r Busca Incremental no histórico de comandos.
Ctrl+t Inverte o caractere sob o cursor com o anterior.
Ctrl+u Apagar do cursor até o começo da linha.
Ctrl+w Apagar do cursor até o começo da palavra.
Ctrl+y Re-insere o último trecho apagado.
Ctrl+z Põe processo em background.


Agora que você já sabe um monte de combinações legais para facilitar sua vida, pode sair queimando o seu teclado no bash. Certo? Mas o bash não para por aí. Você pode repetir um comando no bash sem ter que digitá-lo novamente. Isso é possível utilizando o caractere "!" na frente do comando que você deseja repetir. O bash vai buscar aquele comando no histórico e se lá tiver algo parecido o comando será executado. Veja o exemplo:

# mount /mnt/cdrom
# ls /mnt/cdrom
# umount
# !mount


O comando "!mount" irá informar ao shell (bash) para executar o último comando mount executado, neste exemplo, "mount /mnt/cdrom". Que poder heim? Casa você queira verificar qual o shell que está em uso, digite o comando: "echo $SHELL"; para saber as disponíveis, o comando "cat /etc/shells" lhe informará.

Espero que esse artigo tenha abordado pontos interessantes e agradado o iniciantes. Abraços.

   

Páginas do artigo
   1. Bash - O interpretador de comandos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Neo-PuppyBR - Um Linux novo para computadores antigos

Debian + Squid + Webmin + Outlook (porta 25, 110)

Como Rodar Shell Script e Python via Apache no Linux

Introdução ao Linux: O editor de texto Nano

Introdução aos sistemas operacionais

  
Comentários
[1] Comentário enviado por coffnix em 23/04/2006 - 00:43h

legal, mas eu ainda prefiro o TCSH


flw!!!

[2] Comentário enviado por dark_slack em 23/04/2006 - 09:43h

pow!!
qual a diferença de TCSH para BASH?

[3] Comentário enviado por ls_junior em 23/04/2006 - 11:04h

Só uma correção, ctrl+z pausa o processo, sendo necesário digitar bg para o processo ir para o background.

[4] Comentário enviado por edivan em 23/04/2006 - 11:59h

Mais alguns atalhos uteis:
alt-d deleta do cursor ate o final da palavra
ctrl-k delete do cursor ate o final da linha

[5] Comentário enviado por virgulla em 23/04/2006 - 13:20h

parabéns pelo artigo.

[6] Comentário enviado por dk_millares em 23/04/2006 - 15:05h

Parabéns pelo artigo mesmo
simples e muito interessante
=)

[7] Comentário enviado por fdettoni em 23/04/2006 - 15:51h

Meio fraco, está cheio de artigos e dicas mais completos no site. Mas parabéns pela iniciativa.

[]'s

[8] Comentário enviado por pobrefeliz em 23/04/2006 - 18:12h

ficou show hein "véi"
vou até favoritar ;)

[9] Comentário enviado por fernoliv em 24/04/2006 - 00:00h

Ótimo artigo! Parabéns pela iniciativa.

Abraço,

Fernando.

[10] Comentário enviado por pierry em 24/04/2006 - 02:41h

Boas dicas mas concordo com o fdettoni, deveria ter pesquisado mais um pouco e colocado algo novo.

[11] Comentário enviado por Gilfran em 24/04/2006 - 20:18h

Com certeza foram abordados pontos interessantes Rafael, está de parabéns, espero que seja o primeiro de muitos artigos, o público iniciante em linux ganhou muito com essa explanação.
Abraços Companheiro,
"Gil"

[12] Comentário enviado por coffnix em 24/04/2006 - 20:44h

Atenção!!!!!

$ ctrl + z (processo pausado)
$ bg (joga em background)
$ jobs (ver os processos em background)
$ fg (retorna para um processo em background)


PS: vale tanto para o BASH quanto para o TCSH....

flw

deveria ter essas dicas no artigo!

flw

[13] Comentário enviado por coffnix em 24/04/2006 - 20:50h

axo a mesma coisa q ter um artigo de VI, TCSH, SSH, SCP (associe ao SSH pelo amooor de Deus), EMACS..... totalmente desnecessário.


$ man bash


só isso.....

vc tem os manuais em seu sistema..... deixa de ser preguiçoso e leia! não sabe inglês? aprenda!

flw

[14] Comentário enviado por Psico.Indie em 24/04/2006 - 21:05h

chemonz, diga isso a um usuário iniciante que ele voltará de braços bem abertos para plataformas proprietárias.Meu objetivo não foi criar um artigo arquitentônico e sim algo que seja fácil, útil e simples para um usuário iniciante. Tornar a coisa mais user friendly possível .Obrigado pela diga e pela crítica ;)

[15] Comentário enviado por mlegidio em 25/04/2006 - 06:20h

Ae Psico.... o seu artigo eh valido para iniciantes (e deve ser por isso que ele ta na secao introducao), mas pra usuarios de outros niveis eh um poko cansativo esse tipo de artigo. sua didatica eh boa! continue assim...

[16] Comentário enviado por himura_kenshin em 29/05/2006 - 19:17h

Ctrl+e Ir para o final da linha.

tava querendo saber isso a tempos!

[17] Comentário enviado por vvvdracula em 09/02/2007 - 08:55h

vlz pelo artigo cara
parabéns
;)

[18] Comentário enviado por chuvisco em 06/07/2007 - 13:50h

como eu faco pra saber qual interpretador eu estou usando ??? e como eu faco pra sair do man sem fechar o terminal ???

[19] Comentário enviado por xerxeslins em 12/02/2008 - 15:22h

Olá, quando eu abro um terminal que eu instalei, aparece assim: "bash-3.1#" mas se eu abrir o gnome-terminal aparece assim "xxl@darkstar:"

como eu faço pra aparecer desse jeito ao invés de "bash-3.1#"?

Valeu pelo artigo =)

[20] Comentário enviado por didie em 09/06/2008 - 13:17h

pow queria saber se alguem me ajuda meu pc ao iniciar ta mostrando uma msg assim:''o siguinte arquivo esta fltando ou esta corrompido command.com...digite o nome do interpretador de comandos (ex c:/windows/command.com)

[21] Comentário enviado por virgulla em 09/06/2008 - 16:46h

Tá no lugar errado didie. Por favor respeite o assunto deste artigo, aliás... respeite o conteúdo do site que não tem nada a ver com o seu problema.

[22] Comentário enviado por Lisandro em 04/08/2009 - 14:55h

Legal. Já aprendio mais uma coisinha.

[23] Comentário enviado por IllusionOne em 03/02/2016 - 13:56h

Corrigindo que todos os comandos se baseiam no Ctrl + "letra".
Alt + "letra" sem resultado de comando.

[24] Comentário enviado por anonimoculto em 03/06/2018 - 17:58h


[2] Comentário enviado por dark_slack em 23/04/2006 - 09:43h

pow!!
qual a diferença de TCSH para BASH?


Em analogia, a mesma entre Espanhol e Português. Um interpretador de comandos particular antes de mais nada define uma linguagem particular.
O Bash é o shell padrão da maioria das distribuições hoje; é a "língua franca", na analogia, o "Inglês" dos dias de hoje.

Vale lembrar que, embora os sistemas atuais hoje tenham uma ligação do "sh" para o "bash", quando o bash é invocado com o nome de "sh", ele tenta imitar o mais próximo possível seu predecessor, o sh, perdendo nesta instância suas particularidades. Assim, embora o processamento recaia efetivamente sobre o programa bash, "sh" e "bash" são efetivamente shells diferentes, mesmo nas distribuições modernas, inclusive quanto às particularidades no tocante a arquivos de inicialização diferentes.

Do manual do bash: "If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well."

Espero ter ajudado.

Até.

[25] Comentário enviado por anonimoculto em 14/07/2018 - 20:08h

CTRL-L não é o mesmo que clear, embora os efeitos sejam aparentemente os mesmos. Sabe o porquê? Breve breve publico um artigo praticamente pronto onde apresento a explicação.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts