Você está na página 1de 15

Introduo ao Terminal Linux (Bash)

Comandos bsicos para manipulao de arquivos texto

Apostila de Exerccios

Prof. Tiago Baciotti Moreira Maio/2012

Regra da Modularidade: Escreva partes simples que se conectem por interfaces claras Eric Raymond, A Arte da Programao Unix

3 Caro Aluno, Parabns pela sua deciso em se aventurar pela linha de comando do Linux. O objetivo do nosso curso te ajudar a entender principais comandos de manipulao de textos/arquivos dentro do terminal Linux. No, voc no vai aprender a instalar o Linux ou usar o mouse e clicar em cones. No podemos tampouco chama-lo de um curso bsico de Linux (embora isso tambm esteja em nosso escopo para um futuro prximo) pois alguns conceitos importantes como permisses, processos, etc no sero vistos nesse momento para podermos trabalhar mais mo na massa. O importante despertar em voc o interesse e aguar a curiosidade pelo trabalho na CLI (command line interface). O escopo do curso linha de comando, letras brancas e fundo preto. So poucos analistas/programadores que se enveredam pela linha de comando pois preferem o caminho mais fcil com janelas e cones coloridos ;-). Quer um diferencial no mercado de trabalho? Aprenda BASH! O objetivo do curso te apresentar os comandos de forma rpida e ento trazer problemas para serem resolvidos com a utilizao do que aprendeu. A abordagem pedaggica de experimentao onde voc dever buscar/procurar/testar/fuar/descobrir a utilizao dos comandos. Use a ajuda do prprio shell! Para resolver alguns exerccios talvez voc precise baixar alguns arquivos. Fique atento s instrues. As solues sero depois postadas no ead. Seu primeiro trabalho se cadastrar em www.rg8.net e depois fazer sua inscrio no Curso Terminal Linux. Espero que voc goste da experincia, Bom Trabalho! Tiago, 04/05/2012

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

Atividade 1
Seu objetivo realizar algumas aes bem simples nesse primeiro problema: a) Abrir o terminal Linux b) Listar os arquivos do diretrio que se encontra c) Exibir o contedo do arquivo passwd existente no diretrio etc d) Limpar a tela e) Visualizar a ajuda do comando tac

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

Atividade 2
timo. Que bom que voc conseguiu fazer o primeiro exerccio. Como voc sabe possvel ler a ajuda dos comandos do terminal usando help, por exemplo ls help mostra a ajuda do comando ls. E em portugus! Sabendo disso, agora voc deve: a) Exibir o contedo do arquivo /etc/passwd. (Tente o comando cat) b) Exibir as 3 ltimas linhas do arquivo /etc/passwd. (Acho que voc pode avaliar o comando head para resolver esse) c) Exibir as 3 ltimas linhas do arquivo /etc/passwd (Use o tail aqui) d) Para fechar, exiba o contedo desse arquivo de trs pra frente ( o contrrio de cat)

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

Atividade 3
Legal, agora vamos misturar um pouco as coisas. Voc vai aprender sobre dois operadores da linha de comando. Vamos l: a) Utilize o comando echo e exiba seu nome na tela. s isso mesmo b) timo. Agora voc vai usar o > (sinal de maior) para redirecionar o seu nome para DENTRO do arquivo nome.txt. Tente usar o echo junto com esse operador. Tente descobrir como fazer isso! c) Liste os arquivos do diretrio atual e veja se o arquivo nomes.txt foi criado. d) Por ltimo, para ter certeza que deu certo o comando, exiba o contedo do arquivo. e) timo, tente agora jogar dentro desse mesmo arquivo o nome de um amigo seu. Exiba o contedo e veja se deu certo. Voc tem 2 minutos para descobrir como ACRESCENTAR ao final do arquivo o outro nome. No SOBRESCREVER, mas ACRESCENTAR. Muito bom! At aqui voc aprendeu como redirecionar sada e acrescentar ao final de um arquivo. Mas agora voc vai aprender sobre a maior descoberta do homem, depois da eletricidade. O Piping! O piping, ou pipe, ou canalizao, etc. representado pelo smbolo | (Deve estar perto da contra-barra no seu teclado, olha a...) Ele o campeo da linha de comando pois permite que se JUNTE VRIOS COMANDOS!!! Vamos l: f) Exiba o contedo do arquivo /var/log/dmesg (Use a tecla TAB que voc completa o caminho do arquivo). g) Muita informao no mesmo?? Tente agora CONCATENAR esse comando de listagem com o comando less. Como se faz isso? Boa pergunta...

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

