Escolar Documentos
Profissional Documentos
Cultura Documentos
Papo de Botequim
Voc no agenta mais aquele seu porque, em ingls, Shell significa con-
cha, carapaa, isto , fica entre o u-
amigo usurio de Linux enchendo o surio e o sistema operacional, de
forma que tudo que interage com
seu saco com aquela histria de que o o sistema operacional, tem que
passar pelo seu crivo.
sistema fantstico e o Shell uma
D
ilogo entreouvido em uma mesa O Linux, por definio, um sistema
de um botequim, entre um multiusurio no podemos nunca nos
usurio de Linux e um empur- esquecer disto e para permitir o acesso
rador de mouse: O ambiente Linux de determinados usurios e barrar a en-
Quem o Bash? Para voc entender o que e como fun- trada de outros, existe um arquivo cha-
o filho caula da famlia Shell. ciona o Shell, primeiro vou te mostrar mado /etc/passwd, que alm de fornecer
P cara! Ests a fim de me deixar como funciona o ambiente em camadas dados para esta funo de leo-de-ch-
maluco? Eu tinha uma dvida e voc do Linux. D uma olhada no grfico cara do Linux, tambm prov informa-
me deixa com duas! mostrado na Figura 1. es para o incio de uma sesso (ou
No, maluco voc j h muito tem- Neste grfico podemos ver que a ca- login, para os ntimos) daqueles que
po: desde que decidiu usar aquele sis- mada de hardware a mais profunda e passaram por esta primeira barreira. O
tema operacional que voc precisa formada pelos componentes fsicos do ltimo campo de seus registros informa
reiniciar dez vezes por dia e ainda por seu computador. Em torno dela, vem a ao sistema qual o Shell que a pessoa
cima no tem domnio nenhum sobre camada do kernel que o cerne do vai receber ao iniciar sua sesso.
o que esta acontecendo no seu com- Linux, seu ncleo, e quem pe o hard- Lembra que eu te falei de Shell, fa-
putador. Mas deixa isso pr l, pois ware para funcionar, fazendo seu geren- mlia, irmo? Pois , vamos comear a
vou te explicar o que Shell e os com- ciamento e controle. Os programas e entender isto: o Shell a conceituao
ponentes de sua famlia e ao final da comandos que envolvem o kernel, dele de concha envolvendo o sistema opera-
nossa conversa voc dir: Meu Deus se utilizam para realizar as tarefas para cional propriamente dito, o nome
do Shell! Porque eu no optei pelo que foram desenvolvidos. Fechando tudo genrico para tratar os filhos desta idia
Linux antes?. isso vem o Shell, que leva este nome que, ao longo dos muitos anos de exis-
maiores galhos. Seu nome pipe (que $ echo "Existem who | wc -l U $ (pwd ; cd /etc ; pwd)
em ingls significa tubo, j que ele cana- usuarios conectados" /home/meudir
liza a sada de um comando para a Existem who | wc -l usuarios U /etc
entrada de outro) e sua representao a conectados $ pwd
| (barra vertical). /home/meudir
Hi! Olha s, no funcionou! mesmo,
$ ls | wc -l no funcionou e no foi por causa das Quequeiiisso minha gente? Eu estava
21 aspas que eu coloquei, mas sim por que no /home/meudir, mudei para o /etc,
eu teria que ter executado o who | wc -l constatei que estava neste diretrio com
O comando ls passou a lista de arquivos antes do echo. Para resolver este proble- o pwd seguinte e quando o agrupamento
para o comando wc, que quando est ma, tenho que priorizar a segunda parte de comandos terminou, eu vi que conti-
com a opo -l conta a quantidade de li- do comando com o uso de crases: nuava no /etc/meudir!
nhas que recebeu. Desta forma, pode- Hi! Ser que tem coisa do mgico
mos afirmar categoricamente que no $ echo "Existem `who | wc -l` U Mandrake por a? Nada disso. O interes-
meu diretrio existiam 21 arquivos. usuarios conectados" sante do uso de parnteses que eles
Existem 8 usuarios U invocam um novo Shell para executar os
$ cat /etc/passwd | sort | lp conectados comandos que esto em seu interior.
Desta forma, fomos realmente para o
A linha de comandos acima manda a Para eliminar esse monte de brancos diretrio /etc, porm aps a execuo de
listagem do arquivo /etc/passwd para a antes do 8 que o wc -l produziu, basta todos os comandos, o novo Shell que
entrada do comando sort. Este a classi- retirar as aspas. Assim: estava no diretrio /etc morreu e retor-
fica e envia para o lp que o gerenciador namos ao Shell anterior que estava em
da fila de impresso. $ echo Existem `who | wc -l` U /home/meudir.
usuarios conectados Que tal usar nossos novos conceitos?
Caracteres de ambiente Existem 8 usuarios conectados
Quando queremos priorizar uma expres- $ mail suporte@linux.br << FIM
so, ns a colocamos entre parnteses, As aspas protegem da interpretao do Ola suporte, hoje as `date U
no ? Pois , por causa da aritmtica Shell tudo que est dentro dos seus lim- +%hh:mm` ocorreu novamente U
normal pensarmos deste jeito. Mas em ites. Como para o Shell basta um espao aquele problema que eu havia U
Shell o que prioriza mesmo so as crases em branco como separador, o monte de reportado por telefone. De U
(`) e no os parnteses. Vou dar exemp- espaos ser trocado por um nico aps acordo com seu pedido segue a U
los para voc entender melhor. a retirada das aspas. listagem do diretorio:
Eu quero saber quantos usurios esto Outra coisa interessante o uso do `ls -l`
logados no computador que eu admi- ponto-e-vrgula. Quando estiver no Shell, Abracos a todos.
nistro. Eu posso fazer: voc deve sempre dar um comando em FIM
cada linha. Para agrupar comandos em
$ who | wc -l uma mesma linha, temos que separ-los Finalmente agora podemos demonstrar o
8 por ponto-e-vrgula. Ento: que conversamos anteriormente sobre
here document. Os comandos entre
O comando who passa a lista de usurios $ pwd ; cd /etc; pwd ;cd -;pwd crases tem prioridade, portanto o Shell
conectados ao sistema para o comando /home/meudir os executar antes do redirecionamento
wc -l, que conta quantas linhas recebeu e /etc do here document. Quando o suporte
mostra a resposta na tela. Muito bem, /home/meudir receber a mensagem, ver que os
mas ao invs de ter um nmero oito comandos date e ls foram executados
solto na tela, o que eu quero mesmo Neste exemplo, listei o nome do diretrio antes do comando mail, recebendo ento
que ele esteja no meio de uma frase. Ora, corrente com o comando pwd, mudei um instantneo do ambiente no
para mandar frases para a tela eu s pre- para o diretrio /etc, novamente listei o momento de envio do email.
ciso usar o comando echo; ento vamos nome do diretrio e finalmente voltei pa- - Garom, passa a rgua!
ver como que fica: ra o diretrio onde estava anteriormente
(cd -), listando seu nome. Repare que Julio Cezar Neves Analista de Su-
SOBRE O AUTOR
Buraco Negro coloquei o ponto-e-vrgula de todas as porte de Sistemas desde 1969 e tra-
Em Unix existe um arquivo fantasma. formas possveis, para mostrar que no balha com Unix desde 1980, quando
Chama-se /dev/null.Tudo que enviado importa se existem espaos em branco fez parte da equipe que desenvolveu
para este arquivo some. Assemelha-se a um antes ou aps este caracter. o SOX, sistema operacional, similar
Buraco Negro. No caso do exemplo, como ao Unix, da Cobra Computadores.
Finalmente, vamos ver o caso dos
no me interessava guardar a possvel men- professor do curso de Mestrado em
parnteses. No exemplo a seguir, colo-
sagem de erro oriunda do comando rm, redi- Software Livre das Faculdades Estcio
camos diversos comandos separados por
recionei-a para este arquivo. de S, no Rio de Janeiro.
ponto-e-vrgula entre parnteses: