Logo Passei Direto
Buscar

Apostila Curso Linux Essentials

Ferramentas de estudo

Material

Prévia do material em texto

�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 1 
DlteC do Brasil® 
www.dltec.com.br 
info@dltec.com.br | 41 3045.7810 
 
Apostila/eBook do Curso Linux Essentials 
DlteC do Brasil® 
Todos os direitos reservados© 
DLTEC DO 
BRASIL 
APOSTILA/EBOOK DO CURSO DE LINUX 
ESSENTIALS 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 2 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Para maiores informações sobre nossos treinamento visite o site: 
 
>>> http://www.dltec.com.br <<< 
 
 
 
 
Sobre o E-book/Apostila 
 
 
O conteúdo desse documento é uma adaptação 
da matéria online de leitura do curso. 
 
O presente material traz conteúdo teórico do 
curso online, porém temos que deixar claro que 
não é um curso e sim uma adaptação do 
nosso material online para e-book/apostila. 
Portanto recursos como exercícios, simulados, 
tutoria (tira dúvidas com professores) e vídeo 
aulas não fazem parte desse e-book, pois são 
exclusivos para alunos devidamente matriculados 
em nosso site oficial. 
 
 
http://www.dltec.com.br/
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 3 
 
 
Direitos Autorais 
 
 
Aviso Importante! 
 
Esse material é de propriedade da DlteC do Brasil Ltda e é protegido pela lei 
de direitos autorais 9610/98. 
 
É expressamente proibida cópia física ou em meio digital, reprodução parcial, 
reprografia, fotocópia ou qualquer forma de extração de informações deste sem 
prévia autorização da DlteC do Brasil conforme legislação vigente. 
 
Seu uso pessoal e intransferível é somente para o cliente que adquiriu o 
referido e-book/apostila. 
 
A cópia e distribuição são expressamente proibidas e seu descumprimento 
implica em processo cível de danos morais e materiais previstos na legislação 
contra quem copia e para quem distribui, sejam cópias físicas e/ou digitais. 
 
Copyright © 2016. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 4 
 
 
Indice 
 
Introdução .................................................................................................................................. 5 
Capítulo 01 – A Comunidade Linux e uma Carreira em Opensource .............................................. 6 
Capítulo 02 – Encontrando seu Caminho em Sistemas Linux ....................................................... 23 
Capítulo 03 – O Poder da Linha de Comandos ............................................................................ 53 
Capítulo 04 - O sistema operacional Linux.................................................................................. 76 
Capítulo 05 - Segurança e Permissões de Arquivos ................................................................... 102 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 5 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Introdução 
 
 
 
Olá, 
 
Essa apostila que você recebendo é uma 
adaptação do material de leitura Online do 
curso Linux Essentials da DlteC do Brasil. 
Aqui nessa apostila colocamos uma 
adaptação em texto do nosso material 
online de estudo (matéria online do curso 
Linux Essentials). 
 
Esperamos que você aproveite o material e 
bons estudos. 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 6 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Capítulo 01 - A Comunidade 
Linux e uma Carreira em 
Opensource 
 
 
Objetivos do Capítulo 
 
Ao longo desse capítulo você deverá: 
 
 Obter conhecimentos sobre o 
desenvolvimento do linux e suas 
principais distribuições 
 Ter noções sobres as principais 
aplicações no Linux e suas 
utilizações 
 Obter conhecimentos sobre 
comunidades abertas e 
licenciamento de softwares 
opensource para os negócios 
 Obter conhecimentos básicos sobre o 
ICT e formas de se trabalhar com o 
Linux 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 7 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sumário do Capítulo 
 
1 Evolução do Linux como um Sistema 
Operacional Popular __________________ 8 
1.1 Filosofia OpenSource ______________ 9 
1.2 Distribuições Linux ________________ 9 
1.3 Sistemas Embarcados ____________ 10 
2 Principais Aplicações Open Source ___ 11 
2.1 Aplicações para Desktop __________ 12 
2.2 Aplicações para Servidores ________ 14 
2.3 Aplicações Móveis _______________ 14 
2.4 Linguagens de Desenvolvimento____ 15 
2.5 Ferramentas de Gerenciamento de 
Pacotes e Repositórios _________________ 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 Indústria __ 22 
 
 
 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � ��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 8 
1 Evolução do Linux como um Sistema Operacional Popular 
Peso: 2 
Descrição: Conhecimentos sobre o desenvolvimento do linux e suas principais distribuições. 
 
Tópicos Importantes: 
 
Filosofia OpenSource 
Distribuições 
Sistemas Embarcados 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
Android 
Debian 
CentOS 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 9 
1.1 Filosofia OpenSource 
Open Source é por si só uma filosofia que promove a livre distribuição, redistribuição e 
acesso a um determinado software, incluindo ao código do mesmo (por isso o nome Open 
Source - código aberto), onde você tem o direito de ler, alterar e redistribuir suas (ou com 
suas) alterações. Existem variações de licenças Open Source que permite ou não algumas 
coisas, mas chegaremos neste ponto mais adiante. 
 
Uma das coisas que fez com que o Open Source se popularizasse foi a evolução da internet, 
com esta foi possível a interação e colaboração de voluntários do mundo todo em determinados 
projetos, tornando a evolução dos mesmos surpreendentes, um bom exemplo disso é o Linux. 
Uma frase padrão que costumamos utilizar para descrever este processo é que enquanto um 
desenvolvedor brasileiro para de trabalhar e vai dormir, um desenvolvedor japonês acorda e 
começa a trabalhar no Linux, tornando desta forma o desenvolvimento rápido e constante. 
 
O Open Source deu espaço para a criação de várias outras culturas, como por exemplo a 
Creative Commons, esta é uma licença de direitos autorais com a qual você pode ou não 
permitir que as pessoas utilizem seu produto (artístico), alterem, redistribuam, e assim por 
diante, mantendo você mencionado no trabalho através de vários pontos da licença. 
 
Basicamente a ideia da filosofia do Open Source é permitir que você possa: 
 
 Utilizar um software para qualquer propósito 
 Adaptar um software, estudar seu código e funcionamento 
 Distribuir o software ou redistribuir com ou sem alterações 
 
1.2 Distribuições Linux 
Distribuições são por assim dizer “caixas” de software. Basicamente é um Linux, com uma 
seleção de softwares que aqueles que a montaram acreditam ser o ideal para o seu público 
alvo. 
 
