Sei sulla pagina 1di 126

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.

br

DlteC do Brasil

www.dltec.com.br
info@dltec.com.br | 41 3045.7810

DLTEC DO
BRASIL

APOSTILA/EBOOK DO CURSO DE LINUX


ESSENTIALS

Apostila/eBook do Curso Linux Essentials


DlteC do Brasil
Todos os direitos reservados
Apostila/eBook do Curso Linux Essentials

Pgina 1

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Sobre o E-book/Apostila
O contedo desse documento uma adaptao
da matria online de leitura do curso.
O presente material traz contedo terico do
curso online, porm temos que deixar claro que
no um curso e sim uma adaptao do
nosso material online para e-book/apostila.
Portanto recursos como exerccios, simulados,
tutoria (tira dvidas com professores) e vdeo
aulas no fazem parte desse e-book, pois so
exclusivos para alunos devidamente matriculados
em nosso site oficial.

Para maiores informaes sobre nossos treinamento visite o site:

>>> http://www.dltec.com.br <<<

Apostila/eBook do Curso Linux Essentials

Pgina 2

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Direitos Autorais
Aviso Importante!
Esse material de propriedade da DlteC do Brasil Ltda e protegido pela lei
de direitos autorais 9610/98.
expressamente proibida cpia fsica ou em meio digital, reproduo parcial,
reprografia, fotocpia ou qualquer forma de extrao de informaes deste sem
prvia autorizao da DlteC do Brasil conforme legislao vigente.
Seu uso pessoal e intransfervel somente para o cliente que adquiriu o
referido e-book/apostila.
A cpia e distribuio so expressamente proibidas e seu descumprimento
implica em processo cvel de danos morais e materiais previstos na legislao
contra quem copia e para quem distribui, sejam cpias fsicas e/ou digitais.
Copyright 2016.

Apostila/eBook do Curso Linux Essentials

Pgina 3

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Indice
Introduo .................................................................................................................................. 5
Captulo 01 A Comunidade Linux e uma Carreira em Opensource .............................................. 6
Captulo 02 Encontrando seu Caminho em Sistemas Linux ....................................................... 23
Captulo 03 O Poder da Linha de Comandos ............................................................................ 53
Captulo 04 - O sistema operacional Linux.................................................................................. 76
Captulo 05 - Segurana e Permisses de Arquivos ................................................................... 102

Apostila/eBook do Curso Linux Essentials

Pgina 4

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Introduo

Ol,
Essa apostila que voc recebendo uma
adaptao do material de leitura Online do
curso Linux Essentials da DlteC do Brasil.
Aqui nessa apostila colocamos uma
adaptao em texto do nosso material
online de estudo (matria online do curso
Linux Essentials).
Esperamos que voc aproveite o material e
bons estudos.

Apostila/eBook do Curso Linux Essentials

Pgina 5

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Captulo 01 - A Comunidade
Linux e uma Carreira em
Opensource
Objetivos do Captulo
Ao longo desse captulo voc dever:

Obter
conhecimentos
sobre
o
desenvolvimento do linux e suas
principais distribuies
Ter noes sobres as principais
aplicaes
no
Linux
e
suas
utilizaes
Obter
conhecimentos
sobre
comunidades
abertas
e
licenciamento
de
softwares
opensource para os negcios
Obter conhecimentos bsicos sobre o
ICT e formas de se trabalhar com o
Linux

Apostila/eBook do Curso Linux Essentials

Pgina 6

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Sumrio do Captulo
1 Evoluo do Linux como um Sistema
Operacional Popular __________________ 8

1.1

Filosofia OpenSource ______________ 9

1.2

Distribuies Linux ________________ 9

1.3

Sistemas Embarcados ____________ 10

Principais Aplicaes Open Source___ 11


2.1

Aplicaes para Desktop __________ 12

2.2

Aplicaes para Servidores ________ 14

2.3

Aplicaes Mveis _______________ 14

2.4

Linguagens de Desenvolvimento____ 15

2.5 Ferramentas de Gerenciamento de


Pacotes e Repositrios _________________ 16

3 Entendendo o Software OpenSource e o


Licenciamento ______________________ 17
3.1

Licenciamento __________________ 18

3.2

Freesoftware Foundation (FSF) _____ 18

3.3

OpenSource Initiative (OSI) ________ 18

4 Habilidades com ICT e Trabalhando no


Linux ______________________________ 19
4.1

Desktops_______________________ 20

4.2

Utilizando a Linha de Comando no Linux


21

4.3

Casos de Uso de Linux na Indstria __ 22

Apostila/eBook do Curso Linux Essentials

Pgina 7

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Evoluo do Linux como um Sistema Operacional Popular

Peso: 2
Descrio: Conhecimentos sobre o desenvolvimento do linux e suas principais distribuies.
Tpicos Importantes:
Filosofia OpenSource
Distribuies
Sistemas Embarcados
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
Android
Debian
CentOS

Apostila/eBook do Curso Linux Essentials

Pgina 8

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.1 Filosofia OpenSource


Open Source por si s uma filosofia que promove a livre distribuio, redistribuio e
acesso a um determinado software, incluindo ao cdigo do mesmo (por isso o nome Open
Source - cdigo aberto), onde voc tem o direito de ler, alterar e redistribuir suas (ou com
suas) alteraes. Existem variaes de licenas Open Source que permite ou no algumas
coisas, mas chegaremos neste ponto mais adiante.
Uma das coisas que fez com que o Open Source se popularizasse foi a evoluo da internet,
com esta foi possvel a interao e colaborao de voluntrios do mundo todo em determinados
projetos, tornando a evoluo dos mesmos surpreendentes, um bom exemplo disso o Linux.
Uma frase padro que costumamos utilizar para descrever este processo que enquanto um
desenvolvedor brasileiro para de trabalhar e vai dormir, um desenvolvedor japons acorda e
comea a trabalhar no Linux, tornando desta forma o desenvolvimento rpido e constante.
O Open Source deu espao para a criao de vrias outras culturas, como por exemplo a
Creative Commons, esta uma licena de direitos autorais com a qual voc pode ou no
permitir que as pessoas utilizem seu produto (artstico), alterem, redistribuam, e assim por
diante, mantendo voc mencionado no trabalho atravs de vrios pontos da licena.
Basicamente a ideia da filosofia do Open Source permitir que voc possa:

Utilizar um software para qualquer propsito


Adaptar um software, estudar seu cdigo e funcionamento
Distribuir o software ou redistribuir com ou sem alteraes

1.2 Distribuies Linux


Distribuies so por assim dizer caixas de software. Basicamente um Linux, com uma
seleo de softwares que aqueles que a montaram acreditam ser o ideal para o seu pblico
alvo.
Estas distribuies so montadas por grupos de voluntrios (como o caso do slackware ,
Debian e gentoo por exemplo) ou por empresas como acontece com o RedHat Linux ou SuSE
Linux (novel). Dentro deste ponto voc costuma ter distribuies para diferentes pontos de
interesse, veja abaixo uma pequena lista com alguns casos.

Desktop: Ubuntu, OpenSuSE, Fedora, LinuxMint


Servidores: Debian, CentOS, RedHat, SuSE Linux
Segurana (firewalls/ids e outros): OpenWall, Vyatta, BackTrack

A grande questo que fica o porque montar uma distribuio? J no existem muitas?
Como citamos no inicio, uma distribuio feita por um grupo de voluntrios ou uma empresa
analisando necessidades que eles acham necessrias. Para exemplificar imagine o seguinte
cenrio: voc trabalha em uma empresa que utiliza um Linux RedHat e em cada desktop,
depois de instalado o linux, voc precisa instalar uma srie de softwares e aplicativos.
No seria muito mais fcil, j que trata-se de um processo repetitivo, que voc monte um CD
com todos os aplicativos dentro e um processo automtico de instalao j no seu perfil? Assim
nasce uma nova distribuio Linux que pode ou no chegar a conhecimento publico.

Apostila/eBook do Curso Linux Essentials

Pgina 9

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.3 Sistemas Embarcados


O Linux um dos principais sistemas operacionais utilizados em sistemas embarcados, mas o
que so sistemas embarcados?
Sistemas embarcados so hardwares criados para um propsito especifico, ou uma srie de
propsitos, mas um equipamento limitado, podendo ser um pabx, um celular, um pda, um
receptor de tv ou uma tv.
Na verdade existem vrios ambientes onde o Linux pode ser utilizado, por exemplo, os
celulares que chamamos de Android so celulares com Linux Embarcado, ou seja, ele vem de
fbrica com o Linux controlando suas funes principais, os receptores de satlite da AZBox so
outro caso onde um sistema Linux que roda no hardware.

Apostila/eBook do Curso Linux Essentials

Pgina 10

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Principais Aplicaes Open Source

Peso: 2
Descrio: Conhecimentos das principais aplicaes e suas utilizaes.
Tpicos Importantes:
Aplicaes para Desktop
Aplicaes de Servidores
Aplicaes Mveis
Linguagens de Desenvolvimento
Ferramentas para Gerenciamento de Pacotes e Repositrios
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
OpenOffice.org, LibreOffice, Thunderbird, Firefox
Blender, Gimp, Audacity, ImageMagick
Apache, MySQL, PostgreSQL
NFS, Samba, OpenLDAP, Postfix, DNS, DHCP
C, Perl, shell, Python, PHP

Apostila/eBook do Curso Linux Essentials

Pgina 11

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.1 Aplicaes para Desktop


Gerenciadores de Desktop
Os gerenciadores de desktop foram desenvolvidos para facilitar o uso do Linux para os
usurios finais. No incio, o Linux no era muito popular entre os usurios finais e sua utilizao
era mais difundida no meio tcnico ou acadmico. Isso porque antes dos gerenciadores de
desktops tudo o que voc precisasse fazer no Linux deveria ser feito via linha de comandos.
Os usurios finais que desejavam utilizar o computador para tarefas corriqueiras, como acessar
a internet, ver um email e etc acabavam no gostando do linux devido a essa dificuldade inicial.
Com o intuito de difundir a utilizao do linux para todos os tipos de usurios (residenciais,
comerciais) os programadores desenvolveram interfaces grficas, chamadas de gerenciadores
de desktops, para permitir ao usurio uma melhor experincia de usabilidade.
A grande questo que existem vrias verses diferentes, com focos diferentes e com recursos
diferentes, onde o melhor deles depende unicamente das suas escolhas e do seu gosto.
Alguns dos gerenciadores de desktop mais conhecidos so:

