Olás!
Como comentei anteriormente quero começar falando de shell script. Que é a “linguagem” que mais domino e conheço algumas minucias. Hoje pretendo começar falando de o que é um Shell, pra que serve, como funciona e porque o seu uso deve sempre ser encorajado. Detalhe, tudo que vou falar aqui é valido para linux. O Windows tem um interpretador de comandos tambem (cmd ou command), mas nao tem nem metade do poder de um bash, csh ou ksh (esses nomes eu traduzo mais pra baixo ;)).
Comecemos portanto ok… Bem vindos ao magico mundo do Shell Script! :D
O Shell é a camada mais proxima do hardware que um usuario “comum” pode chegar. Um mapa de “camadas” pode ser feito mais ou menos assim:
Usuario –> Shell –> Kernel –> Hardware
Traduzindo. O usuario entra em contato com o Shell, o shell “fala” com o Kernel e o kernel se vira pra fazer o hardware responder de acordo com o pedido do usuario.
Muito Legal, muito bonito, mas e ae… como uso esse shell?
Simples, facil como roubar doce de uma criança morta (by Nelson). Para poder usar um shell voce precisa:
- Ter um cerebro
- Saber ler/escrever
- Tem um computador
- Ter uma distribuiçao linux instalada.
Bem nao é muito… Realmente é simples. Se quando voce ligar seu computador aparecer uma tela preta escrita Login:, apos voce digitar seu login e senha, provalvemente vao aparecer umas mensagens de boas vindas e algo do tipo:
caio@darkstar:~$ 1
Pronto esse é o Prompt do shell. Vamos desmembra-lo:
- caio : É o nome do usuario.
- @ : Arroba em ingles significa at, que significa em. Ou seja a arroba esta ai para dizer algo como “usuario em maquina”.
- darkstar : Nome da maquina onde voce esta logado.
- : : Separador, sem funcao especifica
- ~ : Diretorio onde voce se encontra no momento. Quando voce se loga, automaticamente voce vai para o diretorio Home do seu usuario (no meu caso /home/caio), e o til(tilde in english) é um apelido para esse diretorio. Caso eu mude para outro diretorio, o nome dele vai aparecer no lugar do ~.
- $ : O cifrao(dollar sign), significa que o usuario utilizando o prompt tem poderes limitados, nao tem privilegios de admin do PC, ou seja, nao é o root. Caso fosse apareceria a # (cerquilha ou sustenido ou tralha ou em ingles number sign).
So ai ja temos muitas informacoes, que por muitas vezes facilitam a vida de quem usa o shell (principalmente a parte do diretorio).
Outras maneiras de acessar o shell sao:
- Teclando Alt+F2 no modo grafico e digitando:
- xterm
- gnome-terminal (pra quem usa gnome)
- konsole (pra quem usa KDE)
- Teclando Ctrl+Alt+F1 (ou F2 ou F3 ou F4 ou F5 ou F6), para ir para um shell puro.
Os shells mais famosos sao:
- bash: Bourne Again Shell. Padrao em quase todas as distros.
- csh: C Shell
- ksh: Korn Shell
- tsh: tcl Shell
- sh: Bourne Shell. Uma das implementacoes mais antigas do shell. O bash foi baseado nele (por isso do again).
E agora José?
Agora que começa a ficar divertido :D. Ha uma infinidade de comandos que podem ser executados num shell. Alguns nativos do bash e outros externos. So pra aquecer:
- ls: Lista os arquivos do diretorio atual
- cd diretorio: Vai para o diretorio especificado
- cat texto: Escreve na tela o conteudo de um arquivo texto
- less texto: Como o cat exibe o conteudo de um arquivo texto, mas com paginacao, busca e outra funcoes. (Para sair aperte q).
Como disse ha uma infinidade de comandos. Um bom lugar pra conhecer alguns é no site FOSSwire . Pretendo cobrir mais comandos em breve.
Naaaaah, pra que ter que aprender algo totalmente novo se tenho o mouse e uma interface grafica. Alem do que o shell é feio!!! :P
Bem. Primeiro, se voce algum dia tiver a felicidade de trabalhar com linux, muito provavelmente voce devera acessar servidores, e muito provavelmente esses servidores nao tem interface grafica.
Outro motivo. Vamos supor que voce instale um novo driver para sua placa de video, e por algum motivo seu modo grafico pare de funcionar… como voce arruma? Modo texto :).
Mas o que mais me faz usar o modo texto: rapidez! Afinal no modo texto ta tudo ali, ao alcance das suas duas maos em mais ou menos 57 teclas. A manipulacao de comandos e arquivos no shell eh muito mais rapida que atraves do mouse. Por exemplo copiar arquivos para outro local. É muito mais simples digitar isso:
$ cp arquivo /home/caio/
Do que ter que ir na pasta do arquivo, copiar ele, ai ir ate a home do usuario, colar o arquivo.
Tambem pelo shell voce tem muito mais controle das coisas. Normalmente informacoes dadas pelo shell sao muito mais detalhadas que por ferramentas graficas.
Alem disso, o shell tem Auto-Complete, que é “coisa de deus”. Por exemplo, supondo que eu tenha um usuario que chama-se apunahasapeemapetilon (piada geek :D) e eu queira copiar um arquivo pro diretorio home dele, eu faco:
$ cp arquivo /home/apun
Eu nem preciso terminar de digitar o login inteiro, é so apertar tab que ele ja completa pra voce:
$ cp arquivo /home/apunahasapeemapetilon
É so dar enter e pronto, Arquivo Copiado :D. Alem disso o auto-complete tambem vale para completar nome de comandos. Depois de um tempo voce vai ficar absurdamente viciado e dependente do tab, enfim ele serve pra mais alguma coisa, alem de identar codigo e mexer com celulas no excel :D
Quanto a ele ser feio… bem, aih nao tem jeito… Mas a beleza esta nos olhos de quem ve nao? Pois bem, beleza e produtividade/controle/rapidez, na balança, qual pesa mais?
Bem, é isso, acabei me extendendo mais do que imaginava. Mas considero o primeiro contato com algo novo o mais importante, portanto quanto mais completo for, acho que é mais facil para assimiliar.
Tioooo, até voce postar denovo eu vou ficar com saudades… Nao tem nada pra eu ler nesse meio tempo???
Tem tem sim. Do post de hoje em diante sempre (ou quase) vou tentar postar um livro sobre o assunto abordado. Tanto para suprir algum deslize ou esquecimento deste que vos escreve, ou para que deseja se aprofundar mesmo.
A dica de hoje é mais voltada a quem quer aprender linux, no geral, nao so shell. Voltada tanto para inciantes quanto pra hard users. E o melhor de tudo, é gratis, free, na faixa, digratis! :D É o ja famoso Guia Foca. Leia, releia, recomende e repasse :D
P-p-por hoje é só p-p-pessoal!
See ya!
1 Pode ser que em algumas distribuições apareça outra coisa ou so $ ou #, que por sinal sao o padrao do unix/linux.
# Rylynn – Andy McKee


