Você está na página 1de 5

LINUX USER Papo de Botequim

Curso de Shell Script

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

ferramenta maravilhosa? A partir


O ambiente Shell
Bom j que para chegar ao
desta edio vai ficar mais fcil en- ncleo do Linux, no seu ker-
nel que o que interessa a
tender o porqu deste entusiasmo... todo aplicativo, necessria a
filtragem do Shell, vamos enten-
POR JULIO CEZAR NEVES der como ele funciona de forma a
tirar o mximo proveito das in-
meras facilidades que ele nos oferece.

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-

Quadro 1: Uma rapidinha nos principais sabores de Shell


Bourne Shell (sh): Desenvolvido por Stephen do sh e a elas agregou muitas outras. A com- C Shell (csh): Desenvolvido por Bill Joy, da
Bourne do Bell Labs (da AT&T, onde tambm patibilidade total com o sh vem trazendo Universidade de Berkley, o Shell mais uti-
foi desenvolvido o Unix), foi durante muitos muitos usurios e programadores de Shell lizado em ambientes BSD. Foi ele quem intro-
anos o Shell padro do sistema operacional para este ambiente. duziu o histrico de comandos. A
Unix. tambm chamado de Standard Shell Boune Again Shell (bash): Desenvolvido ini- estruturao de seus comandos bem simi-
por ter sido durante vrios anos o nico, e cialmente por Brian Fox e Chet Ramey, este lar da linguagem C. Seu grande pecado foi
at hoje o mais utilizado. Foi portado para o Shell do projeto GNU. O nmero de seus ignorar a compatibilidade com o sh, partindo
praticamente todos os ambientes Unix e dis- adeptos o que mais cresce em todo o por um caminho prprio.
tribuies Linux. mundo, seja por que ele o Shell padro do Alm destes Shells existem outros, mas irei
Korn Shell (ksh): Desenvolvido por David Linux, seja por sua grande diversidade de falar somente sobre os trs primeiros, tratan-
Korn, tambm do Bell Labs, um supercon- comandos, que incorpora inclusive diversos do-os genericamente por Shell e assinalando
junto do sh, isto , possui todas as facilidades comandos caractersticos do C Shell. as especificidades de cada um.

82 Agosto 2004 www.linuxmagazine.com.br


Papo de Botequim LINUX USER

tncia do sistema operacional Unix, redirecionamento, que pode ser de