Atividade 4
Nessa atividade vamos mudar um pouco as coisas. Vamos trabalhar com diretrios, que so os equivalentes as pastas no ambiente grfico. So 3 comandos bsicos: cd para voc acessar o diretrio (entrar nele), mkdir para criar diretrios e rmdir para apaga-los. Mais um detalhe: No unix o . (ponto) significa diretrio atual e o .. (ponto ponto) significa diretrio pai. a) Crie a estrutura de diretrios abaixo dentro de sua home (a pasta que voc j deve estar, provavelmente):
Alfa-----Beta |--Gama |--Delta |--Abc---Aplic |--Dos |--Xyz--abc

b) timo. Agora remova o diretrio Gama e o diretrio Delta. Fcil no mesmo? c) Para remover o diretrio Abc voc teria que apagar tudo que est dentro dele. Mas vamos fazer de um jeito mais fcil. Estando dentro do diretrio Alfa digite rm rf Abc

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

Atividade 5
Criar diretrios divertido mesmo, mas vamos voltar para o trabalho com manipulao de textos! O comando cut me permite listar somente CAMPOS que me interessam em um arquivo. Voc deve se atentar para duas coisas ao usar o comando cut: DELIMITADOR e CAMPO DESEJADO. Sabendo disso, resolva: a) Mostre somente o primeiro campo do arquivo /etc/passwd b) Mostre o primeiro e o sexto campo desse mesmo arquivo

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

Atividade 6
Agora voc precisar baixar um arquivo para o terminal. Para isso digite o seguinte comando: wget http://www.rg8.net/linux.zip Agora descompacte esse arquivo, assim: unzip linux.zip Perfeito! Agora j podemos executar alguns comandos: a) Exiba o contedo do arquivo placas.txt. Verifique que o mesmo est fora de ordem, no isso? b) Coloque esse arquivo em ordem redirecionando a sada para dentro do arquivo placas2.txt (Tente o sort) c) timo. Agora precisamos UNIR o arquivo carros.txt com o arquivo placas2.txt. Tente fazer isso com o comando join. d) timo! Acho que voc est indo bem. Use o wc e conte a quantidade de linhas do arquivo funcionrios.txt, ento!

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

10

Atividade 7
Ok. Agora voc precisar resolver alguns problemas usando o que j aprendeu at agora (e umas coisas novas tambm) a) Liste o arquivo funcionrios.txt mostrando somente os funcionrios que tenham prefixo 20 no telefone. (Pesquise pelo grep) b) Conte quantos funcionrios foram admitidos em 2012. c) Exiba somente o ano de admisso dos funcionrios d) Exiba somente o primeiro nome dos funcionrios e) Exiba somente o primeiro nome dos funcionrios em letras minsculas (para converter para letras minsculas voc pode usar tr [A-Z] [a-z]. f) O arquivo funcionrios.txt possui 200 linhas ao todo. Divida-o, usando o comando split, em arquivos menores de 20 linhas cada. g) Exiba somente a 78 linha do arquivo funcionarios.txt h) Numere as linhas do arquivo funcionarios.txt jogando a sada em funcionarios2.txt

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

11