Apenas lembrando que os usuários de Windows têm a opção de usarem o ambiente Cygwin (www.cygwin.com), onde poderão ter (quase) todo o poder de um *x shell em uma janela do Windows.
E, quanto à beleza, geralmente o konsole fica bem bonito dentro do KDE, principalmente com transparência e um papel de parede legal =)
[]s
Boa ^^
Gostei do texto, tah bem facil de entender e bem humorado \o/
Otima referencia ao Foca :D hehe
Continue com o bom trabalho \o
flwwwww
Verdade, ia comentar sobre o cygwin, mas acabei esquecendo :P. Obrigado por lembrar ;).
Quanto a dica da transparencia no KDE, vale lembrar que ela tambem vale para o Gnome e pro Enlightenment. Alias se enfiar mais um XGL/AIGLX + Beryl nessa dança, aih que a coisa fica linda msm (assunto para os proximos capitulos :D)!
Belo post, valew pela dica Caio !!
Pena que Shell é só para casa, pena que as pessoas ainda não tenham a conciencia de que para trabalhar segurança e vantagens é muito melhor do que $400,00 de dor de cabeça (Windows)
Grato,
apunahasapeemapetilon
ops: Teaga.txt
Legal o seu texto! Só corrigindo:
Os shells mais famosos são:
…
tsh: tcl Shell
O correto é tclsh e não tsh!
Ah! também faltou citar o maravilhoso zsh, que engloba todas as características do sh, csh, ksh, bash, tcsh, além de uma centena de outras próprias. Vale a pena conhecer o zsh.
;)