foram aparecendo. Atualmente existem
Com que Shell eu vou? entrada (stdin), de sada (stdout) ou dos
Quando digo que o ltimo campo do arqui-
diversos sabores de Shell (veja Quadro 1 erros (stderr), conforme vou explicar a
vo /etc/passwd informa ao sistema qual o
na pgina anterior). seguir. Mas antes precisamos falar de...
Shell que o usurio vai usar ao se logar, isto
deve ser interpretado ao p-da-letra. Se este
Como funciona o Shell campo do seu registro contm o termo prog, Substituio de Variveis
O Shell o primeiro programa que voc ao acessar o sistema o usurio executar o Neste ponto, o Shell verifica se as even-
ganha ao iniciar sua sesso (se quiser- programa prog. Ao trmino da execuo, a tuais variveis (parmetros comeados
mos assassinar a lngua portuguesa sesso do usurio se encerra automatica- por $), encontradas no escopo do
mente. Imagine quanto se pode incremen-
podemos tambm dizer ao se logar) no comando, esto definidas e as substitui
tar a segurana com este simples artifcio.
Linux. ele quem vai resolver um monte por seus valores atuais.
de coisas de forma a no onerar o kernel
com tarefas repetitivas, poupando-o para volvidos (inclusive o prprio programa), Substituio de Meta-
tratar assuntos mais nobres. Como cada e retorna um erro caso o usurio que Caracteres
usurio possui o seu prprio Shell inter- chamou o programa no esteja autor- Se algum meta-caracter (ou coringa,
pondo-se entre ele e o Linux, o Shell izado a executar esta tarefa. como *, ? ou []) for encontrado na linha
quem interpreta os comandos digitados e de comando, ele ser substitudo por
examina as suas sintaxes, passando-os $ ls linux seus possveis valores.
esmiuados para execuo. linux Supondo que o nico item no seu
pa! Esse negcio de interpretar co- diretrio corrente cujo nome comea
mando no tem nada a ver com inter- Neste exemplo o Shell identificou o ls co- com a letra n seja um diretrio chamado
pretador no, n? mo um programa e o linux como um pa- nomegrandeprachuchu, se voc fizer:
Tem sim: na verdade o Shell um in- rmetro passado para o programa ls.
terpretador que traz consigo uma po- $ cd n*
derosa linguagem com comandos de Atribuio
alto nvel, que permite construo de Se o Shell encontra dois campos separa- como at aqui quem est manipulando a
loops, de tomadas de deciso e de ar- dos por um sinal de igual (=) sem espa- linha de comando ainda o Shell e o
mazenamento de valores em variveis, os em branco entre eles, ele identifica programa cd ainda no foi executado, o
como vou te mostrar. esta seqncia como uma atribuio. Shell expande o n* para nomegrandepra-
Vou explicar as principais tarefas que o chuchu (a nica possibilidade vlida) e
Shell cumpre, na sua ordem de exe- $ valor=1000 executa o comando cd com sucesso.
cuo. Preste ateno, porque esta
ordem fundamental para o entendi- Neste caso, por no haver espaos em Entrega da linha de comando
mento do resto do nosso bate papo. branco (que um dos caracteres reserva- para o kernel
dos), o Shell identificou uma atribuio e Completadas todas as tarefas anteriores,
Anlise da linha de comando colocou 1000 na varivel valor. o Shell monta a linha de comando, j
Neste exame o Shell identifica os carac- com todas as substituies feitas e
teres especiais (reservados) que tm sig- Resoluo de chama o kernel para execut-la em um
nificado para a interpretao da linha e Redirecionamentos novo Shell (Shell filho), que ganha um
logo em seguida verifica se a linha pas- Aps identificar os componentes da li- nmero de processo (PID ou Process
sada um comando ou uma atribuio nha que voc digitou, o Shell parte para IDentification) e fica inativo, tirando
de valores, que so os tens que vou a resoluo de redirecionamentos. uma soneca durante a execuo do pro-
descrever a seguir. O Shell tem incorporado ao seu elenco grama. Uma vez encerrado este processo
de habilidades o que chamamos de (e o Shell filho), o Shell pai recebe
Comando novamente o controle e exibe um
Quando um comando digi- prompt, mostrando que est pronto
tado no prompt (ou linha de Shell para executar outros comandos.
comando) do Linux, ele divi-
dido em partes, separadas por
Programas e Comandos Cuidado na Atribuio
espaos em branco: a primeira Ncleo ou Kernel Jamais faa:
parte o nome do programa,
cuja existncia ser verificada; Hardware $ valor = 1000
bash: valor: not found
em seguida, nesta ordem, vm
Neste caso, o Bash achou a palavra valor iso-
as opes/parmetros, redire-
lada por espaos e julgou que voc estivesse
cionamentos e variveis.
mandando executar um programa chama-
Quando o programa identifi-
do valor, para o qual estaria passando dois
cado existe, o Shell verifica as parmetros: = e 1000.
permisses dos arquivos en- Figura 1: Ambiente em camadas de um sistema Linux

www.linuxmagazine.com.br Agosto 2004 83


LINUX USER Papo de Botequim

Decifrando a Pedra de Roseta $ echo \* esperando pelo teclado (Entrada Padro)