Gnome ( http://www.gnome.org/ )

KDE ( http://www.kde.org/ )

Apostila/eBook do Curso Linux Essentials

Pgina 12

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Estes dois so os mais completos e amplamente utilizados, mas existem vrios outros , alguns
levssimos com alguns recursos interessantes, outros praticamente sem recurso algum,
variando conforme sua finalidade, segue abaixo uma pequena lista com alguns exemplos.

LXDE ( http://www.lxde.org/ )
Fluxbox ( http://www.fluxbox.org/ )
XFCE ( http://www.xfce.org/ )
FVWM ( http://www.fvwm/ )
Icewm ( http://www.icewm.org/ )
WindowMaker ( http://www.windowmaker.org/ )

Alm destes existem muitos outros, mas vamos deixar isso para voc mesmo descobrir e fazer
a escolha da melhor opo para o seu perfil.
Aplicativos de Desktop
Como quase tudo no Linux, temos muitas variaes de vrios de tipos de softwares. Existem
diversas opes de gerenciadores de arquivos, sutes de escritrio, gravadores de cd, players
de udio, mas existem algumas que se destacam em meio a multido. Veja abaixo apenas
alguns exemplos.
Sute de Escritrio
OpenOffice/LibreOffice ( http://www.openoffice.org/ / http://www.libreoffice.org/ )
Gravador de CDs/DVD
K3b ( http://www.k3b.org/)
Gravao / Manipulao de udio
Audacity (http://www.audacity.sourceforge.net/)
Grficos 3D
Blender ( http://www.blender.org/ )
Editor de vdeo
Cinelerra ( http://www.cinelerra.org/ )

Apostila/eBook do Curso Linux Essentials

Pgina 13

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.2 Aplicaes para Servidores


Hoje os sistemas Linux vrios servios na internet, um deles e amplamente utilizado por todos
ns so os websites, na maior parte das vezes hospedados em servidores Linux rodando o
software Apache.
Para termos uma ideia da sua popularidade a utilizao do Linux hoje correspondente a 62%
dos servidores mundiais (relatrio da netcraft at junho de 2011), mas tambm existem
muitos servidores de e-mails, bancos de dados, firewalls, proxys e outras aplicaes.
Tambm existem vrios aplicativos para compartilhamento de arquivos como o samba, nfs,
coda, aplicaes para servio de DNS como o BIND, PowerDNS e outras

2.3 Aplicaes Mveis


O Linux tambm muito utilizado em aplicaes mveis, um dos primeiros Linux que saiu
para dispositivo mvel foi o Symbian da Nokia. Sua primeira release saiu em 1997 e foi
embarcado na maior parte dos dispositivos Nokia at a chegada do AndroidOS. Outro exemplo
que podemos citar o MeeGo que foi criado de uma juno dos projetos Moblin e Maemo.
Tambm existem vrios dispositivos que vem com sistemas Linux, mas que devido aos seus
fabricantes darem uma interface prpria e no mostrarem as telas de boot, muitas vezes no
percebemos que so na verdade um Linux. Um bom exemplo desses casos o AndroidOS que
levou estes sistemas a um novo patamar, trazendo um sistema Linux mais completo e mais
compatvel com os softwares que existem para o mesmo.
Voc pode por exemplo pegar um celular com AndroidOS, fazer o jailbreak do mesmo para ter
acesso root e ento instalar um Samba para compartilhar dados do seu celular em uma rede
Windows, ou pode colocar um servidor apache no mesmo entre outras funes.

Apostila/eBook do Curso Linux Essentials

Pgina 14

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Informao Adcional:
O que significa Jailbreak?
Em uma traduo livre e literal, "Jailbreak" significa "fugir da priso", e representa uma
metfora para o ato de burlar as restries impostas por uma empresa em seus dispositvos,
adicionando funcionalidades no oficiais a eles.
O mtodo, desenvolvido por grupos hackers, tem sido comumente relacionado aos
dispositivos da Apple e ao seu sistema operacional mvel, o iOS, devido grande
popularidade que o processo ganhou entre esses usurios. Entretanto, possvel realizar o
Jailbreak para "desbloquear" outros aparelhos, como no Playstation 3, da Sony, ou o Xbox
360, da Microsoft, por exemplo.
2.4 Linguagens de Desenvolvimento
O Linux em si, que na verdade apenas o Kernel, desenvolvido utilizando as linguagens C e
C++, j as aplicaes que voc utiliza so construdas nas mais variadas linguagens passando
por C, C++, Earlang, Python, Perl, PHP, assembly e muitas outras, na maior parte utilizando
compiladores 100% livres que foram escritos em C e C++.

Informao Adcional:
O que o Kernel do Linux?
O kernel responsvel pelas funes vitais do sistema, como gerenciamento de memria,
gerenciamento de dispositivos e controle de processos em execuo. A cada ms so
lanadas novas verses de Kernel, que podem ser obtidas gratuitamente pela internet,
trazendo suporte a novos dispositivos, trazendo caractersticas inovadoras, ou simplesmente
aperfeioando o que j existe.
No confuda Kernel com distribuies linux, o Kernel faz parte de uma distribuio. Toda
distribuio tem a sua verso de Kernel.

Apostila/eBook do Curso Linux Essentials

Pgina 15

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.5 Ferramentas de Gerenciamento de Pacotes e Repositrios


Diferentemente do Windows, onde voc pode pegar um arquivo .exe que contenha toda a
estrutura necessria para a aplicao rodar, no Linux quando voc desenvolve um software
normalmente voc no o cria inteiro, voc utiliza muito cdigo pronto como bibliotecas
grficas, bibliotecas para conexo com bancos de dados, manipulao de arquivos e etc.
Para facilitar o gerenciamento destes softwares e o processo de instalao o Linux utiliza
o conceito de pacotes com dependncias, ou seja, meu software X depende do software A, B, C
para instalar, o software C por sua vez depende do software E que por sua vez depende do
software H.
Neste caso, se voc baixar apenas o software X e tentar instalar o mesmo usando por exemplo
o rpm ou o dpkg (falaremos mais sobre o rpm e dpkg posteriormente) ele ir falar que para
instalar o software X necessrio A, B, C e etc, e no vai prosseguir com a instalao.

Apostila/eBook do Curso Linux Essentials

Pgina 16

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Entendendo o Software OpenSource e o Licenciamento

Peso: 1
Descrio: Conhecimentos sobre
opensource para os negcios.

comunidades

abertas

licenciamento

de

softwares

Tpicos Importantes:
Licenciamento
Free Software Foundation (FSF), Open Source Initiative (OSI)
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
GPL, BSD, Creative Commons
Free Software, Open Source Software, FOSS, FLOSS
Open Source business models

Apostila/eBook do Curso Linux Essentials

Pgina 17

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.1 Licenciamento
O Linux foi inicialmente lanado sob uma licena de software que proibia qualquer uso
comercial.
Isso foi rapidamente alterado pela GPL (Gnu Public
Licence), atravs desta licena foi permitida a venda,
distribuio, alterao de novas verses que poderiam ser
ou no modificadas garantindo que estas verses fossem
lanadas dentro da mesma licena permanecendo assim os
mesmos direitos e os crditos aos autores.
Infomao adcional:
http://pt.wikipedia.org/wiki/GNU_General_Public_License

3.2 Freesoftware Foundation (FSF)


A Freesoftware Foundation (FSF) uma organizao
sem fins lucrativos com ao mundial para promover o
uso de computadores e para defender os direitos de
todos os usurios de software livre.
Atualmente a FreeSoftware Foundation conta com
membros como Google, Oracle, IBM , HP, Intel, Nokia e
muitos outros, estes membros colaboram com recursos
financeiros, tcnicos, estruturais entre outros.

Informao adcional:
http://www.fsf.org

3.3 OpenSource Initiative (OSI)


Assim como a FSF a OSI (OpenSource Initiative) uma
organizao sem fins lucrativos com ao global formada
para educar e advogar em beneficio do software livre e
construir meios para constituir o uso de software livre.
Uma das principais atividades da OSI a definio de
padres, mantendo a definio aberta para o bem da
comunidade. As licenas aprovadas e mantidas pela OSI
criam um elo de segurana ao redor de desenvolvedores,
usurios, corporaes e governos para que estes possam
organizar a cooperao sobre o cdigo aberto.
Informao adcional:
http://opensource.org/

Apostila/eBook do Curso Linux Essentials

Pgina 18

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Habilidades com ICT e Trabalhando no Linux

Peso: 2
Descrio: Conhecimentos bsicos sobre o ICT e formas de se trabalhar com o Linux.
Tpicos Importantes:
Conhecimentos em Desktop
Linha de Comando no Linux
Uso do Linux na Indstria, Computaes nas Nuvens e Virtualizao
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
Using a browser, privacy concerns, configuration options, searching the web and saving content
Terminal and Console
Password issues
Privacy issues and tools
Use of common open source applications in presentations and projects

Apostila/eBook do Curso Linux Essentials

Pgina 19

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.1 Desktops
Antes de mais nada vamos entender o que ICT (Information and Communication
Technology). ICT basicamente tecnologia da informao, seja ela a utilizao de softwares
para pesquisa, comunicao, contedo multimdia ou qualquer outro modelo, basicamente aqui
estamos falando de navegao na web, conceitos de privacidade e outras questes que
envolvem comunicao usando o computador.
Atualmente o desktop do Linux extremamente completo, as solues so muito bem
acabadas e voc possui algumas variaes de desktop com focos diferentes permitindo que
voc escolha a melhor opo para voc. Conforme j comentamos, alguns dos desktops mais
conhecidos so o GNOME (figura 1) o KDE (figura 2).

Figura 1

Figura 2

Graas a estes desktops, voc tem uma experincia muito mais simples atualmente durante a
utilizao de sistemas Linux. Desde o surgimento dos primeiros desktops para Linux muito se
evoluiu, inclusive suporte a placas de vdeo e tudo mais, ganhando-se em performance e
qualidade.
Os softwares desktops para Linux incluem atualmente excelentes aplicaes, como por
exemplo, os navegadores Firefox, Google Chrome e Opera (alm de outros), sute de escritrio
OpenOffice/LibreOffice e o Calligra que faz parte da sute do KDE e tambm alguns
aplicativos do Gnome para determinadas funes como o Abiword (editor de texto), gnumeric
(planilhas), Inkscape (editorao) e outras aplicaes.
Em termos de sute de escritrio o OpenOffice/LibreOffice o mais completo e tambm o que
mais se assemelha aos recursos oferecidos pelo Office da Microsoft ou da Apple.

Apostila/eBook do Curso Linux Essentials

Pgina 20

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Conforme falado existem muitas aplicaes para Linux, para vrias finalidades. Basta procurar
um pouco e normalmente voc acha tudo que precisa com uma verso open source de tima
qualidade.
4.2 Utilizando a Linha de Comando no Linux
A utilizao de desktops que falamos anteriormente mais utilizada por usurios finais, que
utilizam o Linux em seus micros e laptops. Quando falamos em Linux, principalmente para
funes de servidor muito comum utilizarmos apenas linha de comando para
manipulao do sistema, desta forma imprescindvel que conheamos algumas questes
bsicas sobre isso.
A linha de comando do Linux permite a voc realizar praticamente todas as atividades
necessrias do sistema. Tenha em mente que tudo em si comando, ao dar um clique em
um cone voc est utilizando de forma transparente um comando para executar o programa
em questo.
No Linux atravs da linha de comando possvel verificar status de rede, configurar a rede,
configurar um compartilhamento de rede, alterar informaes de data e hora, alterar
configuraes de funcionamento do equipamento, executar programas, instalar atualizaes e
por ai vai.
A Linha de Comando:
A navegao via linha de comando similar ao utilizado no Windows por exemplo, digamos que
voc tenha no Windows sua partio C: com uma pasta chamada teste dentro dela, no
Windows o comando para acesso seria:
C:\> cd teste
No Linux no seria to diferente:
root@localhost ~/ # cd /teste
A /" que informarmos no caso do Linux porque no exemplo a pasta no est no mesmo
diretrio que o usurio se encontra, isso no Windows tambm possvel com o comando cd
\teste
Alm destes voc tem vrios outros comandos para, por exemplo:
limpar a tela: clear
listar arquivo: cat ARQUIVO
listar diretrio: ls DIRETORIO
editar arquivo: nano ARQUIVO
Como j comentamos, basicamente no Linux tudo possvel de ser feito na linha de comando,
entraremos mais a fundo nestas questes no prximo tpico desse mdulo.

Apostila/eBook do Curso Linux Essentials

Pgina 21

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.3 Casos de Uso de Linux na Indstria


Atualmente temos muitas empresas utilizando Linux em sistema crticos, para quem no
conhece o termo a ideia de sistema crtico aquele sistema que no pode parar, tendo que
se manter o tempo todo estvel e disponvel.
O Linux por sua flexibilidade e variedade de aplicaes utilizado em vrias reas diferentes.
comum encontramos empresas que utilizam o Linux em seus roteadores para fazer
conectividade de grande porte com operadoras de telecomunicaes, ou utilizam o Linux como
seu servidor radius para autenticao e controle de seus usurios de internet. Tambm existem
plataforma de voz (voip) construda com Linux utilizando softwares Asterisk, OpenSIPS e
FreeSwitch, alm de bancos de dados MySQL e outras ferramentas.
O Linux tambm utilizado em praticamente todos os supercomputadores existentes hoje no
mercado (todos os top 10 so Linux) , alm de vrias outras solues como caixas eletrnicos
do sistema bancrio e computadores de bordo em carros. Muitas empresas possuem Linux
sendo utilizados como Gateways ou Proxies, este uso muito comum e muitas vezes a empresa
nem mesmo tem noo que faz uso de Linux em seu sistema critico.
Exemplos de uso do Linux

Departamento de Defesa dos Estados Unidos


Prefeitura de Munich, Alemanh
Correio Americano
Governo do Mxico
Petrobrs
Banco do Brasil
Walmart
DreamWorks

Enfim, como podemos perceber existem muitos usos de Linux, em diferentes ambientes para
diferentes finalidades

Apostila/eBook do Curso Linux Essentials

Pgina 22

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Captulo 02 - Encontrando
seu Caminho em Sistemas
Linux
Objetivos do Captulo
Ao longo desse captulo voc dever:

Aprender a utilizao bsica da linha


de comandos no Linux.
Aprender como utilizar os comandos
de ajuda e navegao nos vrios
sistemas de ajuda do Linux.
Saber como navegar por entre os
diretrios home e system e listar
arquivos em vrias localizaes.
Dominar as formas de criar, mover e
apagar arquivos e diretrios.

Apostila/eBook do Curso Linux Essentials

Pgina 23

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Sumrio do Captulo
1

4.7

Utilizando Caracteres Curinga ______ 52

Introduo a Linha de Comandos ____ 25


1.1

Shell Bsico _____________________ 26

1.2

Movendo-se entre os Diretrios ____ 26

1.3

O comando env e suas Variveis ____ 27

1.4

PATH __________________________ 28

1.5

Comandos de Formatao _________ 30

1.6

Variveis _______________________ 31

1.7

Globbing (Caracteres Curinga) ______ 32

1.8

Quotting (Escape de caracteres) ____ 32

2 Usando a Linha de Comando para Obter


Ajuda ______________________________ 34
2.1

Manuais (comando man) __________ 35

2.2
info

Acessando Manuais com o Comando


36

2.3

Arquivos de Documentao ________ 37

2.4 Encontrando um Manual a Partir de


uma Referncia _______________________ 37
2.5

Localizando Arquivos _____________ 38

2.5.1
2.5.2

Comando Locate ________________ 38


Comando whereis _______________ 38

Usando Diretrios e Listando Arquivos 40


3.1

Arquivos e Diretrios _____________ 41

3.2

Diretrio home __________________ 45

3.3

Caminho Absoluto e Caminho Relativo


45

4 Criando, Movendo e Removendo


Arquivos ou Diretrios ________________ 47
4.1 Um pouco mais sobre Caracteres
Curinga ______________________________ 48
4.2

Movendo Arquivos e Diretrios_____ 49

4.3

Copiando Arquivos e Diretrios _____ 50

4.4

Removendo Diretrios ____________ 50

4.5

Criando Arquivos ________________ 51

4.5.1
4.5.2

4.6

Touch _________________________ 51
Criando Arquivos de Outras Formas _ 51

Criando Diretrios _______________ 52


Apostila/eBook do Curso Linux Essentials

Pgina 24

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Introduo a Linha de Comandos

Peso: 2
Descrio: Utilizao bsica da linha de comandos no Linux.
Tpicos Importantes:
Shell bsico
Comandos de formatao
Trabalhando com opes
Variveis
Globbing
Quoting
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
echo
history
PATH env variable
which
Substitutions
||, && and ; control operators

Apostila/eBook do Curso Linux Essentials

Pgina 25

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.1 Shell Bsico


O Shell o interpretador de comandos, quando voc digita algum comando ele que
interpreta. Quando voc usa um comando para alterar diretrio, ou limpar a tela, isso um
comando do shell.

O shell padro do Linux o bash (bourne again shell), mas existem outras opes como o csh,
tcsh , ksh , zsh . Quando estamos em um prompt do Linux com o shell bash carregado
comum que o prompt de comando tenha um formato similar ao mostrado no comando
abaixo.
usurio@nome_da_maquina:/caminho/onde/voce/esta $

1.2 Movendo-se entre os Diretrios


Nesse tpico iremos introduzir de forma bem bsica nossos trs primeiros comandos, o pwd
(print working directory), cd (change directory) e ls (list files and directories). Se voc nunca
trabalhou com a linha de comandos antes em sua vida voc deve prestar bem ateno nesse
tpico, pois ele ser crucial para o seu entendimento de todos os conceitos que veremos mais
adiante.
Quando pensamos em comandos no Linux temos que pensar como vamos andar pelos
diretrios, editar e copiar arquivos, listar contedo de arquivos, encontrar comandos e
outras coisas mais. Nesse tpico veremos um pouco sobre esse tema.
Assim como em outros sistemas operacionais o Linux utiliza uma estrutura hierrquica de
diretrios, organizada em um padro conhecido como rvore de diretrios, onde cada
diretrio pode conter arquivos ou outros diretrios.

Apostila/eBook do Curso Linux Essentials

Pgina 26

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Nessa rvore o primeiro diretrio chamado de root. Root a raiz do sistema, representado
pelo caractere / (barra para direita), tudo est abaixo da raiz, ela nosso top-level, nossa
ponta da pirmide. Vamos exemplificar uma pequena rvore de diretrios abaixo.
/ ---> raiz
|---home -> diretrio de usurios
|---me -> diretrio do usurio me

1.3 O comando env e suas Variveis


As configuraes do seu shell esto definidos em uma varivel de ambiente que podem ser
verificadas atravs do comando env, acompanhe abaixo a imagem da exibio do mesmo.
dltec@dltec:~$ env
LC_PAPER=pt_BR.UTF-8
LC_ADDRESS=pt_BR.UTF-8
LC_MONETARY=pt_BR.UTF-8
TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=10.0.2.2 47905 22
LC_NUMERIC=pt_BR.UTF-8
SSH_TTY=/dev/pts/2
USER=dltec
LC_TELEPHONE=pt_BR.UTF-8
MAIL=/var/mail/dltec
PATH=/home/dltec/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
:/usr/games
LC_IDENTIFICATION=pt_BR.UTF-8
PWD=/home/dltec
LANG=en_US.UTF-8
LC_MEASUREMENT=pt_BR.UTF-8
SHLVL=1
HOME=/home/dltec
LOGNAME=dltec
SSH_CONNECTION=10.0.2.2 47905 10.0.2.15 22
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
LC_TIME=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
_=/usr/bin/env
OLDPWD=/
dltec@dltec:~$

Apostila/eBook do Curso Linux Essentials

Pgina 27

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Veja que no mesmo temos informaes referente ao SHELL utilizado, o diretrio de e-mail do
usurio (MAIL), quais so os diretrios de executveis do usurio (PATH), o diretrio ao qual o
mesmo se encontra (PWD) alm de outras variveis possveis de acordo com o a finalidade do
sistema.
Informao adcional: Como definir uma varivel?
Para definir uma varivel durante sua sesso basta digitar:
export JAVA_HOME=/usr/local/java/bin/
No exemplo mostrado est sendo exportado a varivel JAVA_HOME, que utilizada para
localizar onde ficam os binrios do java e normalmente utilizado quando voc roda alguma
aplicao ou servio java no sistema.
Porm no se torna muito prtico ter de executar esse comando cada vez que voc entra no
sistema, alm do mais algumas vezes podem ser necessrias vrias variveis.
Nestes casos a soluo padro colocar o comando dentro do arquivo .bash_profile no
diretrio do usurio, este diretrio lido logo aps o login e executa os comandos que voc
definiu, no caso, define as variveis que voc precisa.

1.4 PATH
Vimos no tpico anterior a sada do comando env. Uma das linhas importantes do comando
env a que mostra o PATH (figura 1). Vamos agora entender o que seria o PATH atravs de
um exemplo bem simples.
dltec@dltec:~$ env

TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=10.0.2.2 47905 22
LC_NUMERIC=pt_BR.UTF-8
SSH_TTY=/dev/pts/2
USER=dltec
LC_TELEPHONE=pt_BR.UTF-8
MAIL=/var/mail/dltec
PATH=/home/dltec/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
:/usr/games
LC_IDENTIFICATION=pt_BR.UTF-8
Quando queremos que o sistema execute um comando ns no precisamos digitar o caminho
completo do comando. Por exemplo, quando queremos listar o contedo do diretrio em que
estamos simplesmente digitamos o comando ls.
dltec@dltec:~$ ls
Desktop
Music
Documents Pictures
Downloads Public

Templates
Videos
bin

essentials
examples.desktop
lpi102

php.versoes

O comando ls est localizado na pasta /bin, mas ento por que no precisamos digitar o
caminho completo do comando, como por exemplo, /bin/ls ? Por que simplesmente digitando ls
o sistema entende que deve executar o comando ls que est localizado no diretrio /bin ?

Apostila/eBook do Curso Linux Essentials

Pgina 28

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

A resposta a essa pergunta a varivel PATH. Essa varivel lista os diretrios do sistema
onde os arquivos executveis podem ser encontrados. Para visualizar o contedo da varivel
PATH entre com o comando mostrado abaixo.
dltec@dltec:~$ echo $PATH
/home/dltec/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr
/games
Em nosso exemplo a varivel est listando os diretrios abaixo:

/home/dltec/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games

Isso faz com que o sistema faa um busca, do primeiro ao ltimo diretrio listado, quando
tentamos executar algum comando. Assim que uma correspondncia encontrado a procura
encerrada, mesmo que no tenha sido verificado todos os diretrios listados.
Ou seja, em nosso exemplo do ls, quando digitamos ls o sistema ir buscar por uma
correspondncia nos diretrios listados na varivel PATH, to logo a correspondncia seja
encontrado (no caso, no diretrio /bin) a busca interrompida e o comando executado.
Curiosidade: Para voc verificar o caminho completo de um comando ou arquivo utilize o
comando which -a filename. Esse comando pode ser til nos casos onde mais de uma
correspondncia for encontrada. Vamos supor que, por algum motivo, existam dois
comandos com o nome wc no seu sistema:

um na pasta /usr/bin e
outro na pasta /home/aluno/bin/WC

E vamos supor tambm que voc queira utilizar o comando o wc (word count) padro, ou
seja, o que est na pasta /usr/bin e que sua varivel PATH est definida como mostrado
abaixo.
aluno:~> echo $PATH
/home/aluno/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:\
/usr/bin:/usr/sbin:/bin:/sbin
Ento se voc simplesmente digitar o comando wc -l arquivo1.txt o sistema ir tentar
executar o comando wc que est na pasta /home/aluno/bin/wc e voc no vai obter a
sada desejada. Isso porque na sua varivel PATH est sendo informado para procurar
primeiro na pasta /home/aluno/bin.
Uma das solues para resolver esse problema seria informar o caminho completo do
comando desejado. Para tal, voc utilizaria o comando which -a wc para exibir todas as
correspondncias para o comando wc. Em seguida entraria com o caminho completo do
comando wc desejado, ou seja, /usr/bin/wc -l arquivo1.txt.

Apostila/eBook do Curso Linux Essentials

Pgina 29

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.5 Comandos de Formatao


Atravs do shell ns podemos executar vrios comandos diferentes, para finalidades diferentes,
utilizando opes diferentes para visualizao dos resultados e muitas vezes fazendo uso de
vrios comandos ao mesmo tempo.
Vamos agora ver um exemplo um pouco mais avanado do que podemos fazer na linha de
comandos. Ao longo desse curso voc aprender a utilizar esse e outros tipos de recursos
avanados. Imagine que eu quero listar o contedo de um arquivo, mas quero filtrar apenas as
linhas que contenham a palavra php, por exemplo.
Para ilustrar o processo vamos criar um arquivo chamado teste.txt (comando touch teste.txt veremos mais para frente o uso desse comando) e dentro deste arquivo vamos escrever
algumas coisas e vamos tambm colocar em 3 linhas do arquivo a palavra php. Para editar o
arquivo teste.txt voc pode utilizar o aplicativo nano ou vi (tambm veremos mais detalhes
sobre isso posteriormente nesse curso). Acompanhe o exemplo abaixo, com todos os passos
mostrados.
Contedo do arquivo:
Primeiro passo: criar o arquivo teste.txt
touch teste.txt
Segundo passo: Editar o arquivo teste.txt
nano teste.txt
safdsfd sf dadf sdf adf df a dfa
fasdfdf php fdafsd asdf adf aphp
asfdfasdf
adfadfas
dfadf902u3423 42390 rfs0 fs dfasdf php
fdasfdasf
d asdfa
sdfasdfasdfh9283r fpsdhfasdf php fdsafdasfd
Pressione ctrl+o para salvar o arquivo e depois ctrl+x para sair do editor.
Agora veja abaixo o comando executado.
dltec@dltec $ cat teste.txt | grep php
fasdfdf php fdafsd asdf adf aphp
dfadf902u3423 42390 rfs0 fs dfasdf php
sdfasdfasdfh9283r fpsdhfasdf php fdsafdasfd
dltec@dltec $
Perceba que apenas 3 linhas foram mostradas, justamente as que continham a palavra php.
Isso pode ser muito til no seu dia a dia, imagine um arquivo
quer visualizar todos os logs referente ao daemon openvpn
comando cat /var/log/syslog | grep openvpn e todo
referente ao openvpn ser exibido e voc poder analisar o
visualizao do arquivo.

de log com 10.000 linhas e voc


por exemplo, ento voc digita o
o contedo do arquivo de log
contedo sem tanta sujeira na

Apostila/eBook do Curso Linux Essentials

Pgina 30

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.6 Variveis
No shell do Linux ns podemos utilizar os comandos e criar variveis para serem usadas por
estes comandos.
Para declarar uma varivel voc utiliza nome_da_variavel=valor_da_variavel, ou seja,
vamos dizer que eu quero colocar o nome de um arquivo em uma varivel e depois executar
algum comando, eu poderia fazer conforme mostrado abaixo.
MYFILE=/tmp/teste.txt
cat .bash_profile > $MYFILE
Neste caso estamos definindo a varivel MYFILE com o caminho para o arquivo que queremos,
depois exibimos o contedo do .bash_profile direcionando a sada do comando para a varivel
$MYFILE que no caso o arquivo /tmp/teste.txt
A ttulo de ilustrao vamos ver um exemplo real do uso de variveis no linux. Imagine que
em um diretrio existam diversos arquivos de imagem com a extenso .JPG (em maiscula) e
que voc queira renomear esses arquivos de forma que fique .jpg (em minscula). Vamos ver
como possvel fazer isso com uso de variveis? Acompanhe o cdigo abaixo.
cd /tmp/teste
for i in *; do NEWNAME=$(echo $i | sed e s/JPG/jpg/g); mv $i $NEWNAME; done
O comando utilizado bem complexo mas um exemplo vlido para exemplificar um uso real
para este tipo de utilizao (variveis), acompanhe a descrio dos passos:

Entramos no diretrio /tmp/teste


Definimos que para cada valor dentro do diretrio (*) queremos o valor na varivel i (for
i in *)
Pegamos o valor de $i ( echo $i ) e substitumos JPG por jpg ( sed e s/JPG/jpg ), e
ento definimos que este valor ser o valor da varivel NEWNAME
Realizamos um move (mover) dos arquivos de .JPG para .jpg (exemplo: mv DSC1401.JPG DSC-1401.jpg)

O que acha, isso muito mais prtico do que selecionar um a um e ento fazer a troca do
nome no acha?
Um exemplo habitual de uso de variveis em arquivos de configurao ou scripts para alguma
finalidade especfica, por exemplo, imagine que voc esta criando um script de firewall, o
binrio do iptables (aplicao de firewall nativa do Linux) fica em /sbin/iptables, voc em seu
arquivo ao invs de colocar este comando linha por linha define uma varivel (ex:
FW=/sbin/iptables ) e no lugar de chamar o arquivo completo, chama apenas FW, define
arquivos de configurao em variveis e assim por diante.

Apostila/eBook do Curso Linux Essentials

Pgina 31

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.7 Globbing (Caracteres Curinga)


O Glob foi um programa que existiu no unix para expandir a capacidade de utilizao de
caracteres curingas de forma estendida, atualmente isso incorporado no shell e graas a esta
ferramenta podemos utilizar uma srie de parmetros para fazer varredura, leitura, alterao
em diretrios e assim por diante.
possvel basicamente utilizar:

? = Faz match em um nico caractere


* = Faz match em qualquer caractere (inclusive vazios)

Tambm podemos utilizar alguns outros tipos de glob, vamos ver abaixo:
Classes de caracteres:
Classes de caractere, seria por exemplo alguns caracteres dentro de um [ ], no
necessariamente sequenciais, podendo ser algo como [ac3t], qualquer um destes caracteres
que casarem a regra sero aceitos.
Range de caracteres:
Este possui uma conveno especial, dois caracteres separados por um trao - denotam um
range, desta forma [a-cA-C0-3] equivalente a [abcABC0123]
1.8 Quotting (Escape de caracteres)
Quotting significa aspas, no caso em especifico no bem isso que ele quer dizer, a questo
aqui escape de caracteres. Voc deve pensar da seguinte forma, se no shell o cifro $
inicio de varivel, como voc ir manipular um arquivo que possui este caractere em seu nome,
ou mesmo um arquivo ou diretrio que contenha uma barra / em seu nome ?
A questo bastante simples, ns fazemos o escape do caractere, vamos fazer alguns
exemplos para tentarmos entender. Acompanhe o comando abaixo.
$ echo $date
$
No comando acima foi executado o comando echo $date que ir mostrar o valor da varivel
$date, porm ele aparece em branco j que a varivel no possui nenhuma valor.
J neste comando ao pressionarmos o "enter" foi exibido a string $date
$ echo \$date
$date
$
O mesmo processo tambm pode ser executado digitando aspas simples ( ) que neste caso
faz a interpretao literal do que est dentro, acompanhe o comando ao lado.
Neste caso importante lembrar que no deve haver uma aspas simples dentro de um outro
par, ou seja, no pode usar:
testea

Apostila/eBook do Curso Linux Essentials

Pgina 32

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

A aspas dentro do contexto ir cancelar a ltima. Nesses casos podemos utilizar uma barra
invertida \ para cancelar a funcionalidade do caractere, no caso a expresso ficaria:
teste\a
Ou seja, a \ cancela a funcionalidade da '.
As aspas duplas tambm fazem a preservao dos caracteres, exceto pelo cifro, mas o mesmo
tambm pode ser utilizando se houver uma barra invertida antes.
No caso da existncia de uma barra invertida como parte da string importante que voc
adicione outra para realizar o escape da mesma, no caso pensemos no seguinte exemplo
abaixo.
$ cd /teste\2
-bash: cd: teste2: No such file or directory
$ cd /teste\\2
:~/teste\2 $
Perceba que o diretrio foi criado com o nome de teste\2, ao tentar entrar no diretrio com o
comando puro cd teste\2 ele no entende e tenta entrar em teste2, ao digitarmos com
barra de escape ns conseguimos entrar no diretrio, dessa forma o comando ficou cd
teste\\2 , no caso com a utilizao de aspas simples ou duplas no se torna necessria a
barra de escape.
Uma coisa importante nesta questo que no Linux um espao um caractere, ento voc tem
dois modos de entrar, por exemplo, no diretrio teste 2, sendo elas

cd teste 2
cd teste\ 2

No segundo exemplo voc fez o escape do caractere de espao e passou a continuao do


nome do diretrio.

Apostila/eBook do Curso Linux Essentials

Pgina 33

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Usando a Linha de Comando para Obter Ajuda

Peso: 2
Descrio: Utilizando os comandos de ajuda e navegao nos vrios sistemas de ajuda do
Linux.
Tpicos Importantes:
Man
Info
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
man
info
Man pages
/usr/share/doc
locate
apropos, whatis, whereis

Apostila/eBook do Curso Linux Essentials

Pgina 34

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.1 Manuais (comando man)


O Linux traz em sua instalao e em seus programas muitos pacotes de documentao ,
normalmente estes esto em ingls mas possuem toda a documentao referente ao comando
em si. Vale lembrar que alm destes manuais voc tem o parmetro -help / -h que j foi
mencionado em tpicos anteriores.
O comando man um dos recursos mais teis do Linux e de outros sistemas unix, atravs dele
voc obtm toda a documentao de um comando, com explicaes detalhadas e muitas vezes
alguns exemplos.
Vamos pegar por exemplo um pedao do comando man tar. Acompanhe abaixo. Veja que
ele traz o inicio uma sinopse, em seguida uma descrio e exemplos.

Obs: para sair da pgina do manual e voltar para a linha de comandos basta pressionar a tecla
q.
Veja a figura a seguir que mostra uma outra pagina do mesmo manual .

Apostila/eBook do Curso Linux Essentials

Pgina 35

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Como voc pode perceber a sada do comando lhe fornece explicaes a respeito de cada um
dos parmetros que o comando aceita, infelizmente necessrio dar uma boa treinada no
ingls para conseguir ter mais domnio, mas com certeza isso far toda a diferena para voc.
Existem alguns casos onde os comandos possuem documentaes diferentes em diferentes
sees, para estes casos voc utiliza o comando man SEO comando , estas sees so
divididas da seguinte forma.
1.
2.
3.
4.
5.
6.
7.
8.
9.

Programas executveis ou comandos do shell


Chamadas de sistema (utilizado pelo kernel)
Bibliotecas (funes utilizadas por outros programas)
Arquivos especiais (usualmente contidos no /dev)
Formatos de arquivos e convenes (ex: /etc/passwd)
Jogos
Variados (incluindo macros e convenes (ex: man(7), groff(7))
Comandos de administrao de sistema (normalmente apenas para root)
Rotinas do kernel [Fora de Padro ]

Esta descrio foi retirada de uma pgina do man man.


2.2 Acessando Manuais com o Comando info
O comando info acessa as mesmas documentaes que o man, mas ele na verdade um
leitor para estas documentaes, basicamente ele permite uma navegao mais fcil pelas
paginas por ter mais recursos como procura, navegao por links e etc..
O comando man por padro utiliza o paginador more para permitir que voc navegue na
documentao, se existir o comando less instalado j facilita um pouco pois permite descer e
subir o contedo (o comando more apenas desce). Veja abaixo as figuras d as telas para os
comandos man e info, respectivamente.

Apostila/eBook do Curso Linux Essentials

Pgina 36

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.3 Arquivos de Documentao


Alm dos manuais em alguns casos temos arquivos de exemplos e outros no diretrio
/usr/share/doc seguido do nome do comando ou programa que voc est buscando, veja
abaixo a listagem dos arquivos do diretrio /usr/share/doc/rsync
dltec@dltec:~$ ls /usr/share/doc/rsync
README.gz changelog.Debian.gz examples
TODO.gz
copyright
scripts
dltec@dltec:~$

tech_report.tex.gz

Perceba que dentro do diretrio alm dos arquivos de licena (copyright), temos o README,
changelog e alguns outros dependendo de que diretrio estamos listando. No caso do rsync
temos um diretrio examples e outro scripts, no diretrio examples so alguns exemplos de
configurao para o rsync e no diretrio scripts alguns scripts que podem ser utilizados para
algumas operaes como log, verificao de status e outros.
2.4 Encontrando um Manual a Partir de uma Referncia
Algumas vezes ns sabemos o nome de um arquivo ou comando e queremos saber onde tem
informaes sobre ele, para este caso ns utilizamos o comando apropos. A ideia deste
comando simplesmente localizar em que manual contm a informao que voc solicitou,
veja o exemplo abaixo.
web:~# apropos rsyncd.conf
rsyncd.conf (5) - configuration file for rsync in daemon mode
Veja que perguntei sobre o arquivo rsyncd.conf, este arquivo em especifico possui um manual
prprio explicando suas configuraes, no caso a resposta dele foi:
rsyncd.conf

(5)

Qual Manual

Que seo do manual

Configuration file for rsync in


daemon mode
Descrio

Vamos ver agora um exemplo que possua mais sadas.


Questionamos o apropos sobre passwd e como pode ser verificado, ele trouxe vrios
manuais com referncias ao termo, ou seja, se voc quer procurar algo, mas no sabe de qual
manual , utilize o apropos para esta funo.
apropos passwd
auth_passwd (3)
- Change accounts password
authpasswd (1)
- Generate login passwords
chgpasswd (8)
- update group passwords in batch mode
chpasswd (8)
- update passwords in batch mode
exim4_passwd (5)
- Files in use by the Debian exim4 packages
exim4_passwd_client (5) - Files in use by the Debian exim4 packages
expect_mkpasswd (1)
- generate new password, optionally apply it to a user
gpasswd (1)
- administer the /etc/group and /etc/gshadow files
htpasswd (1)
- Manage user files for basic authentication
mkpasswd (1)
- Overfeatured front end to crypt(3)

Apostila/eBook do Curso Linux Essentials

Pgina 37

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Informao adcional:
Outra forma de encontrar uma pgina de um manual atravs do comando whatis, este
comando assim como o apropos traz a informao do manual referente a string que voc
buscou, com uma diferena, o apropos busca em todo o manual e o whatis busca apenas na
descrio do manual.

2.5 Localizando Arquivos


Como no Linux utilizamos muito a linha de comando importante que saibamos atravs do
modo console procurar por um arquivo.
Tenha em mente que nem sempre voc saber onde um determinado arquivo se encontra, ele
pode estar fora de padro ou com uma instalao especifica e nestes casos voc precisar
localizar esse arquivo.
Para tal podemos utilizar os comandos locate e whereis.
2.5.1

Comando Locate

Vamos imaginar que voc est acessando pela primeira vez um servidor de email que possui o
software dovecot instalado, voc j verificou e viu que ele no est no /etc (o arquivo de
configurao), ento como podemos localizar? Veja a abaixo.
$ locate dovecot.conf
/usr/local/etc/dovecot/dovecot.conf
/usr/local/share/doc/dovecot/example-config/dovecot.conf
/usr/local/var/run/dovecot/dovecot.conf
/usr/src/dovecot.conf.tar.gz
O comando que utilizamos foi o locate, o nome bem sugestivo e trata-se de um comando
para localizao de arquivos. Um ponto importante que ele no ir procurar o arquivo no
momento em que voc o acionou, pois ele possui um banco de dados que roda uma ou mais
vezes por dia e atualiza as informaes.
Voc pode executar o update atravs do comando updatedb e com esta tabela devidamente
atualizada voc consegue encontrar qualquer arquivo no sistema, veja que no nosso exemplo
ele trouxe vrias linhas de resultado contendo a string dovecot.conf.
2.5.2

Comando whereis

O comando whereis utilizado para procurar arquivos binrios, cdigos fontes e/ou pginas
de manuais. Se digitarmos o comando whereis passwd, por exemplo, o retorno ser a linha
mostrada abaixo.
whereis passwd
passwd:/usr/src/apr-1.4.6/passwd /usr/bin/passwd /etc/passwd
/usr/share/man/man1/passwd.
1ssl.gz /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.
5.gz

Apostila/eBook do Curso Linux Essentials

Pgina 38

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Veja que ele trouxe a string passwd: seguida de tudo que ele achou, o primeiro passwd tratase de um fonte, o segundo o binrio de troca de senhas, o terceiro o arquivo de senhas do
Linux, depois os manuais.
Voc pode por exemplo no comando whereis especificar que tipo de resultado voc quer, como
por exemplo apenas binrio:
whereis b passwd
Existem outras opes de uso do comando que voc pode verificar no man whereis.

Apostila/eBook do Curso Linux Essentials

Pgina 39

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Usando Diretrios e Listando Arquivos

Peso: 2
Descrio: Navegar por entre os diretrios home e system e listando arquivos em vrias
localizaes.
Tpicos Importantes:
Arquivos e diretrios
Ocultando arquivos e diretrios
Home
Caminhos relativos e absolutos
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
Common options for ls
Recursive listings
cd
. and ..
home and ~

Apostila/eBook do Curso Linux Essentials

Pgina 40

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.1 Arquivos e Diretrios


Arquivos e diretrios no Linux no possuem muito segredos, porm, existem algumas
configuraes que ajudam voc a identificar de forma mais simples quando trata-se de um
diretrio e quando trata-se de um arquivo. Acompanhe a figura abaixo onde mostramos a sada
do comando ls / .
dltec@dltec:/$ ls
bin
dev
initrd.img
boot
etc
lib
cdrom home lost+found
dltec@dltec:/$

media
mnt
opt

proc
root
run

sbin
selinux
srv

sys
tmp
usr

var
vmlinuz

Obs: o comando ls / ir listar os arquivos e diretrios do diretrio root (/)


Salvo o caso do arquivo initrd.img, os demais seriam todos diretrios?
Vale lembrar que no Linux no faz diferena a extenso do arquivo, ela tem o intuito apenas de
informao, facilitar para quem est vendo o arquivo sobre o que se trata, mas no
primordial sua utilizao. Mas e ento, a primeira vista, que concluso tiramos da listagem do
diretrio root (/)?
Bom, eu no tiraria nenhuma no momento. Vamos verificar um outro modo de visualizar esta
listagem.
dltec@dltec:/$
bin/
dev/
boot/
etc/
cdrom/ home/
dltec@dltec:/$

ls -p
initrd.img
lib/
lost+found/

media/
mnt/
opt/

proc/
root/
run/

sbin/
selinux/
srv/

sys/
tmp/
usr/

var/
vmlinuz

Veja que agora utilizamos o comando ls p o qual acrescentou uma / aps cada diretrio e
no fez o mesmo nos arquivos. Muito mais fcil assim no acha?
Outro parmetro interessante o color. Normalmente o color j vem habilitado como padro
na maioria das distribuies. Caso esse no seja o caso, basta acrescentarmos o parmetro -color=auto. Este comando produz uma sada colorida, onde cada cor tem seu significado.
Vamos listar algumas delas.

Cinza: Arquivo simples


Azul claro: Link Simblico
Azul: Diretrio
Fundo Azul fonte cinza: Arquivo com bit stick (t)
Fundo Verde e fonte preta: Permisso 777 e bit stick

Existem algumas outras cores que voc ver depois, mas basicamente esta uma das formas
mais praticas para identificar os tipos de arquivos e diretrios, pois trata-se do modo mais
diferenciado.

Apostila/eBook do Curso Linux Essentials

Pgina 41

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Podemos ainda exibir a sada do comando como uma listagem com as propriedades, veja a
abaixo.
dltec@dltec:/$ ls -l --color=auto -p
total 88
drwxr-xr-x
2 root root 4096 Jul 23 12:41 bin/
drwxr-xr-x
3 root root 4096 Jul 23 12:41 boot/
drwxr-xr-x
2 root root 4096 Jul 23 12:34 cdrom/
drwxr-xr-x 14 root root 4000 Sep 17 11:52 dev/
drwxr-xr-x 129 root root 12288 Sep 17 11:52 etc/
drwxr-xr-x
4 root root 4096 Sep 13 20:48 home/
lrwxrwxrwx
1 root root
36 Jul 23 12:40 initrd.img -> boot/initrd.img-3.2.023-generic-pae
drwxr-xr-x 21 root root 4096 Jul 23 12:41 lib/
drwx-----2 root root 16384 Jul 23 12:28 lost+found/
drwxr-xr-x
2 root root 4096 Apr 23 2012 media/
drwxr-xr-x
2 root root 4096 Apr 19 2012 mnt/
drwxr-xr-x
2 root root 4096 Apr 23 2012 opt/
dr-xr-xr-x 112 root root
0 Sep 17 11:51 proc/
drwx-----3 root root 4096 Jul 23 12:47 root/
drwxr-xr-x 22 root root
820 Sep 17 11:52 run/
drwxr-xr-x
2 root root 4096 Jul 23 12:41 sbin/
drwxr-xr-x
2 root root 4096 Mar 5 2012 selinux/
drwxr-xr-x
2 root root 4096 Apr 23 2012 srv/
drwxr-xr-x 13 root root
0 Sep 17 11:51 sys/
drwxrwxrwt
7 root root 4096 Sep 17 12:21 tmp/
drwxr-xr-x 10 root root 4096 Apr 23 2012 usr/
drwxr-xr-x 14 root root 4096 Sep 16 20:10 var/
lrwxrwxrwx
1 root root
33 Jul 23 12:40 vmlinuz -> boot/vmlinuz-3.2.0-23generic-pae
dltec@dltec:/$
Perceba que para gerar esta sada utilizamos todas as opes que vimos anteriormente. O
comando ficou ls l color=auto p , o l significa lista longa, que o que ele mostra, vamos
analisar uma sada. Acompanhe tambm na figura abaixo um exemplo.

Apostila/eBook do Curso Linux Essentials

Pgina 42

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

drwxrwxrwt
O
O
O
O
O
O
O

33 root root 425984 2012-07-18 21:52 tmp/

primeiro bloco do comando traz as permisses aplicadas no diretrio.


segundo campo (33) a quantidade de diretrios existentes dentro desse diretrio.
terceiro campo (root) representa o proprietrio (dono) do diretrio.
quarto campo (root) representa o grupo ao qual o diretrio faz parte.
quinto campo traz o tamanho do diretrio em bytes.
sexto campo traz a data da ltima modificao.
stimo campo traz o diretrio em questo.

Com estas informaes voc j pode identificar arquivos e diretrios sem maiores dificuldades.
Obs: Mais para frente nesse curso entraremos em mais detalhes sobre como interpretar o
campo de permisses do arquivo. No se preocupe com isso nesse momento, tudo ficar
mais claro mais para frente.
Uma outra utilizao que vale apena ressaltar no comando ls a listagem recursiva, esta
opo utilizada com o parmetro R.
A listagem recursiva ir executar um ls para cada diretrio que for encontrado. Por exemplo, se
tiramos um ls -R do diretrio teste, a sada ir mostrar o contedo do diretrio teste e para
cada diretrio que for encontrado ele ir executar um ls desse diretrio e assim
sucessivamente. Veja abaixo.

Perceba que no primeiro nvel temos os diretrios teste2, teste3, teste4 e teste5, dentro de
teste2 temos outro diretrio teste2, dentro de teste5 temos outro diretrio teste2, dentro deste
teste2, temos um diretrio teste6, onde temos um diretrio de nmero 8.
Se voc reparar para cada diretrio ele executou uma listagem tambm, em nosso caso no
havia nenhum arquivo dentro ento nada foi exibido.

Apostila/eBook do Curso Linux Essentials

Pgina 43

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

No Linux temos uma facilidade que so os diretrios ou arquivos ocultos. Normalmente estes
arquivos/diretrios ocultos so utilizados para no gerar volume desnecessrio quando estamos
visualizando um determinado diretrio. Vamos exemplificar esta questo, acompanhe na sada
seguinte.
dltec@dltec:~$ ls
Desktop
Music
Documents Pictures
Downloads Public
dltec@dltec:~$

Templates
Videos
bin

essentials
examples.desktop
lpi102

php.versoes

Veja que a listagem da imagem traz apenas alguns diretrios, nada muito poludo salvo alguns
arquivos e diretrios.
Agora vamos usar o comando ls a para listar todos os arquivos, inclusive os ocultos.
dltec@dltec:~$
.
..
.ICEauthority
.Xauthority
.bash_history
.bash_logout
.bashrc
.bashrc.swp
.cache
.config
dltec@dltec:~$

ls -a
.dbus
.dmrc
.gconf
.gnome2
.goutputstream-2NA22W
.gtk-bookmarks
.gvfs
.lesshst
.local
.mission-control

.mozilla
.mysql_history
.profile
.pulse
.pulse-cookie
.xsession-errors
.xsession-errors.old
Desktop
Documents
Downloads

Music
Pictures
Public
Templates
Videos
bin
essentials
examples.desktop
lpi102
php.versoes

Perceba que agora vemos muitos outros diretrios que no estavam l antes, estes so
diretrios ocultos. A maior parte alguma configurao ou diretrio de configuraes de algum
aplicativo. Por exemplo, voc poder ver o diretrio .mozilla que contm os dados do Firefox
ou o diretrio .local onde ficam as configuraes do KDE.
Uma questo muito importante a se saber sobre o Linux, que o caractere . aparece em
todos os arquivos e diretrios ocultos.

Apostila/eBook do Curso Linux Essentials

Pgina 44

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.2 Diretrio home


Desde o incio do curso at agora voc j deve ter reparado que vrias vezes falamos do
diretrio home. Esse o diretrio especifico para armazenamento dos dados dos
usurios, por exemplo, o usurio mike possui por padro seu home (sua casa) no diretrio
/home/mike.
importante ressaltar que nada impede que voc utilize outro local para isso, porm voc
estaria fugindo do padro e os padres foram criados para que o conhecimento pudesse ser
compartilhado por todos. Assim qualquer administrador que precise sabe onde ficam as coisas
desde que elas estejam utilizando os devidos padres.
Dica:
Um uso comum que fazemos criar o diretrio /home em uma partio separada do HD,
desta forma podemos atualizar ou reinstalar o sistema operacional sem nos preocupar com
estes dados.
O diretrio /home muitas vezes referenciado pelo caractere ~ , por exemplo, de
qualquer lugar do sistema se voc digitar cd ~ voc ser direcionado para o diretrio
/home de seu usurio, caso seja o usurio root o diretrio de home do mesmo /root.
3.3 Caminho Absoluto e Caminho Relativo
O caminho nada mais do que a direo que voc deve seguir, dentro da estrutura de
diretrios, para chegar a um determinado arquivo ou diretrio.
O caminho absoluto inicia a partir do diretrio raiz (o root) e guia voc por entre a estrutura
de diretrios, desde da raiz at o destino final. Por exemplo, temos no linux um diretrio onde
ficam instalados a maioria dos programas no linux. O caminho para esse diretrio /usr/bin.
Isso significa que o caminho absoluto para esse diretrio :
root - usr - bin
Lembre-se que a primeira / representa o root.
aluno@dltec-VirtualBox:~$ cd /usr/bin
aluno@ dltec-VirtualBox:/usr/bin$ pwd
/usr/bin
aluno@ dltec-VirtualBox:/usr/bin$ ls
[
linux32
2to3
linux64
2to3-2.7
linux-boot-prober
a2p
listres
accountwizard
lnstat
aconnect
loadkeys
acpi_fakekey
loadunimap
acpi_listen
localc
Enquanto que o caminho absoluto inicia a partir do root, um caminho relativo inicia a partir
do seu diretrio atual. Para indicar um caminho relativo utilizamos o "." (ponto) e o ".."
(ponto ponto).
O "." faz referncia ao seu diretrio atual e o ".." faz referncia ao diretrio pai do seu
diretrio atual. Vamos exemplificar no exemplo abaixo.

Apostila/eBook do Curso Linux Essentials

Pgina 45

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Estamos no diretrio /usr/bin e desejamos mudar para o diretrio pai do /usr/bin, ou seja,
para o diretrio /usr. Podemos fazer isso de duas formas:
aluno@dltec-VirtualBox:/usr/bin$ pwd
/usr/bin
aluno@dltec-VirtualBox:/usr/bin$ cd /usr
aluno@dltec-VirtualBox:/usr$ pwd
/usr
ou
aluno@dltec-VirtualBox:/usr/bin$ pwd
/usr/bin
aluno@dltec-VirtualBox:/usr/bin$ cd ..
aluno@dltec-VirtualBox:/usr$ pwd
/usr
Da mesma forma uma vez dentro do diretrio /usr podemos ir para o diretrio /usr/bin de
duas formas. Acompanhe abaixo.
Primeiro utilizando o caminho absoluto:
aluno@dltec-VirtualBox:/usr$ pwd
/usr
aluno@dltec-VirtualBox:/usr$ cd /usr/bin
aluno@dltec-VirtualBox:/usr/bin$ pwd
/usr/bin
Ou utilizando o caminho relativo:
aluno@dltec-VirtualBox:/usr$ pwd
/usr
aluno@dltec-VirtualBox:/usr$ cd ./bin
aluno@dltec-VirtualBox:/usr/bin$ pwd
/usr/bin
Importante:
Na maioria dos casos voc pode omitir o "./", pois ele est implcito. Ou seja, no exemplo
anterior, a partir do /usr para se chegar no /usr/bin basta digitar:
aluno@dltec-VirtualBox:/usr$ pwd
/usr
aluno@dltec-VirtualBox:/usr$ cd bin
aluno@dltec-VirtualBox:/usr/bin$ pwd
/usr/bin

Apostila/eBook do Curso Linux Essentials

Pgina 46

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Criando, Movendo e Removendo Arquivos ou Diretrios

Peso: 2
Descrio: Criar, mover e apagar arquivos e diretrios.
Tpicos Importantes:
Arquivos e diretrios
Case sensitive (maisculas e minsculas)
Globbing e quoting simples
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
mv, cp, rm, touch
mkdir, rmdir

Apostila/eBook do Curso Linux Essentials

Pgina 47

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.1 Um pouco mais sobre Caracteres Curinga


A manipulao de arquivos e diretrios (criar, mover, copiar e deletar) feita via linha de
comando basicamente atravs da utilizao dos seguintes comandos:

touch (para criar arquivos)


mkdir (para criar diretrios - make directory)
cp (copy)
mv (move)
rm (remove)
rmdir (remove directory)

claro que existem maneiras mais simples de se fazer essas coisas atravs das interfaces
grficas, no entanto, a utilizao da linha de comando nos d uma flexibilidade que no
encontrada nas interfaces grficas.
Antes de prosseguirmos para a explicao dos comandos vamos voltar a um tpico muito
importantes - os caracteres curingas (wildcards). Os caracteres curinga nos permitem fazer
a seleo de nomes de arquivos baseada em padres de caracteres. J vimos no tpico sobre
"Globbing" a utilizao do * e ?. Agora veremos mais detalhes sobre os caracteres curinga.
Acompanhe na tabela abaixo.
WildCard

Significado

Corresponde qualquer caractere.

Corresponde um caractere nico.

[characters]
Corresponde qualquer caractere que seja membro do
grupo especificado. A especificao do grupo pode ser feita
atravs de:
[:alnum:]
[:alpha:]
[:digit:]
[:upper:]
[:lower:]
[!characters]

Caracteres alfanumricos
Caracteres alfabticos
Numerais
Caracteres alfabticos maisculos
Caracteres alfabticos minsculos

Corresponde qualquer caractere que no faa parte do


grupo especificado.

Apostila/eBook do Curso Linux Essentials

Pgina 48

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

A utilizao dos caracteres curinga possibilita a criao de critrios de seleo muitos


sofisticados. Acompanhe abaixo.
Pattern

Matches

Todos os arquivos

g*

Todos os arquivos que iniciem com g

b*.txt

Todos os arquivos que iniciem com b e terminem com


.txt
Qualquer arquivo que inicie com Data e termine com
exatamente 3 caracteres
Qualquer arquivo com a com b ou com c seguidos de
quaisquer outros carateres
Qualquer arquivo que inicie com uma letra maiscula

Data???
[abc]*
[[:upper:]]*
BACKUP.[[:digit:]][[:digit:]]
*[![:lower:]]

Qualquer arquivo que inicie com os caracteres BACKUP.


seguido por exatamente 2 numerais
Qualquer arquivo que no termine com uma letra
minscula. Perceba que aqui estamos utilizando o ! para
negar a condio.

Dica: Voc pode utilizar os caracteres curinga (wildcard) com qualquer comando que
aceite nome de arquivos como argumento.

4.2 Movendo Arquivos e Diretrios


Utilizamos para mover arquivos ou diretrios o comando mv. Este comando uma abreviao
da palavra move (do ingls mover) e a sintaxe bsica de comando mv [origem] [destino],
desta forma, se temos um diretrio teste e queremos move-lo para testeok basta digitar mv
teste testeok.
Veja o exemplo abaixo onde queremos mover a pasta netqmail-1.0.6 que se encontra em
nosso diretrio home, para o diretrio /usr/src.
mv netqmail-1.0.6 /usr/src/
Vale lembrar que para mover um arquivo o processo o mesmo.
Se voc quiser, alm de mover para o diretrio voc tambm pode no mesmo comando alterar
o nome que o diretrio ter no seu novo destino. Para tal, utilize o comando conforme
mostrado abaixo.
mv netqmail-1.0.6 /usr/src/netqmail
Mas importante lembrar que caso existe no destino um diretrio com o nome que voc est
especificando a pasta netqamil-1.0.6 constar dentro do diretrio em questo.
No caso do nosso exemplo se houvesse a pasta netqmail o caminho total para acesso ao
diretrio movido seria
/usr/src/netqmail/netqmail-1.0.6 .

Apostila/eBook do Curso Linux Essentials

Pgina 49

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.3 Copiando Arquivos e Diretrios


O comando para copia de arquivos ou diretrios o cp, que uma abreviao da palavra
copy. A sintaxe bsica do copy similar a do comando mv, porm tem uma diferena bsica,
ao copiar um diretrio inteiro necessrio acrescentar o parmetro r que significa recursivo
(lembra do recursivo que vimos no comando ls??).
Este comando far com que ele pegue qualquer diretrio e acrescente a copia, ou seja, copiar o
diretrio netqmail-1.0.6 para o diretrio /usr/src seria realizado da seguinte forma, veja abaixo.
cp r netqmail-1.0.6 /usr/src/
Dessa forma, todos os diretrios existentes dentro do netqmail-1.0.6 seriam tambm copiados.
Existem outros parmetros que podem ser utilizados, segue abaixo alguns dos mais comuns
-v = verbose (exibe o que esta copiando)
-i = interactive (solicita confirmao)
-p = mantm permisses
Case Sensitive:
Case sensitive basicamente significa que o sistema sensvel a diferena de caixa alta
(maiscula) ou caixa baixa (minscula). Isso na prtica significa que para o sistema
operacional o arquivo arvore diferente do arquivo Arvore. O mesmo vale para diretrios e
outras coisas mais e tambm para muitos aplicativos, um exemplo disso que o banco de
dados MySQL ao criar um banco de dados de nome banco01 diferente de BANCO01.
Isso faz muita diferena na hora de realizar cpias, interao em arquivos e outras coisas
mais. Precisa-se ter ateno a esta questo ou voc estar manipulando algo que ou
errado ou no existe.

4.4 Removendo Diretrios


Existem dois comandos utilizados
remoo do diretrios, rmdir e rm.

para

O comando rmdir no muito utilizado


pois ele apenas remove diretrios que
estejam vazios.
J o comando rm no remove por padro
o diretrio e seus arquivos recursivamente
sem que seja especificado, para isso
utilizamos o parmetro r. Vamos ver na
imagem abaixo a sada do comando para
remover a estrutura que criamos na pasta
teste.

Perceba que acrescentamos ao comando o


parmetro
v
de
verbose para
poder
exemplificar.
Veja que solicitamos a remoo do diretrio
teste, ele iniciou a remoo pelo ultimo diretrio
existente e foi descendo sucessivamente at o
diretrio solicitado.

Apostila/eBook do Curso Linux Essentials

Pgina 50

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.5 Criando Arquivos


No muito comum criarmos arquivos vazios mas as vezes necessrio ou simplesmente
preferimos criar o arquivo antes de comear a editar.
Vamos ver algumas formas de realizar este procedimentos.
4.5.1

Touch

O comando touch (toque em ingls) utilizado para gerar um arquivo vazio, ele apenas o cria
da forma que voc solicitou. Ou seja, para criarmos um arquivo com o nome arquivo.txt
utilizamos da forma mostrada abaixo.
touch arquivo.txt
Vamos lembrar que no Linux a extenso no to importante, mas bom utilizarmos alguma
referencia para que ao olhar para o arquivo j tenhamos em mente qual a finalidade do mesmo.
4.5.2

Criando Arquivos de Outras Formas

Temos algumas maneiras alternativas para gerar arquivos no Linux, vamos exemplificar
algumas abaixo.
>arquivo.txt
No caso acima, geramos um arquivo vazio, pegamos o nada, e jogamos para dentro dele.
Agora no prximo exemplo, utilizamos o comando echo gerando a palavra teste e direcionando
para dentro de arquivo.txt.
echo teste > arquivo.txt
para exibir o contedo do arquivo:
cat arquivo.txt
teste
Se em seguida voc exibir o contedo do arquivo arquivo.txt ver que ser exibido o contedo
"teste".
Obs: Podemos tambm abrir um editor de texto e salvar a sada do mesmo em um arquivo
que no existe, como comum de fazermos em ambiente grfico (abro o editor de texto,
coloco o contedo e salvo gerando assim meu arquivo). Veremos mais sobre editores de
texto em linha de comando no Linux mais para frente nesse curso.

Apostila/eBook do Curso Linux Essentials

Pgina 51

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.6 Criando Diretrios


Falamos anteriormente de como mover diretrios, agora vamos ver como ns podemos criar os
diretrios. Basicamente utilizamos o comando mkdir, o nome bastante sugestivo, mk =
make dir = directory (make directory).
Acompanhe abaixo a forma de utilizao. No exemplo mostrado criamos o diretrio teste.
mkdir teste
Agora vamos criar o diretrio teste dentro de teste.
mkdir teste/teste
Informao importante:
Se voc tentar criar o diretrio teste/teste2/teste2 lembrando que no criamos o
primeiro diretrio teste2 ele ir apresentar uma mensagem de erro, isso porque voc est
solicitando a criao do diretrio dentro de outro que no existe. Para realizar este
procedimento necessrio que acrescentemos o parmetro p
mkdir p teste/teste1/teste2/teste3/teste4/teste5/teste6
Agora foi criado todos os diretrios necessrios para criar o ultimo que o teste6. Com o -p
o sistema entende que como no existe o diretrio anterior ele vai criando sucessivamente
todos eles.

4.7 Utilizando Caracteres Curinga


Voc se lembra que falamos anteriormente sobre globbing e caracteres curinga?
Ns podemos aplicar esta ideia ao remover ou copiar diretrios, como exemplo podemos citar o
seguinte caso, em um backup eu tenho os diretrios organizados por data da seguinte forma:
2012-03-01, contendo diretrios at o ms de julho.
Suponha agora que eu queria apagar todos os diretrios que correspondam o perodo de
maro at maio, para isso podemos utilizar o comando mostrado em seguida.
rm vr 2012-0[345]-??
Com isso foram removidos os diretrios de maro, abril e maio, independente do dia, desde que
contendo dois dgitos, no caso os dias menores que 10 eram compostos pelo 0 na frente, ento
funcionou da forma adequada.

Apostila/eBook do Curso Linux Essentials

Pgina 52

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Captulo 03 - O Poder da
Linha de Comandos
Objetivo do captulo:
Ao longo desse captulo voc dever
adquirir conhecimentos sobre:

Como arquivar e compactar arquivos


no diretrio de usurio.
Como procurar e extrair dados de
arquivos no diretrio de usurio.
Como
transformar
comandos
repetidos em um script simples.

Apostila/eBook do Curso Linux Essentials

Pgina 53

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Sumrio do Captulo
1 Arquivando Arquivos na Linha de
Comando __________________________ 55
1.1

Arquivamento __________________ 56

1.2

Compactao e Arquivamento _____ 58

2 Procurando e Extraindo Dados de


Arquivos ___________________________ 60
2.1

Redirecionamento de I/O _________ 61

2.2

Pipes de Linha de Comando _______ 63

2.3

Comandos head e tail ____________ 66

2.4

Paginadores more e less __________ 67

2.5

Procurando Arquivos _____________ 67

2.6

Expresses Regulares_____________ 68

2.6.1
2.6.2

Expresses Regulares Bsicas ______ 68


Expresses Regulares Estendida ____ 69

Transformando Comandos em Scripts 70


3.1 Edio Bsica de Texto (editores de
texto) 71
3.1.1
3.1.2

3.2

Editor de Texto vi ________________ 71


Editor nano _____________________ 73

Shell Script Bsico _______________ 73

Apostila/eBook do Curso Linux Essentials

Pgina 54

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Arquivando Arquivos na Linha de Comando

Peso: 2
Descrio: Arquivando arquivos no diretrio de usurio.
Tpicos Importantes:
Arquivos e diretrios
Arquivos e compresso
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
tar
Opes comuns do tar
gzip, bzip2
zip, unzip
Extraindo arquivos individuais dos arquivos

Apostila/eBook do Curso Linux Essentials

Pgina 55

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.1 Arquivamento
muito comum querermos realizar o arquivamento de um diretrio ou mesmo um arquivo,
normalmente para titulo de backup ou transferncia de arquivo. Tenha em mente que
muito mais fcil voc transferir um arquivo grande do que centenas de arquivos pequenos.
Um dos usos mais comuns para arquivamento quando voc vai pegar um cdigo fonte de
algum aplicativo, ele vem arquivado normalmente com a ferramenta tar, ao desarquivar o
mesmo voc tem um diretrio e todos os arquivos fontes dentro.
Para exemplificar vamos criar dois arquivos de texto de nome teste.txt e teste2.txt e realizar o
arquivamento deles.
$ tar cvf teste.tar *.txt
Veja abaixo o processo todo.

Primeiro criamos os dois arquivos teste.txt e teste2.txt utilizando o comando "touch" que j
estudamos anteriormente. Depois executamos o comando tar, ele nos mostrou o que foi
executado e ento listamos os arquivos no diretrio e constatamos que foi gerado um terceiro
arquivo de nome teste.tar.
Agora vamos ver como podemos visualizar o contedo deste arquivo via linha de comando,
ou seja, como podemos ver o que est dentro desse arquivo teste.tar. Acompanhe a seguir.

Veja que agora podemos ver o contedo do arquivo num formato similar ao do ls, vamos
explicar os parmetros que vimos at aqui.
-v: verbose.
-c: Realiza a criao de um novo arquivo.
-f: executar sobre ou para o nome de arquivo informado, no caso o arquivo de onde ele ir
ler ou onde vai gravar.
-t: realiza apenas a listagem do contedo sem realizar a extrao.

Apostila/eBook do Curso Linux Essentials

Pgina 56

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Existem outras opes que tambm podem ser utilizadas, como por exemplo a funo r que
para acrescentar (append) um novo arquivo ao fim do arquivo tar, veja abaixo como
funciona.

Primeiro realizamos a listagem do arquivo teste.tar mostrando que o mesmo continha dois
arquivos dentro dele.
tar -tvf teste.tar
Depois listamos o diretrio onde voc pode ver que ali existia o arquivo teste3.txt.
ls
E finalmente realizamos o comando tar rvf teste.tar teste3.txt que inseriu o
arquivo teste.tar

dentro do

Para realizar o arquivamento de um diretrio o processo o mesmo, porm voc especifica


o diretrio que voc deseja arquivar ao invs de quais arquivos, veja a seguir como fica a
exibio de um diretrio compactado.
# tar -tvf teste-dir.tar
rwxr-xr-x root/root
-rw-r--r-- root/root
drwxr-xr-x root/root
drwxr-xr-x root/root
-rw-r--r-- root/root
-rw-r--r-- root/root
-rw-r--r-- root/root
-rw-r--r-- root/root

0 2012-07-19 17:05 teste/


10240 2012-07-19 17:02 teste/teste.tar
0 2012-07-19 17:05 teste/cidade/
0 2012-07-19 17:05 teste/cidade/curitiba/
0 2012-07-19 17:00 teste/teste3.txt
0 2012-07-19 17:05 teste/teset.txt
0 2012-07-19 16:50 teste/teste2.txt
0 2012-07-19 16:50 teste/teste.txt

Veja que ele traz o nome do diretrio principal que teste e traz o nome de cada arquivo
contido dentro do mesmo e de cada diretrio .
O procedimento de desarquivamento realizado atravs da opo x (extract), ou seja,
para desarquivar este arquivo utilizaramos o comando:
$ tar xvf teste.dir.tar
E se ns quisermos extrair apenas um dos arquivos que est dentro do arquivo .tar, isso
possvel? A resposta claro que sim.

Apostila/eBook do Curso Linux Essentials

Pgina 57

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Para a extrao de um nico arquivo do arquivo, basta especificar o caminho completo do


mesmo como foi informado pela exibio do comando t.
importante lembrar que caso o arquivo esteja em um diretrio dentro do tar ele ir extrair
toda a estrutura de diretrios, mas no extrair os arquivos, vamos ver um exemplo a seguir.

Observe que primeiro listamos o diretrio atual onde estvamos (comando ls), havia apenas o
arquivo teste-dir.tar dentro do mesmo. Depois listamos o contedo do arquivo (tar -vtf testedir.tar). Deste contedo solicitamos a extrao do arquivo teste/teste3.txt (tar -xvf testedir.tar teste/test3.txt) e ao realizarmos a listagem do diretrio novamente l estava o
diretrio teste e ao listar o diretrio vemos o arquivo que solicitamos que o teste3.txt
1.2 Compactao e Arquivamento
A
diferena
entre
compactao
e
arquivamento

bastante
simples,
o
arquivamento junta vrios arquivos ou
diretrio em um nico arquivo, j na
compactao ele transforma este arquivo
ou
diretrio
utilizando
algoritmos
de
compresso.
Normalmente os arquivos so compactados e
arquivados, por exemplo, quando voc abre
um arquivo .zip com vrios diretrios dentro
isso caracteriza um arquivamento e a
extenso .zip indica que o mesmo passou por
um processo de compresso tambm.
O comando tar permite que durante sua utilizao ns possamos realizar tambm a
compresso (muito comum este uso inclusive) atravs de dois parmetros bsicos que so:

-z (utilizando gzip para comprimir) ou


j (utilizando bzip2 para comprimir)

Obviamente para utilizar estes parmetros necessrio que voc tenha estas ferramentas (gzip
e bzip2) instaladas em seu sistema, normalmente o gzip j vem por padro mas o bzip2 precisa
ser instalado.

Apostila/eBook do Curso Linux Essentials

Pgina 58

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Um arquivo tar comprimido leva o nome de .tar.gz ou .tar.bz2 para simbolizar que o arquivo
inicialmente um bzip ou gzip e aps realizar a compresso voc deve desempacotar o arquivo
tar, por isso o nome .tar.gz. Para exemplificar vamos fazer um teste onde vamos criar um
arquivo utilizando cada um dos formatos e ver a diferena entre os arquivos finais. Acompanhe
a seguir.

Veja que no inicio da tela realizamos a compresso nos dois formatos, o formato .tar sem
compresso ns j havamos gerado, ento depois realizamos a listagem dos arquivos, veja a
rea que est selecionada na tela, voc tem os trs formatos, observe a diferena do tamanho
deles em bytes:

arquivo tar simples = 20480 bytes


arquivo tar com bzip2 = 284 bytes
arquivo tar com gzip = 318 bytes

Como voc pode ver a diferena realmente considervel, se voc pensar em grandes arquivos
de log por exemplo voc chega a ter 2 GB diminudo em cerca de 20 MB, isso quando falamos
em backup muito importante pois significa economia de espao.
Informao adcional:
Outros compactadores:
Tambm temos disponveis alguns outros compactadores como o caso do zip, rar, 7zip e
muitos outros que existem disponveis no Linux.
Nada impede voc de gerar o arquivo tar e depois compactar com um compactador de sua
preferncia, mas importante lembrar que o gzip e o bzip2 esto disponveis em todas as
distribuies.

Apostila/eBook do Curso Linux Essentials

Pgina 59

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Procurando e Extraindo Dados de Arquivos

Peso: 4
Descrio: Procurando e extraindo dados de arquivos no diretrio de usurio.
Tpicos Importantes:
Pipes de linha de comando
I/O re-direction
Partial POSIX Regular Expressions (., [ ], *, ?)
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
find, grep
less
head, tail
sort, cut, wc
Partial POSIX Basic Regular Expressions ([^ ], ^, $)
Partial POSIX Extended Regular Expressions (+, ( ), |)
Xargs

Apostila/eBook do Curso Linux Essentials

Pgina 60

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.1 Redirecionamento de I/O


Vamos nesse tpico explorar um recurso poderoso da linha de comando chamado de
input/output redirection (redirecionamento de entrada/sada). Como j vimos em
alguns exemplos anteriores muitos comandos, como o ls, exibe sua sada na tela. Mas isso no
precisa ser somente dessa forma, pois com uso do redirecionamento podemos enviar a sada
do comando para outro lugar, como arquivos, dispositivos e at mesmo outros comandos.
Sada Padro
Muitos programas da linha de comando que utilizamos exibem seus resultados enviando esses
resultados para a sada padro (standard output). Via de regra, a sada padro utilizada o
display, ou seja, nossa tela.
Para redirecionarmos a sada padro para outro lugar, como um arquivo, utilizamos o caractere
">". Veja o exemplo abaixo.
aluno:~$ ls > lista.txt
aluno:~$ cat lista.txt
rea de Trabalho
arquivo1.txt
arquivo-diretorio_66-24787.txt
diretorio_20
diretorio-2.tar.gz
Documentos
Imagens
link-teste-link.txt
lista.txt
Modelos
muitos-diretorios
Msica
Pblico
que_arquivo_e_este.txt
scripts
teste-link.txt
time
Transferncias
Vdeos
No exemplo mostrado redirecionamos a sada padro do comando ls para que o seu
resultado fosse enviado para um arquivo chamado lista.txt. Dessa forma, ao invs de exibir
o resultado na tela o resultado foi armazenado no arquivo. Em seguida exibimos o contedo
desse arquivo (cat lista.txt) para ilustrar o ocorrido.
Importante: o uso do caractere ">" faz com que toda vez que esse comando seja repetido (ls
> lista.txt) o arquivo ser sobrescrito e os dados anteriores sero perdidos. Para fazer de forma
incremental, ou seja, redirecionar o resultado para o final do arquivo lista.txt (sem apagar o
contedo anterior) basta utilizar o caractere ">>" (ls >> lista.txt)

Apostila/eBook do Curso Linux Essentials

Pgina 61

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Entrada Padro
Muitos comandos utilizam como entrada padro os dados vindo do teclado. No entanto, isso
tambm pode ser redirecionado, ou seja, podemos redirecionar a entrada padro de um
comando para que ele utilize os dados vindo de outro arquivo e no do nosso teclado.
Acompanhe um exemplo a seguir.
aluno:~$ grep sys < /etc/passwd
sys:x:3:3:sys:/dev:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
hplip:x:113:7:HPLIP system user,,,:/var/run/hplip:/bin/false
aluno:~$
O que fizemos foi informar ao comando grep sys para que ele utilize como entrada os dados
que esto no arquivo /etc/passwd. Ou seja, esse comando ir no arquivo /etc/passwd e ir
exibir na tela todas as ocorrncias dos caracteres "sys" que ele encontrar.
Perceba que o comando anterior ir exibir na tela, pois no redirecionamos a sada padro. Mas
poderamos fazer esse redirecionamento tambm, acompanhe o exemplo abaixo.
aluno:~$ grep sys < /etc/passwd > sys.txt
aluno:~$ cat sys.txt
sys:x:3:3:sys:/dev:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
hplip:x:113:7:HPLIP system user,,,:/var/run/hplip:/bin/false
aluno:~$
Agora o que fizemos foi redirecionar a sada para que fosse enviada para o arquivo sys.txt
e no para a tela.
Este tipo de redirecionamento pode tambm ser feito de outras formas, no necessariamente
para utilizao em arquivos de texto.
Muitas vezes vemos usurios descompactarem arquivos .tar.gz da seguinte forma.
$ gunzip < spandsp-0.0.6pre20.tgz | tar -xvf
Na prtica o que o comando faz inicialmente descompactar o arquivo tar (gunzip) e depois
desarquivar o resultado com o comando tar

Apostila/eBook do Curso Linux Essentials

Pgina 62

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.2 Pipes de Linha de Comando


Uma das prticas mais comuns que utilizamos no redirecionamento I/O a conexo de vrios
comandos juntos, formando o que chamamos de pipes de linha de comando. Com os pipes, a
sada padro de um comando enviada para a entrada padro do outro comando para
continuidade do processamento. Os dados enviados so processados pelo prximo comando
que mostrar o resultado do processamento.
Podemos dizer que os pipes so como se fossem uma peneira, o smbolo do pipe | e
dependendo da fonte de seu terminal ele ir parecer como uma barra com um furo no meio. A
ideia de um filtro, ou seja, vou barrar o contedo e deixar sair uma parte apenas, esta parte
o que me interessa do contedo.
Vamos pegar como exemplo o arquivo /etc/passwd, dentro deste temos a entrada referente
ao usurio root, se eu quiser listar apenas esta entrada sem a necessidade de abrir o
arquivo eu poderia utilizar o comando mostrado a seguir.
$ cat /etc/passwd | grep root
Este comando produziria a seguinte sada
root:x:0:0:root:/root:/bin/bash
Ou seja, listamos o arquivo /etc/passwd e filtramos a sada do mesmo para nos mostrar
apenas o que contivesse a palavra root, para isso utilizamos o comando grep, cuja funo
exatamente esta, exibir linhas que casam com uma expresso.
Informao importante:
Diferena entre o "|" e o ">":
A principal diferena entre o "|" e o ">", que o Pipe envolve processamento entre
comandos, ou seja, a sada de um comando enviado a entrada do prximo e o ">"
redireciona a sada de um comando para um arquivo/dispositivo.
Voc pode notar pelo exemplo (ls -la | more) que ambos ls e more so comandos porque
esto separados por um "|". Se um deles no existir ou estiver digitado incorretamente,
ser mostrada uma mensagem de erro.
Um resultado diferente seria obtido usando um ">" no lugar do "|". A sada do comando ls la > more seria gravada em um arquivo chamado more.
Poderamos tambm sermos mais genricos, solicitando que fosse exibido tudo que tivesse
/bin/bash, para isso utilizaramos o comando conforme a seguir.
$ cat /etc/passwd | grep /bin/bash
A sada do comando seria algo similar ao contedo abaixo.
root:x:0:0:root:/root:/bin/bash
mike:x:1001:1001::/home/mike:/bin/bash

Apostila/eBook do Curso Linux Essentials

Pgina 63

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Ou seja, existiam no arquivo duas entradas contendo a expresso /bin/bash.


possvel tambm a utilizao de expresses regulares. Acompanhe o exemplo com o
comando abaixo.
$ cat /etc/passwd | grep e ^m
Este comando nos retornaria todas as linhas que iniciem pela letra m
Lembre-se que o Linux sensvel a maiscula/minscula e voc precisa escrever da maneira
que deseja a interpretao. Dessa forma, se utilizarmos o comando cat /etc/passwd | grep
e ^[mM] seriam retornadas todas as linhas comeadas pela letra m, seja ela maiscula ou
minscula.
Dica: O comando grep em especifico possui um parmetro i que pode ser utilizado para
deixar a interpretao insensvel a maiscula e minscula (insensitive), dependendo do que
voc est buscando no arquivo isso torna mais simples a formao do comando.
Existem outros comandos que podemos utilizar para filtrar contedo, por exemplo, digamos que
queiramos retirar uma lista de todos os usurios que esto no arquivo /etc/passwd, neste
caso podemos usar o comando cut. Vamos ver um exemplo e explicamos o comando em
seguida.
$ cat /etc/passwd | cut d : f1
A parte da listagem do arquivo cat no preciso explicar, portanto, vamos direto ao comando
cut. O parmetro d do cut especifica o delimitador, que no nosso exemplo o :, depois
especificamos que queremos o primeiro campo da seleo (-f1), a sada do comando pode ser
verificada na figura abaixo.
$ cat /etc/passwd | cut -d ":" -f 1
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
libuuid
syslog
messagebus
colord
lightdm
whoopsie
avahi-autoipd
avahi

Apostila/eBook do Curso Linux Essentials

Pgina 64

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

usbmux
kernoops
pulse
rtkit
speech-dispatcher
hplip
saned
dltec
sshd
mysql
dltec1
Entendeu?
Vamos a uma explicao mais detalhada:
Voc conseguiu entender o que o cut fez? Perceba que a sada do comando cat /etc/passwd
algo do tipo:
root:x:0:0:root:/root:/bin/bash
mike:x:1001:1001::/home/mike:/bin/bash
Ao utilizarmos o cut -d ":" -f1 estamos solicitando apenas o primeiro campo da seleo.
root:x:0:0:root:/root:/bin/bash
mike:x:1001:1001::/home/mike:/bin/bash

Podemos ainda fazer um pipe de um pipe, ou seja, pegar um resultado filtrado e filtrar
novamente.
Vamos supor que queiramos contar a quantidade de resultados que este comando gerou, para
isso podemos acrescentar o comando wc com o parmetro l que utiliza a linha como base
de contagem. Vamos ver como fica, acompanhe o exemplo abaixo.
$ cat /etc/passwd | cut d : f1 | wc -l
A sada do comando ser o nmero 25 que quantidade de resultados na execuo do
comando que eu fiz.
O comando wc possui vrios parmetros possveis, vamos colocar alguns abaixo para a escolha
do que queremos contar.

-c: bytes
-m: caracteres
-w: palavras
-l: linhas

Ainda possvel acrescentar outros parmetros no comando, por exemplo ordenao com o
comando sort.

Apostila/eBook do Curso Linux Essentials

Pgina 65

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Se voc acrescentar o parmetro r ao sort ele ir trazer o resultado em ordem inversa ou


com o R para aleatrio.
$ cat /etc/passwd | cut d : f1 | sort
Veja que agora ele exibir os nomes de forma ordenada.
asterisk
backup
bin
cl-builder
daemon
Debian-exim
games
gnats
irc
libuuid
list
LP
2.3 Comandos head e tail
Os comandos head e tail tambm podem ser utilizados juntamente com outros comandos
atravs do pipe, os nomes dos dois comandos simbolizam exatamente o que eles querem dizer,
head (cabea = inicio do arquivo), tail (rabo = final do arquivo).
muito comum quando queremos verificar as ultimas linhas de um arquivo de log utilizarmos o
tail para exibio, vamos exemplificar com a figura a seguir.

Como voc pode ver ele mostrou as ltimas linhas do arquivo, mais especificamente as ltimas
10 linhas que o padro dele.
Voc pode utilizar o parmetro n para especificar a quantidade de linhas que deseja que ele
exiba e claro, dentro desta quantidade de linhas voc por exemplo aplicar um grep para
procurar algo especifico dentro das linhas que ele vai exibir.

Apostila/eBook do Curso Linux Essentials

Pgina 66

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Tambm possvel utilizar o parmetro k para exibir uma quantidade X de bytes na sada
O comando head funciona da mesma forma mas a contagem dele a partir do inicio do
arquivo e no do fim.
Uma utilizao bastante comum do comando tail com o parmetro f que abre as ultimas
linhas e continua carregando as demais linhas que forem inseridas no arquivo, isso til e
usado normalmente para leitura de arquivos de log em tempo real.
Com o comando tail f, por exemplo, voc pode acompanhar os logs do apache ou do squid
enquanto os acessos esto acontecendo.
2.4 Paginadores more e less
Quando abrimos arquivos grandes para serem analisados ou mesmo lidos muito comum ao
invs de abrirmos com um editor de texto abrirmos com um paginador.
Os mais comuns de serem utilizados so o more e o less, nas definies dos dois no manual
diz o seguinte:

more: Filtro para leitura em tela crt


less: O oposto do more

As diferenas bsicas entre os dois so que o less permite que voc volte o arquivo, enquanto
o more permite que voc apenas avance no arquivo.
Outra questo base que o less no precisa carregar o arquivo inteiro para exibir, se voc abrir
um arquivo muito grande isso de grande ajuda.
Outra diferena grande que o less permite que voc utilize alguns comandos similares aos do
editor vi para fazer procura no arquivo e outras coisas mais.
2.5 Procurando Arquivos
Como todo usurio ns temos muitas vezes que manipular arquivos de texto, procurar
contedos, configuraes e coisas do tipo. No Linux possvel fazer tudo isso de forma muito
simples utilizando a linha de comando.
Falamos anteriormente sobre o comando locate, uma outra opo para pesquisa de arquivos
a utilizao do comando find, o nome j diz tudo (find = encontrar).
Digamos que estamos em qualquer lugar do sistema e queremos localizar o arquivo de nome
apache2.conf (lembrando que no caso em questo o arquivo existe no mesmo pois o servidor
apache est funcionando). Veja o comando a seguir.
$ find / -name apache2.conf
Se ele encontrar o arquivo ele ir retornar o caminho completo para o mesmo.
O comando find permite tambm que adicionemos comandos para ele, por exemplo,
digamos que queiramos encontrar todos os arquivos alterados a mais de 20 dias em um
diretrio e fazer a remoo do mesmo, para tal utilizaramos o comando conforme mostrado
abaixo.

Apostila/eBook do Curso Linux Essentials

Pgina 67

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

$ find /home/backup ctime +20 exec rm i {} \;


No caso o sistema ir procurar os arquivos com alterao a mais de 20 dias e executar o
comando rm para remover, as duas chaves que existem aps o rm o valor que o find
encontrar e a \ significa o fim do comando.
Dica: Procure ajuda sobre o comando find (man find) e verifique quais parmetros que
podem ser utilizados e o que faz o -ctime.
Tambm possvel utilizar o parmetro xargs para executar alguma operao, se
quisssemos por exemplo remover os arquivos como fizemos com o rm poderamos usar o
seguinte comando. Acompanhe a explicao a seguir.
$ find ./ -type f -print0 | xargs -0 rm
Ou seja, o xargs usar os resultados do find para alimentar o rm.
2.6 Expresses Regulares
Aqui vamos ver um pouco de expresses regulares, de forma bastante superficial, apenas
para termos uma ideia.
As expresses regulares so utilizadas quando queremos buscar algo mais especifico onde
apenas uma nica palavra no traria o resultado desejado.
Existem alguns caracteres especiais que so utilizados para isso, alguns deles at j vimos aqui
como o ^ para referenciar inicio de linha ou opes de valores como [a-z] que seria qualquer
caractere de a at z minsculo.
Vamos ento na sequncia ver mais um pouco a respeito das expresses regulares.
2.6.1

Expresses Regulares Bsicas

Expresses regulares bsicas ns j utilizamos em alguns momentos.


Exemplo 1 Asterisco (*)
O astersco um caractere curinga que significa qualquer coisa, seja numero, letra ou outro.
Por exemplo, podemos utilizar o * para fazer uma busca:
ls /home/mike/*.txt
onde queremos procurar qualquer coisa terminada em .txt dentro do diretrio /home/mike.
Exemplo 2 Interrogao(?)
Tambm temos outros caracteres especiais como ? (interrogao) que representa qualquer
coisa apenas uma vez. Acompanhe o exemplo abaixo:
ls /home/mike/test?.txt
Esta expresso encontrar por exemplo o arquivo teste.txt mas no encontrar o teste2.txt
Exemplo 3 Colchetes []
Podemos tambm usar sequncias de caracteres com o [ ] (colchetes). Um exemplo seria
conforme abaixo:
ls /home/mike/teste[0-9].txt

Apostila/eBook do Curso Linux Essentials

Pgina 68

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Nesse comando o resultado mostraria para ns o arquivo teste2.txt mas no mostraria o


arquivo teste.txt
2.6.2

Expresses Regulares Estendida

Para exemplificarmos o uso das expresses regulares estendida vamos ver um exemplo bem
simples, acompanhe na imagem abaixo.
dltec@dltec:~$ cat /etc/passwd | egrep "([0-9]{2})" | egrep "(sync)|(man)"
sync:x:4:65534:sync:/bin:/bin/sync
man:x:6:12:man:/var/cache/man:/bin/sh
colord:x:103:108:colord colour management daemon,,,:/var/lib/colord:/bin/false
dltec@dltec:~$
A primeira vista parece estranho, mas na verdade bem simples, ns utilizamos o egrep invs
do grep porque o egrep um alias (apelido) para o comando grep E que significa a
utilizao de expresses regulares estendidas.
No nosso caso o primeiro comando egrep informou para ele procurar valores que fossem um
numero de 0-9 de at 3 casas, ou seja [0-9] repetindo + {2} a regra, isso o mesmo que
escrever [0-9][0-9][0-9].
No segundo egrep utilizamos expresses simples separadas por um | (pipe), o pipe neste
caso significa que pode ser o resultado da direita ou o da esquerda, no p da letra, a
representao de OR (OU).
Informao importante:
Imagine por exemplo que voc quer listar todas as linhas de um arquivo que contenha um
endereo ip. Os endereos possuem tamanhos variveis, onde eles podem ter de 1 a 3
dgitos, repetindo este padro por mais 3 vezes separados por um ponto (.). Voc poderia
utilizar o comando da forma abaixo:
grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" teste.txt
Esta regra representa exatamente isso:
[0-9] Qualquer numero de 0 at 9
{1,3} Podendo aparece de uma a trs vezes
\. seguido de um ponto
{3} Ocorrendo trs vezes
[0-9] com um numero qualquer de 0 at 9
{1,3} Podendo ter de um at trs dgitos
Para maiores detalhes sobre expresses regulares verifique os links abaixo.
http://en.wikipedia.org/wiki/Regular_expression
http://aurelio.net/regex/

Apostila/eBook do Curso Linux Essentials

Pgina 69

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Transformando Comandos em Scripts

Peso: 4
Descrio: Transformando comandos repetidos em um script simples.
Tpicos Importantes:
Edio de texto bsica
Script bsico
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
/bin/sh
Variables, Arguments
for loops
echo
Exit status
pico, nano, vi (only basics for creating scripts)
Bash
if, while, case statements
read and test, and [ commands

Apostila/eBook do Curso Linux Essentials

Pgina 70

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.1 Edio Bsica de Texto (editores de texto)


Um script nada mais que uma srie de comandos colocados em ordem dentro de um
arquivo para que estes sejam executados sempre da mesma forma. Os scripts podem ou no
receber valores extras pela linha de comando, isso vria de acordo com a finalidade do script.
Antes de fazermos um script precisamos conhecer os editores de texto que temos
disponveis. Claro que voc pode utilizar qualquer editor de texto disponvel em seu sistema,
mas quando estamos apenas com interface texto precisamos saber como utilizar
adequadamente o editor de texto.
Os principais editores de texto do Linux so:

VI
Gnu NANO
Emacs
Pico

Vamos cobrir apenas o VI e nano que esto presentes em todas as distribuies.


3.1.1

Editor de Texto vi

O editor de texto vi um dos mais usados pelos administradores Linux e tambm por
programadores. Ele dispe de muitos recursos existindo at mesmo livros ensinando como
utilizar o vi.
Em alguns casos voc tem apenas a verso pura do vi instalado, este um pouco mais
complexo de se utilizar pois depende de muitas funes do teclado.
J a verso vim j possui algumas facilidades de uso, mas os comandos que passaremos aqui
correspondem aos dois.
Voc pode abrir um arquivo diretamente passando o comando abaixo
vi nome_do_arquivo
Outra forma de dentro do vi utilizar o comando abaixo
:open nome_do_arquivo
Obs: lembre-se que no caso de estar dentro do vi para abrir o arquivo necessrio passar o
caminho todo para ele (ex: :open /etc/apache2/sites-enabled/000-default)
Ao entrar no editor voc no estar em modo de edio, para isso necessrio pressionar a
tecla i do teclado ou o boto insert, desta forma voc estar pronto para comear a digitar.

Apostila/eBook do Curso Linux Essentials

Pgina 71

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Acompanhe abaixo uma lista dos comandos mais bsicos.


Comandos no vi:
i: inserir
x: apaga um caractere
dd: apaga uma linha
o: adiciona uma nova linha e entra em modo edio (i)
q: sair
w: salvar
Importante: para alterar de um comando para outro necessrio pressionar a tecla esc
para sair do modo que voc est.
Por exemplo, para salvar o documento que voc est utilizando possvel utilizar o comando
:wq, onde o w seria para salvar e o q para sair do vi.
Um comando muito til o split, utilizado para abrir um segundo contedo na mesma
interface. Por exemplo, vamos dizer que voc est com o arquivo do apache instalado e quer
abrir a configurao do servio de ftp, voc ento digita o comando abaixo
:split /etc/vsftpd.conf
Com isso sua tela ser dividida ao meio (horizontalmente) e voc pode alterar entre elas com o
comando Ctrl+w . Se quiser uma diviso vertical utilize vsplit .
Veja abaixo uma tela do vi, onde estamos com o vi aberto com dois arquivos de cdigo fonte,
como voc pode ver o vi permite a utilizao de syntax hilight.

Apostila/eBook do Curso Linux Essentials

Pgina 72

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


3.1.2

Editor nano

O nano um editor mais simples de ser utilizado, ao entrar nele voc j pode ver na parte
inferior uma srie de comandos, veja a seguir uma configurao aberta.

Dica: O mais importante de tudo que voc se sinta bem ao utilizar um determinado editor
de texto, seja ele qual for. Mas tambm muito importante que voc tenha alguma prtica
em outro tipo de editor, como uma alternativa, pois pode acontecer de o sistema que voc
precisar manipular no ter o editor de sua preferncia.
Maiores informaes sobre os editores voc pode ver no man de cada um deles.

3.2 Shell Script Bsico


Um shell script pode ser basicamente uma srie de comandos colocados juntos dentro de
um arquivo para ser executado, como tambm pode ser praticamente um programa inteiro,
depende muito do que voc coloca dentro dele. Aqui vamos cobrir apenas scripts em bash .
Normalmente ao abrir um script voc ver no seu inicio qual o interpretador deste, no caso de
um script em bash normalmente ser conforme mostrado a seguir.
#!/bin/bash
Este apontamento indica como o script deve ser executado quando for chamado.
Nada impede que voc o chame usando outro interpretador, mas provavelmente o script
retornar erro neste caso, porm se voc apenas o executar sem especificar o interpretador
ento ele precisa desta informao para saber como deve proceder a execuo.

Apostila/eBook do Curso Linux Essentials

Pgina 73

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Vamos analisar um pequeno script como exemplo. Acompanhe na figura abaixo.

Atente que definimos a opo :set number no vi para que exibisse no canto esquerdo o
nmero das linhas, assim fica mais fcil de explicar.
Na linha 1 definimos o interpretador padro
Na linha 3 definimos uma varivel chamada NOME
Na linha 5 exibimos o texto Qual o seu nome ?
Na linha 7 chamamos o comando read para ler o que o usurio digitar, e jogamos para uma
varivel chamada NOVONOME
Na linha 9 realizamos uma comparao entre os dois valores
Na linha 10 definimos que se o nome for mike ele exibe a frase Bonito nome! :)
Na linha 12 colocamos para apresentar a frase Hum.. Ta bom caso o nome no seja mike
Este um pequeno exemplo de shell script, vamos na sequncia utilizar algo mais real, apenas
como forma de exemplificar o que pode ser feito.
Este um pequeno pedao de um script de backup.

Apostila/eBook do Curso Linux Essentials

Pgina 74

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

No inicio do mesmo ele l uma srie de configuraes em um outro arquivo e define as


variveis para uso, veja que utilizamos o comando echo, cut, mkdir, rsync, cat, grep , ou seja,
pegamos uma grande linha de comando e organizamos em um arquivo.
Pense que este arquivo possui 84 linhas, imagine que tamanho ficaria isso se fosse uma nica
linha de comando!
Vamos ver mais um exemplo, agora mais simples.
Primeiro em linha de comando e em seguida o mesmo contedo em um arquivo.
Linha de comando:
$ for i in *; do if [ -e "$i" ]; then echo "O Arquivo $i existe"; echo "$i" >
/tmp/teste2.txt; sleep 1 ;else "Nao encontrei o arquivo informado" ; fi; done
Arquivo:
#!/bin/bash
for i in *; do
if [ -e "$i" ]; then
echo "O Arquivo $i existe"
echo "$i" > /tmp/teste2.txt
sleep 1
else
"Nao encontrei o arquivo informado"
fi
done
Os scripts em shell permitem a ns a utilizao de algumas ferramentas j conhecidas do
pessoal de programao como if, else, while, for, case e outras ferramentas para
comparao de resultados. O bash traz tambm alguns operadores bsicos que voc pode
verificar abaixo.
-e: verifica se o arquivo existe
-f: verifica se um arquivo e no um diretrio ou arquivo de dispositivo
-s: verifica se o tamanho do arquivo diferente de 0
-d: verifica se um diretrio
-r: verifica se o usurio tem permisso de leitura
-w: verifica se o usurio tem permisso de escrita
!: utilizando junto com outros representa ao contrria (ex: no ter permisso, no existir
etc...)
Na linha de comando para no precisar digitar o if voc pode usar a ferramenta test juntamente
com estas opes, por exemplo, testar se um arquivo tem permisso de escrita para voc:
test w /etc/passwd && echo Escrita || echo Leitura
Nesse caso ns utilizamos o echo para definir, se for verdadeiro utiliza-se o comando da
esquerda, se for falso, utiliza-se o comando da direita.
Voc pode ver o valor real do resultado colocando da seguinte forma:
test w /etc/passwd ; echo $?

Apostila/eBook do Curso Linux Essentials

Pgina 75

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Captulo 4 O
operacional Linux

sistema

Objetivos do Captulo
Ao final desse captulo voc dever ser
capaz de:

Os principais sistemas operacionais e


distribuies Linux.
Os componentes que fazem parte
dos desktops e servidores.
Onde os vrios tipos de dados so
armazenados em um sistema Linux.
As configuraes mais importantes
de rede e com os requisitos bsicos
que o computador necessita para
funcionar em uma rede LAN (Local
Area Network).

Apostila/eBook do Curso Linux Essentials

Pgina 76

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Sumrio do Captulo
1

Escolhendo um Sistema Operacional _ 78


1.1

Windows, MacOS, Linux, BSD e Solaris


79

1.2 Gerenciamento do Ciclo de Vida das


Distribuies _________________________ 80
1.3

Interface Grafica Vs Linha de Comando


81

Entendendo o Hardware do Computador


82
2.1

HD e Parties __________________ 83

2.2

Drivers Opticos__________________ 84

2.3

Drivers Extras ___________________ 84

2.4 Verificando todo o Hardware de seu


Computador _________________________ 85
2.5

Gerenciadores de Energia _________ 85

Onde os Dados so Armazenados ___ 86


3.1

Kernel _________________________ 87

3.2

Processos ______________________ 88

3.3

Verificao de Memria __________ 89

3.4

syslog, klog, dmesg ______________ 90

3.5

Diretrios do Linux ______________ 91

3.6

Pacotes e Banco de Dados de Pacote 92

3.7

Bibliotecas _____________________ 93

Seu Computador na Rede __________ 94


4.1

Internet, Rede, Roteadores ________ 95

4.2

DNS ___________________________ 96

4.3

Configurao de Rede ____________ 96

4.3.1
Configurao Manual _____________ 97
4.3.2
Configurao Atravs de Arquivos de
Configuraes __________________________ 100

Apostila/eBook do Curso Linux Essentials

Pgina 77

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Escolhendo um Sistema Operacional

Peso: 1
Descrio: Conhecer sobre os principais sistemas operacionais e as distribuies Linux.
Tpicos Importantes:
Diferena entre o Linux, Windows e Mac
Gerenciamento do ciclo de vida da distribuio
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
GUI versus command line, desktop configuration
Maintenance cycles, Beta and Stable

Apostila/eBook do Curso Linux Essentials

Pgina 78

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.1 Windows, MacOS, Linux, BSD e Solaris


Hoje em dia temos muitos sistemas operacionais, mas os mais conhecidos so o MS Windows,
MacOS, Linux e os derivados de BSD como o FreeBSD e OpenBSD.
O MacOS da Apple baseado em BSD tambm, ento acaba sendo um sistema muito parecido
com o Linux. A grande diferena o Windows, que no baseado em Unix como os outros, o
sistema da Microsoft tambm incorporou algumas coisas do Linux e BSD, por exemplo, da
verso 2000 do Windows em diante no necessrio reiniciar o computador aps trocar a
configurao de rede porque foi implementando um modelo baseado em BSD. Uma das grandes
vantagens dos sistemas "Unix Like" a questo da segurana devido a seu modelo de
permisses e arquitetura do sistema.
O Windows como voc j deve ter percebido lder no mercado de Desktops, mas nos
ltimos anos o Linux evoluiu muito nesta rea. Se voc comparar as primeiros interfaces
grficas com as atuais voc consegue ter uma noo ntida desta questo.
Alguns anos atrs era comum ouvir as pessoas falando que no usavam Linux porque no
conseguiam utilizar o cdrom ou o disquete, isso tudo na verdade se dava devido a diferena de
conceito, no Windows voc coloca o CD no drive e o Windows j o disponibiliza para voc, no
Linux era necessrio utilizar o processo de montagem manualmente, existiam alguns
programas que ajudavam neste processo como o automount que j no mais usado. Com a
chegada do haldaemon e posteriormente do udev isso tudo mudou, o Linux tornou-se mais fcil
para trabalhar com dispositivos removveis.
Fora estas questes a grande diferena a questo do modelo comercial, como o Windows
proprietrio e ningum alm da prpria Microsoft pode ter acesso ao cdigo fonte do mesmo
isso gera um entrave muito grande, pois no sabemos at onde nossos dados so mantidos em
sigilo j que o cdigo do mesmo fechado.
O mesmo claro acontece com o sistema da Apple, por mais que o sistema seja baseado em
BSD a apple no libera a sua verso das coisas em modelo aberto, assim sendo, a mesma
duvida recai sobre a apple.
Algum tempo atrs a Sun Microsystem abriu o cdigo fonte de seu Solaris (Unix da Sun)
criando assim o projeto OpenSolaris, do qual rapidamente nasceu algumas distribuies. A
licena da Sun no GPL, porm, tambm permite visualizao e alterao do cdigo fonte.
Com a aquisio da Sun pela Oracle o projeto foi extinto porm criou-se um fork do mesmo,
uma das distribuies existentes o OpenIndiana, voc pode ver mais a respeito em
http://openindiana.org/
Agora como uma opinio pessoal eu diria, o melhor sistema operacional a ser utilizado
depende muito de sua necessidade, existem sistemas operacionais que so excelentes em
algumas tarefas e pecam em outras. Existem restries de projeto que tambm no lhe
permitem uma escolha, como por exemplo a utilizao de banco de dados SQL Server ou
pginas escritas em ASP utilizando recursos que s existem no Windows (como o framework
.NET). Tirando estes casos quase sempre possvel a utilizao de Linux e existem aqueles que
preferem o BSD ao Linux.

Apostila/eBook do Curso Linux Essentials

Pgina 79

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.2 Gerenciamento do Ciclo de Vida das Distribuies


Distribuio debian
Normalmente ns utilizamos um sistema operacional quando o mesmo est estvel, salvo
quando queremos testar novos recursos. Em sistemas Debian ns temos 3 estgios, sendo
eles, stable (estvel), testing (teste), unstable (instvel).

No caso do Debian basicamente a coisa funciona assim, quando uma verso stable lanada os
pacotes da unstable so colocados na testing e comeam a sofrer alteraes (j houve casos
onde este perodo durou cerca de 5 anos). Aps o sistema estar de acordo a equipe do Debian
coloca a testing em freeze (congelado), neste momento o sistema no recebe mais
modificaes de verses, apenas correes das verses atuais. Algum tempo depois ele se
tornar a nova verso testing, a unstable continuar sempre unstable e uma nova srie de
pacotes entram na testing que um dia se tornar estvel novamente.
Tambm possvel atualizar a distribuio de oldstable para stable (voc usava a stable e
agora existe uma nova stable), utilizando o gerenciador de pacotes apt-get. Aps fazer as
devidas configuraes basta realizar o comando apt-get dist-upgrade que todo o seu sistema
ser atualizado para nova verso, claro que voc pode atualizar tambm para testing ou
mesmo para unstable porm no recomendado para sistemas em produo.
Maiores informaes sobre as verses do Debian podem ser verificadas no link abaixo:
http://www.debian.org/releases/

Distribuio CentOS
O CentOS baseado no RedHat Enterprise Linux, basicamente a RedHat disponibiliza todo o
cdigo fonte de seus sistema operacional e o pessoal do CentOS baixa os fontes, compila e
transforma em um CD para voc provendo as atualizaes e etc.

Apostila/eBook do Curso Linux Essentials

Pgina 80

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Baseado nesta questo trabalhado o ciclo de vida que a RedHat estabelece, as verses 5 e 6
destes possuem um tempo de vida de 10 anos, seguido de 3 anos de tempo de vida extra. As
verses 3 e 4 j tiveram seu tempo de vida encerrado, a verso 3 em 2010 e a verso 4 em
2012.
Maiores informaes sobre o tempo de vida desta pode ser verificado no link abaixo:
https://access.redhat.com/support/policy/updates/errata/?cid=1480606

1.3 Interface Grafica Vs Linha de Comando


A utilizao de linha de comando, como voc j pode ver no decorrer do curso, exige muito
mais habilidade de que simplesmente pressionar um boto do mouse.
Com certeza a curva de aprendizado para utilizao de linha de comando maior, mas voc
sempre aprender como as coisas funcionam.
Atravs da linha de comando voc pode passar muitos parmetros para o sistema, e como j
foi dito anteriormente, no Linux possvel fazer praticamente tudo atravs da linha de
comando, exemplos disso que eu tenho da vida real so:

Gravao de TV
Alterao de Metadados de Imagens
Insero de Marca dagua em Imagens
Backups
Monitoramento
Scripts para automao de processos.

Seja feito digitando manualmente ou atravs de scripts, no fim tudo linha de comando e isso
nos permite dimensionar de forma mais inteligente os recursos que dispomos.

Apostila/eBook do Curso Linux Essentials

Pgina 81

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Entendendo o Hardware do Computador

Peso: 2
Descrio: Familiarizar-se com os componentes que fazem parte dos desktops e servidores.
Tpicos Importantes:
Hardware
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
Hard drives and partitions, motherboards, processors, power supplies, optical
peripherals
Display types
Drivers

Apostila/eBook do Curso Linux Essentials

drives,

Pgina 82

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.1 HD e Parties
Normalmente ao ligarmos um HD (hard drive/disco rgido) ou outro dispositivo de bloco,
podemos verificar as parties existentes atravs do comando fdisk l.
Tambm podemos utilizar o comando dmesg | less para tentar localizar as informaes do
disco, veja abaixo com o resultado da busca no dmesg

Perceba que temos destacado a palavra SAMSUNG que foi o argumento da busca feito e em
azul temos as parties listadas sda: sda1 sda2 sda3.
Agora se digitarmos o comando fdisk l veja a seguir as parties.

Perceba que no caso para o disco sda as parties exibidas so exatamente as informadas
anteriormente (sda1 sda2 sda3).

Apostila/eBook do Curso Linux Essentials

Pgina 83

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Quando ns ligamos um dispositivo de bloco, como um pendrive por exemplo, ele exibido da
mesma forma tanto no dmesg devido ao reconhecimento do dispositivo e no fdisk para poder
verificar as parties e fazer a montagem das mesmas.
2.2 Drivers Opticos
Os drivers de CD-R/RW/DVD-R/RW atualmente no Linux so reconhecidos como
dispositivos scsi, mesmo que sejam IDE, assim o dispositivo normalmente o /dev/sr0. Veja
abaixo a listagem do comando dmesg.
root@pabx:~# dmesg | grep -i sr0
[ 0.786091] sr0: scsi3-mmc drive: 48x/48x writer cd/rw xa/form2 cdda tray
[ 0.786193] sr 0:0:0:0: Attached scsi CD-ROM sr0
Curiosidade:
A pouco tempo atrs para utilizar gravadores de CD no Linux normalmente era preciso
especificar no grub/lilo a opo hdX=ide-scsi, neste caso o X era o drive de CD.
Por exemplo, hdc e habilitando o parmetro ide-scsi ativava a emulao de scsi que era
necessria para gravao de CDS, atualmente este processo no mais necessrio
conforme j informamos anteriormente.
2.3 Drivers Extras
Alguns dispositivos no Linux precisam de drivers extras para rodar. No Linux no chamamos
de drivers e sim de mdulos, estes mdulos externos normalmente vem em cdigo fonte
para ser compilado.
E existem alguns binrios que executam algumas compilaes mas a base do cdigo
proprietria. Um exemplo disso so os drivers de vdeo da NVIDIA, alguns Linux j trazem
uma opo de instalao automtica, mas voc pode baixar o driver para Linux no site da
NVIDIA e tendo os pacotes certos a compilao e instalao do mesmo ocorre de forma
razoavelmente automtica.
Existem algumas placas de rede que utilizam drivers externos para funcionar, hoje isso no
to comum de se ver mas pode acontecer. Se o fabricante disponibiliza o driver importante
observar as limitaes do mesmo, algumas vezes o mesmo s funciona em algumas verses de
kernel, mas realizando a instalao o mesmo inserido no kernel do Linux e passa a funcionar
de forma automtica.
Existem tambm alguns drivers que so utilizado para liberao de recursos, como acontece
com algumas controladores scsi/raid que possuem softwares de gerenciamento e
monitoramento para o Linux.
No geral para a compilao destes mdulos necessrio que voc tenha os aplicativos gcc,
make, g++ alm dos fontes do kernel, com tudo isso devidamente instalado os passos de
compilao normalmente so make, make install.
Em alguns casos necessrios executar o arquivo configure para que este gere o arquivo
Makefile responsvel pelas instrues de compilao, mas no to comum para mdulos.

Apostila/eBook do Curso Linux Essentials

Pgina 84

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.4 Verificando todo o Hardware de seu Computador


Existe no Linux um utilitrio muito bom chamado hwinfo, que permite que voc gere um
dump de todo o hardware disponvel.
O hwinfo traz informaes sobre memria, hd, placa me, processador e outros dispositivos.
Veja a seguir a sada do comando referente a memria.
web:~# hwinfo --mem
01: None 00.0: 10102 Main Memory
[Created at memory.61]
Unique ID: rdCR.CxwsZFjVASF
Hardware Class: memory
Model: "Main Memory"
Memory Range: 0x00000000-0xf791afff (rw)
Memory Size: 3 GB + 768 MB
Config Status: cfg=new, avail=yes, need=no, active=unknown

2.5 Gerenciadores de Energia


No Linux existem disponveis recursos para APM (Advanced Power Management) e ACPI
(Advanced Configuration and Power Interface).
Atualmente todos os laptops suportam ACPI, o suporte j vem ativo no Kernel do Linux
bastando que seja feita apenas a configurao do mesmo. O APM e o ACPI basicamente
realizam o gerenciamento de energia, a verificao se uma fonte est ligada ou se a bateria
est descarregada. Tambm disponibiliza, por exemplo, a configurao para ajustes de brilho
do monitor.
Existem outras ferramentas bastante importantes no gerenciamento de energia como o
hdparm (gerenciamento do hd inclusive com relao a desempenho do mesmo) e o cpufreqd.

Apostila/eBook do Curso Linux Essentials

Pgina 85

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Onde os Dados so Armazenados

Peso: 3
Descrio: Entender onde os vrios tipos de dados so armazenados em um sistema Linux.
Tpicos Importantes:
Kernel
Processos
syslog, klog, dmesg
/lib, /usr/lib, /etc, /var/log
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
Programs, libraries, packages and package databases, system configuration
Processes and process tables, memory addresses, system messaging and logging
ps, top, free

Apostila/eBook do Curso Linux Essentials

Pgina 86

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.1 Kernel
O Kernel do Linux corao do mesmo, onde a mgica acontece, onde o software e o
hardware comeam a se falar. J vimos um pouco sobre o kernel nos captulo 1 e 2. Aqui
veremos onde as informaes do kernel ficam armazenadas.
As informaes do kernel durante a execuo ficam localizadas nos diretrio /proc, /dev, por
exemplo, nosso drive de CD aps reconhecido aparece como dispositivo em /dev/sr0, se voc
verificar em /proc/scsi poder ver os dispositivos reconhecidos.

Apostila/eBook do Curso Linux Essentials

Pgina 87

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.2 Processos
Todo processo executado gera um nmero chamado PID (process ID). Este nmero
criado tambm no /proc, onde voc pode verificar algumas informaes sobre os processo,
mas existem outros meios de se ter acesso as informaes mais relevantes, uma delas
atravs do comando ps. Acompanhe na imagem abaixo.

Veja que o comando utilizado foi ps aux, os parmetros utilizados significam:

a - Seleciona todos os processo


u - Traz a listagem com os nomes dos usurios
x - Traz em formato BSD

As informaes do processo no /proc voc pode verificar no man proc que ir trazer uma
explicao detalhada de cada item.
Outra forma muito utilizada para acompanhar os processos atravs do comando top. O
comando top mostra em tempo real o que acontece, veja abaixo.

Apostila/eBook do Curso Linux Essentials

Pgina 88

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.3 Verificao de Memria


A verificao da memria via linha de comando realizada atravs do comando free, veja a
seguir a sada do comando.
dltec@dltec:~$ free
total
Mem:
738856
-/+ buffers/cache:
Swap:
1046524
dltec@dltec:~$

used
508056
140616
0

free
230800
598240
1046524

shared
0

buffers
69068

cached
298372

Atente que esses valores so exibidos em kilobytes. Uma informao importante que o
campo shared obsoleto e deve ser ignorado de acordo com informao no manual.
Voc pode especificar alguns parmetros para facilitar a leitura, como por exemplo m para
exibio de memria em MB, ou g para GB, veja abaixo o mesmo resultado anterior agora
com m.
dltec@dltec:~$ free -m
total
Mem:
721
-/+ buffers/cache:
Swap:
1021
dltec@dltec:~$

used
496
137
0

free
225
584
1021

shared
0

buffers
67

cached
291

Tambm possvel verificar a utilizao de memria atravs do comando vmstat, veja ao


lado uma sada para o comando vmstat -a Sm.
dltec@dltec:~$ vmstat -a -Sm
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---r b
swpd
free inact active
si
so
bi
bo
in
cs us sy id wa
1 0
0
236
253
203
0
0
27
7
16
35 1 0 99 0
dltec@dltec:~$
Dica: O comando top j demonstrado anteriormente tambm permite que voc ordene os
resultados baseado na utilizao de memria.

Apostila/eBook do Curso Linux Essentials

Pgina 89

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.4 syslog, klog, dmesg


syslog
O syslog antes de ser um aplicativo ele um protocolo definido pela RFC5424. Com base nesta
RFC foi criado no Linux os aplicativos syslog, rsyslog, syslog-ng e outros.
O syslog permite uma diviso das mensagens recebidas utilizando alguns nomes de
servios e outras facilities, desta maneira possvel pelo aplicativo separar as mensagens
que recebe e organizar em arquivos separados
O Debian utiliza por padro a aplicao rsyslog, a configurao
/etc/rsyslog.conf. Veja abaixo um pedao da configurao do mesmo.
lpr.*
mail.*
user.*

deste

fica

em

-/var/log/lpr.log
-/var/log/mail.log
-/var/log/user.log

Ou seja, ele recebe a informao do log com os parmetros lpr, mail e user (alm de outras) e
direciona cada um para um determinado arquivo.
Tambm possvel direcionar vrios tipos de mensagens para um nico arquivo, veja a seguir.
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none

-/var/log/messages

O resultado disso tudo, no caso do servidor de onde pegamos essa configurao, para o
arquivo /var/log/mail.log o seguinte contedo.
Jul 23 19:09:22 web vpopmail[15376]: vchkpw-smtp: (PLAIN) login success
x@xxx.com.br:177.111.248.132
A mensagem mostrada acima uma mensagem gerada pelo sistema de autenticao do
sistema de email do servidor, mostrando um login com sucesso do usurio x do domnio
xxx.com.br (estes valores foram alterados para no mostrar dados legtimos de usurio).
Ou seja, no fim, os aplicativos mandam as mensagens pelo syslog e o rsyslog recebe e trata
estas mensagens.
klog
O Kernel do Linux tambm gera mensagens que so interpretadas pelo syslog, anteriormente
havia um daemon chamado klogd para realizar a recepo destas mensagens, porm
atualmente o rsyslog realiza todo o processo.
No entanto, comum ainda encontrarmos sistemas mais antigos (Debian) ou sistemas CentOS
que ainda utilizam desta forma.
Vale a pena mencionar que o CentOS utiliza o sysklogd para daemon de syslog, o mesmo
possui sua configurao em /etc/syslog.conf.
O formato de configurao parecido com o do rsyslog.

Apostila/eBook do Curso Linux Essentials

Pgina 90

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

dmesg
As mensagens do kernel tambm podem ser exibidas pelo comando dmesg. J vimos um
pouco sobre esse comando no tpico sobre HD e parties.
Este comando exibe um buffer de 16384 bytes, aps isso feito o dump para ao arquivo
/var/log/dmesg. Este buffer necessrio pois de acordo com a falha apresentada a
mensagem de erro pode ocorrer apenas no buffer, no chegando a ser transferida para o
arquivo de log devido a algum tipo de travamento.
O dmesg tambm utilizado para verificar as mensagens de boot do sistema operacional
alm de mensagens de kernel relacionadas a algum dispositivo inserido como um pendrive,
webcam ou outro.
3.5 Diretrios do Linux
No quadro abaixo descrevemos a estrutura padro de diretrios do Linux apenas para que
voc tenha uma noo melhor da finalidade de cada diretrio.
/
- Raiz do sistema
/bin - Binrios do sistema
/boot - Arquivos necessrios para o boot do sistema
/dev - Arquivos relacionados a comunicao com dispositivos
/home - Arquivos de usurios
/lib
- Bibliotecas do sistema
/lib32 - Bibliotecas do sistema para compatibilidade com sistemas 32 bits
/media - Medias removveis (pendrive, cds etc..)
/mnt - Montagem de dispositivos (cds, pendrives, etc)
/opt - Diretrio para sofwares que no so do prprio sistema (software externos)
/proc - Sistema de arquivo virtual para utilizao de memria e alguns dispositivos
/root - Diretrio do usurio root
/sbin - Binrios do sistema para serem utilizados apenas pelo root
/srv
- Arquivos para serem oferecidos para servios como ftp, rsync e outros
/sys
- Arquivos especficos de devices plug and play?
/tmp - Arquivos temporrios
/usr
- Arquivos instalados pela distribuio
/var
- Dados variveis como logs , fila de e-mail e outros.
De todos estes diretrios existem dois em especial que precisam ser mencionados, sendo
eles:

/etc/
/var/log

Apostila/eBook do Curso Linux Essentials

Pgina 91

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Estes diretrios so dos mais utilizados por qualquer administrador, o diretrio /etc/ contm
normalmente a configurao de todos os servios que voc executa e o /var/log contm
os logs destes servios. Vamos exemplificar.
No Debian o servio do apache
Configurao: /etc/apache2/
Logs: /var/log/apache2
No CentOS o servio do apache
Configurao: /etc/httpd
Logs: /var/log/httpd
3.6 Pacotes e Banco de Dados de Pacote
Como j foi falado os gerenciadores de pacotes possuem uma lista com os pacotes. Ele
utiliza esta lista para poder realizar o download dos pacotes e suas dependncias.
O apt-get mantm uma lista dos pacotes no diretrio /var/lib/apt/lists.
Tenha em mente que cada repositrio possui sua lista de arquivos l e quando voc solicita a
instalao de algo o pacote armazenado em /var/cache/apt/archive. Aqui ele ser
processado aps o download e caso o download seja interrompido o pacote ficar em
/var/cache/apt/archives/partial.
Estes diretrios (archive e partial) podem ficar um pouco grande, principalmente em um
desktop, ento de vez em quando recomendado executar o comando apt-get clean para
remover o contedo existente nestes diretrios.
No caso do gerenciador de pacotes yum existem trs comandos base para limpar os dados do
mesmo, sendo eles:

yum clean headers


yum clean packages
yum clean metadata

Apenas para mantermos claro a questo do pacote, vamos novamente explicar alguns detalhes.
.dpkg e .rpm so pacotes
Pacotes neste caso so uma srie de arquivos e scripts prontos para serem executados
atravs de um gerenciador de pacote e mantidos todos em um nico arquivo
Caso voc se interesse por empacotamento segue abaixo algumas referencias.
Debian:

http://www.debian.org/doc/manuals/maint-guide/

RPM:

https://fedoraproject.org/wiki/Packaging/Guidelines
http://www.ibm.com/developerworks/library/l-rpm1/
http://www.gurulabs.com/GURULABS-RPM-LAB/GURULABS-RPM-GUIDE-v1.0.PDF

Apostila/eBook do Curso Linux Essentials

Pgina 92

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.7 Bibliotecas
J falamos aqui sobre biblioteca e agora vamos ver um pouco mais sobre o tema com o intuito
de deixar claro alguns pontos importantes. A biblioteca na verdade um cdigo que criado
para ser utilizado por outros programas, com o objetivo de permitir a utilizao de recursos j
previamente criados.
Basicamente imagine o seguinte, o aplicativo wget que utilizado para realizar downloads via
linha de comando precisa acessar algumas vezes sites que utilizam SSL. Para isso ele precisa
ter suporte a SSL, no caso o wget utiliza a biblioteca libssl. Atravs do comando ldd voc
pode ver as bibliotecas que um determinado software utiliza, vamos ver o caso do wget na
figura abaixo.
dltec@dltec:~$ ldd /usr/bin/wget
linux-gate.so.1 => (0xb7729000)
libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xb76c1000)
libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb7516000)
libidn.so.11 => /usr/lib/i386-linux-gnu/libidn.so.11 (0xb74e1000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb74d8000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7333000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb732e000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7318000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb72fc000)
/lib/ld-linux.so.2 (0xb772a000)
dltec@dltec:~$
Como voc pode ver o wget utiliza algumas bibliotecas, para ssl e outras finalidades. O mesmo
acontece com muitos outros aplicativos, em geral como o Linux aberto, ao invs de voc criar
uma biblioteca de criptografia voc usa a libcrypto, e assim por diante, de acordo com o que j
existe disponvel. Dessa forma voc ganha tempo, o seu software utiliza bibliotecas de
excelente qualidade e voc foca nas necessidades de seu software.
O importante de lembrar que a falta de uma biblioteca pode impedir o funcionamento
parcial ou total do software que voc est tentando utilizar. Por isso a importncia dos
gerenciadores de pacotes, pois eles manipulam estas dependncias e trazem para voc tudo
para que o software funcione de forma adequada.

Apostila/eBook do Curso Linux Essentials

Pgina 93

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Seu Computador na Rede

Peso: 2
Descrio: Familiarizar-se com as configuraes mais importantes de rede e com os requisitos
bsicos que o computador necessita para funcionar em uma rede LAN (Local Area Network).
Tpicos Importantes:
Internet, network, routers
Domain Name Service
Network configuration
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
route
resolv.conf
IPv4, IPv6
ifconfig, netstat, ping
ssh, dig

Apostila/eBook do Curso Linux Essentials

Pgina 94

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.1 Internet, Rede, Roteadores


No Linux normal termos bastante convvio com ambientes de rede por isso importante
mencionarmos aqui algumas questes sobre esse tema.
Uma rede de computadores nada mais que um grupo de computadores que falam uns com
os outros, permitindo assim o compartilhamento de recursos como arquivos, impressoras e
outras finalidades.
Quando voc passa a ter a necessidade de acessar algum contedo externo (que no esteja na
sua rede) isso realizado atravs de um roteador, que o dispositivo que coloca voc em
contato com a internet, seja atravs de um modem adsl ou uma conexo dedicada.
Muitas pessoas/empresas utilizam o Linux como roteador. Alm de possvel essa soluo se
torna bem flexvel devido a quantidade de recursos disponveis no Linux. Veja abaixo uma
topologia simples como exemplo.

Esta uma topologia muita utilizada em ambientes de escritrio e at mesmo em empresas


maiores. Quanto maior a empresa, mais micros e switches voc encontrar, mas a ideia bsica
que voc ter esses micros conectados no switch e o switch conectado no roteador/firewall.
importante ressaltar que tanto a funo do roteador quanto do firewall podem ser realizados
pelo Linux ou estarem em equipamentos com essa finalidade prpria. Normalmente o firewall
um firewall Linux (existem muitos firewall BSD tambm alm de solues proprietrias).

Apostila/eBook do Curso Linux Essentials

Pgina 95

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.2 DNS
DNS DOMAIN NAME SERVICE ou seja, Servio de Nome de Domnio. A ideia do DNS
simples, ele pega os endereos IPs e traduz para um nome. Imagine o seguinte, um endereo
IP hoje, na verso IPv4, possui quatro sequncias numricas que vo de 0 at 255. Por
exemplo, o endereo IP do site www.uol.com.br 200.221.2.45.
No muito mais fcil guardarmos o endereo uol.com.br do que 200.221.2.45?
E essa justamente a funo do DNS, ao digitarmos www.uol.com.br o DNS ir traduzir esse
endereo para 200.221.2.45, ou seja, ele realiza uma converso de nomes para endereos IP.
O dns tambm permitiu a criao de outros tipos de registros que no caso so utilizados para
informar qual o host de email, qual o servidor de dns do domnio, quando o mesmo foi
modificado, quem o contato do domnio e por ai vai.
No Linux temos vrios aplicativos para fazer consultas em servios de dns. O pacote bindutils (CentOS) / dnsutils (Debian) trazem uma srie de ferramentas como os comandos
dig, nslookup e o comando host que j padro no Linux.
Por exemplo, para saber por exemplo qual o endereo de mx (servidor de email) do domnio
dltec.com.br podemos utilizar o comando dig. Veja o exemplo a seguir.
$ dig t mx dltec.com.br
O comando trar a seguinte sada (extrado apenas a parte que nos interessa)
dltec.com.br.

14392 IN MX 0 dltec.com.br.

Ou seja, o domnio dltec.com.br tem o MX apontado para o host dltec.com.br com prioridade 0.
Em seguida voc poderia digitar dig t A dltec.com.br para saber qual o ip do host .
4.3 Configurao de Rede
Vamos separar a configurao de rede para facilitar o entendimento em dois pontos, um que
o manual e outro que a configurao por arquivo.
Tambm iremos diferenciar cada uma das formas nos sistemas Debian e CentOS, pois cada
um apresenta suas particularidades.

Apostila/eBook do Curso Linux Essentials

Pgina 96

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


4.3.1

Configurao Manual

A configurao de rede sempre dividida em trs tarefas, mostradas no quadro abaixo.


Configurao de Rede:

a configurao do endereo IP
a configurao de sua rota para internet (apontamento do gateway)
a configurao dos servidores de DNS

Configurando endereo IP
Vamos imaginar nossa rede residencial, vamos supor tambm que iremos utilizar uma faixa de
IP 192.168.0.0/24, onde o host 1 (IP: 192.168.0.1) ser o nosso roteador (ou seja, esse
o endereo do seu roteador ADSL de conexo com a Internet da sua casa) e o host 10 (IP:
192.168.0.10) ser o nosso endereo IP (ou seja, o endereo IP do seu micro).
Para os endereos de dns utilizaremos os servidores do google (8.8.8.8 e 8.8.4.4).
O comando que utilizaremos o ifconfig. A sintaxe do comando basicamente
ifconfig [interface] [endereo_ip] netmask [mascara_de_rede]
Ento para configurarmos o ambiente que descrevemos acima usaremos o comando abaixo.
$ ifconfig eth0 192.168.0.10 netmask 255.255.255.0
Feito isso, se voc digitar o comando ifconfig, sem nenhum parmetro, dever trazer uma
sada similar a figura a seguir.

Apostila/eBook do Curso Linux Essentials

Pgina 97

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Configurao do roteador
Agora vamos realizar o apontamento do roteador, ou seja, definir qual o nosso gateway
default. Esta expresso bem assertiva porque gateway significa porta de entrada e default
significa padro, ou seja, para a internet, ns vamos definir a nossa porta de entrada padro.
Para isso utilizamos o comando route, que deve ser utilizado na seguinte sintaxe:
route {add|del} [-host|-net] DESTINO[/prefixo] gw IP_DO_GATEWAY
No nosso caso, de acordo com ambiente que descrevemos anteriormente, o comando seria:
$ route add default gw 192.168.0.1
Veja que descrevemos na sintaxe do comando que aps a opo add|del deveria vir a definio
de host ou net e depois a rede e no exemplo colocamos apenas default. A expresso default
significa net 0.0.0.0/0, ou seja, isso significa qualquer rede. No caso este endereo
substitudo pela palavra default ou ento voc pode se preferir, digitar o comando com a rede
completa, que ficaria da seguinte forma:
$ route add -net 0.0.0.0/0 gw 192.168.0.1
Para listar as rotas que temos agora digite o comando route n (o parmetro n para que
ele no tente resolver nomes para o endereo, mostrando assim apenas os nmeros dos
endereos).
Na imagem abaixo voc pode verificar que do lado direito ele traz na segunda linha o endereo
de destino 0.0.0.0 atravs do roteador 192.168.0.1 atravs da interface eth0, desta forma est
definida a nossa configurao de rota padro.

Configurando os servidores DNS


No Linux para definirmos qual ser o nosso servidor de DNS padro basta adicionar os
endereos no arquivo /etc/resolv.conf, no formato nameserver ENDERECO_IP.
Ou seja, no nosso exemplo, basta abrir com o editor de texto que acharmos mais interessante
e colocar a seguinte informao dentro do arquivo:
nameserver 8.8.8.8
nameserver 8.8.4.4

Apostila/eBook do Curso Linux Essentials

Pgina 98

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Testando as configuraes
Bem, agora que tudo est configurado vamos testar se a configurao est ok. A ferramenta
bsica de teste de conectividade o ping.
A ideia do ping que ele manda um pacote icmp e este pacote respondido pelo host de
destino, se o host de origem receber a resposta ento est tudo certo.
Vamos fazer o teste realizando o ping para o nosso gateway. Acompanhe na sada abaixo.
$ ping -c 5 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84)
64 bytes from 192.168.0.1: icmp_req=1
64 bytes from 192.168.0.1: icmp_req=2
64 bytes from 192.168.0.1: icmp_req=3
64 bytes from 192.168.0.1: icmp_req=4
64 bytes from 192.168.0.1: icmp_req=5

bytes of data.
ttl=255 time=5.62
ttl=255 time=2.25
ttl=255 time=2.26
ttl=255 time=2.93
ttl=255 time=4.35

ms
ms
ms
ms
ms

--- 192.168.0.1 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 2.255/3.486/5.624/1.316 ms
Veja que colocamos o comando ping c 5 192.168.0.1, o parmetro c para definir a
contagem de pings. No nosso caso utilizamos -c 5, ou seja, ao receber 5 respostas ele encerra
o comando. Caso no definirmos a quantidade de respostas desejada ele ficar rodando at que
voc digite Ctrl+C para interromper o comando.
Se a sua resposta foi como a da imagem ento est tudo ok com sua rede, voc tem
conectividade.
Em seguida precisamos ver se voc consegue resolver nomes, digite o comando:
ping c 5 www.dltec.com.br
Se a sua configurao de DNS estiver ok e claro, o seu gateway tambm estiver ok, ento sua
conexo est 100% funcional.
Curiosidade:
Se voc estiver em um ambiente onde exista um servidor de DHCP basta digitar o
comando dhclient eth0 que o sistema far o resto para voc.
Nesses casos toda a configurao de endereo IP, gateway default e dns ser enviada
automaticamente do servidor DHCP para o seu micro.

Apostila/eBook do Curso Linux Essentials

Pgina 99

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


4.3.2

Configurao Atravs de Arquivos de Configuraes

Modelo de configurao Debian


A configurao de rede do Debian fica em /etc/network/interfaces, basicamente ele traz a
definio da rede para todas as interfaces (inclusive a interface de loopback), veja a seguir o
arquivo aberto.

Veja que temos para cada interface (lo, eth0) um parmetro auto. Isso significa que o
sistema dever iniciar a interface no boot, depois temos a definio bsica dela, iface eth0
inet static, e no caso da loopback, iface lo inet loopback.
muito importante ter a configurao de loopback, muitos servios a utilizam essa interface
para o seu funcionamento, seguindo a configurao temos ento as definies de address
(endereo ip), netmask, network, broadcast, gateway. Os parmetros de network e
broadcast no precisam ser colocados se a opo netmask est sendo utilizada, o sistema ir
calcular automaticamente a rede e o broadcast.
Esta configurao lida sempre que a mquina iniciada ou ento se voc iniciar pelo
comando /etc/init.d/networking [start|stop|restart].
No caso de tentar reiniciar via comando importante ter em mente que se a configurao est
de um modo (um endereo ip X) e voc troca para Y (com a rede funcionando) ele no ir
conseguir aplicar suas configuraes, pois ele ir tentar derrubar a rede e os endereos no iro
coincidir. Nesses casos, uma opo seria aplicar a configurao manualmente (e apenas alterar
os dados no arquivo) ou ento alterar pelo arquivo e reiniciar a maquina.
Se voc fosse utilizar a eth0 recebendo ip por dhcp bastaria na linha onde est static alterar
para dhcp e remover as configuraes referente aos endereos, desta forma ele j funcionaria
via dhcp.

Apostila/eBook do Curso Linux Essentials

Pgina 100

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Modelo de configurao RedHat


No CentOS a configurao segue a linha do RedHat, at porque uma distro feita sobre o
RedHat.
A configurao separada em dois arquivos, sendo eles:

/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-[interface name]

No caso utilizado o arquivo sysconfig/network para configurar a definio de se a rede


dever ou no ser utilizada. Tambm possvel definir o gateway nesta configurao mas no
obrigatrio, pode ser junto com a configurao da placa de rede, como nossa placa de rede a
eth0 ento nossa configurao fica em /etc/sysconifg/network-scripts/ifcfg-eth0.
A ideia da configurao bem parecida com a do Debian. O script do CentOS busca todos os
arquivos ifcfg-* e dentro de cada arquivo ns informamos as configuraes.
importante notar as opes DEVICE, BOOTPROTO, ONBOOT e TYPE. A opo DEVICE
identifica para qual interface ser aplicada a configurao, BOOTPROTO pode ser none,dhcp
ou bootp, importante que quando a configurao esttica a opo esteja marcada para none
do contrrio ele ir executar o comando para bootp ou dhcp de acordo com o que est
configurado, a opo TYPE deve ser sempre Ethernet (existem configuraes especiais onde
este parmetro ser diferente, mas no iremos cobrir aqui) e finalmente na sequencia da
configurao temos os dados de nossa rede.
DEVICE="eth0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR="192.168.0.11"
NETWORK="192.168.0.0"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.1"
Aps realizar as alteraes basta digitar o comando /etc/init.d/network restart que a
configurao ser devidamente aplicada.

Apostila/eBook do Curso Linux Essentials

Pgina 101

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Captulo 5 - Segurana e
Permisses de Arquivos
Objetivos do Captulo
Ao final desse captulo voc
entender os seguintes assuntos:

dever

Os vrios tipos de usurios no


sistema Linux.
Como criar usurios e grupos em
sistemas Linux.
Compreender sobre a manipulao
de permisses e configuraes de
propriedades de arquivos.
Entender sobre os arquivos e
diretrios
especiais
no
Linux,
incluindo suas permisses.

Apostila/eBook do Curso Linux Essentials

Pgina 102

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Sumrio do Captulo
1 Segurana Bsica e Identificao de
Tipos de Usurios __________________ 104
1.1

O Usurio root e os Usurios padres


105

1.1.1
1.1.2
Sistema
1.1.3
1.1.4

1.2

Verificando usurios logados ______ 105


Verificando os ltimos Logins no
106
Verificando Dados de um Usurio __ 106
Tornando-se root _______________ 107

Usurios de Sistema ____________ 107

Criando Usurios e Grupos ________ 108


2.1

Criando Grupos ________________ 109

2.2

Criando Usurios _______________ 109

2.2.1
2.2.2

2.3

Comando useradd ______________ 109


Comando adduser ______________ 110

Removendo Usurios e Grupos ____ 111

2.4 Adicionando e Removendo Grupos de


um Usurio _________________________ 112
2.4.1
Adicionando Grupos com usermod _ 112
2.4.2
Manipulando Grupos Diretamente no
Arquivo /etc/group _____________________ 113

3 Manipulando Permisses e Propriedades


de Arquivo ________________________ 114
3.1 Verificando as Permisses e
Propriedades de um Arquivo ___________ 115
3.2 Alterando o Grupo de um Arquivo ou
Diretrio ___________________________ 116
3.2.1
O Comando chmod _____________ 117
3.2.2
SUID, SGID e Stick Bit ____________ 119
3.2.2.1 SUID (Set User ID) ____________ 119
3.2.2.2 SGID (Set Group ID) ___________ 120
3.2.2.3 Sticky bit ____________________ 121

Diretrios Especiais e Arquivos ____ 122


4.1

Arquivos de Sistemas e Bibliotecas _ 123

4.2

Links Simblicos ________________ 124

Apostila/eBook do Curso Linux Essentials

Pgina 103

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Segurana Bsica e Identificao de Tipos de Usurios

Peso: 2
Descrio: Tomar conhecimento sobre os vrios tipos de usurios no sistema Linux.
Tpicos Importantes:
Root and Standard Users
System users
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
/etc/passwd, /etc/group
id, who, w
sudo
su

Apostila/eBook do Curso Linux Essentials

Pgina 104

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

1.1 O Usurio root e os Usurios padres


O usurio root o superusurio do Linux (e dos sistemas Unix e Unix Like), este o usurio
com UID 0, o usurio com permisso completa no sistema, capaz de realizar qualquer
modificao e tambm cometer erros catastrficos.
Obs: quando estamos, via linha de terminal, acessando o sistema como root nosso prompt
geralmente tem essa aparncia (root@nomedaquina:# )
Um usurio comum no Linux tem permisso apenas para executar tarefas em seu diretrio,
no tendo acesso a comandos de superusurio. Mesmo que consiga acessar os comandos
normalmente no consegue executar algumas tarefas por no ter permisso para isso.
Obs: quando estamos, via linha de terminal, acessando o sistema como um usrio comum
nosso prompt geralmente tem essa aparncia (usuario@nomedaquina:$ )
Normalmente adicionado o usurio comum em alguns grupos estratgicos para que ele tenha
acesso a manipulao de impressoras, portas seriais, modems e outros perifricos.
Basicamente o usurio comum deve ter acesso a menor quantidade possveis de coisas,
qualquer acesso que precise de mais permisses deve ser executado pelo root, isso garante que
usurios mal intencionados no consigam realizar nada significante em seu sistema.
Comando sudo:
Em sistemas mais recentes popularizou-se o uso do comando sudo para executar comandos
com permisso de root, porm isso tambm abre algumas brechas de segurana j que um
usurio pouco experiente pode digitar sua senha para execuo de algum cdigo malicioso.
1.1.1

Verificando usurios logados

possvel verificar os usurios logados no sistema atravs do comando who ou w,veja a


seguir uma tela com a execuo dos dois comandos.
Analisando a sada dos comandos voc consegue ver que basicamente o comando who e o
comando w exibem a mesma informao, mas o comando w traz algumas outras
informaes como uptime, quantidade de usurios logados, mdia de carga do equipamento e
horrio do login do usurio.
J o traz apenas nome, console, horrio de login, ip, ento dependendo de que informao voc
precisa utilizado um ou outro comando.
dltec@dltec:~$ who
dltec
pts/2
Sep 17 11:52 (10.0.2.2)
dltec
pts/3
Sep 17 15:56 (10.0.2.2)
dltec@dltec:~$
dltec@dltec:~$ w
15:57:02 up 4:05, 2 users, load average: 0.12, 0.23, 0.28
USER
TTY
FROM
LOGIN@
IDLE
JCPU
PCPU WHAT
dltec
pts/2
10.0.2.2
11:52
58.00s 0.75s 0.75s -bash
dltec
pts/3
10.0.2.2
15:56
0.00s 0.31s 0.00s w
dltec@dltec:~$

Apostila/eBook do Curso Linux Essentials

Pgina 105

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


1.1.2

Verificando os ltimos Logins no Sistema

Todo login gera uma informao no sistema e esta informao pode ser acessada atravs do
comando last.
Este comando ir trazer algumas informaes como ip de origem (caso seja um acesso
remoto), qual console foi utilizada, tempo de seo e data do login.
Veja abaixo uma sada do comando last.

1.1.3

Verificando Dados de um Usurio

Voc pode em algum momento querer saber a que grupos um determinado usurio faz parte,
ou qual o id do mesmo.
Estes dados podem ser levantados utilizando o comando id USUARIO, veja a seguir um
exemplo.
mike@web:~$ id mike
uid=1000(mike) gid=1000(mike) groups=1000(mike)
Com esta informao eu vejo que o id do usurio mike 1000, e o grupo principal dele
1000 tambm, e ele no faz parte de nenhum outro grupo.
Importante:
Voc tambm pode querer buscar no /etc/passwd qual o home do usurio ou ento alguma
anotao que possa existir neste, para isso podemos utilizar o comando:
cat /etc/passwd | grep mike
A sada exibida seria algo do tipo:
mike:x:1000:1000::/home/mike:/bin/bash
Neste caso ns temos a informao de nome, id, gid, diretrio home e shell

Apostila/eBook do Curso Linux Essentials

Pgina 106

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


1.1.4

Tornando-se root

O processo de tornar-se root bastante simples, basta digitar o comando su e pressionar


enter. Em seguida digite a senha do root e voc estar logado como root.
aluno@dltec-VirtualBox:~$ su
Senha: (digite a senha do root)
root@dltec-VirtualBox:/home/aluno#
Curiosidade:
E muito comum em alguns sistemas atuais que o usurio root no tenha senha definida, isso
acontece porque o intuito a centralizao do gerenciamento utilizando o comando sudo.

1.2 Usurios de Sistema


Usurios de sistemas so usurios criados para que alguns servios possam rodar sem a
utilizao do usurio root. O objetivo prevenir que possveis falhas nos servios possam ser
exploradas para ganhar acesso root ao sistema.
Normalmente voc ver alguns usurios como mysql, ntp, News, mail, lp, man e alguns outros,
estes usurios no possuem nem devem possuir senha definida. Sempre que possvel tambm
interessante que eles no tenham um shell vlido, desta forma voc evita que seja possvel
qualquer forma de login utilizando estes usurios, veja a seguir um exemplo.
avahi:x:110:111:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
O avahi um daemon de cache para dns e outros protocolos, no caso dele voc v que o shell
definido /bin/false, como este shell no existe ele no consegue realizar login mesmo que
seja definida uma senha.

Apostila/eBook do Curso Linux Essentials

Pgina 107

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Criando Usurios e Grupos

Peso: 2
Descrio: Criando usurios e grupos em sistemas Linux.
Tpicos Importantes:
Comando de usurio e grupo
User IDs
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
/etc/passwd, /etc/shadow, /etc/group
id, last
useradd, groupadd
passwd
usermod, userdel
groupmod, groupdel

Apostila/eBook do Curso Linux Essentials

Pgina 108

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

2.1 Criando Grupos


A criao de grupos bastante simples e utiliza-se apenas o comando groupadd, onde voc
pode definir alguns parmetros ou no.
Execuo simples:
$ groupadd meugrupo
Execuo com especificao de GID:
$ groupadd g 89 meugrupo
Neste exemplo criamos o grupo com GID 89, enquanto no primeiro exemplo o grupo foi criado
de forma automtica. No caso da forma automtica o grupo criado utilizando a regra que est
no arquivo /etc/login.defs
GID_MIN
GID_MAX

100
60000

Ou seja, ele ir criar o grupo com um GID mnimo de 100 e mximo de 60000, porm ele
segue uma contagem, se o ultimo grupo criado foi o 110, o prximo ser o 111 e assim por
diante.
2.2 Criando Usurios
Existem dois comandos que podem ser utilizados para criao de usurios, sendo que eles
esto mostrados abaixo.

Comando useradd
Comando adduser

Os dois fazem basicamente a mesma coisa, porm o adduser utiliza um dialogo enquanto o
useradd precisa que os dados sejam informados na linha de comando, mostraremos a seguir o
funcionamento de ambos os comandos.
2.2.1

Comando useradd

O useradd um utilitrio de baixo nvel pois depende de parmetros informados na linha de


comando. Normalmente recomenda-se a utilizao do adduser, mas vamos ver aqui como
deveria acontecer este processo do useradd. Veja um exemplo abaixo e acompanhe a
explicao.
$ useradd m s /bin/bash g MEU_GRUPO G vdeo,lp,audio c Usuario Teste d
/home/teste teste
Apenas para ter uma explicao bsica dos parmetros informados vejamos a lista abaixo:
-m = criar diretrio home
-s = shell utilizado pelo usurio
-g = grupo principal
-G = grupos secundrios
-c = Comentrio exibido no arquivo /etc/passwd
-d = especificao de qual o diretrio home do usurio

Apostila/eBook do Curso Linux Essentials

Pgina 109

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Aps criar o usurio, conforme mostrado ao lado, se voc digitar o comando id teste voc
ver todos os grupos que o mesmo faz parte.
Depois de criado o usurio necessiro definir uma senha para o mesmo, para isso
necessrio utilizarmos o comando passwd:
$ passwd teste
Aps digitar este comando voc ser solicitado para digitar a senha e a confirmao da senha.
As senhas ficam em um arquivo chamado /etc/shadow, este arquivo traz vrias informaes
referente as senhas inclusive a quantidade de dias desde a ultima alterao de senha e outras
informaes. Voc pode verificar a definio exata dos campos acessando o man shadow.
2.2.2

Comando adduser

O comando adduser permite tambm que voc utilize as opes em linha de comando, porm
se voc digitar apenas o comando com o nome de usurio ele ir solicitar todas as informaes
necessrias. Acompanhe o exemplo a seguir.
dltec@dltec:~$ sudo adduser aluno
[sudo] password for dltec:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "pt_BR.UTF-8",
LC_ADDRESS = "pt_BR.UTF-8",
LC_MONETARY = "pt_BR.UTF-8",
LC_NUMERIC = "pt_BR.UTF-8",
LC_TELEPHONE = "pt_BR.UTF-8",
LC_IDENTIFICATION = "pt_BR.UTF-8",
LC_MEASUREMENT = "pt_BR.UTF-8",
LC_TIME = "pt_BR.UTF-8",
LC_NAME = "pt_BR.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Adding user `aluno' ...
Adding new group `aluno' (1002) ...
Adding new user `aluno' (1002) with group `aluno' ...
Creating home directory `/home/aluno' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for aluno
Enter the new value, or press ENTER for the default
Full Name []: Aluno Linux Essentials
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
dltec@dltec:~$
Veja que foi digitado apenas adduser aluno e ento ele solicitou a senha e outras
informaes.

Apostila/eBook do Curso Linux Essentials

Pgina 110

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Importante:
Vamos ver agora como ficaria o mesmo comando mas informando alguns parmetros via
linha de comando.
$ adduser --home /home/aluno02
Essentials" aluno02

--shell

/bin/bash

--gecos

"Aluno

de

Linux

Com este comando ele ir j lhe solicitar a senha para o usurio.

2.3 Removendo Usurios e Grupos


Remoo de Usurios
A remoo de usurios bastante simples, apenas importante pensar se queremos ou no
remover o diretrio do usurio. O comando userdel e deluser por padro no fazem a
remoo do diretrio do usurio.
Acompanhe no abaixo a forma de utilizao dos dois comandos.
Removendo com userdel:
Remoo simples
$ userdel aluno02
Remoo do usurio e do diretrio do usurio
$ userdel r aluno02
Removendo com deluser
A remoo com deluser tambm no remove o diretrio home do usurio, para isso
necessrio passar os parmetros . O comando tambm permite a utilizao de um parmetro
backup. Veja um exemplo abaixo:
$ deluser remove-all-files backup aluno
O comando backup ir produzir um arquivo de nome aluno.tar.gz no diretrio de onde voc
executou o comando, obviamente o nome do arquivo vai variar de acordo com o nome do
usurio que voc est removendo.
J o comando remove-all-files ir remover todos os arquivos do sistema ao qual o usurio
removido proprietrio, se voc quer remover apenas o home ento altere para removehome
Removendo Grupos
A remoo de grupos pode ser realizada pelo comando groupdel e delgroup.
O comando groupdel no tem muito o que falar a respeito, a sintaxe dele :
$ groupdel GRUPO
e ele ir remover o grupo.

Apostila/eBook do Curso Linux Essentials

Pgina 111

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

J o comando delgroup permite que voc utilize o parmetro only-if-empty que ir


proceder com a remoo apenas se o grupo no estiver sendo utilizado por nenhum usurio.
2.4 Adicionando e Removendo Grupos de um Usurio
A manipulao de grupos para o usurio uma tarefa importante e muito comum em um
ambiente operacional com sistema Linux.
Basicamente podemos utilizar duas formas para manipularmos os grupos de um usurio. As
duas formas esto citadas abaixo e a seguir veremos os detalhes da utilizao de cada uma
delas.
Manipulao de grupos:

2.4.1

diretamente no arquivo /etc/group


comando usermod
Adicionando Grupos com usermod

O comando usermod na verdade um comando para manipulao de usurios j existentes.


Este comando permite que voc faa alteraes nos grupos e em outros parmetros,
porm vamos tratar apenas os grupos aqui, se desejar basta consultar o man usermod para
saber os outros parmetros.
Acompanhe a seguir a utilizao do comando.
$ usermod G grupo01,grupo02,grupo03 teste
O comando acima ir adicionar como grupos suplementares os grupos
grupo01,grupo02,grupo03 para o usurio teste.
Aps realizara esse comando se voc consultar os grupos do usurio com o comando id teste
voc receber a seguinte sada.
uid=1001(teste)
gid=1001(teste) grupos=1001(teste),1004(grupo01),1005(grupo02),1006(grupo03)
importante saber que se depois de executar este comando voc digitar o comando usermod
G grupo04 teste ele ir remover os demais grupos e manter apenas o grupo04.
Para evitar isso necessrio quando utilizando o parmetro G utilizar tambm o parmetro
a. Dessa forma a maneira correta de adicionarmos o grupo04 para o usurio teste seria
conforme mostrado abaixo.
$ usermod a G grupo04 teste
Agora ao listar os grupos do usurio teste vemos:
uid=1001(teste)
gid=1001(teste)
grupos=1001(teste),1004(grupo01),1006(grupo03),1007(grupo02),1008(grupo04)

Apostila/eBook do Curso Linux Essentials

Pgina 112

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Removendo Acesso ao Grupo com usermod


A remoo do grupo com o usermod realizada da mesma forma que a insero, porm voc
precisar especificar todos os grupos que o usurio faz parte novamente.
Por exemplo, para remover apenas o grupo02 do usurio teste voc poderia executar o
comando a seguir (considerando que ele esta com todos os grupos de 01 at 04)
$ usermod G grupo01,grupo03,grupo04 teste
Desta forma o usurio ficar sem permisso aos dados do grupo02.
2.4.2

Manipulando Grupos Diretamente no Arquivo /etc/group

Tambm possvel realizar a manipulao diretamente atravs do arquivo /etc/group.


Tenha em mente que toda a manipulao realizada atravs dos comandos usermod , groupadd,
groupdel refletem diretamente neste arquivo. A sintaxe do arquivo :
nome_do_grupo:senha:GID:lista_de_usurios
Normalmente no utilizado senha para o grupo, mas possvel. Como exemplo, a seguir as
linhas as quais o usurio teste se encontra em nosso arquivo.
teste:x:1001:
grupo01:x:1004:teste
grupo03:x:1006:teste
grupo02:x:1007:teste
grupo04:x:1008:teste
Veja s, o primeiro grupo o prprio grupo base do usurio, o grupo mencionado no arquivo
/etc/passwd. Sequencialmente temos os demais grupos que criamos, e em todos, temos o
usurio teste no ultimo campo.
Se quiser adicionar ou remover um usurio basta acrescentar uma ,(virgula) e o nome,
ou ento apenas remover o nome do usurio do grupo.
Veja abaixo um exemplo de grupo com vrios usurios.
audio:x:29:mike,teste2,teste3
O grupo udio possui como membros os usurios mike,teste2,teste3, se quiser remover o
usurio teste3 basta remove-lo da linha e ele estar sem acesso ao mesmo.

Apostila/eBook do Curso Linux Essentials

Pgina 113

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Manipulando Permisses e Propriedades de Arquivo

Peso: 2
Descrio: Compreender sobre a manipulao de permisses e configuraes de propriedades
de arquivos.
Tpicos Importantes:
Propriedade e permisses de arquivos e diretrios
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
ls -l
chmod, chown
chgrp

Apostila/eBook do Curso Linux Essentials

Pgina 114

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.1 Verificando as Permisses e Propriedades de um Arquivo


Apenas para facilitar o entendimento quando falamos em propriedade falamos em dono, ou
seja, quem o dono de um determinado arquivo ou diretrio.
No Linux temos trs permisses bsicas que so dono, grupo e outros, todas as permisses
bsicas so tratadas por estes trs indivduos.
Voc pode facilmente verificar as propriedades de um arquivo ou diretrio utilizando o
comando ls l, veja um exemplo a seguir.
dltec@dltec:~$ ls -l
total 88
drwxr-xr-x 2 dltec dltec 4096
drwxr-xr-x 2 dltec dltec 4096
drwxr-xr-x 2 dltec dltec 4096
drwxr-xr-x 2 dltec dltec 4096
drwxr-xr-x 2 dltec dltec 4096
drwxr-xr-x 2 dltec dltec 4096
drwxr-xr-x 2 dltec dltec 4096
drwxr-xr-x 2 dltec dltec 4096
drwxr-xr-x 2 root root
4096
drwxr-xr-x 2 root root
4096
-rw-r--r-- 1 dltec dltec 8445
drwxr-xr-x 3 root root
4096
-rw-rw-r-- 1 dltec dltec 29500
dltec@dltec:~$

Jul
Jul
Sep
Jul
Jul
Jul
Jul
Jul
Sep
Sep
Jul
Sep
Sep

23
23
3
23
23
23
23
23
13
17
23
16
3

12:48
12:48
22:47
12:48
12:48
12:48
12:48
12:48
13:13
12:07
12:35
15:47
22:36

Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos
bin
essentials
examples.desktop
lpi102
php.versoes

Perceba que temos os diretrios dos usurios, no primeiro campo temos em todos o contedo
drwxr-xr-x. Vamos entender primeiro o que significam estes parmetros.
d = diretrio
rwx = read (leitura), write (escrita), execution (execuo ) (para o dono)
r-x = read, execution (para o grupo)
r-x = read, execution (para outros usurios)
Basicamente isso quer dizer que o dono pode tudo, o grupo e os outros podem acessar o
diretrio, mas no podem gravar no diretrio. Continuando com a sada do comando ainda
temos:
O segundo campo com nmero 2 simboliza a quantidade de diretrios dentro de cada
diretrio.
O terceiro campo representa o dono do arquivo ou diretrio
O quarto campo representa o grupo que possui acesso ao arquivo ou diretrio
O quinto campo o tamanho
O sexto campo a data de modificao do mesmo
O ultimo campo o nome do arquivo ou diretrio
Com estas informaes agora voc sabe tudo a respeito do contedo.

Apostila/eBook do Curso Linux Essentials

Pgina 115

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

3.2 Alterando o Grupo de um Arquivo ou Diretrio


A alterao do grupo pode ser feita utilizando o comando chgrp ou chown, o nome dos
comandos como em outros casos bem sugestivo.

Chgrp = change group (trocar grupo)


Chown = change owner (trocar dono)

Acompanhe na sequncia a explicao de cada um.


O Comando chgrp
O comando chgrp possui uma string bsica (chgrp opes grupo [pasta|arquivo]).
A ideia basicamente conforme mostrado abaixo.
$ chgrp mike teste
Desta forma definimos que o diretrio teste permitido ao grupo mike, porm vamos rever
a permisso do mesmo:
drwxr-xr-x

2 teste

mike

4096 Mar 17 20:59 teste/

Veja que a permisso para o grupo r-x e isso permite ao grupo entrar no diretrio mas no
permite escrever nada no diretrio.
Atente que quando falamos escrever falamos em editar arquivos, criar arquivos, remover
arquivos ou diretrios, mais a frente veremos a utilizao do comando chmod que resolve esta
questo.
O Comando chown
O comando chown tem como funo primria alterar o dono de um diretrio ou arquivo,
tambm podendo realizar a troca do grupo.
Vamos alterar o nosso diretrio teste para que ele pertena ao usurio mike. Acompanhe a
seguir.
$ chown mike teste
Digamos que queiramos altera de uma nica vez o dono e o grupo, ento utilizamos o
comando:
$ chown mike:mike teste
Agora nossa permisso a seguinte.
drwxr-xr-x

2 mike

mike

4096 Mar 17 20:59 teste/

Perceba que desta forma ainda temos a questo de que o grupo mike no tem permisso de
escrita no diretrio.

Apostila/eBook do Curso Linux Essentials

Pgina 116

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


3.2.1

O Comando chmod

O chmod o comando responsvel por realizar as trocas de permisses de acesso.


Vamos tratar o chmod de duas formas aqui, primeiro em forma literal e depois numrica.
Permisses Literais (simblicas)
A ideia aqui j foi apresentada a voc quando falamos anteriormente sobre os parmetros
rwx para o usurio, grupo e outros.
Lembrando que a primeira sequncia referente ao dono, a segunda referente ao grupo e a
terceira referente aos demais usurios.
Precisamos lembrar de alguns detalhes

Permisses mnimas para diretrios: r-x


Permisses mnimas para arquivos: r (ou rw-)

Um arquivo precisa ao menos ter permisso de leitura, o correto seria ter tambm permisso
de escrita, pelo menos para o dono.
Os diretrios precisam ter a permisso de leitura e execuo, sem a permisso de execuo
no possvel que o usurio entre no diretrio.
Se queremos que o dono e o grupo tenham permisso no diretrio teste ento devemos
aplicar as seguintes permisses, conforme mostrado abaixo.
$ chmod g+rwx teste
Agora a permisso de nosso diretrio ficou:
drwxrwxr-x

2 mike

mike

4096 Mar 17 20:59 teste/

Como voc pode ver os demais usurios possuem permisso para entrar em nosso diretrio.
Vamos ento remover esta permisso:
$ chmod o-r-x teste
Agora temos a seguinte permisso.
drwxrwx---

2 mike

mike

4096 Mar 17 20:59 teste/

Vamos entender o ltimo comando executado para no termos confuso.


chmod o-r-x
| |--- permisses a serem removidas (r-x)
| |----- smbolo de subtrao, remoo
|------- permisso para outros
ou seja, subtramos as permisses r-x do parmetro outros.
Permisses Numricas
Antes de fazermos exemplos precisamos entender bem o funcionamento deste modelo de
permisses, mesmo porque ele o comumente mais utilizado.

Apostila/eBook do Curso Linux Essentials

Pgina 117

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Por exemplo, para dar as permisses que demos na pasta teste poderamos executar: chmod
770 teste e o resultado seria o mesmo, mas antes precisamos entender o que significa este
770. Acompanhe a explicao abaixo.
Cada permisso corresponde a um octeto derivado da soma dos nmeros 1,2,4 e qualquer
digito no utilizado entendido como 0.
A ideia :

(4) = leitura
(2) = escrita
(1) = execuo

Desta forma , se eu quero ter permisso de leitura e escrita ento (4+2)=6, ento o
parmetro que usarei 6.
Por exemplo, digamos que fossemos dar um arquivo a permisso chmod 600 teste.txt, neste
caso o arquivo teste.txt ter permisso rw-------.
Se eu quero dar ao grupo a mesma permisso ento o chmod ser 660 e ento nossa
permisso ser rw-rw---- .
Podemos dar permisso tambm para os demais usurios com um chmod 666 teste.txt,
ficando nossa permisso rw-rw-rw-. No to difcil, certo?
Informao adcional:
Permisses para diretrios:
Vamos ento ver a permisso para diretrio. Falamos anteriormente que um diretrio
precisa ter permisso de leitura e execuo, realizando a soma dos nmeros temos
(4+1)=5.
No entanto, queremos dar permisso completa para o dono, ento seria (4+2+1)=7.
Nesse caso o nosso chmod ficaria assim: chmod 750 teste, ficando nossa permisso rwxrw----

Apostila/eBook do Curso Linux Essentials

Pgina 118

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


3.2.2

SUID, SGID e Stick Bit

Alm das permisses usuais para arquivos e diretrios (read, write e execution) temos outras
permisses especiais que podemos encontrar. Nesse tpico vamos ver brevemente sobre esses
outros atributos especiais:

Set-user-id (SUID)
Set-group-id (SGID)
Sticky Bit

3.2.2.1 SUID (SET USER ID)

Via de regra, quando um usurio executa um arquivo, o processo resultante dessa execuo
possui a mesma permisso do usurio que executou o arquivo. Quando o SUID aplicado em
um arquivo executvel, esse arquivo ser executado com o ID do dono desse arquivo e no
do usurio que o executou.
Para aplicarmos o SUID em um arquivo utilizamos a sintaxe especial "u+s" no comando
chmod ou adicionando o prefixo "4" no modo numrico. Veja um exemplo abaixo.
$ chmod u+s meuarquivo
ou
$ chmod 4764
Para verificarmos as permisses,
$ ls la meuarquivo
-rwsrw-r-- 1 aluno aluno 0 Sep 01 15:56 meuarquivo
Reparem que apareceu um "s" no campo relativo ao usurio (dono) do meuarquivo. Isso faz
com que quando o "meuarquivo" for executado por algum outro usurio ele ser executado com
as permisses do seu dono, ou seja, com as permisses do usurio aluno.
Obs: se o SUID for aplicado em um arquivo que no tenha permisso de execuo, em vez
de s (minsculo) aparecer um S (maisculo).
Um exemplo prtico do uso desta permisso:
Digamos que os usurios de um determinado sistema devam ser responsveis por manter seu
firewall rodando, ou seja, iniciar, parar, reiniciar o servio. Mas, por questes de segurana o
administrador do sistema no queira passar a senha de root para os usurios.
A soluo para essa questo aplicar um SUID nesse firewall. Dessa forma, os usurios
podero executar o programa com as mesmas permisses do root e sem a necissadade de
passarmos a senha de root para eles.

Apostila/eBook do Curso Linux Essentials

Pgina 119

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


3.2.2.2 SGID (SET GROUP ID)

O SGID bem similar ao SUID, sua finalidade fazer com que, quando um arquivo/diretrio
for criado, herde a permisso do grupo do diretrio. Esta uma permisso que sempre se
encontrar no campo groups (g) e representada pela letra "s".
Por exemplo, se queremos que todos arquivos e diretrios que forem criados dentro de
/home/aluno/meudir herdem a permisso do diretrio meudir, basta aplicarmos o SGID nesse
diretrio.
Para aplicarmos o SGID em um arquivo utilizamos a sintaxe especial "g+s" no comando
chmod ou adicionando o prefixo "2" no modo numrico. Veja um exemplo a seguir.
$ ls -ld meudir
drwxrwxr-x 2 aluno aluno 4096 Set

8 22:55 meudir

$ chmod g+s meudir


ou
$ chmod 2775 meudir
$ ls -ld meudir
drwxrwsr-x 2 aluno aluno 4096 Set

8 22:55 meudir

Para retirarmos o SGID basta utilizarmos a sintaxe g-s,


$ chmod g-s meudir
$ ls -ld meudir
drwxrwxr-x 2 aluno aluno 4096 Set

8 22:55 meudir

Obs: se o SGID for aplicado em um diretrio que no tenha permisso de execuo


(permisso que permite entrar nesse diretrio), em vez de s (minsculo) aparecer um S
(maisculo).

Apostila/eBook do Curso Linux Essentials

Pgina 120

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br


3.2.2.3 STICKY BIT

O Bitsticky uma permisso que chamamos de pegajosa, isso quer dizer que quando ns
damos esta permisso a um arquivo/diretrio, esse arquivo ou os arquivos dentro do diretrio
s podero ser movidos ou removidos pelo dono do arquivo/diretrio ou pelo root.
Mesmo se o usurio tiver permisses de escrita no ir conseguir apag-lo, s alter-lo. Essa
permisso representada pela letra (t) e sempre se encontrar no bloco outros (o).
Para aplicarmos o sticky bit utilizamos a sintaxe especial "o+t" no comando chmod ou
adicionando o prefixo "1" no modo numrico. Veja um exemplo a seguir.
$ ls la aluno_linux.sh
-rwxrwxr-x 1 aluno aluno 0 Sep 01 16:08 aluno_linux.sh
$ chmod o+t aluno_linux.sh
ou
$ chmod 1775
$ ls la aluno_linux.sh
-rwxrwxr-t 1 aluno aluno 0 Sep 01 16:08 aluno_linux.sh
Para retirarmos o sticky bit basta utilizarmos a sintaxe o-t,
$ chmod o-t aluno_linux.sh
$ ls -l aluno_linux.sh
-rwxrwxr-x 1 aluno aluno 0 Set

8 23:28 aluno_linux.sh

se o sticky bit for aplicado em um arquivo/diretrio que no tenha permisso de execuo, em


vez de t (minsculo) aparecer um T (maisculo).
Obs: se o sticky bit for aplicado em um arquivo/diretrio que no tenha permisso de
execuo, em vez de t (minsculo) aparecer um T (maisculo).

Apostila/eBook do Curso Linux Essentials

Pgina 121

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Diretrios Especiais e Arquivos

Peso: 1
Descrio: Entender sobre os arquivos e diretrios especiais no Linux, incluindo suas
permisses.
Tpicos Importantes:
Arquivos de sistema e bibliotecas
Links simblicos
Veja abaixo uma lista parcial com os arquivos, termos e utilitrios mais utilizados:
/etc, /var
/tmp, /var/tmp and Sticky Bit
ls -d
ln -s
Hard links
Setuid/Setgid

Apostila/eBook do Curso Linux Essentials

Pgina 122

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.1 Arquivos de Sistemas e Bibliotecas


Nos sistemas Linux ns temos muitos arquivos importantes referentes a configuraes de
sistema. Muita coisa voc j viu no decorrer do curso, mas vamos enfatiza-los mais uma vez
para que voc possa entender adequadamente.
Arquivos do Sistema
Os arquivos de configurao do sistema e dos aplicativos em geral ficam no diretrio /etc.
Este diretrio onde normalmente voc vai trabalhar as configuraes, vamos dar alguns
exemplos:
Configurao do vsftpd: /etc/vsftpd.conf
Configurao do apache: /etc/apache2/apache2.conf
Configurao do postfix: /etc/postfix/main.cf
Configurao do mysql: /etc/mysql/my.cnf
Configuraes de inicializao: /etc/inittab
Scripts suplementares: /etc/rcX.d/
Estes so apenas alguns exemplos para ilustrar onde as configuraes costumam ficar
armazenadas, como voc pode ver, tudo fica no /etc e a em algum diretrio referente ao tipo
de configurao.
Bibliotecas
Existem diretrios especficos onde as bibliotecas so armazenadas, mas existem duas
opes bsicas, sendo elas uma do sistema operacional em si e outra para os aplicativos.
As bibliotecas do sistema ficam no diretrio /lib e as dos aplicativos ficam em /usr/lib.
No /lib, por exemplo, voc tem a biblioteca da pam (mdulo de autenticao), tem a biblioteca
do devmapper que o mdulo de LVM do Linux e muitos outros.
No diretrio /usr/lib temos as bibliotecas do mysql, ldap, X11 e muitos outros, basicamente
tudo que no do sistema operacional estar l.
Outros Diretrios Importantes
O Diretrio /var
O diretrio /var utilizado para vrias finalidades. Temos dentro do /var o diretrio log onde
so armazenados os logs de sistema e aplicativos (/var/log), temos o diretrio spool que
utilizado para filas de mensagens e outros contedos que tendem a permanecer no diretrio
para execuo. Esses so apenas alguns exemplos, pois existem tambm outras finalidades
dentro deste.
O Diretrio /tmp
O diretrio /tmp como o nome sugere um diretrio temporrio. Ele utilizado por algumas
aplicaes para armazenar alguns arquivos e depois os mesmos so removidos.
Alguns Linux (como o Debian) removem todo o contedo do diretrio quando o sistema est
iniciando, ento no recomendado usar este diretrio para nada que voc queira consultar
mais tarde.

Apostila/eBook do Curso Linux Essentials

Pgina 123

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

4.2 Links Simblicos


Um link simblico como se fosse um atalho, um arquivo que na verdade aponta para
outro arquivo, no aparecendo como um outro arquivo mas sim como um arquivo com o
caminho para o arquivo original.
Para exemplificar vamos analisar o caso abaixo.
Criamos um link simblico chamado teste, ao digitarmos o ls vemos o arquivo da seguinte
forma:
lrwxrwxrwx

1 root

root

23 Jul 26 01:08 teste -> /var/cache/apt/archives/

Voc pode notar que antes das permisses temos um l. Este l simboliza um link, depois
temos o nome do arquivo (teste) seguido por um seta (apontamento) para um determinado
diretrio, no nosso caso /var/cache/apt/archive.
Isso significa que seu eu digitar cd teste vou entrar na verdade em /var/cache/apt/archive
(poderia tambm ser um arquivo ao invs de um diretrio).
Para a criao de um link simblico a sintaxe do comando basicamente ln s caminho
nome_do_link, no nosso exemplo utilizamos o comando:
ln -s /var/cache/apt/archives teste

Apostila/eBook do Curso Linux Essentials

Pgina 124

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Concluso
Parabns, se voc chegou at aqui porque concluiu seus estudos!
Tenha certeza de que compreendeu todos os conceitos aqui mostrados. D uma repassada na
matria e tome notas dos pontos que no entendeu muito bem.
Equipe DlteC do Brasil

Apostila/eBook do Curso Linux Essentials

Pgina 125

tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br

Sobre o E-book/Apostila
O contedo desse documento uma adaptao
da matria online de leitura do curso.
O presente material traz contedo terico do
curso online, porm temos que deixar claro que
no um curso e sim uma adaptao do
nosso material online para e-book/apostila.
Portanto recursos como exerccios, simulados,
tutoria (tira dvidas com professores) e vdeo
aulas no fazem parte desse e-book, pois so
exclusivos para alunos devidamente matriculados
em nosso site oficial.

Para maiores informaes sobre nossos treinamento visite o site:

>>> http://www.dltec.com.br <<<

Apostila/eBook do Curso Linux Essentials

Pgina 126

Potrebbero piacerti anche