Introdução ao Terminal Linux (Bash)
Introdução ao Terminal Linux (Bash)
Comandos básicos para manipulação de
Comandos básicos para manipulação de
arquivos texto
arquivos texto
Apostila de xerc!cios
Apostila de xerc!cios
"ro#$ Tia%o Baciotti &oreira
"ro#$ Tia%o Baciotti &oreira
&aio'*
&aio'*
(+evisada em maio'*,)
(+evisada em maio'*,)
“Regra da Modularidade: Escreva partes
“Regra da Modularidade: Escreva partes simplessimples que se conectem por interfaces claras” que se conectem por interfaces claras” Eric Raymond, A Arte da
,,
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Caro Aluno. Caro Aluno.
"arab/ns pela sua decisão em se aventurar pela linha de comando do Linux$ 0 ob1etivo do "arab/ns pela sua decisão em se aventurar pela linha de comando do Linux$ 0 ob1etivo do nosso curso / te a1udar a entender principais comandos de manipulação de textos'arquivos nosso curso / te a1udar a entender principais comandos de manipulação de textos'arquivos dentro do terminal Linux$
dentro do terminal Linux$
2ão. voc3 não vai aprender a instalar o Linux ou usar o mouse e clicar em !cones$ 2ão 2ão. voc3 não vai aprender a instalar o Linux ou usar o mouse e clicar em !cones$ 2ão podemos tampouco chama4lo de um curso básico de Linux (embora isso tamb/m este1a em podemos tampouco chama4lo de um curso básico de Linux (embora isso tamb/m este1a em nosso escopo para um #uturo pr5ximo) pois al%uns conceitos importantes como permiss6es. nosso escopo para um #uturo pr5ximo) pois al%uns conceitos importantes como permiss6es. processos. etc não serão vistos nesse momento para podermos trabalhar mais 7mão na processos. etc não serão vistos nesse momento para podermos trabalhar mais 7mão na massa8$ 0 importante / despertar em voc3 o interesse e a%uçar a curiosidade pelo trabalho na massa8$ 0 importante / despertar em voc3 o interesse e a%uçar a curiosidade pelo trabalho na CLI (command line inter#ace)$
CLI (command line inter#ace)$
0 escopo do curso / linha de comando. letras brancas e #undo preto$ 9ão poucos 0 escopo do curso / linha de comando. letras brancas e #undo preto$ 9ão poucos analistas'pro%ramadores que se enveredam pela linha de comando pois pre#erem o caminho analistas'pro%ramadores que se enveredam pela linha de comando pois pre#erem o caminho mais #ácil com 1anelas e !cones coloridos :4)$ ;uer um di#erencial no mercado de trabalho< mais #ácil com 1anelas e !cones coloridos :4)$ ;uer um di#erencial no mercado de trabalho< Aprenda
Aprenda
BA9=-0 ob1etivo do curso / te apresentar os comandos de #orma rápida e então tra>er problemas 0 ob1etivo do curso / te apresentar os comandos de #orma rápida e então tra>er problemas para serem resolvidos com a utili>ação do que aprendeu$ A aborda%em peda%5%ica / de para serem resolvidos com a utili>ação do que aprendeu$ A aborda%em peda%5%ica / de experimentação onde voc3 deverá buscar'procurar'testar'#uçar'descobrir a utili>ação dos experimentação onde voc3 deverá buscar'procurar'testar'#uçar'descobrir a utili>ação dos comandos$ ?se a a1uda do pr5prio
comandos$ ?se a a1uda do pr5prio shell-spero que voc3 %oste da experi3ncia. spero que voc3 %oste da experi3ncia. Bom
Bom
Trabalho-Tia%o Baciotti &oreira Tia%o Baciotti &oreira
@@
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade 1
Atividade 1
9eu ob1etivo / reali>ar
9eu ob1etivo / reali>ar al%umas aç6es bem simples nesse primeiro problemaal%umas aç6es bem simples nesse primeiro problema a)
a) Abrir o terminal LinuxAbrir o terminal Linux b)
b) Listar os arquivos do diret5rio que se encontraListar os arquivos do diret5rio que se encontra c)
c) xibir o contedo do arquivo passd existente no diret5rio etcxibir o contedo do arquivo passd existente no diret5rio etc d)
d) Limpar a telaLimpar a tela e)
EE
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade 2
Atividade 2
Ftimo$ ;ue bom que voc3 conse%uiu #a>er o primeiro exerc!cio$ Como voc3 sabe / poss!vel ler Ftimo$ ;ue bom que voc3 conse%uiu #a>er o primeiro exerc!cio$ Como voc3 sabe / poss!vel ler a a1uda dos comandos do terminal usando Ghelp. por exemplo ls Ghelp mostra a a1uda do a a1uda dos comandos do terminal usando Ghelp. por exemplo ls Ghelp mostra a a1uda do comando ls$
comando ls$
9abendo disso. a%ora voc3 deve 9abendo disso. a%ora voc3 deve
a)
a) xibir o contedo do arquivo 'etc'passd$ (Tente o comandoxibir o contedo do arquivo 'etc'passd$ (Tente o comando catcat))
b)
b) xibir as H primeiras linhas do arquivo 'etc'passd$ (Acho que voc3 pode avaliar oxibir as H primeiras linhas do arquivo 'etc'passd$ (Acho que voc3 pode avaliar o comando
comandoheadhead para resolver esse) para resolver esse)
c)
c) xibir as H ltimas linhas do arquivo 'etc'passd (?se oxibir as H ltimas linhas do arquivo 'etc'passd (?se o tailtail aqui) aqui)
d)
JJ
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade 3
Atividade 3
Le%al. a%ora vamos misturar um pouco as coisas$ Doc3 vai aprender sobre dois operadores da Le%al. a%ora vamos misturar um pouco as coisas$ Doc3 vai aprender sobre dois operadores da linha de comando$
linha de comando$ Damos lá
Damos lá a)
a) ?tili>e o comando echo e exiba seu nome na tela$ s5 isso mesmo?tili>e o comando echo e exiba seu nome na tela$ s5 isso mesmo b)
b) Ftimo$ A%ora voc3 vai usar o K (sinal de maior) para redirecionar o seu nome paraFtimo$ A%ora voc3 vai usar o K (sinal de maior) para redirecionar o seu nome para 2T+0 do arquivo nome$txt$ Tente usar o echo 1unto com esse operador$ Tente 2T+0 do arquivo nome$txt$ Tente usar o echo 1unto com esse operador$ Tente descobrir como #a>er
descobrir como #a>er isso-c)
c) Liste os arquivos do diret5rio atual e ve1a se o arquivo nomes$txt #oi criado$Liste os arquivos do diret5rio atual e ve1a se o arquivo nomes$txt #oi criado$ d)
d) "or ltimo. para ter certe>a que deu certo o comando. exiba o contedo do arquivo$"or ltimo. para ter certe>a que deu certo o comando. exiba o contedo do arquivo$ e)
e) Ftimo. tente a%ora 1o%ar Ftimo. tente a%ora 1o%ar dentro desse mesmo arquivo o nome de um amdentro desse mesmo arquivo o nome de um ami%o seu$ xibai%o seu$ xiba o contedo e ve1a se deu certo$ Doc3 tem minutos para descobrir como o contedo e ve1a se deu certo$ Doc3 tem minutos para descobrir como AC+9C2TA+ ao #inal do arquivo o outro nome$ 2ão 90B+9C+D+. mas AC+9C2TA+ ao #inal do arquivo o outro nome$ 2ão 90B+9C+D+. mas AC+9C2TA+$
AC+9C2TA+$
&uito bom- At/ aqui voc3 aprendeu como redirecionar sa!da e acrescentar ao #inal de &uito bom- At/ aqui voc3 aprendeu como redirecionar sa!da e acrescentar ao #inal de um arquivo$ &as a%ora voc3 vai aprender sobre a maior descoberta do homem. depois um arquivo$ &as a%ora voc3 vai aprender sobre a maior descoberta do homem. depois da eletricidade$ 0
da eletricidade$ 0
7"ipin%8-0 pipin%. ou pipe. ou canali>ação. etc$ / representado pelo s!mbolo M (eve estar perto 0 pipin%. ou pipe. ou canali>ação. etc$ / representado pelo s!mbolo M (eve estar perto da contra4barra no seu teclado. olha a!$$$)
da contra4barra no seu teclado. olha a!$$$)
le / o campeão da linha de comando pois permite que se N?2T DO+I09 le / o campeão da linha de comando pois permite que se N?2T DO+I09
C0&A209---Damos lá Damos lá #)
#) xiba o contedo do xiba o contedo do arquivo arquivo 'var'lo%'dmes% (?se a 'var'lo%'dmes% (?se a tecla TAB que tecla TAB que voc3 completa ovoc3 completa o caminho do arquivo)$
caminho do arquivo)$ %)
%) &uita in#ormação não / mesmo<< Tente a%ora C02CAT2A+ esse comando de&uita in#ormação não / mesmo<< Tente a%ora C02CAT2A+ esse comando de lista%em com o comando
PP
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade 4
Atividade 4
2essa atividade vamos mudar um pouco as coisas$ Damos trabalhar com diret5rios. que são os 2essa atividade vamos mudar um pouco as coisas$ Damos trabalhar com diret5rios. que são os equivalentes as pastas no ambiente %rá#ico$ 9ão H comandos básicos cd para voc3 acessar o equivalentes as pastas no ambiente %rá#ico$ 9ão H comandos básicos cd para voc3 acessar o diret5rio (entrar nele). mQdir para criar diret5rios e rmdir para apa%a4los$
diret5rio (entrar nele). mQdir para criar diret5rios e rmdir para apa%a4los$
&ais um detalhe 2o unix o $ (ponto) si%ni#ica diret5rio atual e o $$ (ponto ponto) si%ni#ica &ais um detalhe 2o unix o $ (ponto) si%ni#ica diret5rio atual e o $$ (ponto ponto) si%ni#ica diret5rio pai$
diret5rio pai$ a)
a) Crie a estrutura de diret5rios abaixo dentro de sua home (a pasta que voc3 1á deveCrie a estrutura de diret5rios abaixo dentro de sua home (a pasta que voc3 1á deve estar. provavelmente) estar. provavelmente) Alfa---Beta Alfa---Beta |--Gama |--Gama |--Delta |--Delta |--Abc---Aplic |--Abc---Aplic |--Dos |--Dos |--Xyz-- abc |--Xyz-- abc b)
b) Ftimo$ A%ora remova o diret5rio Rama e o diret5rio elta$ Sácil não / mesmo<Ftimo$ A%ora remova o diret5rio Rama e o diret5rio elta$ Sácil não / mesmo< c)
c) "ara remover o diret5rio Abc voc3 teria que apa%ar tudo que está dentro dele$ &as"ara remover o diret5rio Abc voc3 teria que apa%ar tudo que está dentro dele$ &as vamos #a>er de um 1eito mais #ácil$ stando dentro do diret5rio Al#a di%ite rm Gr# Abc vamos #a>er de um 1eito mais #ácil$ stando dentro do diret5rio Al#a di%ite rm Gr# Abc
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade 5
Atividade 5
Criar diret5rios / divertido mesmo. mas vamos voltar para o trabalho com manipulação de Criar diret5rios / divertido mesmo. mas vamos voltar para o trabalho com manipulação de textos- 0 comando cut me permite listar somente CA&"09 que me interessam em um textos- 0 comando cut me permite listar somente CA&"09 que me interessam em um arquivo$ Doc3 deve se atentar para duas coisas ao usar o comando cut LI&ITA0+ e arquivo$ Doc3 deve se atentar para duas coisas ao usar o comando cut LI&ITA0+ e CA&"0 9NA0$
CA&"0 9NA0$ 9abendo disso. resolva 9abendo disso. resolva
a)
a) &ostre somente o primeiro campo do &ostre somente o primeiro campo do arquivo 'etc'passdarquivo 'etc'passd b)
*
*
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade
Atividade
A%ora voc3 precisará do contedo do arquivo Linux$>ip que disponibili>amos como material A%ora voc3 precisará do contedo do arquivo Linux$>ip que disponibili>amos como material extra do curso$ 9e voc3 usa a máquina virtual que eu #orneci verá esses arquivos dentro da extra do curso$ 9e voc3 usa a máquina virtual que eu #orneci verá esses arquivos dentro da pasta ocumentos$ 9enão basta voc3 baixar para trabalhar$
pasta ocumentos$ 9enão basta voc3 baixar para trabalhar$ "er#eito- A%ora 1á podemos executar al%uns comandos "er#eito- A%ora 1á podemos executar al%uns comandos
a)
a) xiba o contedo do arquivo placas$txt$ Deri#ique que o mesmo está #ora de ordem.xiba o contedo do arquivo placas$txt$ Deri#ique que o mesmo está #ora de ordem. não / isso<
não / isso< b)
b) Coloque esse arquivo em ordem redirecionando a sa!da para dentro do arquivoColoque esse arquivo em ordem redirecionando a sa!da para dentro do arquivo placas$txt (Tente o
placas$txt (Tente osortsort))
c)
c) Ftimo$ A%ora precisamos ?2I+ o arquivo carros$txt com o arquivo placas$txt$ TenteFtimo$ A%ora precisamos ?2I+ o arquivo carros$txt com o arquivo placas$txt$ Tente #a>er isso com o comando 1oin$
#a>er isso com o comando 1oin$ d)
d) Ftimo- Acho que voc3 está indo bem$ ?se o c e conte a quantidade de linhas doFtimo- Acho que voc3 está indo bem$ ?se o c e conte a quantidade de linhas do arquivo #uncionários$txt.
então-**
**
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade !
Atividade !
0Q$ A%ora voc3 precisará resolver al%uns problemas usando o que 1á aprendeu at/ a%ora (e 0Q$ A%ora voc3 precisará resolver al%uns problemas usando o que 1á aprendeu at/ a%ora (e umas coisas novas tamb/m)
umas coisas novas tamb/m) a)
a) Liste o arquivo #uncionários$txt mostrando somente os #uncionários que tenhamListe o arquivo #uncionários$txt mostrando somente os #uncionários que tenham pre#ixo no tele#one$ ("esquise pelo %rep)
pre#ixo no tele#one$ ("esquise pelo %rep) b)
b) Conte quantos #uncionários #oram admitidos em Conte quantos #uncionários #oram admitidos em *$*$ c)
c) xiba somente o ano de admissão dos #uncionáriosxiba somente o ano de admissão dos #uncionários d)
d) xiba somente o primeiro nome dos #uncionáriosxiba somente o primeiro nome dos #uncionários e)
e) xiba somente o primeiro nome xiba somente o primeiro nome dos #uncionários em letras minsculas (para dos #uncionários em letras minsculas (para converterconverter para letras minsculas voc3 pode usar tr UA4VW Ua4>W$
para letras minsculas voc3 pode usar tr UA4VW Ua4>W$ #)
#) 0 arquivo #uncionários$txt possui linhas ao todo$ ivida4o. usando o comando0 arquivo #uncionários$txt possui linhas ao todo$ ivida4o. usando o comando split. em arquivos menores de linhas cada$
split. em arquivos menores de linhas cada$ %)
%) xiba somente a JPX linha do arquivo #uncionarios$txtxiba somente a JPX linha do arquivo #uncionarios$txt h)
*
*
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade "
Atividade "
"ara não se esquecer de qual usuário está lo%ado voc3 pode usar o comando 7;uem 9ou u8$ "ara não se esquecer de qual usuário está lo%ado voc3 pode usar o comando 7;uem 9ou u8$
a)
a) ;ual o nome do usuário lo%ado no momento<;ual o nome do usuário lo%ado no momento< b)
b) ?se o editor nano e crie um arquivo chamado nomes$txt contendo o se%uinte?se o editor nano e crie um arquivo chamado nomes$txt contendo o se%uinte anaYbanana anaYbanana 1oseYbuscape 1oseYbuscape pedroYmala>arte pedroYmala>arte c)
c) Crie a%ora o arquivo provedores$txt e adicione o se%uinte contedoCrie a%ora o arquivo provedores$txt e adicione o se%uinte contedo Zahoo$com Zahoo$com %mail$com %mail$com bol$com$br bol$com$br d)
d) xcelente- A%ora use o comando paste para criar um novo arquivo com endereços dexcelente- A%ora use o comando paste para criar um novo arquivo com endereços de email criados a partir dos dois arquivos acima$ sse arquivo deverá se chamar e4 email criados a partir dos dois arquivos acima$ sse arquivo deverá se chamar e4 mails$txt$
*H
*H
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Atividade #
Atividade #
"ara #inali>ar vamos manipular al%uns arquivos$ "ara #inali>ar vamos manipular al%uns arquivos$
a)
a) Copie o arquivo e4mails$txt para outro$txt usando o comando cpCopie o arquivo e4mails$txt para outro$txt usando o comando cp b)
b) +enomeie o arquivo outro$txt para alterado$txt usando o comando mv+enomeie o arquivo outro$txt para alterado$txt usando o comando mv c)
c) Crie um diret5rio com o nome de teste e copie o arquivo e4mails$txt para dentro desseCrie um diret5rio com o nome de teste e copie o arquivo e4mails$txt para dentro desse diret5rio$
diret5rio$ d)
*,
*,
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
Para$%ns &or chegar at% a'(i)
Para$%ns &or chegar at% a'(i)
9e voc3 cumpriu as atividades corretamente 1á conse%uiu ter uma noção do poder que o 9e voc3 cumpriu as atividades corretamente 1á conse%uiu ter uma noção do poder que o terminal Linux tem$
terminal Linux tem$
stou a disposição pelo email baciotti[%mail$com para a1udá4lo$ stou a disposição pelo email baciotti[%mail$com para a1udá4lo$ Lembre4se de #a>er as atividades extras para
Lembre4se de #a>er as atividades extras para sedimentar o que aprendeu-sedimentar o que aprendeu-?m abraço.
?m abraço.
Tia%o Baciotti &oreira Tia%o Baciotti &oreira
*@
*@
Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira) Aprenda Terminal Linux pondo a mão na massa- ("ro#$ Tia%o Baciotti &oreira)
*estre +oo discorre so$re a
*estre +oo discorre so$re a nter-ace .r/-ica do Us(/rionter-ace .r/-ica do Us(/rio
Certa noite &estre Soo e 2ubi participavam de um encontro de pro%ramadores que decidiram Certa noite &estre Soo e 2ubi participavam de um encontro de pro%ramadores que decidiram se reunir para aprender um dos outros$ ?m dos pro%ramadores per%untou a 2ubi a que escola se reunir para aprender um dos outros$ ?m dos pro%ramadores per%untou a 2ubi a que escola ele e seu mestre pertenciam$ Lo%o ap5s de ter ouvido que eles eram se%uidores do Rrandioso ele e seu mestre pertenciam$ Lo%o ap5s de ter ouvido que eles eram se%uidores do Rrandioso Caminho do ?nix o pro%ramador retrucou sarcasticamente$
Caminho do ?nix o pro%ramador retrucou sarcasticamente$
\As #erramentas de linha4de4comando do ?nix são arcáicas e rudes\. ele desdenhou$ \9istema \As #erramentas de linha4de4comando do ?nix são arcáicas e rudes\. ele desdenhou$ \9istema modernos. propriamente pro1etados #a>em tudo atrav/s de uma
modernos. propriamente pro1etados #a>em tudo atrav/s de uma inter#ace %rá#ica do usuário$\inter#ace %rá#ica do usuário$\ &estre Soo não disse nada. mas apontou para a lua$ ?m cachorro pr5ximo começou a latir &estre Soo não disse nada. mas apontou para a lua$ ?m cachorro pr5ximo começou a latir para a mão do mestre$
para a mão do mestre$
\2ão consi%o entend34lo-\ disse o pro%r
\2ão consi%o entend34lo-\ disse o pro%ramador$amador$
&estre Soo continuou em sil3ncio. e apontou para a ima%em de Buddha$ então ele apontou &estre Soo continuou em sil3ncio. e apontou para a ima%em de Buddha$ então ele apontou para uma 1anela$
para uma 1anela$
\0 que voc3 está tentando me di>er<\ per%untou o pro%ramador$ \0 que voc3 está tentando me di>er<\ per%untou o pro%ramador$
&estre Soo apontou para a cabeça do pro%ramador. e lo%o depois ele apontou para uma &estre Soo apontou para a cabeça do pro%ramador. e lo%o depois ele apontou para uma pedra$
pedra$
\"or que voc3 não tenta ser mais claro<\ exi%iu o pro%ramador$ \"or que voc3 não tenta ser mais claro<\ exi%iu o pro%ramador$
&estre Soo #ran>iu contemplativamente a testa e deu dois toques no nari> do pro%ramador. &estre Soo #ran>iu contemplativamente a testa e deu dois toques no nari> do pro%ramador. empurrando4o numa lixeira ao lado$
empurrando4o numa lixeira ao lado$
nquanto o pro%ramador se debatia no lixo o cachorro
nquanto o pro%ramador se debatia no lixo o cachorro andou a esmo e urinou sobre ele$andou a esmo e urinou sobre ele$ 2esse momento o pro%ramador alcançou iluminação$
2esse momento o pro%ramador alcançou iluminação$ ric +aZmond. 0s ]oans do &estre Soo