Para tirar aquela sensao que voc tem $ echo * e como tambm no citei a sada, o que
quando v um script Shell, que mais eu teclar ir para a tela (Sada Padro),
parece uma sopa de letrinhas ou um con- Viu a diferena? criando desta forma como eu havia
junto de hierglifos, vou lhe mostrar os Aspas (): exatamente iguais ao aps- proposto um programa gago. Experi-
principais caracteres especiais para que trofo, exceto que, se a cadeia entre mente!
voc saia por a como Champollion deci- aspas contiver um cifro ($), uma
frando a Pedra de Roseta. crase (`), ou uma barra invertida (\), Redirecionamentop da Sada
estes caracteres sero interpretados Padro
Caracteres para remoo do pelo Shell. Para especificarmos a sada de um pro-
significado. No precisa se estressar, eu no te dei grama usamos o smbolo > ou o
isso mesmo, quando no desejamos exemplos do uso das aspas por que >>, seguido do nome do arquivo pa-
que o Shell interprete um caractere voc ainda no conhece o cifro ($) ra o qual se deseja mandar a sada.
especfico, devemos escond-lo dele. nem a crase (`). Daqui para frente - Vamos transformar o programa ante-
Isso pode ser feito de trs maneiras difer- veremos com muita constncia o uso rior em um editor de textos:
entes, cada uma com sua peculiaridade: destes caracteres especiais; o mais
Apstrofo (): quando o Shell v uma importante entender seu significado. $ cat > Arq
cadeia de caracteres entre apstrofos,
ele retira os apstrofos da cadeia e no Caracteres de O cat continua sem ter a entrada especi-
interpreta seu contedo. redirecionamento ficada, portanto est aguardando que os
A maioria dos comandos tem uma entra- dados sejam teclados, porm a sua sada
$ ls linuxm* da, uma sada e pode gerar erros. Esta est sendo desviada para o arquivo Arq.
linuxmagazine entrada chamada Entrada Padro ou Assim sendo, tudo que esta sendo tecla-
$ ls 'linuxm*' stdin e seu dispositivo padro o teclado do esta indo para dentro de Arq, de for-
bash: linuxm* no such file U do terminal. Analogamente, a sada do ma que fizemos o editor de textos mais
or directory comando chamada Sada Padro ou curto e ruim do planeta.
stdout e seu dispositivo padro a tela Se eu fizer novamente:
No primeiro caso o Shell expandiu o do terminal. Para a tela tambm so
asterisco e descobriu o arquivo linux- enviadas normalmente as mensagens de $ cat > Arq
magazine para listar. No segundo, os erro oriundas dos comandos, chamada
apstrofos inibiram a interpretao do neste caso de Sada de Erro Padro ou Os dados contidos em Arq sero perdi-
Shell e veio a resposta que no existe o stderr. Veremos agora como alterar este dos, j que antes do redirecionamento o
arquivo linuxm*. estado de coisas. Shell criar um Arq vazio. Para colocar
Contrabarra ou Barra Invertida (\): i- Vamos fazer um programa gago. Para mais informaes no final do arquivo eu
dntico aos apstrofos exceto que a isto digite (tecle Enter ao final de cada deveria ter feito:
barra invertida inibe a interpretao linha comandos do usurio so ilus-
somente do caractere que a segue. trados em negrito): $ cat >> Arq
Suponha que voc, acidentalmente,
tenha criado um arquivo chamado * $ cat Redirecionamento da Sada
(asterisco) o que alguns sabores de E-e-eu sou gago. Vai encarar? de Erro Padro
Unix permitem e deseja remov-lo. E-e-eu sou gago. Vai encarar? Assim como por padro o Shell recebe os
Se voc fizesse: dados do teclado e envia a sada para a
O cat um comando que lista o con- tela, os erros tambm vo para a tela se
$ rm * tedo do arquivo especificado para a voc no especificar para onde eles de-
Sada Padro (stdout). Caso a entrada vem ser enviados. Para redirecionar os
Voc estaria na maior encrenca, pois o no seja definida, ele espera os dados da erros, use 2> SaidaDeErro. Note que en-
rm removeria todos os arquivos do stdin (a entrada padro). Ora como eu tre o nmero 2 e o sinal de maior (>)
diretrio corrente. A melhor forma de no especifiquei a entrada, ele a est no existe espao em branco.
fazer o servio : Vamos supor que durante a execuo
Redirecionamento Perigoso de um script voc pode, ou no (depen-
$ rm \* Como j havia dito, o Shell resolve a linha e dendo do rumo tomado pela execuo
depois manda o comando para a execuo. do programa), ter criado um arquivo
Desta forma, o Shell no interpreta o Assim, se voc redirecionar a sada de um chamado /tmp/seraqueexiste$$. Como
asterisco, evitando a sua expanso. arquivo para ele prprio, primeiramente o no quer ficar com sujeira no disco
Faa a seguinte experincia cientfica: Shell esvaziaeste arquivo e depois manda rgido, ao final do script voc coloca a
o comando para execuo! Desta forma, linha a seguir:
para sua alegria, voc acabou de perder o
$ cd /etc
contedo de seu querido arquivo.
$ echo '*' rm /tmp/seraqueexiste$$

84 Agosto 2004 www.linuxmagazine.com.br


Papo de Botequim LINUX USER

caprichamos, n? Ento ao invs de sair