Atividade 8
Busca do valor do dlar Conrado Cipriano Segundo trabalha na TSW Software e Desenvolvimento LTDA. Lucas, seu chefe ameaador e mal-educado exige que o pobre Conrado atualize todos os dias o valor do dlar a partir do site do banco central (www.bc.gov.br). Como um trabalho repetitivo, Conrado gostaria de AUTOMATIZAR o trabalho. Baixar a pgina do Banco Central fcil. Basta usar o comando wget, da seguinte forma: $ wget http://www4.bcb.gov.br/pec/taxas/batch/taxas.asp?id=txdolar Se voc no tiver o wget pode tambm usar o CURL, da seguinte forma: $ curl http://www4.bcb.gov.br/pec/taxas/batch/taxas.asp?id=txdolar Mas voc NO PRECISA BAIXAR agora! Essa a parte fcil. A pgina est em html e no meio desse HTML existe o valor do dlar. Seu trabalho ajudar Frederico a colocar em um arquivo chamado dolar_diario.txt SOMENTE o valor do dlar. Para isso voc precisar usar cat, grep, cut, etc. Abra o cdigo fonte, pesquise e tente resolver esse problema! Voc no precisa usar o wget nesse momento pois o computador que voc utiliza talvez no tenha internet, ento basta dar um cat no arquivo dolar.html e trabalhar nesse arquivo. Como o wget nesse caso buscou somente o html, no teremos imagens nem formatao da pgina do banco Central mas servir perfeitamente para nosso propsito. Boa Sorte!

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

12

Atividade 9
Para no se esquecer de qual usurio est logado voc pode usar o comando Quem Sou Eu. a) Qual o nome do usurio logado no momento? b) Use o editor nano e crie um arquivo chamado nomes.txt contendo o seguinte: ana_banana jose_buscape pedro_malazarte c) Crie agora o arquivo provedores.txt e adicione o seguinte contedo: yahoo.com gmail.com bol.com.br d) Excelente! Agora use o comando paste para criar um novo arquivo com endereos de email criados a partir dos dois arquivos acima. Esse arquivo dever se chamar e-mails.txt.

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

13

Atividade 10
Para finalizar vamos manipular alguns arquivos. a) Copie o arquivo e-mails.txt para outro.txt usando o comando cp b) Renomeie o arquivo outro.txt para alterado.txt usando o comando mv c) Crie um diretrio com o nome de teste e copie o arquivo e-mails.txt para dentro desse diretrio. d) Exclua, usando o rm, o arquivo alterado.txt

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

14

Parabns por chegar at aqui!


Se voc cumpriu as atividades corretamente j conseguiu ter uma noo do poder que o terminal Linux tem. Seu curso no acaba aqui! Para receber seu certificado voc precisar concluir as atividades EAD existentes em www.rg8.net No deixe para a ltima hora. Estou a disposio pelo email baciotti@gmail.com para ajud-lo. Um abrao, Tiago Baciotti Moreira

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead

15 Mestre Foo discorre sobre a Interface Grfica do Usurio Certa noite Mestre Foo e Nubi participavam de um encontro de programadores que decidiram se reunir para aprender um dos outros. Um dos programadores perguntou a Nubi a que escola ele e seu mestre pertenciam. Logo aps de ter ouvido que eles eram seguidores do Grandioso Caminho do Unix o programador retrucou sarcasticamente. "As ferramentas de linha-de-comando do Unix so arcicas e rudes", ele desdenhou. "Sistema modernos, propriamente projetados fazem tudo atravs de uma interface grfica do usurio." Mestre Foo no disse nada, mas apontou para a lua. Um cachorro prximo comeou a latir para a mo do mestre. "No consigo entend-lo!" disse o programador. Mestre Foo continuou em silncio, e apontou para a imagem de Buddha. E ento ele apontou para uma janela. "O que voc est tentando me dizer?" perguntou o programador. Mestre Foo apontou para a cabea do programador, e logo depois ele apontou para uma pedra. "Por que voc no tenta ser mais claro?" exigiu o programador. Mestre Foo franziu contemplativamente a testa e deu dois toques no nariz do programador, empurrando-o numa lixeira ao lado. Enquanto o programador se debatia no lixo o cachorro andou a esmo e urinou sobre ele. Nesse momento o programador alcanou iluminao. Eric Raymond, Os Koans do Mestre Foo

Curso Introduo ao Terminal Linux (Prof. Tiago Baciotti Moreira)

www.rg8.net/ead