Estas distribuições são montadas por grupos de voluntários (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 distribuições para diferentes pontos de 
interesse, veja abaixo uma pequena lista com alguns casos. 
 
 Desktop: Ubuntu, OpenSuSE, Fedora, LinuxMint 
 Servidores: Debian, CentOS, RedHat, SuSE Linux 
 Segurança (firewalls/ids e outros): OpenWall, Vyatta, BackTrack 
 
A grande questão que fica é o porque montar uma distribuição? Já não existem muitas? 
 
Como citamos no inicio, uma distribuição é feita por um grupo de voluntários ou uma empresa 
analisando necessidades que eles acham necessárias. Para exemplificar imagine o seguinte 
cenário: você trabalha em uma empresa que utiliza um Linux RedHat e em cada desktop, 
depois de instalado o linux, você precisa instalar uma série de softwares e aplicativos. 
 
Não seria muito mais fácil, já que trata-se de um processo repetitivo, que você monte um CD 
com todos os aplicativos dentro e um processo automático de instalação já no seu perfil? Assim 
nasce uma nova distribuição Linux que pode ou não chegar a conhecimento publico. 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 10 
1.3 Sistemas Embarcados 
O Linux é um dos principais sistemas operacionais utilizados em sistemas embarcados, mas o 
que são sistemas embarcados? 
 
Sistemas embarcados são hardwares criados para um propósito especifico, ou uma série de 
propósitos, mas é um equipamento limitado, podendo ser um pabx, um celular, um pda, um 
receptor de tv ou uma tv. 
 
Na verdade existem vários ambientes onde o Linux pode ser utilizado, por exemplo, os 
celulares que chamamos de Android são celulares com Linux Embarcado, ou seja, ele vem de 
fábrica com o Linux controlando suas funções principais, os receptores de satélite da AZBox são 
outro caso onde é um sistema Linux que roda no hardware. 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 11 
2 Principais Aplicações Open Source 
Peso: 2 
Descrição: Conhecimentos das principais aplicações e suas utilizações. 
 
Tópicos Importantes: 
 
Aplicações para Desktop 
Aplicações de Servidores 
Aplicações Móveis 
Linguagens de Desenvolvimento 
Ferramentas para Gerenciamento de Pacotes e Repositórios 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários 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 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 12 
2.1 Aplicações para Desktop 
Gerenciadores de Desktop 
 
Os gerenciadores de desktop foram desenvolvidos para facilitar o uso do Linux para os 
usuários finais. No início, o Linux não era muito popular entre os usuários finais e sua utilização 
era mais difundida no meio técnico ou acadêmico. Isso porque antes dos gerenciadores de 
desktops tudo o que você precisasse fazer no Linux deveria ser feito via linha de comandos. 
 
Os usuários finais que desejavam utilizar o computador para tarefas corriqueiras, como acessar 
a internet, ver um email e etc acabavam não gostando do linux devido a essa dificuldade inicial. 
 
Com o intuito de difundir a utilização do linux para todos os tipos de usuários (residenciais, 
comerciais) os programadores desenvolveram interfaces gráficas, chamadas de gerenciadores 
de desktops, para permitir ao usuário uma melhor experiência de usabilidade. 
 
A grande questão é que existem várias versões 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 são: 
 
 Gnome ( http://www.gnome.org/ ) 
 
 
 KDE ( http://www.kde.org/ ) 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � �� � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 13 
Estes dois são os mais completos e amplamente utilizados, mas existem vários outros , alguns 
levíssimos 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/ ) 
 
Além destes existem muitos outros, mas vamos deixar isso para você mesmo descobrir e fazer 
a escolha da melhor opção para o seu perfil. 
 
Aplicativos de Desktop 
Como quase tudo no Linux, temos muitas variações de vários de tipos de softwares. Existem 
diversas opções de gerenciadores de arquivos, suítes de escritório, gravadores de cd, players 
de áudio, mas existem algumas que se destacam em meio a multidão. Veja abaixo apenas 
alguns exemplos. 
 
Suíte de Escritório 
OpenOffice/LibreOffice ( http://www.openoffice.org/ / http://www.libreoffice.org/ ) 
 
Gravador de CDs/DVD 
K3b ( http://www.k3b.org/) 
 
Gravação / Manipulação de áudio 
Audacity (http://www.audacity.sourceforge.net/) 
 
Gráficos 3D 
Blender ( http://www.blender.org/ ) 
 
Editor de vídeo 
Cinelerra ( http://www.cinelerra.org/ ) 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 14 
2.2 Aplicações para Servidores 
Hoje os sistemas Linux vários serviços na internet, um deles e amplamente utilizado por todos 
nós são os websites, na maior parte das vezes hospedados em servidores Linux rodando o 
software Apache. 
 
Para termos uma ideia da sua popularidade a utilização do Linux hoje correspondente a 62% 
dos servidores mundiais (relatório da netcraft até junho de 2011), mas também existem 
muitos servidores de e-mails, bancos de dados, firewalls, proxys e outras aplicações. 
 
Também existem vários aplicativos para compartilhamento de arquivos como o samba, nfs, 
coda, aplicações para serviço de DNS como o BIND, PowerDNS e outras 
 
 
 
2.3 Aplicações Móveis 
O Linux também é muito utilizado em aplicações móveis, um dos primeiros Linux que saiu 
para dispositivo móvel 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 junção dos projetos Moblin e Maemo. 
 
Também existem vários dispositivos que vem com sistemas Linux, mas que devido aos seus 
fabricantes darem uma interface própria e não mostrarem as telas de boot, muitas vezes não 
percebemos que são 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 
compatível 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 então instalar um Samba para compartilhar dados do seu celular em uma rede 
Windows, ou pode colocar um servidor apache no mesmo entre outras funções. 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 15 
 
 
2.4 Linguagens de Desenvolvimento 
O Linux em si, que na verdade é apenas o Kernel, é desenvolvido utilizando as linguagens C e 
C++, já as aplicações que você utiliza são construídas 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++. 
 
 
 
 
 
Informação Adcional: 
 
O que é o Kernel do Linux? 
 
O kernel é responsável pelas funções vitais do sistema, como gerenciamento de memória, 
gerenciamento de dispositivos e controle de processos em execução. A cada mês são 
lançadas novas versões de Kernel, que podem ser obtidas gratuitamente pela internet, 
trazendo suporte a novos dispositivos, trazendo características inovadoras, ou simplesmente 
aperfeiçoando o que já existe. 
 
Não confuda Kernel com distribuições linux, o Kernel faz parte de uma distribuição. Toda 
distribuição tem a sua versão de Kernel. 
Informação Adcional: 
 
O que significa Jailbreak? 
 
Em uma tradução livre e literal, "Jailbreak" significa "fugir da prisão", e representa uma 
metáfora para o ato de burlar as restrições impostas por uma empresa em seus dispositvos, 
adicionando funcionalidades não oficiais a eles. 
 
O método, desenvolvido por grupos hackers, tem sido comumente relacionado aos 
dispositivos da Apple e ao seu sistema operacional móvel, o iOS, devido à grande 
popularidade que o processo ganhou entre esses usuários. Entretanto, é possível realizar o 
Jailbreak para "desbloquear" outros aparelhos, como no Playstation 3, da Sony, ou o Xbox 
360, da Microsoft, por exemplo. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 16 
2.5 Ferramentas de Gerenciamento de Pacotes e Repositórios 
Diferentemente do Windows, onde você pode pegar um arquivo .exe que contenha toda a 
estrutura necessária para a aplicação rodar, no Linux quando você desenvolve um software 
normalmente você não o cria inteiro, você utiliza muito código pronto como bibliotecas 
gráficas, bibliotecas para conexão com bancos de dados, manipulação de arquivos e etc. 
 
Para facilitar o gerenciamento destes softwares e o processo de instalação o Linux utiliza 
o conceito de pacotes com dependências, 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 é necessário A, B, C e etc, e não vai prosseguir com a instalação. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 17 
3 Entendendo o Software OpenSource e o Licenciamento 
Peso: 1 
Descrição: Conhecimentos sobre comunidades abertas e licenciamento de softwares 
opensource para os negócios. 
 
Tópicos Importantes: 
 
Licenciamento 
Free Software Foundation (FSF), Open Source Initiative (OSI) 
 
Veja abaixo uma lista parcial comos arquivos, termos e utilitários mais utilizados: 
 
GPL, BSD, Creative Commons 
Free Software, Open Source Software, FOSS, FLOSS 
Open Source business models 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 18 
3.1 Licenciamento 
O Linux foi inicialmente lançado sob uma licença de software que proibia qualquer uso 
comercial. 
 
Isso foi rapidamente alterado pela GPL (Gnu Public 
Licence), através desta licença foi permitida a venda, 
distribuição, alteração de novas versões que poderiam ser 
ou não modificadas garantindo que estas versões fossem 
lançadas dentro da mesma licença permanecendo assim os 
mesmos direitos e os créditos aos autores. 
 
Infomação adcional: 
http://pt.wikipedia.org/wiki/GNU_General_Public_License 
 
 
 
3.2 Freesoftware Foundation (FSF) 
A Freesoftware Foundation (FSF) é uma organização 
sem fins lucrativos com ação mundial para promover o 
uso de computadores e para defender os direitos de 
todos os usuários 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, técnicos, estruturais entre outros. 
 
 
 
 
Informação adcional: 
http://www.fsf.org 
 
 
 
3.3 OpenSource Initiative (OSI) 
Assim como a FSF a OSI (OpenSource Initiative) é uma 
organização sem fins lucrativos com ação 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 definição de 
padrões, mantendo a definição aberta para o bem da 
comunidade. As licenças aprovadas e mantidas pela OSI 
criam um elo de segurança ao redor de desenvolvedores, 
usuários, corporações e governos para que estes possam 
organizar a cooperação sobre o código aberto. 
 
 
Informação adcional: 
http://opensource.org/ 
 
 
 
http://pt.wikipedia.org/wiki/GNU_General_Public_License
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 19 
4 Habilidades com ICT e Trabalhando no Linux 
Peso: 2 
Descrição: Conhecimentos básicos sobre o ICT e formas de se trabalhar com o Linux. 
 
Tópicos Importantes: 
 
Conhecimentos em Desktop 
Linha de Comando no Linux 
Uso do Linux na Indústria, Computações nas Nuvens e Virtualização 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários 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 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 20 
4.1 Desktops 
Antes de mais nada vamos entender o que é ICT (Information and Communication 
Technology). ICT é basicamente tecnologia da informação, seja ela a utilização de softwares 
para pesquisa, comunicação, conteúdo multimídia ou qualquer outro modelo, basicamente aqui 
estamos falando de navegação na web, conceitos de privacidade e outras questões que 
envolvem comunicação usando o computador. 
 
Atualmente o desktop do Linux é extremamente completo, as soluções são muito bem 
acabadas e você possui algumas variações de desktop com focos diferentes permitindo que 
você escolha a melhor opção para você. Conforme já comentamos, alguns dos desktops mais 
conhecidos são o GNOME (figura 1) o KDE (figura 2). 
 
 
Figura 1 
 
Figura 2 
 
Graças a estes desktops, você tem uma experiência muito mais simples atualmente durante a 
utilização de sistemas Linux. Desde o surgimento dos primeiros desktops para Linux muito se 
evoluiu, inclusive suporte a placas de vídeo e tudo mais, ganhando-se em performance e 
qualidade. 
 
Os softwares desktops para Linux incluem atualmente excelentes aplicações, como por 
exemplo, os navegadores Firefox, Google Chrome e Opera (além de outros), suíte de escritório 
OpenOffice/LibreOffice e o Calligra que faz parte da suíte do KDE e também alguns 
aplicativos do Gnome para determinadas funções como o Abiword (editor de texto), gnumeric 
(planilhas), Inkscape (editoração) e outras aplicações. 
 
Em termos de suíte de escritório o OpenOffice/LibreOffice é o mais completo e também o que 
mais se assemelha aos recursos oferecidos pelo Office da Microsoft ou da Apple. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 21 
Conforme falado existem muitas aplicações para Linux, para várias finalidades. Basta procurar 
um pouco e normalmente você acha tudo que precisa com uma versão open source de ótima 
qualidade. 
 
4.2 Utilizando a Linha de Comando no Linux 
A utilização de desktops que falamos anteriormente é mais utilizada por usuários finais, que 
utilizam o Linux em seus micros e laptops. Quando falamos em Linux, principalmente para 
funções de servidor é muito comum utilizarmos apenas linha de comando para 
manipulação do sistema, desta forma é imprescindível que conheçamos algumas questões 
básicas sobre isso. 
 
A linha de comando do Linux permite a você realizar praticamente todas as atividades 
necessárias 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 questão. 
 
No Linux através da linha de comando é possível verificar status de rede, configurar a rede, 
configurar um compartilhamento de rede, alterar informações de data e hora, alterar 
configurações de funcionamento do equipamento, executar programas, instalar atualizações e 
por ai vai. 
 
A Linha de Comando: 
A navegação via linha de comando é similar ao utilizado no Windows por exemplo, digamos que 
você tenha no Windows sua partição C: com uma pasta chamada teste dentro dela, no 
Windows o comando para acesso seria: 
 
 C:\> cd teste 
 
No Linux não seria tão diferente: 
 
 root@localhost ~/ # cd /teste 
 
A “/" que informarmos no caso do Linux é porque no exemplo a pasta não está no mesmo 
diretório que o usuário se encontra, isso no Windows também é possível com o comando “cd 
\teste” 
 
 
Além destes você tem vários outros comandos para, por exemplo: 
 
limpar a tela: clear 
listar arquivo: cat ARQUIVO 
listar diretório: ls DIRETORIO 
editar arquivo: nano ARQUIVO 
 
Como já comentamos, basicamente no Linux tudo é possível de ser feito na linha de comando, 
entraremos mais a fundo nestas questões no próximo tópico desse módulo. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � �� � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 22 
4.3 Casos de Uso de Linux na Indústria 
Atualmente temos muitas empresas utilizando Linux em sistema críticos, para quem não 
conhece o termo a ideia de sistema crítico é aquele sistema que não pode parar, tendo que 
se manter o tempo todo estável e disponível. 
 
O Linux por sua flexibilidade e variedade de aplicações é utilizado em várias áreas diferentes. É 
comum encontramos empresas que utilizam o Linux em seus roteadores para fazer 
conectividade de grande porte com operadoras de telecomunicações, ou utilizam o Linux como 
seu servidor radius para autenticação e controle de seus usuários de internet. Também existem 
plataforma de voz (voip) construída com Linux utilizando softwares Asterisk, OpenSIPS e 
FreeSwitch, além de bancos de dados MySQL e outras ferramentas. 
 
O Linux também é utilizado em praticamente todos os supercomputadores existentes hoje no 
mercado (todos os top 10 são Linux) , além de várias outras soluções como caixas eletrônicos 
do sistema bancário 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 noção 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 México 
 Petrobrás 
 Banco do Brasil 
 Walmart 
 DreamWorks 
 
Enfim, como podemos perceber existem muitos usos de Linux, em diferentes ambientes para 
diferentes finalidades 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 23 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Capítulo 02 - Encontrando 
seu Caminho em Sistemas 
Linux 
 
 
Objetivos do Capítulo 
 
Ao longo desse capítulo você deverá: 
 
 Aprender a utilização básica da linha 
de comandos no Linux. 
 Aprender como utilizar os comandos 
de ajuda e navegação nos vários 
sistemas de ajuda do Linux. 
 Saber como navegar por entre os 
diretórios home e system e listar 
arquivos em várias localizações. 
 Dominar as formas de criar, mover e 
apagar arquivos e diretórios. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 24 
 
Sumário do Capítulo 
 
1 Introdução a Linha de Comandos ____ 25 
1.1 Shell Básico _____________________ 26 
1.2 Movendo-se entre os Diretórios ____ 26 
1.3 O comando env e suas Variáveis ____ 27 
1.4 PATH __________________________ 28 
1.5 Comandos de Formatação _________ 30 
1.6 Variáveis _______________________ 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 Acessando Manuais com o Comando 
info 36 
2.3 Arquivos de Documentação ________ 37 
2.4 Encontrando um Manual a Partir de 
uma Referência _______________________ 37 
2.5 Localizando Arquivos _____________ 38 
2.5.1 Comando Locate ________________ 38 
2.5.2 Comando whereis _______________ 38 
3 Usando Diretórios e Listando Arquivos 40 
3.1 Arquivos e Diretórios _____________ 41 
3.2 Diretório home __________________ 45 
3.3 Caminho Absoluto e Caminho Relativo
 45 
4 Criando, Movendo e Removendo 
Arquivos ou Diretórios ________________ 47 
4.1 Um pouco mais sobre Caracteres 
Curinga ______________________________ 48 
4.2 Movendo Arquivos e Diretórios _____ 49 
4.3 Copiando Arquivos e Diretórios _____ 50 
4.4 Removendo Diretórios ____________ 50 
4.5 Criando Arquivos ________________ 51 
4.5.1 Touch _________________________ 51 
4.5.2 Criando Arquivos de Outras Formas _ 51 
4.6 Criando Diretórios _______________ 52 
4.7 Utilizando Caracteres Curinga ______ 52 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 25 
1 Introdução a Linha de Comandos 
Peso: 2 
Descrição: Utilização básica da linha de comandos no Linux. 
 
Tópicos Importantes: 
 
Shell básico 
Comandos de formatação 
Trabalhando com opções 
Variáveis 
Globbing 
Quoting 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
echo 
history 
PATH env variable 
which 
Substitutions 
||, && and ; control operators 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 26 
1.1 Shell Básico 
O Shell é o interpretador de comandos, quando você digita algum comando ele é que 
interpreta. Quando você usa um comando para alterar diretório, ou limpar a tela, isso é um 
comando do shell. 
 
 
O shell padrão do Linux é o bash (bourne again shell), mas existem outras opções 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. 
 
usuário@nome_da_maquina:/caminho/onde/voce/esta $ 
 
1.2 Movendo-se entre os Diretórios 
Nesse tópico iremos introduzir de forma bem básica nossos três 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 atenção nesse 
tópico, 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 
diretórios, editar e copiar arquivos, listar conteúdo de arquivos, encontrar comandos e 
outras coisas mais. Nesse tópico veremos um pouco sobre esse tema. 
 
Assim como em outros sistemas operacionais o Linux utiliza uma estrutura hierárquica de 
diretórios, organizada em um padrão conhecido como árvore de diretórios, onde cada 
diretório pode conter arquivos ou outros diretórios. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d oC u r s o L i n u x E s s e n t i a l s 
 
Página 27 
Nessa árvore o primeiro diretório é 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 pirâmide. Vamos exemplificar uma pequena árvore de diretórios abaixo. 
 
/ ---> raiz 
 |---home -> diretório de usuários 
 |---me -> diretório do usuário me 
 
 
 
1.3 O comando env e suas Variáveis 
As configurações do seu shell estão definidos em uma variável de ambiente que podem ser 
verificadas através do comando env, acompanhe abaixo a imagem da exibição 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:~$ 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 28 
Veja que no mesmo temos informações referente ao SHELL utilizado, o diretório de e-mail do 
usuário (MAIL), quais são os diretórios de executáveis do usuário (PATH), o diretório ao qual o 
mesmo se encontra (PWD) além de outras variáveis possíveis de acordo com o a finalidade do 
sistema. 
 
 
1.4 PATH 
Vimos no tópico anterior a saída 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 através 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 nós não precisamos digitar o caminho 
completo do comando. Por exemplo, quando queremos listar o conteúdo do diretório em que 
estamos simplesmente digitamos o comando ls. 
 
dltec@dltec:~$ ls 
Desktop Music Templates essentials php.versoes 
Documents Pictures Videos examples.desktop 
Downloads Public bin lpi102 
 
O comando ls está localizado na pasta /bin, mas então por que não 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 diretório /bin ? 
 
Informação adcional: Como definir uma variável? 
 
Para definir uma variável durante sua sessão basta digitar: 
 
 export JAVA_HOME=/usr/local/java/bin/ 
 
No exemplo mostrado está sendo exportado a variável JAVA_HOME, que é utilizada para 
localizar onde ficam os binários do java e normalmente é utilizado quando você roda alguma 
aplicação ou serviço java no sistema. 
 
Porém não se torna muito prático ter de executar esse comando cada vez que você entra no 
sistema, além do mais algumas vezes podem ser necessárias várias variáveis. 
 
Nestes casos a solução padrão é colocar o comando dentro do arquivo .bash_profile no 
diretório do usuário, este diretório é lido logo após o login e executa os comandos que você 
definiu, no caso, define as variáveis que você precisa. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 29 
A resposta a essa pergunta é a variável PATH. Essa variável lista os diretórios do sistema 
onde os arquivos executáveis podem ser encontrados. Para visualizar o conteúdo da variável 
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 variável está listando os diretórios abaixo: 
 
 /home/dltec/bin 
 /usr/local/sbin 
 /usr/local/bin 
 /usr/sbin 
 /usr/bin 
 /sbin 
 /bin 
 /usr/games 
 
Isso faz com que o sistema faça um busca, do primeiro ao último diretório listado, quando 
tentamos executar algum comando. Assim que uma correspondência é encontrado a procura é 
encerrada, mesmo que não tenha sido verificado todos os diretórios listados. 
 
Ou seja, em nosso exemplo do ls, quando digitamos ls o sistema irá buscar por uma 
correspondência nos diretórios listados na variável PATH, tão logo a correspondência seja 
encontrado (no caso, no diretório /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 
correspondência 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 também que você queira utilizar o comando o wc (word count) padrão, ou 
seja, o que está na pasta /usr/bin e que sua variável 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 
 
Então 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ê não vai obter a 
saída desejada. Isso porque na sua variável PATH está sendo informado para procurar 
primeiro na pasta /home/aluno/bin. 
 
Uma das soluções 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 
correspondências para o comando wc. Em seguida entraria com o caminho completo do 
comando wc desejado, ou seja, /usr/bin/wc -l arquivo1.txt. 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 30 
1.5 Comandos de Formatação 
Através do shell nós podemos executar vários comandos diferentes, para finalidades diferentes, 
utilizando opções diferentes para visualização dos resultados e muitas vezes fazendo uso de 
vários comandos ao mesmo tempo. 
 
Vamos agora ver um exemplo um pouco mais avançado do que podemos fazer na linha de 
comandos. Ao longo desse curso você aprenderá a utilizar esse e outros tipos de recursos 
avançados. Imagine que eu quero listar o conteúdo 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 dessecomando) e dentro deste arquivo vamos escrever 
algumas coisas e vamos também colocar em 3 linhas do arquivo a palavra php. Para editar o 
arquivo teste.txt você pode utilizar o aplicativo nano ou vi (também veremos mais detalhes 
sobre isso posteriormente nesse curso). Acompanhe o exemplo abaixo, com todos os passos 
mostrados. 
 
Conteúdo 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 de log com 10.000 linhas e você 
quer visualizar todos os logs referente ao daemon openvpn por exemplo, então você digita o 
comando cat /var/log/syslog | grep openvpn e todo o conteúdo do arquivo de log 
referente ao openvpn será exibido e você poderá analisar o conteúdo sem tanta “sujeira” na 
visualização do arquivo. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 31 
1.6 Variáveis 
No shell do Linux nós podemos utilizar os comandos e criar variáveis para serem usadas por 
estes comandos. 
 
Para declarar uma variável você utiliza nome_da_variavel=valor_da_variavel, ou seja, 
vamos dizer que eu quero colocar o nome de um arquivo em uma variável e depois executar 
algum comando, eu poderia fazer conforme mostrado abaixo. 
 
MYFILE=”/tmp/teste.txt” 
cat .bash_profile > $MYFILE 
 
Neste caso estamos definindo a variável MYFILE com o caminho para o arquivo que queremos, 
depois exibimos o conteúdo do .bash_profile direcionando a saída do comando para a variável 
$MYFILE que no caso é o arquivo /tmp/teste.txt 
 
A título de ilustração vamos ver um exemplo real do uso de variáveis no linux. Imagine que 
em um diretório existam diversos arquivos de imagem com a extensão .JPG (em maiúscula) e 
que você queira renomear esses arquivos de forma que fique .jpg (em minúscula). Vamos ver 
como é possível fazer isso com uso de variáveis? Acompanhe o código 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 válido para exemplificar um uso real 
para este tipo de utilização (variáveis), acompanhe a descrição dos passos: 
 
 Entramos no diretório /tmp/teste 
 Definimos que para cada valor dentro do diretório (*) queremos o valor na variável i (for 
i in *) 
 Pegamos o valor de $i ( echo $i ) e substituímos JPG por jpg ( sed –e s/JPG/jpg ), e 
então definimos que este valor será o valor da variável NEWNAME 
 Realizamos um move (mover) dos arquivos de .JPG para .jpg (exemplo: mv DSC-
1401.JPG DSC-1401.jpg) 
 
O que acha, isso é muito mais prático do que selecionar um a um e então fazer a troca do 
nome não acha? 
 
Um exemplo habitual de uso de variáveis é em arquivos de configuração ou scripts para alguma 
finalidade específica, por exemplo, imagine que você esta criando um script de firewall, o 
binário do iptables (aplicação de firewall nativa do Linux) fica em /sbin/iptables, você em seu 
arquivo ao invés de colocar este comando linha por linha define uma variável (ex: 
FW=”/sbin/iptables” ) e no lugar de chamar o arquivo completo, chama apenas FW, define 
arquivos de configuração em variáveis e assim por diante. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 32 
1.7 Globbing (Caracteres Curinga) 
O Glob foi um programa que existiu no unix para expandir a capacidade de utilização de 
caracteres curingas de forma estendida, atualmente isso é incorporado no shell e graças a esta 
ferramenta podemos utilizar uma série de parâmetros para fazer varredura, leitura, alteração 
em diretórios e assim por diante. 
 
É possível basicamente utilizar: 
 
 ? = Faz match em um único caractere 
 * = Faz match em qualquer caractere (inclusive vazios) 
 
Também podemos utilizar alguns outros tipos de glob, vamos ver abaixo: 
 
Classes de caracteres: 
Classes de caractere, seria por exemplo alguns caracteres dentro de um [ ], não 
necessariamente sequenciais, podendo ser algo como [ac3t], qualquer um destes caracteres 
que casarem a regra serão aceitos. 
 
Range de caracteres: 
Este possui uma convenção especial, dois caracteres separados por um traço “-“ 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 não é bem isso que ele quer dizer, a questão 
aqui é escape de caracteres. Você deve pensar da seguinte forma, se no shell o cifrão “$” é 
inicio de variável, como você irá manipular um arquivo que possui este caractere em seu nome, 
ou mesmo um arquivo ou diretório que contenha uma barra “/” em seu nome ? 
 
A questão é bastante simples, nós 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 variável 
$date, porém ele aparece em branco já que a variável não possui nenhuma valor. 
 
Já neste comando ao pressionarmos o "enter" foi exibido a string $date 
 
$ echo \$date 
$date 
$ 
 
O mesmo processo também pode ser executado digitando aspas simples ( ‘ ) que neste caso 
faz a interpretação literal do que está dentro, acompanhe o comando ao lado. 
 
Neste caso é importante lembrar que não deve haver uma aspas simples dentro de um outro 
par, ou seja, não pode usar: 
 
‘ teste’a ‘ 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 33 
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 expressão ficaria: 
 
‘ teste\’a ‘ 
 
Ou seja, a \ cancela a funcionalidade da '. 
 
As aspas duplas também fazem a preservação dos caracteres, exceto pelo cifrão, mas o mesmo 
também pode ser utilizando se houver uma barra invertida antes. 
 
No caso da existência 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 diretório foi criado com o nome de teste\2, ao tentar entrar no diretório com o 
comandopuro “cd teste\2” ele não entende e tenta entrar em teste2, ao digitarmos com 
barra de escape nós conseguimos entrar no diretório, dessa forma o comando ficou “cd 
teste\\2” , no caso com a utilização de aspas simples ou duplas não se torna necessária a 
barra de escape. 
 
Uma coisa importante nesta questão é que no Linux um espaço é um caractere, então você tem 
dois modos de entrar, por exemplo, no diretório “teste 2”, sendo elas 
 
 cd “teste 2” 
 cd teste\ 2 
 
No segundo exemplo você fez o escape do caractere de espaço e passou a continuação do 
nome do diretório. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 34 
2 Usando a Linha de Comando para Obter Ajuda 
Peso: 2 
Descrição: Utilizando os comandos de ajuda e navegação nos vários sistemas de ajuda do 
Linux. 
 
Tópicos Importantes: 
 
Man 
Info 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
man 
info 
Man pages 
/usr/share/doc 
locate 
apropos, whatis, whereis 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 35 
2.1 Manuais (comando man) 
O Linux traz em sua instalação e em seus programas muitos pacotes de documentação , 
normalmente estes estão em inglês mas possuem toda a documentação referente ao comando 
em si. Vale lembrar que além destes manuais você tem o parâmetro -help / -h que já foi 
mencionado em tópicos anteriores. 
 
O comando man é um dos recursos mais úteis do Linux e de outros sistemas unix, através dele 
você obtém toda a documentação de um comando, com explicações detalhadas e muitas vezes 
alguns exemplos. 
 
Vamos pegar por exemplo um pedaço do comando “man tar”. Acompanhe abaixo. Veja que 
ele traz o inicio uma sinopse, em seguida uma descrição e exemplos. 
 
 
 
 
 
Veja a figura a seguir que mostra uma outra pagina do mesmo manual . 
 
 
 
Obs: para sair da página do manual e voltar para a linha de comandos basta pressionar a tecla 
q. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 36 
Como você pode perceber a saída do comando lhe fornece explicações a respeito de cada um 
dos parâmetros que o comando aceita, infelizmente é necessário dar uma boa treinada no 
inglês para conseguir ter mais domínio, mas com certeza isso fará toda a diferença para você. 
 
Existem alguns casos onde os comandos possuem documentações diferentes em diferentes 
seções, para estes casos você utiliza o comando man SEÇÃO comando , estas seções são 
divididas da seguinte forma. 
 
1. Programas executáveis ou comandos do shell 
2. Chamadas de sistema (utilizado pelo kernel) 
3. Bibliotecas (funções utilizadas por outros programas) 
4. Arquivos especiais (usualmente contidos no /dev) 
5. Formatos de arquivos e convenções (ex: /etc/passwd) 
6. Jogos 
7. Variados (incluindo macros e convenções (ex: man(7), groff(7)) 
8. Comandos de administração de sistema (normalmente apenas para root) 
9. Rotinas do kernel [Fora de Padrão ] 
 
Esta descrição foi retirada de uma página do man man. 
 
2.2 Acessando Manuais com o Comando info 
O comando info acessa as mesmas documentações que o man, mas ele na verdade é um 
leitor para estas documentações, basicamente ele permite uma navegação mais fácil pelas 
paginas por ter mais recursos como procura, navegação por links e etc.. 
 
O comando man por padrão utiliza o paginador more para permitir que você navegue na 
documentação, se existir o comando less instalado já facilita um pouco pois permite descer e 
subir o conteúdo (o comando more apenas desce). Veja abaixo as figuras d as telas para os 
comandos man e info, respectivamente. 
 
 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 37 
2.3 Arquivos de Documentação 
Além dos manuais em alguns casos temos arquivos de exemplos e outros no diretório 
/usr/share/doc seguido do nome do comando ou programa que você está buscando, veja 
abaixo a listagem dos arquivos do diretório /usr/share/doc/rsync 
 
dltec@dltec:~$ ls /usr/share/doc/rsync 
README.gz changelog.Debian.gz examples tech_report.tex.gz 
TODO.gz copyright scripts 
dltec@dltec:~$ 
 
Perceba que dentro do diretório além dos arquivos de licença (copyright), temos o README, 
changelog e alguns outros dependendo de que diretório estamos listando. No caso do rsync 
temos um diretório examples e outro scripts, no diretório examples são alguns exemplos de 
configuração para o rsync e no diretório scripts alguns scripts que podem ser utilizados para 
algumas operações como log, verificação de status e outros. 
2.4 Encontrando um Manual a Partir de uma Referência 
Algumas vezes nós sabemos o nome de um arquivo ou comando e queremos saber onde tem 
informações sobre ele, para este caso nós utilizamos o comando apropos. A ideia deste 
comando é simplesmente localizar em que manual contém a informação 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 
próprio explicando suas configurações, no caso a resposta dele foi: 
 
rsyncd.conf (5) Configuration file for rsync in 
daemon mode 
Qual Manual Que seção do manual Descrição 
 
Vamos ver agora um exemplo que possua mais saídas. 
 
Questionamos o apropos sobre “passwd” e como pode ser verificado, ele trouxe vários 
manuais com referências ao termo, ou seja, se você quer procurar algo, mas não sabe de qual 
manual é, utilize o apropos para esta função. 
 
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) 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
Ap o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 38 
 
 
2.5 Localizando Arquivos 
Como no Linux utilizamos muito a linha de comando é importante que saibamos através 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 padrão ou com uma instalação 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 não está no /etc (o arquivo de 
configuração), então 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 localização de arquivos. Um ponto importante é que ele não 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 informações. 
 
Você pode executar o update através do comando updatedb e com esta tabela devidamente 
atualizada você consegue encontrar qualquer arquivo no sistema, veja que no nosso exemplo 
ele trouxe várias linhas de resultado contendo a string “dovecot.conf”. 
 
2.5.2 Comando whereis 
O comando whereis é utilizado para procurar arquivos binários, códigos fontes e/ou páginas 
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 
 
 
Informação adcional: 
 
Outra forma de encontrar uma página de um manual é através do comando whatis, este 
comando assim como o apropos traz a informação do manual referente a string que você 
buscou, com uma diferença, o apropos busca em todo o manual e o whatis busca apenas na 
descrição do manual. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 39 
Veja que ele trouxe a string passwd: seguida de tudo que ele achou, o primeiro passwd trata-
se de um fonte, o segundo é o binário 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 binário: 
 
 whereis –b passwd 
 
Existem outras opções de uso do comando que você pode verificar no man whereis. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 40 
3 Usando Diretórios e Listando Arquivos 
Peso: 2 
Descrição: Navegar por entre os diretórios home e system e listando arquivos em várias 
localizações. 
 
Tópicos Importantes: 
 
Arquivos e diretórios 
Ocultando arquivos e diretórios 
Home 
Caminhos relativos e absolutos 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
Common options for ls 
Recursive listings 
cd 
. and .. 
home and ~ 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 41 
3.1 Arquivos e Diretórios 
Arquivos e diretórios no Linux não possuem muito segredos, porém, existem algumas 
configurações que ajudam você a identificar de forma mais simples quando trata-se de um 
diretório e quando trata-se de um arquivo. Acompanhe a figura abaixo onde mostramos a saída 
do comando ls / . 
 
dltec@dltec:/$ ls 
bin dev initrd.img media proc sbin sys var 
boot etc lib mnt root selinux tmp vmlinuz 
cdrom home lost+found opt run srv usr 
dltec@dltec:/$ 
 
 
 
Salvo o caso do arquivo initrd.img, os demais seriam todos diretórios? 
 
Vale lembrar que no Linux não faz diferença a extensão do arquivo, ela tem o intuito apenas de 
informação, facilitar para quem está vendo o arquivo sobre o que se trata, mas não é 
primordial sua utilização. Mas e então, a primeira vista, que conclusão tiramos da listagem do 
diretório root (/)? 
 
Bom, eu não tiraria nenhuma no momento. Vamos verificar um outro modo de visualizar esta 
listagem. 
 
dltec@dltec:/$ ls -p 
bin/ dev/ initrd.img media/ proc/ sbin/ sys/ var/ 
boot/ etc/ lib/ mnt/ root/ selinux/ tmp/ vmlinuz 
cdrom/ home/ lost+found/ opt/ run/ srv/ usr/ 
dltec@dltec:/$ 
 
Veja que agora utilizamos o comando ls –p o qual acrescentou uma / após cada diretório e 
não fez o mesmo nos arquivos. Muito mais fácil assim não acha? 
 
Outro parâmetro interessante é o color. Normalmente o color já vem habilitado como padrão 
na maioria das distribuições. Caso esse não seja o caso, basta acrescentarmos o parâmetro --
color=auto. Este comando produz uma saída colorida, onde cada cor tem seu significado. 
Vamos listar algumas delas. 
 
 Cinza: Arquivo simples 
 Azul claro: Link Simbólico 
 Azul: Diretório 
 Fundo Azul fonte cinza: Arquivo com bit stick (t) 
 Fundo Verde e fonte preta: Permissão 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 diretórios, pois trata-se do modo mais 
diferenciado. 
 
 
Obs: o comando ls / irá listar os arquivos e diretórios do diretório root (/) 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 42 
Podemos ainda exibir a saída 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.0-
23-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 rootroot 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-23-
generic-pae 
dltec@dltec:/$ 
 
Perceba que para gerar esta saída utilizamos todas as opções que vimos anteriormente. O 
comando ficou ls –l –color=auto –p , o –l significa lista longa, que é o que ele mostra, vamos 
analisar uma saída. Acompanhe também na figura abaixo um exemplo. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 43 
 
 drwxrwxrwt 33 root root 425984 2012-07-18 21:52 tmp/ 
 
O primeiro bloco do comando traz as permissões aplicadas no diretório. 
O segundo campo (33) é a quantidade de diretórios existentes dentro desse diretório. 
O terceiro campo (root) representa o proprietário (dono) do diretório. 
O quarto campo (root) representa o grupo ao qual o diretório faz parte. 
O quinto campo traz o tamanho do diretório em bytes. 
O sexto campo traz a data da última modificação. 
O sétimo campo traz o diretório em questão. 
 
Com estas informações você já pode identificar arquivos e diretórios sem maiores dificuldades. 
 
 
 
Uma outra utilização que vale apena ressaltar no comando ls é a listagem recursiva, esta 
opção é utilizada com o parâmetro –R. 
 
A listagem recursiva irá executar um ls para cada diretório que for encontrado. Por exemplo, se 
tiramos um ls -R do diretório teste, a saída irá mostrar o conteúdo do diretório teste e para 
cada diretório que for encontrado ele irá executar um ls desse diretório e assim 
sucessivamente. Veja abaixo. 
 
 
 
Perceba que no primeiro nível temos os diretórios teste2, teste3, teste4 e teste5, dentro de 
teste2 temos outro diretório teste2, dentro de teste5 temos outro diretório teste2, dentro deste 
teste2, temos um diretório teste6, onde temos um diretório de número 8. 
 
Se você reparar para cada diretório ele executou uma listagem também, em nosso caso não 
havia nenhum arquivo dentro então nada foi exibido. 
 
 
Obs: Mais para frente nesse curso entraremos em mais detalhes sobre como interpretar o 
campo de permissões do arquivo. Não se preocupe com isso nesse momento, tudo ficará 
mais claro mais para frente. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 44 
No Linux temos uma facilidade que são os diretórios ou arquivos ocultos. Normalmente estes 
arquivos/diretórios ocultos são utilizados para não gerar volume desnecessário quando estamos 
visualizando um determinado diretório. Vamos exemplificar esta questão, acompanhe na saída 
seguinte. 
 
dltec@dltec:~$ ls 
Desktop Music Templates essentials php.versoes 
Documents Pictures Videos examples.desktop 
Downloads Public bin lpi102 
dltec@dltec:~$ 
 
Veja que a listagem da imagem traz apenas alguns diretórios, nada muito poluído salvo alguns 
arquivos e diretórios. 
 
Agora vamos usar o comando ls –a para listar todos os arquivos, inclusive os ocultos. 
 
dltec@dltec:~$ ls -a 
. .dbus .mozilla Music 
.. .dmrc .mysql_history Pictures 
.ICEauthority .gconf .profile Public 
.Xauthority .gnome2 .pulse Templates 
.bash_history .goutputstream-2NA22W .pulse-cookie Videos 
.bash_logout .gtk-bookmarks .xsession-errors bin 
.bashrc .gvfs .xsession-errors.old essentials 
.bashrc.swp .lesshst Desktop examples.desktop 
.cache .local Documents lpi102 
.config .mission-control Downloads php.versoes 
dltec@dltec:~$ 
 
Perceba que agora vemos muitos outros diretórios que não estavam lá antes, estes são 
diretórios ocultos. A maior parte é alguma configuração ou diretório de configurações de algum 
aplicativo. Por exemplo, você poderá ver o diretório .mozilla que contém os dados do Firefox 
ou o diretório .local onde ficam as configurações do KDE. 
 
Uma questão muito importante a se saber sobre o Linux, é que o caractere “.” aparece em 
todos os arquivos e diretórios ocultos. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 45 
3.2 Diretório home 
Desde o início do curso até agora você já deve ter reparado que várias vezes falamos do 
diretório home. Esse é o diretório especifico para armazenamento dos dados dos 
usuários, por exemplo, o usuário mike possui por padrão seu home (sua casa) no diretório 
/home/mike. 
 
É importante ressaltar que nada impede que você utilize outro local para isso, porém você 
estaria fugindo do padrão e os padrões 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 padrões. 
 
 
3.3 Caminho Absoluto e Caminho Relativo 
O caminho nada mais é do que a direção que você deve seguir, dentro da estrutura de 
diretórios, para chegar a um determinado arquivo ou diretório. 
 
O caminho absoluto inicia a partir do diretório raiz (o root) e guia você por entre a estrutura 
de diretórios, desde da raiz até o destino final. Por exemplo, temos no linux um diretório onde 
ficam instalados a maioria dos programas no linux. O caminho para esse diretório é /usr/bin. 
Isso significa que o caminho absoluto para esse diretório é: 
 
 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 diretório atual. Para indicar um caminho relativo utilizamos o "." (ponto) e o ".." 
(ponto ponto). 
 
O "." faz referência ao seu diretório atual e o ".." faz referência ao diretório pai do seu 
diretório atual. Vamos exemplificar no exemplo abaixo. 
 
 
Dica: 
Um uso comum que fazemos é criar o diretório /home em uma partição separada do HD, 
desta forma podemos atualizar ou reinstalar o sistema operacional sem nos preocupar com 
estes dados. 
 
O diretório /home é muitas vezes referenciado pelo caractere “~” , por exemplo, de 
qualquer lugar do sistema se você digitar cd ~ você será direcionadopara o diretório 
/home de seu usuário, caso seja o usuário root o diretório de home do mesmo é /root. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 46 
Estamos no diretório /usr/bin e desejamos mudar para o diretório pai do /usr/bin, ou seja, 
para o diretório /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 diretório /usr podemos ir para o diretório /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á implícito. 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 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 47 
4 Criando, Movendo e Removendo Arquivos ou Diretórios 
Peso: 2 
Descrição: Criar, mover e apagar arquivos e diretórios. 
 
Tópicos Importantes: 
 
Arquivos e diretórios 
Case sensitive (maiúsculas e minúsculas) 
Globbing e quoting simples 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
mv, cp, rm, touch 
mkdir, rmdir 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 48 
4.1 Um pouco mais sobre Caracteres Curinga 
A manipulação de arquivos e diretórios (criar, mover, copiar e deletar) é feita via linha de 
comando basicamente através da utilização dos seguintes comandos: 
 
 touch (para criar arquivos) 
 mkdir (para criar diretórios - make directory) 
 cp (copy) 
 mv (move) 
 rm (remove) 
 rmdir (remove directory) 
 
É claro que existem maneiras mais simples de se fazer essas coisas através das interfaces 
gráficas, no entanto, a utilização da linha de comando nos dá uma flexibilidade que não é 
encontrada nas interfaces gráficas. 
 
Antes de prosseguirmos para a explicação dos comandos vamos voltar a um tópico muito 
importantes - os caracteres curingas (wildcards). Os caracteres curinga nos permitem fazer 
a seleção de nomes de arquivos baseada em padrões de caracteres. Já vimos no tópico sobre 
"Globbing" a utilização 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 especificação do grupo pode ser feita 
através de: 
 
[:alnum:] Caracteres alfanuméricos 
[:alpha:] Caracteres alfabéticos 
[:digit:] Numerais 
[:upper:] Caracteres alfabéticos maiúsculos 
[:lower:] Caracteres alfabéticos minúsculos 
 
[!characters] Corresponde qualquer caractere que não faça parte do 
grupo especificado. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 49 
A utilização dos caracteres curinga possibilita a criação de critérios de seleção 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” 
Data??? Qualquer arquivo que inicie com “Data” e termine com 
exatamente 3 caracteres 
[abc]* Qualquer arquivo com “a” com “b” ou com “c” seguidos de 
quaisquer outros carateres 
[[:upper:]]* Qualquer arquivo que inicie com uma letra maiúscula 
BACKUP.[[:digit:]][[:digit:]] Qualquer arquivo que inicie com os caracteres “BACKUP.” 
seguido por exatamente 2 numerais 
*[![:lower:]] Qualquer arquivo que não termine com uma letra 
minúscula. Perceba que aqui estamos utilizando o ! para 
negar a condição. 
 
 
 
4.2 Movendo Arquivos e Diretórios 
Utilizamos para mover arquivos ou diretórios o comando mv. Este comando é uma abreviação 
da palavra move (do inglês mover) e a sintaxe básica de comando é mv [origem] [destino], 
desta forma, se temos um diretório 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 diretório home, para o diretório /usr/src. 
 
mv netqmail-1.0.6 /usr/src/ 
 
Vale lembrar que para mover um arquivo o processo é o mesmo. 
 
Se você quiser, além de mover para o diretório você também pode no mesmo comando alterar 
o nome que o diretório 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 diretório com o nome que você está 
especificando a pasta netqamil-1.0.6 constará dentro do diretório em questão. 
 
No caso do nosso exemplo se houvesse a pasta netqmail o caminho total para acesso ao 
diretório movido seria 
 
/usr/src/netqmail/netqmail-1.0.6 . 
 
 
Dica: Você pode utilizar os caracteres curinga (wildcard) com qualquer comando que 
aceite nome de arquivos como argumento. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 50 
4.3 Copiando Arquivos e Diretórios 
O comando para copia de arquivos ou diretórios é o cp, que é uma abreviação da palavra 
copy. A sintaxe básica do copy é similar a do comando mv, porém tem uma diferença básica, 
ao copiar um diretório inteiro é necessário acrescentar o parâmetro –r que significa recursivo 
(lembra do recursivo que vimos no comando ls??). 
 
Este comando fará com que ele pegue qualquer diretório e acrescente a copia, ou seja, copiar o 
diretório netqmail-1.0.6 para o diretório /usr/src seria realizado da seguinte forma, veja abaixo. 
 
cp –r netqmail-1.0.6 /usr/src/ 
 
Dessa forma, todosos diretórios existentes dentro do netqmail-1.0.6 seriam também copiados. 
Existem outros parâmetros que podem ser utilizados, segue abaixo alguns dos mais comuns 
 
 -v = verbose (exibe o que esta copiando) 
 -i = interactive (solicita confirmação) 
 -p = mantém permissões 
 
 
 
4.4 Removendo Diretórios 
Existem dois comandos utilizados para 
remoção do diretórios, rmdir e rm. 
 
O comando rmdir não é muito utilizado 
pois ele apenas remove diretórios que 
estejam vazios. 
 
Já o comando rm não remove por padrão 
o diretório e seus arquivos recursivamente 
sem que seja especificado, para isso 
utilizamos o parâmetro –r. Vamos ver na 
imagem abaixo a saída do comando para 
remover a estrutura que criamos na pasta 
teste. 
 
 
 
Perceba que acrescentamos ao comando o 
parâmetro –v de verbose para poder 
exemplificar. 
Veja que solicitamos a remoção do diretório 
teste, ele iniciou a remoção pelo ultimo diretório 
existente e foi descendo sucessivamente até o 
diretório solicitado. 
 
 
Case Sensitive: 
 
Case sensitive basicamente significa que o sistema é sensível a diferença de caixa alta 
(maiúscula) ou caixa baixa (minúscula). Isso na prática significa que para o sistema 
operacional o arquivo arvore é diferente do arquivo Arvore. O mesmo vale para diretórios e 
outras coisas mais e também 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 diferença na hora de realizar cópias, interação em arquivos e outras coisas 
mais. Precisa-se ter atenção a esta questão ou você estará manipulando algo que ou é 
errado ou não existe. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 51 
4.5 Criando Arquivos 
Não é muito comum criarmos arquivos vazios mas as vezes é necessário ou simplesmente 
preferimos criar o arquivo antes de começar a editar. 
 
Vamos ver algumas formas de realizar este procedimentos. 
 
4.5.1 Touch 
O comando touch (toque em inglês) é 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 extensão não é tão 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 próximo exemplo, utilizamos o comando echo gerando a palavra teste e direcionando 
para dentro de arquivo.txt. 
 
echo “teste” > arquivo.txt 
 
para exibir o conteúdo do arquivo: 
 
cat arquivo.txt 
teste 
 
Se em seguida você exibir o conteúdo do arquivo arquivo.txt verá que será exibido o conteúdo 
"teste". 
 
 
 
 
Obs: Podemos também abrir um editor de texto e salvar a saída do mesmo em um arquivo 
que não existe, como é comum de fazermos em ambiente gráfico (abro o editor de texto, 
coloco o conteúdo e salvo gerando assim meu arquivo). Veremos mais sobre editores de 
texto em linha de comando no Linux mais para frente nesse curso. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 52 
4.6 Criando Diretórios 
Falamos anteriormente de como mover diretórios, agora vamos ver como nós podemos criar os 
diretórios. Basicamente utilizamos o comando mkdir, o nome é bastante sugestivo, mk = 
make – dir = directory (make directory). 
 
Acompanhe abaixo a forma de utilização. No exemplo mostrado criamos o diretório teste. 
 
mkdir teste 
 
Agora vamos criar o diretório teste dentro de teste. 
 
mkdir teste/teste 
 
 
 
4.7 Utilizando Caracteres Curinga 
Você se lembra que falamos anteriormente sobre globbing e caracteres curinga? 
 
Nós podemos aplicar esta ideia ao remover ou copiar diretórios, como exemplo podemos citar o 
seguinte caso, em um backup eu tenho os diretórios organizados por data da seguinte forma: 
2012-03-01, contendo diretórios até o mês de julho. 
 
Suponha agora que eu queria apagar todos os diretórios que correspondam o período de 
março até maio, para isso podemos utilizar o comando mostrado em seguida. 
 
rm –vr 2012-0[345]-?? 
 
Com isso foram removidos os diretórios de março, abril e maio, independente do dia, desde que 
contendo dois dígitos, no caso os dias menores que 10 eram compostos pelo 0 na frente, então 
funcionou da forma adequada. 
 
 
Informação importante: 
 
Se você tentar criar o diretório teste/teste2/teste2 lembrando que não criamos o 
primeiro diretório teste2 ele irá apresentar uma mensagem de erro, isso porque você está 
solicitando a criação do diretório dentro de outro que não existe. Para realizar este 
procedimento é necessário que acrescentemos o parâmetro –p 
 
 mkdir –p teste/teste1/teste2/teste3/teste4/teste5/teste6 
 
Agora foi criado todos os diretórios necessários para criar o ultimo que é o teste6. Com o -p 
o sistema entende que como não existe o diretório anterior ele vai criando sucessivamente 
todos eles. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 53 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Capítulo 03 - O Poder da 
Linha de Comandos 
 
Objetivo do capítulo: 
 
Ao longo desse capítulo você deverá 
adquirir conhecimentos sobre: 
 
 Como arquivar e compactar arquivos 
no diretório de usuário. 
 Como procurar e extrair dados de 
arquivos no diretório de usuário. 
 Como transformar comandos 
repetidos em um script simples. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 54 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sumário do Capítulo 
 
1 Arquivando Arquivos na Linha de 
Comando __________________________ 55 
1.1 Arquivamento __________________ 56 
1.2 Compactação 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 Expressões Regulares_____________68 
2.6.1 Expressões Regulares Básicas ______ 68 
2.6.2 Expressões Regulares Estendida ____ 69 
3 Transformando Comandos em Scripts 70 
3.1 Edição Básica de Texto (editores de 
texto) 71 
3.1.1 Editor de Texto vi ________________ 71 
3.1.2 Editor nano _____________________ 73 
3.2 Shell Script Básico _______________ 73 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 55 
1 Arquivando Arquivos na Linha de Comando 
Peso: 2 
Descrição: Arquivando arquivos no diretório de usuário. 
 
Tópicos Importantes: 
 
Arquivos e diretórios 
Arquivos e compressão 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
tar 
Opções comuns do tar 
gzip, bzip2 
zip, unzip 
Extraindo arquivos individuais dos arquivos 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 56 
1.1 Arquivamento 
É muito comum querermos realizar o arquivamento de um diretório ou mesmo um arquivo, 
normalmente para titulo de backup ou transferência de arquivo. Tenha em mente que é 
muito mais fácil você transferir um arquivo grande do que centenas de arquivos pequenos. 
 
Um dos usos mais comuns para arquivamento é quando você vai pegar um código fonte de 
algum aplicativo, ele vem arquivado normalmente com a ferramenta tar, ao desarquivar o 
mesmo você tem um diretório 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 então listamos os arquivos no diretório e constatamos que foi gerado um terceiro 
arquivo de nome teste.tar. 
 
Agora vamos ver como podemos visualizar o conteúdo 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 conteúdo do arquivo num formato similar ao do ls, vamos 
explicar os parâmetros que vimos até aqui. 
 
 -v: verbose. 
 -c: Realiza a criação 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 conteúdo sem realizar a extração. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 57 
Existem outras opções que também podem ser utilizadas, como por exemplo a função –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 diretório 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 dentro do 
arquivo teste.tar 
 
Para realizar o arquivamento de um diretório o processo é o mesmo, porém você especifica 
o diretório que você deseja arquivar ao invés de quais arquivos, veja a seguir como fica a 
exibição de um diretório compactado. 
 
# tar -tvf teste-dir.tar 
rwxr-xr-x root/root 0 2012-07-19 17:05 teste/ 
-rw-r--r-- root/root 10240 2012-07-19 17:02 teste/teste.tar 
drwxr-xr-x root/root 0 2012-07-19 17:05 teste/cidade/ 
drwxr-xr-x root/root 0 2012-07-19 17:05 teste/cidade/curitiba/ 
-rw-r--r-- root/root 0 2012-07-19 17:00 teste/teste3.txt 
-rw-r--r-- root/root 0 2012-07-19 17:05 teste/teset.txt 
-rw-r--r-- root/root 0 2012-07-19 16:50 teste/teste2.txt 
-rw-r--r-- root/root 0 2012-07-19 16:50 teste/teste.txt 
 
Veja que ele traz o nome do diretório principal que é teste e traz o nome de cada arquivo 
contido dentro do mesmo e de cada diretório . 
 
O procedimento de desarquivamento é realizado através da opção –x (extract), ou seja, 
para desarquivar este arquivo utilizaríamos o comando: 
 
 $ tar –xvf teste.dir.tar 
 
E se nós quisermos extrair apenas um dos arquivos que está dentro do arquivo .tar, isso é 
possível? A resposta é claro que sim. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 58 
Para a extração de um único arquivo do arquivo, basta especificar o caminho completo do 
mesmo como foi informado pela exibição do comando –t. 
 
É importante lembrar que caso o arquivo esteja em um diretório dentro do tar ele irá extrair 
toda a estrutura de diretórios, mas não extrairá os arquivos, vamos ver um exemplo a seguir. 
 
 
Observe que primeiro listamos o diretório atual onde estávamos (comando ls), havia apenas o 
arquivo teste-dir.tar dentro do mesmo. Depois listamos o conteúdo do arquivo (tar -vtf teste-
dir.tar). Deste conteúdo solicitamos a extração do arquivo teste/teste3.txt (tar -xvf teste-
dir.tar teste/test3.txt) e ao realizarmos a listagem do diretório novamente lá estava o 
diretório teste e ao listar o diretório vemos o arquivo que solicitamos que é o teste3.txt 
 
1.2 Compactação e Arquivamento 
A diferença entre compactação e 
arquivamento é bastante simples, o 
arquivamento junta vários arquivos ou 
diretório em um único arquivo, já na 
compactação ele transforma este arquivo 
ou diretório utilizando algoritmos de 
compressão. 
 
Normalmente os arquivos são compactados e 
arquivados, por exemplo, quando você abre 
um arquivo .zip com vários diretórios dentro 
isso caracteriza um arquivamento e a 
extensão .zip indica que o mesmo passou por 
um processo de compressão também. 
 
 
O comando tar permite que durante sua utilização nós possamos realizar também a 
compressão (muito comum este uso inclusive) através de dois parâmetros básicos que são: 
 
 -z (utilizando gzip para comprimir) ou 
 –j (utilizando bzip2 para comprimir) 
 
Obviamente para utilizar estes parâmetros é necessário que você tenha estas ferramentas (gzip 
e bzip2) instaladas em seu sistema, normalmente o gzip já vem por padrão mas o bzip2 precisa 
ser instalado. 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página59 
Um arquivo tar comprimido leva o nome de .tar.gz ou .tar.bz2 para simbolizar que o arquivo 
inicialmente é um bzip ou gzip e após realizar a compressão 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 diferença entre os arquivos finais. Acompanhe 
a seguir. 
 
 
Veja que no inicio da tela realizamos a compressão nos dois formatos, o formato .tar sem 
compressão nós já havíamos gerado, então depois realizamos a listagem dos arquivos, veja a 
área que está selecionada na tela, você tem os três formatos, observe a diferença 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 diferença realmente é considerável, se você pensar em grandes arquivos 
de log por exemplo você chega a ter 2 GB diminuído em cerca de 20 MB, isso quando falamos 
em backup é muito importante pois significa economia de espaço. 
 
 
 
 
Informação adcional: 
 
Outros compactadores: 
Também temos disponíveis alguns outros compactadores como é o caso do zip, rar, 7zip e 
muitos outros que existem disponíveis no Linux. 
 
Nada impede você de gerar o arquivo tar e depois compactar com um compactador de sua 
preferência, mas é importante lembrar que o gzip e o bzip2 estão disponíveis em todas as 
distribuições. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 60 
2 Procurando e Extraindo Dados de Arquivos 
Peso: 4 
Descrição: Procurando e extraindo dados de arquivos no diretório de usuário. 
 
Tópicos Importantes: 
 
Pipes de linha de comando 
I/O re-direction 
Partial POSIX Regular Expressions (., [ ], *, ?) 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
find, grep 
less 
head, tail 
sort, cut, wc 
Partial POSIX Basic Regular Expressions ([^ ], ^, $) 
Partial POSIX Extended Regular Expressions (+, ( ), |) 
Xargs 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 61 
2.1 Redirecionamento de I/O 
Vamos nesse tópico explorar um recurso poderoso da linha de comando chamado de 
input/output redirection (redirecionamento de entrada/saída). Como já vimos em 
alguns exemplos anteriores muitos comandos, como o ls, exibe sua saída na tela. Mas isso não 
precisa ser somente dessa forma, pois com uso do redirecionamento podemos enviar a saída 
do comando para outro lugar, como arquivos, dispositivos e até mesmo outros comandos. 
 
Saída Padrão 
Muitos programas da linha de comando que utilizamos exibem seus resultados enviando esses 
resultados para a saída padrão (standard output). Via de regra, a saída padrão utilizada é o 
display, ou seja, nossa tela. 
 
Para redirecionarmos a saída padrão 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 
Música 
Público 
que_arquivo_e_este.txt 
scripts 
teste-link.txt 
time 
Transferências 
Vídeos 
 
No exemplo mostrado redirecionamos a saída padrão do comando ls para que o seu 
resultado fosse enviado para um arquivo chamado lista.txt. Dessa forma, ao invés de exibir 
o resultado na tela o resultado foi armazenado no arquivo. Em seguida exibimos o conteúdo 
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 serão perdidos. Para fazer de forma 
incremental, ou seja, redirecionar o resultado para o final do arquivo lista.txt (sem apagar o 
conteúdo anterior) basta utilizar o caractere ">>" (ls >> lista.txt) 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 62 
Entrada Padrão 
Muitos comandos utilizam como entrada padrão os dados vindo do teclado. No entanto, isso 
também pode ser redirecionado, ou seja, podemos redirecionar a entrada padrão de um 
comando para que ele utilize os dados vindo de outro arquivo e não 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 estão no arquivo /etc/passwd. Ou seja, esse comando irá no arquivo /etc/passwd e irá 
exibir na tela todas as ocorrências dos caracteres "sys" que ele encontrar. 
 
Perceba que o comando anterior irá exibir na tela, pois não redirecionamos a saída padrão. Mas 
poderíamos fazer esse redirecionamento também, 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 saída para que fosse enviada para o arquivo sys.txt 
e não para a tela. 
 
Este tipo de redirecionamento pode também ser feito de outras formas, não necessariamente 
para utilização em arquivos de texto. 
 
Muitas vezes vemos usuários descompactarem arquivos .tar.gz da seguinte forma. 
 
$ gunzip < spandsp-0.0.6pre20.tgz | tar -xvf – 
 
Na prática o que o comando faz é inicialmente descompactar o arquivo tar (gunzip) e depois 
desarquivar o resultado com o comando tar 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 63 
2.2 Pipes de Linha de Comando 
Uma das práticas mais comuns que utilizamos no redirecionamento I/O é a conexão de vários 
comandos juntos, formando o que chamamos de pipes de linha de comando. Com os pipes, a 
saída padrão de um comando é enviada para a entrada padrão do outro comando para 
continuidade do processamento. Os dados enviados são processados pelo próximo comando 
que mostrará o resultado do processamento. 
 
Podemos dizer que os pipes são como se fossem uma peneira, o símbolo 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 conteúdo e deixar sair uma parte apenas, esta parte 
é o que me interessa do conteúdo. 
 
Vamos pegar como exemplo o arquivo /etc/passwd, dentro deste temosa entrada referente 
ao usuário 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 saída 
 
root:x:0:0:root:/root:/bin/bash 
 
Ou seja, listamos o arquivo /etc/passwd e filtramos a saída do mesmo para nos mostrar 
apenas o que contivesse a palavra root, para isso utilizamos o comando grep, cuja função é 
exatamente esta, exibir linhas que casam com uma expressão. 
 
 
 
Poderíamos também sermos mais genéricos, solicitando que fosse exibido tudo que tivesse 
/bin/bash, para isso utilizaríamos o comando conforme a seguir. 
 
$ cat /etc/passwd | grep “/bin/bash” 
 
A saída do comando seria algo similar ao conteúdo abaixo. 
 
root:x:0:0:root:/root:/bin/bash 
mike:x:1001:1001::/home/mike:/bin/bash 
 
 
Informação importante: 
 
Diferença entre o "|" e o ">": 
 
A principal diferença entre o "|" e o ">", é que o Pipe envolve processamento entre 
comandos, ou seja, a saída de um comando é enviado a entrada do próximo e o ">" 
redireciona a saída de um comando para um arquivo/dispositivo. 
 
Você pode notar pelo exemplo (ls -la | more) que ambos ls e more são comandos porque 
estão separados por um "|". Se um deles não existir ou estiver digitado incorretamente, 
será mostrada uma mensagem de erro. 
 
Um resultado diferente seria obtido usando um ">" no lugar do "|". A saída do comando ls -
la > more seria gravada em um arquivo chamado more. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 64 
Ou seja, existiam no arquivo duas entradas contendo a expressão “/bin/bash”. 
 
É possível também a utilização de expressões 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 é sensível a maiúscula/minúscula e você precisa escrever da maneira 
que deseja a interpretação. Dessa forma, se utilizarmos o comando cat /etc/passwd | grep 
–e “^[mM]” seriam retornadas todas as linhas começadas pela letra m, seja ela maiúscula ou 
minúscula. 
 
 
 
Existem outros comandos que podemos utilizar para filtrar conteúdo, por exemplo, digamos que 
queiramos retirar uma lista de todos os usuários que estão 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 não é preciso explicar, portanto, vamos direto ao comando 
cut. O parâmetro –d do cut especifica o delimitador, que no nosso exemplo é o “:”, depois 
especificamos que queremos o primeiro campo da seleção (-f1), a saída 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 
Dica: O comando grep em especifico possui um parâmetro –i que pode ser utilizado para 
deixar a interpretação insensível a maiúscula e minúscula (insensitive), dependendo do que 
você está buscando no arquivo isso torna mais simples a formação do comando. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 65 
usbmux 
kernoops 
pulse 
rtkit 
speech-dispatcher 
hplip 
saned 
dltec 
sshd 
mysql 
dltec1 
 
 
 
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 parâmetro –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 saída do comando será o número 25 que é quantidade de resultados na execução do 
comando que eu fiz. 
 
O comando wc possui vários parâmetros possíveis, vamos colocar alguns abaixo para a escolha 
do que queremos contar. 
 
 -c: bytes 
 -m: caracteres 
 -w: palavras 
 -l: linhas 
 
Ainda é possível acrescentar outros parâmetros no comando, por exemplo ordenação com o 
comando sort. 
 
 
Entendeu? 
 
Vamos a uma explicação mais detalhada: 
 
Você conseguiu entender o que o cut fez? Perceba que a saída 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 seleção. 
 
root:x:0:0:root:/root:/bin/bash 
mike:x:1001:1001::/home/mike:/bin/bash 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 66 
Se você acrescentar o parâmetro –r ao sort ele irá trazer o resultado em ordem inversa ou 
com o –R para aleatório. 
 
$ 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 também podem ser utilizados juntamente com outros comandos 
através do pipe, os nomes dos dois comandos simbolizam exatamente o que eles querem dizer, 
head (cabeça = 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 exibição, 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 padrão dele. 
 
Você pode utilizar o parâmetro –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. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 67 
Também é possível utilizar o parâmetro –k para exibir uma quantidade X de bytes na saída 
 
O comando head funciona da mesma forma mas a contagem dele é a partir do inicio do 
arquivo e não do fim. 
 
Uma utilização bastante comum do comando tail é com o parâmetro –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 estãoacontecendo. 
 
2.4 Paginadores more e less 
Quando abrimos arquivos grandes para serem analisados ou mesmo lidos é muito comum ao 
invés de abrirmos com um editor de texto abrirmos com um paginador. 
 
Os mais comuns de serem utilizados são o more e o less, nas definições dos dois no manual 
diz o seguinte: 
 
 more: Filtro para leitura em tela crt 
 less: O oposto do more 
 
 
As diferenças básicas entre os dois são que o less permite que você volte o arquivo, enquanto 
o more permite que você apenas avance no arquivo. 
 
Outra questão base é que o less não precisa carregar o arquivo inteiro para exibir, se você abrir 
um arquivo muito grande isso é de grande ajuda. 
 
Outra diferença 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 usuário nós temos muitas vezes que manipular arquivos de texto, procurar 
conteúdos, configurações e coisas do tipo. No Linux é possível fazer tudo isso de forma muito 
simples utilizando a linha de comando. 
 
Falamos anteriormente sobre o comando locate, uma outra opção para pesquisa de arquivos é 
a utilização 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 questão 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 também que adicionemos comandos para ele, por exemplo, 
digamos que queiramos encontrar todos os arquivos alterados a mais de 20 dias em um 
diretório e fazer a remoção do mesmo, para tal utilizaríamos o comando conforme mostrado 
abaixo. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 68 
$ find /home/backup –ctime +20 –exec rm –i {} \; 
 
No caso o sistema irá procurar os arquivos com alteração a mais de 20 dias e executará o 
comando rm para remover, as duas chaves que existem após o rm é o valor que o find 
encontrar e a \ significa o fim do comando. 
 
 
 
Também é possível utilizar o parâmetro xargs para executar alguma operação, se 
quiséssemos por exemplo remover os arquivos como fizemos com o rm poderíamos usar o 
seguinte comando. Acompanhe a explicação a seguir. 
 
$ find ./ -type f -print0 | xargs -0 rm 
 
Ou seja, o xargs usará os resultados do find para alimentar o rm. 
2.6 Expressões Regulares 
Aqui vamos ver um pouco de expressões regulares, de forma bastante superficial, apenas 
para termos uma ideia. 
 
As expressões regulares são utilizadas quando queremos buscar algo mais especifico onde 
apenas uma única palavra não traria o resultado desejado. 
 
Existem alguns caracteres especiais que são utilizados para isso, alguns deles até já vimos aqui 
como o ^ para referenciar inicio de linha ou opções de valores como [a-z] que seria qualquer 
caractere de a até z minúsculo. 
 
Vamos então na sequência ver mais um pouco a respeito das expressões regulares. 
2.6.1 Expressões Regulares Básicas 
Expressões regulares básicas nós já utilizamos em alguns momentos. 
 
Exemplo 1 – Asterisco (*) 
O asterísco é 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 diretório /home/mike. 
 
Exemplo 2 – Interrogação(?) 
Também temos outros caracteres especiais como “?” (interrogação) que representa qualquer 
coisa apenas uma vez. Acompanhe o exemplo abaixo: 
 
ls /home/mike/test?.txt 
 
Esta expressão encontrará por exemplo o arquivo teste.txt mas não encontrará o teste2.txt 
 
Exemplo 3 – Colchetes [] 
Podemos também usar sequências de caracteres com o [ ] (colchetes). Um exemplo seria 
conforme abaixo: 
 
ls /home/mike/teste[0-9].txt 
Dica: Procure ajuda sobre o comando find (man find) e verifique quais parâmetros que 
podem ser utilizados e o que faz o -ctime. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 69 
Nesse comando o resultado mostraria para nós o arquivo teste2.txt mas não mostraria o 
arquivo teste.txt 
 
2.6.2 Expressões Regulares Estendida 
Para exemplificarmos o uso das expressões 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, nós utilizamos o egrep invés 
do grep porque o egrep é um alias (apelido) para o comando grep –E que significa a 
utilização de expressões 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 expressões 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 
representação de OR (OU). 
 
 
 
 
Informação importante: 
 
Imagine por exemplo que você quer listar todas as linhas de um arquivo que contenha um 
endereço ip. Os endereços possuem tamanhos variáveis, onde eles podem ter de 1 a 3 
dígitos, repetindo este padrão 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 três vezes 
\. – seguido de um ponto 
{3} – Ocorrendo três vezes 
[0-9] – com um numero qualquer de 0 até 9 
{1,3} – Podendo ter de um até três dígitos 
 
Para maiores detalhes sobre expressões regulares verifique os links abaixo. 
http://en.wikipedia.org/wiki/Regular_expression 
http://aurelio.net/regex/ 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 70 
3 Transformando Comandos em Scripts 
Peso: 4 
Descrição: Transformando comandos repetidos em um script simples. 
 
Tópicos Importantes: 
 
Edição de texto básica 
Script básico 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários 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 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 71 
3.1 Edição Básica de Texto (editores de texto) 
Um script é nada mais que uma série de comandos colocados em ordem dentro de um 
arquivo para que estes sejam executados sempre da mesma forma. Os scripts podem ou não 
receber valores extras pela linha de comando, isso vária de acordo com a finalidade do script. 
 
Antes de fazermos um script precisamos conhecer os editores de texto que temos 
disponíveis. Claro que você pode utilizar qualquer editor de texto disponível 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 são: 
 
 VI 
 Gnu NANO 
 Emacs 
 Pico 
 
Vamos cobrir apenas o VI e nano que estão presentes em todas as distribuições. 
3.1.1 Editor de Texto vi 
O editor de texto vi é um dos mais usados pelos administradores Linux e também por 
programadores. Ele dispõe de muitos recursos existindo até mesmo livros ensinando como 
utilizar o vi. 
 
Em alguns casos você tem apenas a versão pura do vi instalado, este é um pouco mais 
complexo de se utilizar pois depende de muitas funções do teclado. 
 
Já a versão 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 
 
 
 
Ao entrar no editor você não estará em modo de edição, para isso é necessário pressionar a 
tecla i do teclado ou o botão insert, desta forma você estará pronto para começar a digitar. 
 
 
Obs: lembre-se que no caso de estar dentro do vi para abrir o arquivo é necessário passar o 
caminho todo para ele (ex: :open /etc/apache2/sites-enabled/000-default) 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 72 
Acompanhe abaixo uma lista dos comandos mais básicos. 
 
Comandos no vi: 
 
i: inserir 
x: apaga um caractere 
dd: apaga uma linha 
o: adiciona uma nova linha e entra em modo edição (i) 
q: sair 
w: salvar 
 
 
 
Por exemplo, para salvar o documento que você está utilizando é possível 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 conteúdo na mesma 
interface. Por exemplo, vamos dizer que você está com o arquivo do apache instalado e quer 
abrir a configuração do serviço de ftp, você então 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 divisão vertical utilize vsplit . 
 
Veja abaixo uma tela do vi, onde estamos com o vi aberto com dois arquivos de código fonte, 
como você pode ver o vi permite a utilização de syntax hilight. 
 
 
 
 
Importante: para alterar de um comando para outro é necessário pressionar a tecla esc 
para sair do modo que você está. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 73 
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 série de comandos, veja a seguir uma configuração aberta. 
 
 
 
 
 
3.2 Shell Script Básico 
Um shell script pode ser basicamente uma série de comandos colocados juntos dentro de 
um arquivo para ser executado, como também 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, porém se você apenas o executar sem especificar o interpretador 
então ele precisa desta informação para saber como deve proceder a execução. 
 
 
Dica: O mais importante de tudo é que você se sinta bem ao utilizar um determinado editor 
de texto, seja ele qual for. Mas também é muito importante que você tenha alguma prática 
em outro tipo de editor, como uma alternativa, pois pode acontecer de o sistema que você 
precisar manipular não ter o editor de sua preferência. 
 
Maiores informações sobre os editores você pode ver no man de cada um deles. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 74 
Vamos analisar um pequeno script como exemplo. Acompanhe na figura abaixo. 
 
 
 
Atente que definimos a opção :set number no vi para que exibisse no canto esquerdo o 
número das linhas, assim fica mais fácil de explicar. 
 
Na linha 1 definimos o interpretador padrão 
Na linha 3 definimos uma variável chamada NOME 
Na linha 5 exibimos o texto Qual o seu nome ? 
Na linha 7 chamamos o comando read para ler o que o usuário digitar, e jogamos para uma 
variável chamada NOVONOME 
Na linha 9 realizamos uma comparação 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 não seja mike 
 
Este é um pequeno exemplo de shell script, vamos na sequência utilizar algo mais real, apenas 
como forma de exemplificar o que pode ser feito. 
 
Este é um pequeno pedaço de um script de backup. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 75 
No inicio do mesmo ele lê uma série de configurações em um outro arquivo e define as 
variáveis 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 conteúdo 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 nós a utilização de algumas ferramentas já conhecidas do 
pessoal de programação como if, else, while, for, case e outras ferramentas para 
comparação de resultados. O bash traz também alguns operadores básicos que você pode 
verificar abaixo. 
 
-e: verifica se o arquivo existe 
-f: verifica se é um arquivo e não um diretório ou arquivo de dispositivo 
-s: verifica se o tamanho do arquivo é diferente de 0 
-d: verifica se é um diretório 
-r: verifica se o usuário tem permissão de leitura 
-w: verifica se o usuário tem permissão de escrita 
!: utilizando junto com outros representa ação contrária (ex: não ter permissão, não existir 
etc...) 
 
Na linha de comando para não precisar digitar o if você pode usar a ferramenta test juntamente 
com estas opções, por exemplo, testar se um arquivo tem permissão de escrita para você: 
 
test –w /etc/passwd && echo “Escrita” || echo “Leitura” 
 
Nesse caso nós 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 $? 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 76 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Capítulo 4 – O sistema 
operacional Linux 
 
Objetivos do Capítulo 
 
Ao final desse capítulo você deverá ser 
capaz de: 
 
 Os principais sistemas operacionais e 
distribuições Linux. 
 Os componentes que fazem parte 
dos desktops e servidores. 
 Onde os vários tipos de dados são 
armazenados em um sistema Linux. 
 As configurações mais importantes 
de rede e com os requisitos básicos 
que o computador necessita para 
funcionar em uma rede LAN (Local 
Area Network). 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 77 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sumário do Capítulo 
 
1 Escolhendo um Sistema Operacional _ 78 
1.1 Windows, MacOS, Linux, BSD e Solaris
 79 
1.2 Gerenciamento do Ciclo de Vida das 
Distribuições _________________________ 80 
1.3 Interface Grafica Vs Linha de Comando
 81 
2 Entendendo o Hardware do Computador
 82 
2.1 HD e Partições __________________ 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 
3 Onde os Dados são Armazenados ___ 86 
3.1 Kernel _________________________ 87 
3.2 Processos ______________________ 88 
3.3 Verificação de Memória __________ 89 
3.4 syslog, klog, dmesg ______________ 90 
3.5 Diretórios do Linux ______________ 91 
3.6 Pacotes e Banco de Dados de Pacote 92 
3.7 Bibliotecas _____________________ 93 
4 Seu Computador na Rede __________ 94 
4.1 Internet, Rede, Roteadores ________ 95 
4.2 DNS ___________________________ 96 
4.3 Configuração de Rede ____________ 96 
4.3.1 Configuração Manual _____________ 97 
4.3.2 Configuração Através de Arquivos de 
Configurações __________________________ 100 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 78 
1 Escolhendo um Sistema Operacional 
Peso: 1 
Descrição: Conhecer sobre os principais sistemas operacionais e as distribuições Linux. 
 
Tópicos Importantes: 
 
Diferença entre o Linux, Windows e Mac 
Gerenciamento do ciclo de vida da distribuição 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
GUI versus command line, desktop configuration 
Maintenance cycles, Beta and Stable 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 79 
1.1 Windows, MacOS, Linux, BSD e Solaris 
Hoje em dia temos muitos sistemas operacionais, mas os mais conhecidos são o MS Windows, 
MacOS, Linux e os derivados de BSD como o FreeBSD e OpenBSD. 
 
O MacOS da Apple é baseado em BSD também, então acaba sendo um sistema muito parecido 
com o Linux. A grande diferença é o Windows, que não é baseado em Unix como os outros, o 
sistema da Microsoft também incorporou algumas coisas do Linux e BSD, por exemplo, da 
versão 2000 do Windows em diante não é necessário reiniciar o computador após trocar a 
configuração de rede porque foi implementando um modelo baseado em BSD. Uma das grandes 
vantagens dos sistemas "Unix Like" é a questão da segurança devido a seu modelo de 
permissões e arquitetura do sistema. 
 
O Windows como você já deve ter percebido é líder no mercado de Desktops, mas nos 
últimos anos o Linux evoluiu muito nesta área. Se você comparar as primeiros interfaces 
gráficas com as atuais você consegue ter uma noção nítida desta questão. 
 
Alguns anos atrás era comum ouvir as pessoas falando que não usavam Linux porque não 
conseguiam utilizar o cdrom ou o disquete, isso tudo na verdade se dava devido a diferença de 
conceito, no Windows você coloca o CD no drive e o Windows já o disponibiliza para você, no 
Linux era necessário utilizar o processo de montagem manualmente, existiam alguns 
programas que ajudavam neste processo como o automount que já não é mais usado. Com a 
chegada do haldaemon e posteriormente do udev isso tudo mudou, o Linux tornou-se mais fácil 
para trabalhar com dispositivos removíveis. 
 
Fora estas questões a grande diferença é a questão do modelo comercial, como o Windows é 
proprietário e ninguém além da própria Microsoft pode ter acesso ao código fonte do mesmo 
isso gera um entrave muito grande, pois não sabemos até onde nossos dados são mantidos em 
sigilo já que o código do mesmo é fechado. 
 
O mesmo é claro acontece com o sistema da Apple, por mais que o sistema seja baseado em 
BSD a apple não libera a sua versão das coisas em modelo aberto, assim sendo, a mesma 
duvida recai sobre a apple. 
 
Algum tempo atrás a Sun Microsystem abriu o código fonte de seu Solaris (Unix da Sun) 
criando assim o projeto OpenSolaris, do qual rapidamente nasceu algumas distribuições. A 
licença da Sun não é GPL, porém, também permite visualização e alteração do código fonte. 
Com a aquisição da Sun pela Oracle o projeto foi extinto porém criou-se um fork do mesmo, 
uma das distribuições existentes é o OpenIndiana, você pode ver mais a respeitoem 
http://openindiana.org/ 
 
Agora como uma opinião pessoal eu diria, o melhor sistema operacional a ser utilizado 
depende muito de sua necessidade, existem sistemas operacionais que são excelentes em 
algumas tarefas e pecam em outras. Existem restrições de projeto que também não lhe 
permitem uma escolha, como por exemplo a utilização de banco de dados SQL Server ou 
páginas escritas em ASP utilizando recursos que só existem no Windows (como o framework 
.NET). Tirando estes casos é quase sempre possível a utilização de Linux e existem aqueles que 
preferem o BSD ao Linux. 
 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 80 
1.2 Gerenciamento do Ciclo de Vida das Distribuições 
Distribuição debian 
Normalmente nós utilizamos um sistema operacional quando o mesmo está estável, salvo 
quando queremos testar novos recursos. Em sistemas Debian nós temos 3 estágios, sendo 
eles, stable (estável), testing (teste), unstable (instável). 
 
 
 
No caso do Debian basicamente a coisa funciona assim, quando uma versão stable é lançada os 
pacotes da unstable são colocados na testing e começam a sofrer alterações (já houve casos 
onde este período durou cerca de 5 anos). Após o sistema estar de acordo a equipe do Debian 
coloca a testing em freeze (congelado), neste momento o sistema não recebe mais 
modificações de versões, apenas correções das versões atuais. Algum tempo depois ele se 
tornará a nova versão testing, a unstable continuará sempre unstable e uma nova série de 
pacotes entram na testing que um dia se tornará estável novamente. 
 
Também é possível atualizar a distribuição de oldstable para stable (você usava a stable e 
agora existe uma nova stable), utilizando o gerenciador de pacotes apt-get. Após fazer as 
devidas configurações basta realizar o comando apt-get dist-upgrade que todo o seu sistema 
será atualizado para nova versão, é claro que você pode atualizar também para testing ou 
mesmo para unstable porém não é recomendado para sistemas em produção. 
 
 
 
 
Distribuição CentOS 
O CentOS é baseado no RedHat Enterprise Linux, basicamente a RedHat disponibiliza todo o 
código fonte de seus sistema operacional e o pessoal do CentOS baixa os fontes, compila e 
transforma em um CD para você provendo as atualizações e etc. 
 
 
 
 
Maiores informações sobre as versões do Debian podem ser verificadas no link abaixo: 
http://www.debian.org/releases/ 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 81 
Baseado nesta questão é trabalhado o ciclo de vida que a RedHat estabelece, as versões 5 e 6 
destes possuem um tempo de vida de 10 anos, seguido de 3 anos de tempo de vida extra. As 
versões 3 e 4 já tiveram seu tempo de vida encerrado, a versão 3 em 2010 e a versão 4 em 
2012. 
 
 
 
1.3 Interface Grafica Vs Linha de Comando 
A utilização de linha de comando, como você já pode ver no decorrer do curso, exige muito 
mais habilidade de que simplesmente pressionar um botão do mouse. 
 
Com certeza a curva de aprendizado para utilização de linha de comando é maior, mas você 
sempre aprenderá como as coisas funcionam. 
 
Através da linha de comando você pode passar muitos parâmetros para o sistema, e como já 
foi dito anteriormente, no Linux é possível fazer praticamente tudo através da linha de 
comando, exemplos disso que eu tenho da “vida real” são: 
 
 Gravação de TV 
 Alteração de Metadados de Imagens 
 Inserção de Marca d’agua em Imagens 
 Backups 
 Monitoramento 
 Scripts para automação de processos. 
 
Seja feito digitando manualmente ou através de scripts, no fim tudo é linha de comando e isso 
nos permite dimensionar de forma mais inteligente os recursos que dispomos. 
 
 
Maiores informações sobre o tempo de vida desta pode ser verificado no link abaixo: 
https://access.redhat.com/support/policy/updates/errata/?cid=1480606 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 82 
2 Entendendo o Hardware do Computador 
Peso: 2 
Descrição: Familiarizar-se com os componentes que fazem parte dos desktops e servidores. 
 
Tópicos Importantes: 
 
Hardware 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
Hard drives and partitions, motherboards, processors, power supplies, optical drives, 
peripherals 
Display types 
Drivers 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 83 
2.1 HD e Partições 
Normalmente ao ligarmos um HD (hard drive/disco rígido) ou outro dispositivo de bloco, 
podemos verificar as partições existentes através do comando fdisk –l. 
 
Também podemos utilizar o comando dmesg | less para tentar localizar as informações 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 partições listadas sda: sda1 sda2 sda3. 
 
Agora se digitarmos o comando fdisk –l veja a seguir as partições. 
 
 
 
Perceba que no caso para o disco sda as partições exibidas são exatamente as informadas 
anteriormente (sda1 sda2 sda3). 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 84 
Quando nós 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 partições e fazer a montagem das mesmas. 
 
2.2 Drivers Opticos 
Os drivers de CD-R/RW/DVD-R/RW atualmente no Linux são 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 
 
 
2.3 Drivers Extras 
Alguns dispositivos no Linux precisam de drivers extras para rodar. No Linux não chamamos 
de drivers e sim de módulos, estes módulos externos normalmente vem em código fonte 
para ser compilado. 
 
E existem alguns binários que executam algumas compilações mas a base do código é 
proprietária. Um exemplo disso são os drivers de vídeo da NVIDIA, alguns Linux já trazem 
uma opção de instalaçãoautomática, mas você pode baixar o driver para Linux no site da 
NVIDIA e tendo os pacotes certos a compilação e instalação do mesmo ocorre de forma 
razoavelmente automática. 
 
Existem algumas placas de rede que utilizam drivers externos para funcionar, hoje isso não é 
tão comum de se ver mas pode acontecer. Se o fabricante disponibiliza o driver é importante 
observar as limitações do mesmo, algumas vezes o mesmo só funciona em algumas versões de 
kernel, mas realizando a instalação o mesmo é inserido no kernel do Linux e passa a funcionar 
de forma automática. 
 
Existem também alguns drivers que são utilizado para liberação de recursos, como acontece 
com algumas controladores scsi/raid que possuem softwares de gerenciamento e 
monitoramento para o Linux. 
 
No geral para a compilação destes módulos é necessário que você tenha os aplicativos gcc, 
make, g++ além dos fontes do kernel, com tudo isso devidamente instalado os passos de 
compilação normalmente são make, make install. 
 
Em alguns casos é necessários executar o arquivo configure para que este gere o arquivo 
Makefile responsável pelas instruções de compilação, mas não é tão comum para módulos. 
 
 
Curiosidade: 
A pouco tempo atrás para utilizar gravadores de CD no Linux normalmente era preciso 
especificar no grub/lilo a opção hdX=ide-scsi, neste caso o X era o drive de CD. 
 
Por exemplo, hdc e habilitando o parâmetro ide-scsi ativava a emulação de scsi que era 
necessária para gravação de CDS, atualmente este processo não é mais necessário 
conforme já informamos anteriormente. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 85 
2.4 Verificando todo o Hardware de seu Computador 
Existe no Linux um utilitário muito bom chamado hwinfo, que permite que você gere um 
dump de todo o hardware disponível. 
 
O hwinfo traz informações sobre memória, hd, placa mãe, processador e outros dispositivos. 
Veja a seguir a saída do comando referente a memória. 
 
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 disponíveis 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 configuração do mesmo. O APM e o ACPI basicamente 
realizam o gerenciamento de energia, a verificação se uma fonte está ligada ou se a bateria 
está descarregada. Também disponibiliza, por exemplo, a configuração para ajustes de brilho 
do monitor. 
 
Existem outras ferramentas bastante importantes no gerenciamento de energia como o 
hdparm (gerenciamento do hd inclusive com relação a desempenho do mesmo) e o cpufreqd. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 86 
3 Onde os Dados são Armazenados 
Peso: 3 
Descrição: Entender onde os vários tipos de dados são armazenados em um sistema Linux. 
 
Tópicos Importantes: 
 
Kernel 
Processos 
syslog, klog, dmesg 
/lib, /usr/lib, /etc, /var/log 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
Programs, libraries, packages and package databases, system configuration 
Processes and process tables, memory addresses, system messaging and logging 
ps, top, free 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 87 
3.1 Kernel 
O Kernel do Linux é coração do mesmo, é onde a mágica acontece, onde o software e o 
hardware começam a se falar. Já vimos um pouco sobre o kernel nos capítulo 1 e 2. Aqui 
veremos onde as informações do kernel ficam armazenadas. 
 
As informações do kernel durante a execução ficam localizadas nos diretório /proc, /dev, por 
exemplo, nosso drive de CD após reconhecido aparece como dispositivo em /dev/sr0, se você 
verificar em /proc/scsi poderá ver os dispositivos reconhecidos. 
 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 88 
3.2 Processos 
Todo processo executado gera um número chamado PID (process ID). Este número é 
criado também no /proc, onde você pode verificar algumas informações sobre os processo, 
mas existem outros meios de se ter acesso as informações mais relevantes, uma delas é 
através do comando ps. Acompanhe na imagem abaixo. 
 
 
 
Veja que o comando utilizado foi ps aux, os parâmetros utilizados significam: 
 
 a - Seleciona todos os processo 
 u - Traz a listagem com os nomes dos usuários 
 x - Traz em formato BSD 
 
As informações do processo no /proc você pode verificar no man proc que irá trazer uma 
explicação detalhada de cada item. 
 
Outra forma muito utilizada para acompanhar os processos é através do comando top. O 
comando top mostra em tempo real o que acontece, veja abaixo. 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 89 
3.3 Verificação de Memória 
A verificação da memória via linha de comando é realizada através do comando free, veja a 
seguir a saída do comando. 
 
dltec@dltec:~$ free 
 total used free shared buffers cached 
Mem: 738856 508056 230800 0 69068 298372 
-/+ buffers/cache: 140616 598240 
Swap: 1046524 0 1046524 
dltec@dltec:~$ 
 
Atente que esses valores são exibidos em kilobytes. Uma informação importante é que o 
campo shared é obsoleto e deve ser ignorado de acordo com informação no manual. 
 
Você pode especificar alguns parâmetros para facilitar a leitura, como por exemplo –m para 
exibição de memória em MB, ou –g para GB, veja abaixo o mesmo resultado anterior agora 
com –m. 
 
dltec@dltec:~$ free -m 
 total used free shared buffers cached 
Mem: 721 496 225 0 67 291 
-/+ buffers/cache: 137 584 
Swap: 1021 0 1021 
dltec@dltec:~$ 
 
Também é possível verificar a utilizaçãode memória através do comando vmstat, veja ao 
lado uma saída 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 também permite que você ordene os 
resultados baseado na utilização de memória. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 90 
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 divisão das mensagens recebidas utilizando alguns nomes de 
serviços e outras facilities, desta maneira é possível pelo aplicativo separar as mensagens 
que recebe e organizar em arquivos separados 
 
O Debian utiliza por padrão a aplicação rsyslog, a configuração deste fica em 
/etc/rsyslog.conf. Veja abaixo um pedaço da configuração do mesmo. 
 
lpr.* -/var/log/lpr.log 
mail.* -/var/log/mail.log 
user.* -/var/log/user.log 
 
Ou seja, ele recebe a informação do log com os parâmetros lpr, mail e user (além de outras) e 
direciona cada um para um determinado arquivo. 
 
Também é possível direcionar vários 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 configuração, é para o 
arquivo /var/log/mail.log o seguinte conteúdo. 
 
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 autenticação do 
sistema de email do servidor, mostrando um login com sucesso do usuário x do domínio 
xxx.com.br (estes valores foram alterados para não mostrar dados legítimos de usuário). 
 
Ou seja, no fim, os aplicativos mandam as mensagens pelo syslog e o rsyslog recebe e trata 
estas mensagens. 
 
klog 
O Kernel do Linux também gera mensagens que são interpretadas pelo syslog, anteriormente 
havia um daemon chamado klogd para realizar a recepção destas mensagens, porém 
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 configuração em /etc/syslog.conf. 
 
O formato de configuração é parecido com o do rsyslog. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 91 
dmesg 
As mensagens do kernel também podem ser exibidas pelo comando dmesg. Já vimos um 
pouco sobre esse comando no tópico sobre HD e partições. 
 
Este comando exibe um buffer de 16384 bytes, após isso é feito o dump para ao arquivo 
/var/log/dmesg. Este buffer é necessário pois de acordo com a falha apresentada a 
mensagem de erro pode ocorrer apenas no buffer, não chegando a ser transferida para o 
arquivo de log devido a algum tipo de travamento. 
 
O dmesg é também utilizado para verificar as mensagens de boot do sistema operacional 
além de mensagens de kernel relacionadas a algum dispositivo inserido como um pendrive, 
webcam ou outro. 
 
3.5 Diretórios do Linux 
No quadro abaixo descrevemos a estrutura padrão de diretórios do Linux apenas para que 
você tenha uma noção melhor da finalidade de cada diretório. 
 
 
 
De todos estes diretórios existem dois em especial que precisam ser mencionados, sendo 
eles: 
 
 /etc/ 
 /var/log 
 
 
/ - Raiz do sistema 
/bin - Binários do sistema 
/boot - Arquivos necessários para o boot do sistema 
/dev - Arquivos relacionados a comunicação com dispositivos 
/home - Arquivos de usuários 
/lib - Bibliotecas do sistema 
/lib32 - Bibliotecas do sistema para compatibilidade com sistemas 32 bits 
/media - Medias removíveis (pendrive, cds etc..) 
/mnt - Montagem de dispositivos (cds, pendrives, etc) 
/opt - Diretório para sofwares que não são do próprio sistema (software externos) 
/proc - Sistema de arquivo virtual para utilização de memória e alguns dispositivos 
/root - Diretório do usuário root 
/sbin - Binários do sistema para serem utilizados apenas pelo root 
/srv - Arquivos para serem oferecidos para serviços como ftp, rsync e outros 
/sys - Arquivos específicos de devices plug and play? 
/tmp - Arquivos temporários 
/usr - Arquivos instalados pela distribuição 
/var - Dados variáveis como logs , fila de e-mail e outros. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 92 
Estes diretórios são dos mais utilizados por qualquer administrador, o diretório /etc/ contém 
normalmente a configuração de todos os serviços que você executa e o /var/log contém 
os logs destes serviços. Vamos exemplificar. 
 
No Debian o serviço do apache 
Configuração: /etc/apache2/ 
Logs: /var/log/apache2 
 
No CentOS o serviço do apache 
Configuração: /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 dependências. 
 
O apt-get mantém uma lista dos pacotes no diretório /var/lib/apt/lists. 
 
Tenha em mente que cada repositório possui sua lista de arquivos lá e quando você solicita a 
instalação de algo o pacote é armazenado em /var/cache/apt/archive. Aqui ele será 
processado após o download e caso o download seja interrompido o pacote ficará em 
/var/cache/apt/archives/partial. 
 
Estes diretórios (archive e partial) podem ficar um pouco grande, principalmente em um 
desktop, então de vez em quando é recomendado executar o comando apt-get clean para 
remover o conteúdo existente nestes diretórios. 
 
No caso do gerenciador de pacotes yum existem três comandos base para limpar os dados do 
mesmo, sendo eles: 
 
 yum clean headers 
 yum clean packages 
 yum clean metadata 
 
Apenas para mantermos claro a questão do pacote, vamos novamente explicar alguns detalhes. 
 
.dpkg e .rpm são pacotes 
 
Pacotes neste caso são uma série de arquivos e scripts prontos para serem executados 
através 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 
 
http://www.gurulabs.com/GURULABS-RPM-LAB/GURULABS-RPM-GUIDE-v1.0.PDF
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 93 
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 código que é criado 
para ser utilizado por outros programas, com o objetivo de permitir a utilização 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. Através 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 invés de você criar 
uma biblioteca de criptografia você usa a libcrypto, e assim por diante, de acordo com o que já 
existe disponível. 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 importância dos 
gerenciadores de pacotes, pois eles manipulam estas dependências e trazem para você tudo 
para que o software funcione de forma adequada. 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 94 
4 Seu Computador na Rede 
Peso: 2 
Descrição: Familiarizar-se com as configurações mais importantes de rede e com os requisitos 
básicos que o computador necessita para funcionar em uma rede LAN (Local Area Network). 
 
Tópicos Importantes: 
 
Internet, network, routers 
Domain Name Service 
Network configuration 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
route 
resolv.conf 
IPv4, IPv6 
ifconfig, netstat, ping 
ssh, dig 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 95 
4.1 Internet, Rede, Roteadores 
No Linux é normal termos bastante convívio com ambientes de rede por isso é importante 
mencionarmos aqui algumas questões 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 conteúdo externo (que não esteja na 
sua rede) isso é realizado através de um roteador, que é o dispositivo que coloca você em 
contato com a internet, seja através de um modem adsl ou uma conexão dedicada. 
 
Muitas pessoas/empresas utilizam o Linux como roteador. Além de possível essa solução se 
torna bem flexível devido a quantidade de recursos disponíveis no Linux. Veja abaixo uma 
topologia simples como exemplo. 
 
 
 
Esta é uma topologia muita utilizada em ambientes de escritório e até mesmo em empresas 
maiores. Quanto maior a empresa, mais micros e switches você encontrará, mas a ideia básica 
é que você terá esses micros conectados no switch e o switch conectado no roteador/firewall. 
 
É importante ressaltar que tanto a função do roteador quanto do firewall podem ser realizados 
pelo Linux ou estarem em equipamentos com essa finalidade própria. Normalmente o firewall é 
um firewall Linux (existem muitos firewall BSD também além de soluções proprietárias). 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 96 
4.2 DNS 
DNS é DOMAIN NAME SERVICE ou seja, Serviço de Nome de Domínio. A ideia do DNS é 
simples, ele pega os endereços IPs e traduz para um nome. Imagine o seguinte, um endereço 
IP hoje, na versão IPv4, possui quatro sequências numéricas que vão de 0 até 255. Por 
exemplo, o endereço IP do site www.uol.com.br é 200.221.2.45. 
 
Não é muito mais fácil guardarmos o endereço uol.com.br do que 200.221.2.45? 
 
E essa é justamente a função do DNS, ao digitarmos www.uol.com.br o DNS irá traduzir esse 
endereço para 200.221.2.45, ou seja, ele realiza uma conversão de nomes para endereços IP. 
O dns também permitiu a criação de outros tipos de registros que no caso são utilizados para 
informar qual o host de email, qual o servidor de dns do domínio, quando o mesmo foi 
modificado, quem é o contato do domínio e por ai vai. 
 
No Linux temos vários aplicativos para fazer consultas em serviços de dns. O pacote bind-
utils (CentOS) / dnsutils (Debian) trazem uma série de ferramentas como os comandos 
dig, nslookup e o comando host que já é padrão no Linux. 
 
Por exemplo, para saber por exemplo qual o endereço de mx (servidor de email) do domínio 
dltec.com.br podemos utilizar o comando dig. Veja o exemplo a seguir. 
 
$ dig –t mx dltec.com.br 
 
O comando trará a seguinte saída (extraído apenas a parte que nos interessa) 
 
dltec.com.br. 14392 IN MX 0 dltec.com.br. 
 
Ou seja, o domínio 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 Configuração de Rede 
Vamos separar a configuração de rede para facilitar o entendimento em dois pontos, um que é 
o manual e outro que é a configuração por arquivo. 
 
Também iremos diferenciar cada uma das formas nos sistemas Debian e CentOS, pois cada 
um apresenta suas particularidades. 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
��
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 97 
4.3.1 Configuração Manual 
A configuração de rede é sempre dividida em três tarefas, mostradas no quadro abaixo. 
 
 
 
Configurando endereço IP 
Vamos imaginar nossa rede residencial, vamos supor também 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 endereço do seu roteador ADSL de conexão com a Internet da sua casa) e o host 10 (IP: 
192.168.0.10) será o nosso endereço IP (ou seja, o endereço IP do seu micro). 
 
Para os endereços 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] [endereço_ip] netmask [mascara_de_rede] 
 
Então 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 parâmetro, deverá trazer uma 
saída similar a figura a seguir. 
 
 
 
 
Configuração de Rede: 
 
 a configuração do endereço IP 
 a configuração de sua rota para internet (apontamento do gateway) 
 a configuração dos servidores de DNS 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 98 
Configuração do roteador 
Agora vamos realizar o apontamento do roteador, ou seja, definir qual o nosso gateway 
default. Esta expressão é bem assertiva porque gateway significa porta de entrada e default 
significa padrão, ou seja, para a internet, nós vamos definir a nossa porta de entrada padrão. 
 
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 após a opção add|del deveria vir a definição 
de host ou net e depois a rede e no exemplo colocamos apenas default. A expressão default 
significa –net 0.0.0.0/0, ou seja, isso significa qualquer rede. No caso este endereço é 
substituído pela palavra default ou então 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 parâmetro –n é para que 
ele não tente resolver nomes para o endereço, mostrando assim apenas os números dos 
endereços). 
 
Na imagem abaixo você pode verificar que do lado direito ele traz na segunda linha o endereço 
de destino 0.0.0.0 através do roteador 192.168.0.1 através da interface eth0, desta forma está 
definida a nossa configuração de rota padrão. 
 
 
 
Configurando os servidores DNS 
No Linux para definirmos qual será o nosso servidor de DNS padrão basta adicionar os 
endereços 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 informação dentro do arquivo: 
 
nameserver 8.8.8.8 
nameserver 8.8.4.4 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 99 
Testando as configurações 
Bem, agora que tudo está configurado vamos testar se a configuração está ok. A ferramenta 
básica 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 então está tudo certo. 
 
Vamos fazer o teste realizando o ping para o nosso gateway. Acompanhe na saída abaixo. 
 
$ ping -c 5 192.168.0.1 
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 
64 bytes from 192.168.0.1: icmp_req=1 ttl=255 time=5.62 ms 
64 bytes from 192.168.0.1: icmp_req=2 ttl=255 time=2.25 ms 
64 bytes from 192.168.0.1: icmp_req=3 ttl=255 time=2.26 ms 
64 bytes from 192.168.0.1: icmp_req=4 ttl=255 time=2.93 ms 
64 bytes from 192.168.0.1: icmp_req=5 ttl=255 time=4.35 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 parâmetro –c é para definir a 
contagem de pings. No nosso caso utilizamos -c 5, ou seja, ao receber 5 respostas ele encerra 
o comando. Caso não 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 então 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 configuração de DNS estiver ok e claro, o seu gateway também estiver ok, então sua 
conexão 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 configuração de endereço IP, gateway default e dns será enviada 
automaticamente do servidor DHCP para o seu micro. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 100 
4.3.2 Configuração Através de Arquivos de Configurações 
Modelo de configuração Debian 
A configuração de rede do Debian fica em /etc/network/interfaces, basicamente ele traz a 
definição 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 parâmetro auto. Isso significa que o 
sistema deverá iniciar a interface no boot, depois temos a definição básica dela, iface eth0 
inet static, e no caso da loopback, iface lo inet loopback. 
 
É muito importante ter a configuração de loopback, muitos serviços a utilizam essa interface 
para o seu funcionamento, seguindo a configuração temos então as definições de address 
(endereço ip), netmask, network, broadcast, gateway. Os parâmetros de network e 
broadcast não precisam ser colocados se a opção netmask está sendo utilizada, o sistema irá 
calcular automaticamente a rede e o broadcast. 
 
Esta configuração é lida sempre que a máquina é iniciada ou então 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 configuração está 
de um modo (um endereço ip X) e você troca para Y (com a rede funcionando) ele não irá 
conseguir aplicar suas configurações, pois ele irá tentar derrubar a rede e os endereços não irão 
coincidir. Nesses casos, uma opção seria aplicar a configuração manualmente (e apenas alterar 
os dados no arquivo) ou então alterar pelo arquivoe 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 configurações referente aos endereços, desta forma ele já funcionaria 
via dhcp. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 101 
Modelo de configuração RedHat 
No CentOS a configuração segue a linha do RedHat, até porque é uma distro feita sobre o 
RedHat. 
 
A configuração é 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 definição de se a rede 
deverá ou não ser utilizada. Também é possível definir o gateway nesta configuração mas não é 
obrigatório, pode ser junto com a configuração da placa de rede, como nossa placa de rede é a 
eth0 então nossa configuração fica em /etc/sysconifg/network-scripts/ifcfg-eth0. 
 
A ideia da configuração é bem parecida com a do Debian. O script do CentOS busca todos os 
arquivos ifcfg-* e dentro de cada arquivo nós informamos as configurações. 
 
É importante notar as opções DEVICE, BOOTPROTO, ONBOOT e TYPE. A opção DEVICE 
identifica para qual interface será aplicada a configuração, BOOTPROTO pode ser none,dhcp 
ou bootp, é importante que quando a configuração é estática a opção esteja marcada para none 
do contrário ele irá executar o comando para bootp ou dhcp de acordo com o que está 
configurado, a opção TYPE deve ser sempre Ethernet (existem configurações especiais onde 
este parâmetro será diferente, mas não iremos cobrir aqui) e finalmente na sequencia da 
configuração 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" 
 
Após realizar as alterações basta digitar o comando /etc/init.d/network restart que a 
configuração será devidamente aplicada. 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 102 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Capítulo 5 - Segurança e 
Permissões de Arquivos 
 
 
Objetivos do Capítulo 
 
Ao final desse capítulo você deverá 
entender os seguintes assuntos: 
 
 Os vários tipos de usuários no 
sistema Linux. 
 Como criar usuários e grupos em 
sistemas Linux. 
 Compreender sobre a manipulação 
de permissões e configurações de 
propriedades de arquivos. 
 Entender sobre os arquivos e 
diretórios especiais no Linux, 
incluindo suas permissões. 
 
 
 
 
 
 
 
 
 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 103 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sumário do Capítulo 
 
1 Segurança Básica e Identificação de 
Tipos de Usuários __________________ 104 
1.1 O Usuário root e os Usuários padrões
 105 
1.1.1 Verificando usuários logados ______ 105 
1.1.2 Verificando os Últimos Logins no 
Sistema 106 
1.1.3 Verificando Dados de um Usuário __ 106 
1.1.4 Tornando-se root _______________ 107 
1.2 Usuários de Sistema ____________ 107 
2 Criando Usuários e Grupos ________ 108 
2.1 Criando Grupos ________________ 109 
2.2 Criando Usuários _______________ 109 
2.2.1 Comando useradd ______________ 109 
2.2.2 Comando adduser ______________ 110 
2.3 Removendo Usuários e Grupos ____ 111 
2.4 Adicionando e Removendo Grupos de 
um Usuário _________________________ 112 
2.4.1 Adicionando Grupos com usermod _ 112 
2.4.2 Manipulando Grupos Diretamente no 
Arquivo /etc/group _____________________ 113 
3 Manipulando Permissões e Propriedades 
de Arquivo ________________________ 114 
3.1 Verificando as Permissões e 
Propriedades de um Arquivo ___________ 115 
3.2 Alterando o Grupo de um Arquivo ou 
Diretório ___________________________ 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 
4 Diretórios Especiais e Arquivos ____ 122 
4.1 Arquivos de Sistemas e Bibliotecas _ 123 
4.2 Links Simbólicos ________________ 124 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 104 
1 Segurança Básica e Identificação de Tipos de Usuários 
 
Peso: 2 
Descrição: Tomar conhecimento sobre os vários tipos de usuários no sistema Linux. 
 
Tópicos Importantes: 
 
Root and Standard Users 
System users 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
/etc/passwd, /etc/group 
id, who, w 
sudo 
su 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 105 
1.1 O Usuário root e os Usuários padrões 
O usuário root é o superusuário do Linux (e dos sistemas Unix e Unix Like), este é o usuário 
com UID 0, é o usuário com permissão completa no sistema, capaz de realizar qualquer 
modificação e também cometer erros catastróficos. 
 
 
 
Um usuário comum no Linux tem permissão apenas para executar tarefas em seu diretório, 
não tendo acesso a comandos de superusuário. Mesmo que consiga acessar os comandos 
normalmente não consegue executar algumas tarefas por não ter permissão para isso. 
 
 
 
Normalmente é adicionado o usuário comum em alguns grupos estratégicos para que ele tenha 
acesso a manipulação de impressoras, portas seriais, modems e outros periféricos. 
 
Basicamente o usuário comum deve ter acesso a menor quantidade possíveis de coisas, 
qualquer acesso que precise de mais permissões deve ser executado pelo root, isso garante que 
usuários mal intencionados não consigam realizar nada significante em seu sistema. 
 
Comando sudo: 
Em sistemas mais recentes popularizou-se o uso do comando sudo para executar comandos 
com permissão de root, porém isso também abre algumas brechas de segurança já que um 
usuário pouco experiente pode digitar sua senha para execução de algum código malicioso. 
 
1.1.1 Verificando usuárioslogados 
É possível verificar os usuários logados no sistema através do comando who ou w,veja a 
seguir uma tela com a execução dos dois comandos. 
 
Analisando a saída dos comandos você consegue ver que basicamente o comando who e o 
comando w exibem a mesma informação, mas o comando w traz algumas outras 
informações como uptime, quantidade de usuários logados, média de carga do equipamento e 
horário do login do usuário. 
 
Já o traz apenas nome, console, horário de login, ip, então dependendo de que informação 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:~$ 
 
 
Obs: quando estamos, via linha de terminal, acessando o sistema como um usário comum 
nosso prompt geralmente tem essa aparência (usuario@nomedaquina:$ ) 
Obs: quando estamos, via linha de terminal, acessando o sistema como root nosso prompt 
geralmente tem essa aparência (root@nomedaquina:# ) 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 106 
1.1.2 Verificando os Últimos Logins no Sistema 
Todo login gera uma informação no sistema e esta informação pode ser acessada através do 
comando last. 
 
Este comando irá trazer algumas informações como ip de origem (caso seja um acesso 
remoto), qual console foi utilizada, tempo de seção e data do login. 
 
Veja abaixo uma saída do comando last. 
 
 
1.1.3 Verificando Dados de um Usuário 
Você pode em algum momento querer saber a que grupos um determinado usuário 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 informação eu vejo que o id do usuário mike é 1000, e o grupo principal dele é 
1000 também, e ele não faz parte de nenhum outro grupo. 
 
 
 
Importante: 
 
Você também pode querer buscar no /etc/passwd qual o home do usuário ou então alguma 
anotação que possa existir neste, para isso podemos utilizar o comando: 
 
cat /etc/passwd | grep mike 
 
A saída exibida seria algo do tipo: 
 
mike:x:1000:1000::/home/mike:/bin/bash 
 
Neste caso nós temos a informação de nome, id, gid, diretório home e shell 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 107 
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# 
 
 
 
1.2 Usuários de Sistema 
Usuários de sistemas são usuários criados para que alguns serviços possam rodar sem a 
utilização do usuário root. O objetivo é prevenir que possíveis falhas nos serviços possam ser 
exploradas para ganhar acesso root ao sistema. 
 
Normalmente você verá alguns usuários como mysql, ntp, News, mail, lp, man e alguns outros, 
estes usuários não possuem nem devem possuir senha definida. Sempre que possível também 
é interessante que eles não tenham um shell válido, desta forma você evita que seja possível 
qualquer forma de login utilizando estes usuários, 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 não existe ele não consegue realizar login mesmo que 
seja definida uma senha. 
 
Curiosidade: 
 
E muito comum em alguns sistemas atuais que o usuário root não tenha senha definida, isso 
acontece porque o intuito é a centralização do gerenciamento utilizando o comando sudo. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 108 
2 Criando Usuários e Grupos 
Peso: 2 
Descrição: Criando usuários e grupos em sistemas Linux. 
 
Tópicos Importantes: 
 
Comando de usuário e grupo 
User IDs 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
/etc/passwd, /etc/shadow, /etc/group 
id, last 
useradd, groupadd 
passwd 
usermod, userdel 
groupmod, groupdel 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 109 
2.1 Criando Grupos 
A criação de grupos é bastante simples e utiliza-se apenas o comando groupadd, onde você 
pode definir alguns parâmetros ou não. 
 
Execução simples: 
 
$ groupadd meugrupo 
 
Execução com especificação de GID: 
 
$ groupadd –g 89 meugrupo 
 
Neste exemplo criamos o grupo com GID 89, enquanto no primeiro exemplo o grupo foi criado 
de forma automática. No caso da forma automática o grupo é criado utilizando a regra que está 
no arquivo /etc/login.defs 
 
GID_MIN 100 
GID_MAX 60000 
 
Ou seja, ele irá criar o grupo com um GID mínimo de 100 e máximo de 60000, porém ele 
segue uma contagem, se o ultimo grupo criado foi o 110, o próximo será o 111 e assim por 
diante. 
 
2.2 Criando Usuários 
Existem dois comandos que podem ser utilizados para criação de usuários, sendo que eles 
estão mostrados abaixo. 
 
 Comando useradd 
 Comando adduser 
 
Os dois fazem basicamente a mesma coisa, porém 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 utilitário de baixo nível pois depende de parâmetros informados na linha de 
comando. Normalmente recomenda-se a utilização do adduser, mas vamos ver aqui como 
deveria acontecer este processo do useradd. Veja um exemplo abaixo e acompanhe a 
explicação. 
 
$ useradd –m –s /bin/bash –g MEU_GRUPO –G vídeo,lp,audio –c “Usuario Teste” –d 
/home/teste teste 
 
Apenas para ter uma explicação básica dos parâmetros informados vejamos a lista abaixo: 
 
-m = criar diretório home 
-s = shell utilizado pelo usuário 
-g = grupo principal 
-G = grupos secundários 
-c = Comentário exibido no arquivo /etc/passwd 
-d = especificação de qual o diretório home do usuário 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � �� � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 110 
Após criar o usuário, 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 usuário é necessáiro definir uma senha para o mesmo, para isso é 
necessário utilizarmos o comando passwd: 
 
 $ passwd teste 
 
Após digitar este comando você será solicitado para digitar a senha e a confirmação da senha. 
 
As senhas ficam em um arquivo chamado /etc/shadow, este arquivo traz várias informações 
referente as senhas inclusive a quantidade de dias desde a ultima alteração de senha e outras 
informações. Você pode verificar a definição exata dos campos acessando o man shadow. 
 
2.2.2 Comando adduser 
O comando adduser permite também que você utilize as opções em linha de comando, porém 
se você digitar apenas o comando com o nome de usuário ele irá solicitar todas as informações 
necessárias. 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 então ele solicitou a senha e outras 
informações. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 111 
 
 
 
2.3 Removendo Usuários e Grupos 
Remoção de Usuários 
 
A remoção de usuários é bastante simples, apenas é importante pensar se queremos ou não 
remover o diretório do usuário. O comando userdel e deluser por padrão não fazem a 
remoção do diretório do usuário. 
 
Acompanhe no abaixo a forma de utilização dos dois comandos. 
 
Removendo com userdel: 
Remoção simples 
 
 $ userdel aluno02 
 
Remoção do usuário e do diretório do usuário 
 
 $ userdel –r aluno02 
 
Removendo com deluser 
A remoção com deluser também não remove o diretório home do usuário, para isso é 
necessário passar os parâmetros . O comando também permite a utilização de um parâmetro –
backup. Veja um exemplo abaixo: 
 
 $ deluser –remove-all-files –backup aluno 
 
O comando –backup irá produzir um arquivo de nome aluno.tar.gz no diretório de onde você 
executou o comando, obviamente o nome do arquivo vai variar de acordo com o nome do 
usuário que você está removendo. 
 
Já o comando –remove-all-files irá remover todos os arquivos do sistema ao qual o usuário 
removido é proprietário, se você quer remover apenas o home então altere para –remove-
home 
 
Removendo Grupos 
A remoção de grupos pode ser realizada pelo comando groupdel e delgroup. 
 
O comando groupdel não tem muito o que falar a respeito, a sintaxe dele é: 
 
$ groupdel GRUPO 
 
e ele irá remover o grupo. 
 
Importante: 
 
Vamos ver agora como ficaria o mesmo comando mas informando alguns parâmetros via 
linha de comando. 
 
$ adduser --home /home/aluno02 --shell /bin/bash --gecos "Aluno de Linux 
Essentials" aluno02 
 
Com este comando ele irá já lhe solicitar a senha para o usuário. 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 112 
Já o comando delgroup permite que você utilize o parâmetro –only-if-empty que irá 
proceder com a remoção apenas se o grupo não estiver sendo utilizado por nenhum usuário. 
 
2.4 Adicionando e Removendo Grupos de um Usuário 
A manipulação de grupos para o usuário é uma tarefa importante e muito comum em um 
ambiente operacional com sistema Linux. 
 
Basicamente podemos utilizar duas formas para manipularmos os grupos de um usuário. As 
duas formas estão citadas abaixo e a seguir veremos os detalhes da utilização de cada uma 
delas. 
 
Manipulação de grupos: 
 
 diretamente no arquivo /etc/group 
 comando usermod 
 
2.4.1 Adicionando Grupos com usermod 
O comando usermod é na verdade um comando para manipulação de usuários já existentes. 
Este comando permite que você faça alterações nos grupos e em outros parâmetros, 
porém vamos tratar apenas os grupos aqui, se desejar basta consultar o man usermod para 
saber os outros parâmetros. 
 
Acompanhe a seguir a utilização do comando. 
 
$ usermod –G grupo01,grupo02,grupo03 teste 
 
O comando acima irá adicionar como grupos suplementares os grupos 
grupo01,grupo02,grupo03 para o usuário teste. 
 
Após realizara esse comando se você consultar os grupos do usuário com o comando id teste 
você receberá a seguinte saída. 
 
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 é necessário quando utilizando o parâmetro –G utilizar também o parâmetro –
a. Dessa forma a maneira correta de adicionarmos o grupo04 para o usuário teste seria 
conforme mostrado abaixo. 
 
$ usermod –a –G grupo04 teste 
 
Agora ao listar os grupos do usuário teste vemos: 
 
uid=1001(teste) 
gid=1001(teste) 
grupos=1001(teste),1004(grupo01),1006(grupo03),1007(grupo02),1008(grupo04) 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 113 
Removendo Acesso ao Grupo com usermod 
A remoção do grupo com o usermod é realizada da mesma forma que a inserção, porém você 
precisará especificar todos os grupos que o usuário faz parte novamente. 
 
Por exemplo, para remover apenas o grupo02 do usuário 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 usuário ficará sem permissão aos dados do grupo02. 
 
2.4.2 Manipulando Grupos Diretamente no Arquivo /etc/group 
Também é possível realizara manipulação diretamente através do arquivo /etc/group. 
Tenha em mente que toda a manipulação realizada através dos comandos usermod , groupadd, 
groupdel refletem diretamente neste arquivo. A sintaxe do arquivo é: 
 
 nome_do_grupo:senha:GID:lista_de_usuários 
 
Normalmente não é utilizado senha para o grupo, mas é possível. Como exemplo, a seguir as 
linhas as quais o usuário 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 próprio grupo base do usuário, o grupo mencionado no arquivo 
/etc/passwd. Sequencialmente temos os demais grupos que criamos, e em todos, temos o 
usuário teste no ultimo campo. 
 
Se quiser adicionar ou remover um usuário basta acrescentar uma “,”(virgula) e o nome, 
ou então apenas remover o nome do usuário do grupo. 
 
Veja abaixo um exemplo de grupo com vários usuários. 
 
audio:x:29:mike,teste2,teste3 
 
O grupo áudio possui como membros os usuários mike,teste2,teste3, se quiser remover o 
usuário teste3 basta remove-lo da linha e ele estará sem acesso ao mesmo. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 114 
3 Manipulando Permissões e Propriedades de Arquivo 
Peso: 2 
Descrição: Compreender sobre a manipulação de permissões e configurações de propriedades 
de arquivos. 
 
Tópicos Importantes: 
 
Propriedade e permissões de arquivos e diretórios 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
ls -l 
chmod, chown 
chgrp 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 115 
3.1 Verificando as Permissões 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 diretório. 
 
No Linux temos três permissões básicas que são dono, grupo e outros, todas as permissões 
básicas são tratadas por estes três “indivíduos”. 
 
Você pode facilmente verificar as propriedades de um arquivo ou diretório utilizando o 
comando ls –l, veja um exemplo a seguir. 
 
dltec@dltec:~$ ls -l 
total 88 
drwxr-xr-x 2 dltec dltec 4096 Jul 23 12:48 Desktop 
drwxr-xr-x 2 dltec dltec 4096 Jul 23 12:48 Documents 
drwxr-xr-x 2 dltec dltec 4096 Sep 3 22:47 Downloads 
drwxr-xr-x 2 dltec dltec 4096 Jul 23 12:48 Music 
drwxr-xr-x 2 dltec dltec 4096 Jul 23 12:48 Pictures 
drwxr-xr-x 2 dltec dltec 4096 Jul 23 12:48 Public 
drwxr-xr-x 2 dltec dltec 4096 Jul 23 12:48 Templates 
drwxr-xr-x 2 dltec dltec 4096 Jul 23 12:48 Videos 
drwxr-xr-x 2 root root 4096 Sep 13 13:13 bin 
drwxr-xr-x 2 root root 4096 Sep 17 12:07 essentials 
-rw-r--r-- 1 dltec dltec 8445 Jul 23 12:35 examples.desktop 
drwxr-xr-x 3 root root 4096 Sep 16 15:47 lpi102 
-rw-rw-r-- 1 dltec dltec 29500 Sep 3 22:36 php.versoes 
dltec@dltec:~$ 
 
Perceba que temos os diretórios dos usuários, no primeiro campo temos em todos o conteúdo 
drwxr-xr-x. Vamos entender primeiro o que significam estes parâmetros. 
 
d = diretório 
rwx = read (leitura), write (escrita), execution (execução ) (para o dono) 
r-x = read, execution (para o grupo) 
r-x = read, execution (para outros usuários) 
Basicamente isso quer dizer que o dono pode tudo, o grupo e os outros podem acessar o 
diretório, mas não podem gravar no diretório. Continuando com a saída do comando ainda 
temos: 
 
O segundo campo com número 2 simboliza a quantidade de diretórios dentro de cada 
diretório. 
O terceiro campo representa o dono do arquivo ou diretório 
O quarto campo representa o grupo que possui acesso ao arquivo ou diretório 
O quinto campo é o tamanho 
O sexto campo é a data de modificação do mesmo 
O ultimo campo é o nome do arquivo ou diretório 
 
Com estas informações agora você sabe tudo a respeito do conteúdo. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 116 
3.2 Alterando o Grupo de um Arquivo ou Diretório 
A alteração 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 sequência a explicação de cada um. 
 
O Comando chgrp 
 
O comando chgrp possui uma string básica (chgrp opções grupo [pasta|arquivo]). 
 
A ideia é basicamente conforme mostrado abaixo. 
 
$ chgrp mike teste 
 
Desta forma definimos que o diretório teste é permitido ao grupo mike, porém vamos rever 
a permissão do mesmo: 
 
drwxr-xr-x 2 teste mike 4096 Mar 17 20:59 teste/ 
 
Veja que a permissão para o grupo é r-x e isso permite ao grupo entrar no diretório mas não 
permite escrever nada no diretório. 
 
Atente que quando falamos escrever falamos em editar arquivos, criar arquivos, remover 
arquivos ou diretórios, mais a frente veremos a utilização do comando chmod que resolve esta 
questão. 
 
O Comando chown 
O comando chown tem como função primária alterar o dono de um diretório ou arquivo, 
também podendo realizar a troca do grupo. 
 
Vamos alterar o nosso diretório teste para que ele pertença ao usuário mike. Acompanhe a 
seguir. 
 
$ chown mike teste 
 
Digamos que queiramos altera de uma única vez o dono e o grupo, então utilizamos o 
comando: 
 
$ chown mike:mike teste 
 
Agora nossa permissão é a seguinte. 
 
drwxr-xr-x 2 mike mike 4096 Mar 17 20:59 teste/ 
 
Perceba que desta forma ainda temos a questão de que o grupo mike não tem permissão de 
escrita no diretório. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 117 
3.2.1 O Comando chmod 
O chmod é o comando responsável por realizar as trocas de permissões de acesso. 
 
Vamos tratar o chmod de duas formas aqui, primeiro em forma literal e depois numérica. 
 
Permissões Literais (simbólicas) 
A ideia aqui já foi apresentada a você quando falamos anteriormente sobre os parâmetros 
rwx para o usuário, grupo e outros. 
 
Lembrando que a primeira sequência é referente ao dono, a segunda referente ao grupo e a 
terceira referente aos demais usuários. 
 
Precisamos lembrar de alguns detalhes 
 
 Permissões mínimas para diretórios: r-x 
 Permissões mínimas para arquivos: r— (ou rw-) 
 
Um arquivo precisa ao menos ter permissão de leitura, o correto seria ter também permissão 
de escrita, pelo menos para o dono. 
 
Os diretórios precisam ter a permissão de leitura e execução, sem a permissão de execução 
não é possível que o usuário entre no diretório. 
 
Se queremos que odono e o grupo tenham permissão no diretório teste então devemos 
aplicar as seguintes permissões, conforme mostrado abaixo. 
 
$ chmod g+rwx teste 
 
Agora a permissão de nosso diretório ficou: 
 
drwxrwxr-x 2 mike mike 4096 Mar 17 20:59 teste/ 
 
Como você pode ver os demais usuários possuem permissão para entrar em nosso diretório. 
Vamos então remover esta permissão: 
 
$ chmod o-r-x teste 
 
Agora temos a seguinte permissão. 
 
drwxrwx--- 2 mike mike 4096 Mar 17 20:59 teste/ 
 
Vamos entender o último comando executado para não termos confusão. 
 
chmod o-r-x 
 | |--- permissões a serem removidas (r-x) 
 | |----- símbolo de subtração, remoção 
 |------- permissão para outros 
 
ou seja, subtraímos as permissões r-x do parâmetro outros. 
 
Permissões Numéricas 
Antes de fazermos exemplos precisamos entender bem o funcionamento deste modelo de 
permissões, mesmo porque ele é o comumente mais utilizado. 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 118 
Por exemplo, para dar as permissões que demos na pasta teste poderíamos executar: chmod 
770 teste e o resultado seria o mesmo, mas antes precisamos entender o que significa este 
770. Acompanhe a explicação abaixo. 
 
Cada permissão corresponde a um octeto derivado da soma dos números 1,2,4 e qualquer 
digito não utilizado é entendido como 0. 
 
A ideia é : 
 
 (4) = leitura 
 (2) = escrita 
 (1) = execução 
 
Desta forma é, se eu quero ter permissão de leitura e escrita então (4+2)=6, então o 
parâmetro que usarei é 6. 
 
Por exemplo, digamos que fossemos dar um arquivo a permissão chmod 600 teste.txt, neste 
caso o arquivo teste.txt terá permissão rw-------. 
 
Se eu quero dar ao grupo a mesma permissão então o chmod será 660 e então nossa 
permissão será rw-rw---- . 
 
Podemos dar permissão também para os demais usuários com um chmod 666 teste.txt, 
ficando nossa permissão rw-rw-rw-. Não é tão difícil, certo? 
 
 
 
 
Informação adcional: 
 
Permissões para diretórios: 
 
Vamos então ver a permissão para diretório. Falamos anteriormente que um diretório 
precisa ter permissão de leitura e execução, realizando a soma dos números temos 
(4+1)=5. 
 
No entanto, queremos dar permissão completa para o dono, então seria (4+2+1)=7. 
Nesse caso o nosso chmod ficaria assim: chmod 750 teste, ficando nossa permissão rwx-
rw---- 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 119 
3.2.2 SUID, SGID e Stick Bit 
Além das permissões usuais para arquivos e diretórios (read, write e execution) temos outras 
permissões especiais que podemos encontrar. Nesse tópico 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 usuário executa um arquivo, o processo resultante dessa execução 
possui a mesma permissão do usuário que executou o arquivo. Quando o SUID é aplicado em 
um arquivo executável, esse arquivo será executado com o ID do dono desse arquivo e não 
do usuário 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 numérico. Veja um exemplo abaixo. 
 
$ chmod u+s meuarquivo 
ou 
 
$ chmod 4764 
 
Para verificarmos as permissões, 
 
$ ls –la meuarquivo 
-rwsrw-r-- 1 aluno aluno 0 Sep 01 15:56 meuarquivo 
 
Reparem que apareceu um "s" no campo relativo ao usuário (dono) do meuarquivo. Isso faz 
com que quando o "meuarquivo" for executado por algum outro usuário ele será executado com 
as permissões do seu dono, ou seja, com as permissões do usuário aluno. 
 
 
 
Um exemplo prático do uso desta permissão: 
 
Digamos que os usuários de um determinado sistema devam ser responsáveis por manter seu 
firewall rodando, ou seja, iniciar, parar, reiniciar o serviço. Mas, por questões de segurança o 
administrador do sistema não queira passar a senha de root para os usuários. 
 
A solução para essa questão é aplicar um SUID nesse firewall. Dessa forma, os usuários 
poderão executar o programa com as mesmas permissões do root e sem a necissadade de 
passarmos a senha de root para eles. 
 
 
Obs: se o SUID for aplicado em um arquivo que não tenha permissão de execução, em vez 
de s (minúsculo) aparecerá um S (maiúsculo). 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 120 
3.2.2.2 SGID (SET GROUP ID) 
O SGID é bem similar ao SUID, sua finalidade é fazer com que, quando um arquivo/diretório 
for criado, herde a permissão do grupo do diretório. Esta é uma permissão que sempre se 
encontrará no campo groups (g) e é representada pela letra "s". 
 
Por exemplo, se queremos que todos arquivos e diretórios que forem criados dentro de 
/home/aluno/meudir herdem a permissão do diretório meudir, basta aplicarmos o SGID nesse 
diretório. 
 
Para aplicarmos o SGID em um arquivo utilizamos a sintaxe especial "g+s" no comando 
chmod ou adicionando o prefixo "2" no modo numérico. 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 diretório que não tenha permissão de execução 
(permissão que permite entrar nesse diretório), em vez de s (minúsculo) aparecerá um S 
(maiúsculo). 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 121 
3.2.2.3 STICKY BIT 
O Bitsticky é uma permissão que chamamos de pegajosa, isso quer dizer que quando nós 
damos esta permissão a um arquivo/diretório, esse arquivo ou os arquivos dentro do diretório 
só poderão ser movidos ou removidos pelo dono do arquivo/diretório ou pelo root. 
 
Mesmo se o usuário tiver permissões de escrita não irá conseguir apagá-lo, só alterá-lo. Essa 
permissão é 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 numérico. 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 bastautilizarmos 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/diretório que não tenha permissão de execução, em 
vez de t (minúsculo) aparecerá um T (maiúsculo). 
 
 
 
 
Obs: se o sticky bit for aplicado em um arquivo/diretório que não tenha permissão de 
execução, em vez de t (minúsculo) aparecerá um T (maiúsculo). 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 122 
4 Diretórios Especiais e Arquivos 
Peso: 1 
Descrição: Entender sobre os arquivos e diretórios especiais no Linux, incluindo suas 
permissões. 
 
Tópicos Importantes: 
 
Arquivos de sistema e bibliotecas 
Links simbólicos 
 
Veja abaixo uma lista parcial com os arquivos, termos e utilitários mais utilizados: 
 
/etc, /var 
/tmp, /var/tmp and Sticky Bit 
ls -d 
ln -s 
Hard links 
Setuid/Setgid 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 123 
4.1 Arquivos de Sistemas e Bibliotecas 
 
Nos sistemas Linux nós temos muitos arquivos importantes referentes a configurações 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 configuração do sistema e dos aplicativos em geral ficam no diretório /etc. 
Este diretório é onde normalmente você vai trabalhar as configurações, vamos dar alguns 
exemplos: 
 
Configuração do vsftpd: /etc/vsftpd.conf 
Configuração do apache: /etc/apache2/apache2.conf 
Configuração do postfix: /etc/postfix/main.cf 
Configuração do mysql: /etc/mysql/my.cnf 
Configurações de inicialização: /etc/inittab 
Scripts suplementares: /etc/rcX.d/ 
 
Estes são apenas alguns exemplos para ilustrar onde as configurações costumam ficar 
armazenadas, como você pode ver, tudo fica no /etc e aí em algum diretório referente ao tipo 
de configuração. 
 
Bibliotecas 
Existem diretórios específicos onde as bibliotecas são armazenadas, mas existem duas 
opções básicas, sendo elas uma do sistema operacional em si e outra para os aplicativos. 
 
As bibliotecas do sistema ficam no diretório /lib e as dos aplicativos ficam em /usr/lib. 
 
No /lib, por exemplo, você tem a biblioteca da pam (módulo de autenticação), tem a biblioteca 
do devmapper que é o módulo de LVM do Linux e muitos outros. 
 
No diretório /usr/lib temos as bibliotecas do mysql, ldap, X11 e muitos outros, basicamente 
tudo que não é do sistema operacional estará lá. 
 
Outros Diretórios Importantes 
O Diretório /var 
O diretório /var é utilizado para várias finalidades. Temos dentro do /var o diretório log onde 
são armazenados os logs de sistema e aplicativos (/var/log), temos o diretório spool que é 
utilizado para filas de mensagens e outros conteúdos que tendem a permanecer no diretório 
para execução. Esses são apenas alguns exemplos, pois existem também outras finalidades 
dentro deste. 
 
O Diretório /tmp 
O diretório /tmp é como o nome sugere um diretório temporário. Ele é utilizado por algumas 
aplicações para armazenar alguns arquivos e depois os mesmos são removidos. 
 
Alguns Linux (como o Debian) removem todo o conteúdo do diretório quando o sistema está 
iniciando, então não é recomendado usar este diretório para nada que você queira consultar 
mais tarde. 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 124 
4.2 Links Simbólicos 
Um link simbólico é como se fosse um atalho, é um arquivo que na verdade aponta para 
outro arquivo, não 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 simbólico 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 permissões temos um l. Este l simboliza um link, depois 
temos o nome do arquivo (teste) seguido por um seta (apontamento) para um determinado 
diretório, 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 também ser um arquivo ao invés de um diretório). 
 
Para a criação de um link simbólico a sintaxe do comando é basicamente ln –s caminho 
nome_do_link, no nosso exemplo utilizamos o comando: 
 
ln -s /var/cache/apt/archives teste 
 
 
 
 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 125 
Conclusão 
Parabéns, se você chegou até aqui é porque concluiu seus estudos! 
 
Tenha certeza de que compreendeu todos os conceitos aqui mostrados. Dê uma repassada na 
matéria e tome notas dos pontos que não entendeu muito bem. 
 
 
Equipe DlteC do Brasil 
 
 
�
�
� � � � � � � � � � � 	 � � 
 � � 	 � � � � � � � � � � � � � � � � � � � 	 � � � 
 � 	 � � � � � � � � � � � � � � � � � � � � � � � � � 	 � � � � � � � �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
 
 
 
 
tel (41) 3045.7810 - info@dltec.com.br - www.dltec.com.br 
A p o s t i l a / e B o o k d o C u r s o L i n u x E s s e n t i a l s 
 
Página 126 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Para maiores informações sobre nossos treinamento visite o site: 
 
>>> http://www.dltec.com.br <<< 
 
 
 
 
Sobre o E-book/Apostila 
 
 
O conteúdo desse documento é uma adaptação 
da matéria online de leitura do curso. 
 
O presente material traz conteúdo teórico do 
curso online, porém temos que deixar claro que 
não é um curso e sim uma adaptação do 
nosso material online para e-book/apostila. 
Portanto recursos como exercícios, simulados, 
tutoria (tira dúvidas com professores) e vídeo 
aulas não fazem parte desse e-book, pois são 
exclusivos para alunos devidamente matriculados 
em nosso site oficial. 
 
 
http://www.dltec.com.br/

Mais conteúdos dessa disciplina