Dados ou Erros? redigindo o mail direto no prompt, de
Etiquetas Erradas
Preste ateno! No confunda >> com 2>. O forma a tornar impossvel a correo de Um erro comum no uso de labels (como o
primeiro anexa dados ao final de um arqui- fimftp do exemplo anterior) causado pela
uma frase anterior onde, sem querer,
vo, e o segundo redireciona a Sada de Erro presena de espaos em branco antes ou
voc escreveu um ns vai, voc edita
Padro (stderr) para um arquivo que est aps o mesmo. Fique muito atento quanto a
um arquivo com o contedo da mensa-
sendo designado. Isto importante! isso, por que este tipo de erro costuma dar
gem e aps umas quinze verificaes
uma boa surra no programador, at que seja
sem constatar nenhum erro, decide
detectado. Lembre-se: um label que se preze
Caso o arquivo no existisse seria envi- envi-lo e para tal faz:
tem que ter uma linha inteira s para ele.
ado para a tela uma mensagem de erro.
Para que isso no acontea faa: $ mail chefe@chefia.com.br < U
arquivocommailparaochefe nada a partir deste ponto at encontrar
rm /tmp/seraqueexiste$$ 2> U o label fimftp. Voc no entenderia
/dev/null e o chefe receber uma mensagem com o droga nenhuma, j que so instrues
contedo do arquivocommailparaochefe. especficas do ftp.
Para que voc teste a Sada de Erro Pa- Outro tipo de redirecionamento muito Se fosse s isso seria simples, mas
dro direto no prompt do seu Shell, vou louco que o Shell permite o chamado pelo prprio exemplo d para ver que
dar mais um exemplo. Faa: here document. Ele representado por existem duas variveis ($Usuario e
<< e serve para indicar ao Shell que o $Senha), que o Shell vai resolver antes
$ ls naoexiste escopo de um comando comea na linha do redirecionamento. Mas a grande
bash: naoexiste no such file U seguinte e termina quando encontra uma vantagem deste tipo de construo
or directory linha cujo contedo seja unicamente o que ela permite que comandos tam-
$ ls naoexiste 2> arquivodeerros label que segue o sinal <<. bm sejam interpretados dentro do
$ Veja o fragmento de script a seguir, escopo do here document, o que,
$ cat arquivodeerros com uma rotina de ftp: alis, contraria o que acabei de dizer.
bash: naoexiste no such file U Logo a seguir te explico como esse
or directory ftp -ivn hostremoto << fimftp negcio funciona. Agora ainda no d,
user $Usuario $Senha esto faltando ferramentas.
Neste exemplo, vimos que quando fize- binary O comando user do repertrio de
mos um ls em naoexiste, ganhamos uma get arquivoremoto instrues do ftp e serve para passar o
mensagem de erro. Aps redirecionar a fimftp usurio e a senha que haviam sido
Sada de Erro Padro para arquivodeerros lidos em uma rotina anterior a este
e executar o mesmo comando, recebe- neste pedacinho de programa temos um fragmento de cdigo e colocados res-
mos somente o prompt na tela. Quan- monte de detalhes interessantes: pectivamente nas duas variveis:
do listamos o contedo do arquivo para As opes usadas para o ftp (-ivn) $Usuario e $Senha.
o qual foi redirecionada a Sada de Erro servem para ele listar tudo que est O binary outra instruo do ftp, que
Padro, vimos que a mensagem de erro acontecendo (opo -v de verbose), serve para indicar que a transferncia
tinha sido armazenada nele. para no ficar perguntando se voc de arquivoremoto ser feita em modo
interessante notar que estes carac- tem certeza que deseja transmitir cada binrio, isto o contedo do arquivo
teres de redirecionamento so cumula- arquivo (opo -i de interactive) e no ser inteerpretado para saber se
tivos, isto , se no exemplo anterior finalmente a opo -n serve para dizer est em ASCII, EBCDIC,
fizssemos o seguinte: ao ftp para ele no solicitar o usurio e O comando get arquivoremoto diz ao
sua senha, pois estes sero informados cliente ftp para pegar este arquivo no
$ ls naoexiste 2>> U pela instruo especfica (user); servidor hostremoto e traz-lo para a
arquivodeerros Quando eu usei o << fimftp, estava nossa mquina local. Se quisssemos
dizendo o seguinte para o interpreta- enviar um arquivo, bastaria usar, por
a mensagem de erro oriunda do ls seria dor: Olha aqui Shell, no se meta em exemplo, o comando put arquivolocal.
anexada ao final de arquivodeerros.
Direito de Posse Redirecionamento de
Redirecionamento da O $$ contm o PID,isto ,o nmero do seu comandos
Entrada Padro processo. Como o Linux multiusurio, Os redirecionamentos de que falamos at
Para fazermos o redirecionamento da En- bom anexar sempre o $$ ao nome dos seus agora sempre se referiam a arquivos, isto
trada Padro usamos o < (menor que). arquivos para no haver problema de propri- , mandavam para arquivo, recebiam de
E pra que serve isso?, voc vai me per- edade,isto ,caso voc batizasse o seu ar- arquivo, simulavam arquivo local, O
guntar. Deixa eu dar um exemplo, que quivo simplesmente como seraqueexiste,a que veremos a partir de agora, redirecio-
voc vai entender rapidinho. primeira pessoa que o usasse (criando-o na a sada de um comando para a entra-
ento) seria o seu dono e a segunda ganharia
Suponha que voc queira mandar um da de outro. utilssimo e, apesar de no
um erro quando tentasse gravar algo nele.
mail para o seu chefe. Para o chefe ns ser macaco gordo, sempre quebra os

www.linuxmagazine.com.br Agosto 2004 85


LINUX USER Papo de Botequim

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:

86 Agosto 2004 www.linuxmagazine.com.br

Você também pode gostar