Buscar

Linux 01 Por tras da interface grafica

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

www.tinarede.com.br 
Fábio J. L. Ferreira 
 
Linux essencial 
Por trás da interface gráfica 
 
www.tinarede.com.br 
Licença 
 
Você pode: 
 
 
Com as seguintes condições: 
 
 
 
 
 
 
 
Acreditamos que ao compartilhar o conhecimento de forma aberta e gratuita estamos, no mínimo, 
incentivando terceiros a buscar um aprimoramento profissional. Inevitavelmente, contribuímos ainda 
para o crescimento pessoal e moral dessas pessoas. 
Todo e qualquer material disponibilizado por meio deste projeto é revisado, tendo como objetivo 
garantir um alto nível de qualidade e excelência. Não nos responsabilizamos de forma alguma por 
quebra de direitos autorais ou violação de propriedade intelectual que possa resultar em um ato 
considerado ilegal. Cada autor é responsável por responder legalmente por seu material. 
Copiar, distribuir, exibir e criar obras derivadas deste material. 
Você deve dar crédito ao autor original e ao projeto TI na Rede, citando o nome 
do autor (quando disponível) e fazendo referência ao site oficial do projeto. 
Os direitos de comercialização desta obra são de exclusividade do mantenedor 
oficial do projeto TI na Rede. Exceto nos casos em que o terceiro tenha uma 
autorização formal do mantenedor do projeto. 
Se você alterar, transformar ou criar outra obra com base nesta, somente poderá 
distribuí-la sob uma licença equivalente à original. 
 
www.tinarede.com.br 
Sumário 
Introdução ........................................................................................................................................ 7	
Linux – introdução teórica .............................................................................................................. 8	
1.1 Um pouco da história ............................................................................................................... 8	
1.2 Software livre ........................................................................................................................... 8	
1.3 Open source (código aberto) ................................................................................................... 9	
1.4 Código-fonte .......................................................................................................................... 10	
1.5 Qual a diferença entre Linux e GNU/Linux? .......................................................................... 10	
1.6 Sistema Operacional (SO) ..................................................................................................... 11	
1.7 Licença de software ............................................................................................................... 11	
1.7.1 GPL ................................................................................................................................ 11	
1.7.2 Copyleft .......................................................................................................................... 11	
1.7.3 Outras licenças ............................................................................................................... 12	
1.8 Distribuições Linux ................................................................................................................ 12	
1.9 Onde o Linux é usado ........................................................................................................... 12	
1.10 Qual é a melhor distribuição Linux? .................................................................................... 13	
1.11 Os benefícios de uma distribuição Linux ............................................................................. 13	
1.12 Por trás da interface gráfica ................................................................................................ 14	
1.13 Resumo ............................................................................................................................... 15	
Estrutura e funcionamento do Linux ........................................................................................... 16	
2.1 Estrutura sistêmica do GNU/Linux ........................................................................................ 16	
2.2 Terminal Virtual (ttyN) ............................................................................................................ 17	
2.3 Introdução ao shell ................................................................................................................ 17	
2.3.1 Logon e logout ................................................................................................................ 17	
2.3.2 Superusuário (root), usuário comum e usuário de sistema/serviço ............................... 17	
2.4 Primeiro contato com o shell ................................................................................................. 18	
2.5 Árvore de diretórios (“pastas”) ............................................................................................... 19	
2.6 Case-sensitive ....................................................................................................................... 20	
2.7 Referências absoluta e relativa ............................................................................................. 20	
2.8 Entrada e saída padrão de dados ......................................................................................... 21	
2.9 Resumo ................................................................................................................................. 21	
Programas comandos essenciais ............................................................................................... 23	
3.1 Programas comandos básicos .............................................................................................. 23	
3.1.1 help ................................................................................................................................. 23	
 
www.tinarede.com.br 
3.1.2 man ................................................................................................................................. 24	
3.1.3 logout .............................................................................................................................. 24	
3.1.4 shutdown, poweroff e halt ............................................................................................... 24	
3.1.5 reboot ............................................................................................................................. 25	
3.1.6 pwd (print working directory) .......................................................................................... 25	
3.1.7 history ............................................................................................................................. 25	
3.2 Manipulação de arquivos e diretórios .................................................................................... 26	
3.2.1 ls (list) ............................................................................................................................. 26	
3.2.1.1 Listando o conteúdo do diretório corrente ............................................................... 26	
3.2.1.2 Opções (atributos de listagem) ................................................................................ 26	
3.2.1.3 Listar arquivos ocultos ............................................................................................. 27	
3.2.2 cd (change directory) ...................................................................................................... 28	
3.2.3 cp (copy) ......................................................................................................................... 28	
3.2.4 rm (remove) .................................................................................................................... 28	
3.2.5 mkdir ...............................................................................................................................29	
3.2.6 rmdir ............................................................................................................................... 29	
3.2.7 cat (concatenar) .............................................................................................................. 29	
3.2.8 more ............................................................................................................................... 29	
3.2.9 cut (cortar) ...................................................................................................................... 30	
3.2.10 find ................................................................................................................................ 30	
3.2.11 grep .............................................................................................................................. 30	
3.2.12 head .............................................................................................................................. 31	
3.2.13 tail (lê do fim do arquivo) .............................................................................................. 31	
3.2.14 wc (contar) .................................................................................................................... 31	
3.2.15 tar (empacotar e desempacotar) .................................................................................. 32	
3.2.16 gzip e bzip2 (compactar e descompactar) .................................................................... 32	
3.2.17 Outros comandos ......................................................................................................... 33	
3.3 Curingas ................................................................................................................................ 34	
3.4 Utilizando | (pipe) para direcionar o processamento ............................................................. 34	
3.5 Encadeando execuções com ; (ponto e vírgula) e && .......................................................... 35	
3.5.1 Exemplos ........................................................................................................................ 35	
3.5.2 Redirecionar saída com > ou >> .................................................................................... 35	
3.6 Atalhos essenciais ................................................................................................................. 36	
3.7 Resumo ................................................................................................................................. 36	
Usuários, grupos e permissões ................................................................................................... 38	
4.1 O que é um usuário ............................................................................................................... 38	
4.2 O que é um grupo de usuários .............................................................................................. 38	
 
www.tinarede.com.br 
4.3 O que são permissões ........................................................................................................... 38	
4.4 Gerenciamento de usuários e grupos ................................................................................... 38	
4.4.1 Criar usuário ................................................................................................................... 39	
4.4.2 Editar usuário e senha .................................................................................................... 40	
4.4.3 Excluir usuário ................................................................................................................ 40	
4.4.4 Criar um grupo ................................................................................................................ 40	
4.4.5 Adicionar e remover usuário de um grupo ..................................................................... 41	
4.4.6 Excluir grupo ................................................................................................................... 41	
4.4.7 Diretório home do usuário .............................................................................................. 41	
4.5 Gerenciamento de permissões .............................................................................................. 41	
4.5.1 Adicionar, remover e definir permissões com chmod ..................................................... 42	
4.5.2 Usando chmod com método numérico ........................................................................... 43	
4.5.3 Umask ............................................................................................................................ 45	
4.5.3.1 Calcular umask ........................................................................................................ 45	
4.5.3.2 Umask para permissão ............................................................................................ 45	
4.5.3.3 Alterando umask ...................................................................................................... 45	
4.5.4 Permissões especiais ..................................................................................................... 46	
4.5.4.1 SUID (set user id) .................................................................................................... 46	
4.5.4.2 SGID (set group id) .................................................................................................. 47	
4.5.4.3 Sticky (sticky bit) ...................................................................................................... 47	
4.5.4.4 Vantagens (SUID, SGID e Sticky bit) ...................................................................... 48	
4.5.5 Sudo ............................................................................................................................... 49	
4.6 Resumo ................................................................................................................................. 49	
Editores de texto (Nano e VIM) ..................................................................................................... 51	
5.1 Nano ...................................................................................................................................... 51	
5.2 Vim (VI iMproved) .................................................................................................................. 52	
5.2.1 Comandos comuns ......................................................................................................... 54	
5.2.1.1 Salvar/Sair (modo de comando) .............................................................................. 54	
5.2.1.2 Movimentação (modo normal) ................................................................................. 54	
5.2.1.3 Saltos (modo normal) .............................................................................................. 55	
5.2.1.4 Editar ....................................................................................................................... 55	
5.2.1.5 Desfazer (modo normal) .......................................................................................... 56	
5.2.1.6 Buscar/Substituir (modo normal) ............................................................................. 56	
5.3 Nano ou Vim .......................................................................................................................... 56	
5.4 Resumo ................................................................................................................................. 56	
Instalar, atualizar e remover software ......................................................................................... 58	
 
www.tinarede.com.br 
6.1 Pacotes ..................................................................................................................................58	
6.2 Gerenciador de pacotes ........................................................................................................ 58	
6.3 Repositório ............................................................................................................................ 59	
6.4 Apt-get ou Aptitude? .............................................................................................................. 59	
6.4.1 Apt-get / apt-cache (básico) ........................................................................................... 60	
6.4.2 Aptitude (básico) ............................................................................................................. 61	
6.5 Yum ....................................................................................................................................... 62	
Gerenciamento de rede ................................................................................................................ 63	
7.1 Testando a conectividade ...................................................................................................... 63	
7.1.1 Ping ................................................................................................................................ 63	
7.1.2 Telnet .............................................................................................................................. 64	
7.1.3 Traceroute ...................................................................................................................... 64	
7.2 Visualizando e configurando endereço de rede .................................................................... 65	
7.2.1 Ifconfig ............................................................................................................................ 65	
7.2.2 dhclient ........................................................................................................................... 66	
7.2.3 Arquivo de configuração das interfaces de rede ............................................................ 66	
7.3 Resumo ................................................................................................................................. 67	
Lista de exercícios ........................................................................................................................ 68	
Exercícios ...................................................................................................................................... 69	
Respostas ...................................................................................................................................... 76	
Sugestões de estudo .................................................................................................................... 81	
Conclusão ...................................................................................................................................... 82	
Contatos ......................................................................................................................................... 83	
 
www.tinarede.com.br 
Introdução 
A sociedade moderna está totalmente dependente da tecnologia – esse é um fato consumado. 
Porém, em muitos aspectos somos meros usuários, ou seja, não compreendemos seu 
funcionamento e, por conta disso, nos tornamos reféns daqueles que detêm o poder sobre as 
tecnologias que utilizamos no dia a dia. Em alguns casos, somos considerados consumidores de 
tecnologia sem voz ativa nem poder de escolha. 
Não seja um mero usuário; tome as rédeas do jogo. Não sabe como? Neste momento, estou lhe 
convido a estudar, pesquisar e se aventurar no universo do software livre, um universo de 
possibilidades infinitas, limitadas tão somente pela sua imaginação e capacidade de inovar. 
Venha desbravar novos horizontes, ou melhor, venha por meio desta obra realizar uma mudança 
cultural na forma como você interage com o seu computador; deixe de ser um mero espectador 
refém das vontades da “máquina”, assuma o controle e passe a ditar as regras do jogo. Construa 
um conhecimento sólido e aprenda a solucionar problemas até então considerados “bichos de sete 
cabeças”. Dedique algumas poucas horas do seu dia a se encantar com o tema foco desta obra e 
garanto que não será uma perda de tempo; ainda que nem todo conhecimento adquirido aqui seja 
aplicado no seu cotidiano, todo e qualquer conhecimento é um bem valioso que mais cedo ou mais 
tarde irá render alguns bons frutos. 
O convite está feito! 
Em 2007 iniciei meus estudos e pesquisas sobre o tema Linux. Minha dedicação e vontade foram 
tamanhas que, poucos dias após iniciar os estudos, resolvi remover o Windows da minha máquina 
e instalar uma distribuição Linux; essa foi sem dúvida uma grande mudança “cultural” na minha 
vida. Foi uma longa jornada, porém obtive ótimos resultados com essa mudança. Em virtude da 
experiência adquirida, algumas portas se abriram e várias oportunidades de trabalho surgiram; 
confesso que foi um ótimo investimento de tempo dedicar atenção ao assunto, mas isso não veio 
do nada. Na verdade, eu estava há algum tempo acompanhando a comunidade de software livre, 
e fiquei encantado com o entusiasmo e empenho dos membros da comunidade; eles 
compartilhavam a experiência de uso e os conhecimentos cultivados na convivência diária com o 
uso desse incrível sistema. 
Esta obra irá abordar os pontos teóricos e práticos referentes ao sistema operacional GNU/Linux. 
Considere-a o seu ponto de partida. 
Aproveito para deixar um alerta: engana-se quem pensa que o mercado de TI está carente de vagas 
de trabalho. Na verdade, nos últimos anos esse mercado tem enfrentado um sério problema: a falta 
de profissionais qualificados para ocupar postos de trabalho nos mais diversos níveis hierárquicos 
das organizações. Sendo assim, sugiro que invista em si mesmo; essa será sua melhor aposta 
e também a garantia de seu sucesso! 
Chega de blá-blá-blá e vamos direto ao que interessa. Boa leitura! ;) 
 
www.tinarede.com.br 
Capítulo 1 
Linux – introdução teórica 
"Quem	pensa	segundo	a	opinião	dos	outros	está	muito	longe	de	ser	um	homem	livre."	
—	Autor	desconhecido	
No capítulo 2 iremos partir para uma abordagem prática. Porém, antes disso, se faz necessário 
entender alguns conceitos, filosofias, impactos e a importância do Linux na sociedade. Diante disso, 
peço que por gentileza tente não pular os tópicos deste primeiro capítulo introdutório. 
Alguns dos termos discutidos neste capítulo serão utilizados até o fim desta obra; sendo assim, seu 
entendimento se torna no mínimo obrigatório! 
1.1 Um pouco da história 
A busca incansável por mudar, aprimorar-se e, principalmente, evoluir levou o estudante de ciência 
da computação da Universidade de Helsinki, na Finlândia, Linus Torvalds a iniciar um processo de 
aprimoramento do núcleo do Minix, um sistema operacional Unix-like escrito por Andrew 
Tannenbaum. Deste aprimoramento surgiu o Linux, um kernel Unix-like, que teve sua primeira 
versão oficial publicada no final de 1991. 
Ao desenvolvê-lo, Linus quebrou todos os conceitos comerciais da história. Deixou aberto o código-
fonte do sistema, algo que resultaria em uma grande mudança, um fenômeno sem precedentes na 
história da evolução humana dos tempos modernos: o software livre. 
1.2 Software livre 
A ideia do software livre ganhou forma em meados de 1983 pelas mãos do ativista Richard Stallman, 
criador do projeto GNU e responsável por fundar em 1985 a Free Software Foundation (FSF), 
fundação sem fins lucrativos que tem como objetivo defender o movimento do software livre. 
Pode-se dizer que software livre é um movimento social que defende aspectos ligados diretamente 
à liberdade que o usuário tem perante o software. 
Segundo a FSF, qualquer software/programa deve obedecer a quatro liberdades para ser 
considerado um softwarelivre. São elas: 
• Liberdade 0 - Liberdade de executar o programa para qualquer propósito; 
• Liberdade 1 - Liberdade para estudar como o programa funciona e adaptá-lo às suas 
necessidades; 
• Liberdade 2 - Liberdade de redistribuir cópias de forma que você possa ajudar outras 
pessoas; 
 
www.tinarede.com.br 
• Liberdade 3 - Liberdade para melhorar o programa e disponibilizar as melhorias para o 
público, de forma que toda a comunidade possa se beneficiar delas. 
Para garantir as liberdades 2 e 3 é imprescindível ter acesso ao código-fonte do programa. 
 
A definição oficial de software livre pode ser encontrada no site do projeto GNU, ao acessar o link: 
http://www.gnu.org/philosophy/free-sw.html 
1.3 Open source (código aberto) 
Open source e software livre são a mesma coisa? Mais ou menos; existem diferenças sutis, porém 
ambos tentam nos garantir liberdades e direitos perante o software. 
A Open Source Initiative (OSI) tenta ser mais flexível do que a Free Software Foundation na 
classificação de software. Para tanto, dita dez regras utilizadas para classificar um software como 
open source; são elas: 
1) Distribuição livre: A licença não deve restringir de nenhuma maneira a venda ou 
distribuição do programa gratuitamente, como componente de outro programa ou não. 
 
2) Código-fonte: O programa deve incluir seu código-fonte e deve permitir a sua distribuição 
também na forma compilada. Se o programa não for distribuído com seu código-fonte, deve 
haver algum meio de obtê-lo, seja via rede, seja com custo apenas de reprodução. O código 
deve ser legível e inteligível para qualquer programador. 
 
3) Trabalhos derivados: A licença deve permitir modificações e trabalhos derivados, e deve 
permitir que eles sejam distribuídos sob os mesmos termos da licença original. 
 
4) Integridade do autor do código-fonte: A licença pode restringir a distribuição do código-
fonte em uma forma modificada apenas se a licença permitir a distribuição de arquivos patch 
(de atualização) com o código-fonte, para o propósito de modificar o programa no momento 
de sua construção. A licença deve explicitamente permitir a distribuição do programa 
construído a partir do código-fonte modificado. Contudo, a licença pode ainda requerer que 
programas derivados tenham um nome ou número de versão diferentes do programa 
original. 
 
5) Não discriminação contra pessoas ou grupos: A licença não pode ser discriminatória 
contra qualquer pessoa ou grupo de pessoas. 
 
O conceito de software livre se opõe às diretrizes do software proprietário, mas 
não às do software que é vendido almejando lucro (software comercial). 
 
Cuidado: não confunda software livre (free software) com software grátis 
(freeware). 
 
www.tinarede.com.br 
6) Não discriminação contra áreas de atuação: A licença não deve restringir o uso do 
programa por qualquer pessoa em um ramo específico de atuação. Por exemplo, ela não 
deve proibir que o programa seja usado em uma empresa, ou para pesquisa genética. 
 
7) Distribuição da licença: Os direitos associados ao programa devem ser aplicáveis para 
todos aqueles cujo programa é redistribuído, sem a necessidade da execução de uma 
licença adicional para estas partes. 
 
8) Licença não específica a um produto: Os direitos associados ao programa não devem 
depender de o programa ser parte de uma distribuição específica de programas. Se o 
programa é extraído de uma distribuição e usado ou distribuído dentro dos termos da licença 
do programa, todas as partes para quem o programa é redistribuído devem ter os mesmos 
direitos que os garantidos em conjunção com a distribuição de programas original. 
 
9) Licença não restritiva a outros programas: A licença não pode colocar restrições em 
outros programas que são distribuídos junto com o programa licenciado. Isto é, a licença 
não pode especificar que todos os programas distribuídos na mesma mídia de 
armazenamento sejam programas de código aberto. 
 
10) Licença neutra em relação a tecnologia: Nenhuma cláusula da licença pode estabelecer 
uma tecnologia individual, estilo ou interface a ser aplicada no programa. 
As regras acima foram retiradas do endereço http://softwarelivre.org/open-source-codigo-aberto 
Fonte oficial em inglês: http://www.opensource.org/docs/definition.php 
É importante ter em mente que, em muitos casos, um software livre também pode ser um open 
source e vice-versa. A FSF e a OSI não são inimigas, mas possuem pontos de vista divergentes. 
1.4 Código-fonte 
São basicamente as instruções que formam um programa. Essas instruções são escritas com base 
em alguma linguagem de programação, como por exemplo Java, C, Delphi, entre outras. 
Ter acesso ao código-fonte do software significa basicamente ter acesso às instruções inscritas 
nele em qualquer que seja a linguagem de programação. Mas, como assim? Não poderíamos 
simplesmente editar o software? Não, o resultado final de um software normalmente é um arquivo 
binário; em outras palavras, este arquivo nada mais é do que uma transformação da linguagem de 
programação para uma linguagem de máquina, incompreensiva para nós, meros mortais. Diante 
disso se faz necessário ter acesso ao código-fonte para poder estudar e/ou melhorar um software. 
1.5 Qual a diferença entre Linux e GNU/Linux? 
O Linux nada mais é do que um kernel (núcleo) do sistema; já o GNU/Linux é um sistema 
operacional completo, formado pela camada de kernel e pelos demais componentes do projeto 
GNU, tais como programas diversos, drivers, interface gráfica etc. 
 
www.tinarede.com.br 
O projeto GNU tinha como objetivo criar um sistema operacional completo, gratuito e livre. Quase 
tudo estava pronto, porém o GNU ainda não possuía a parte mais importante, um núcleo para o seu 
sistema. Foi aí que Linus Torvalds entrou na história, e da união do GNU com o Linux surgiu o 
GNU/Linux, que hoje é popularmente conhecido apenas como Linux, nome que não faz justiça a 
todos aqueles que contribuíram e continuam contribuindo para o crescimento do sistema 
operacional GNU/Linux. 
Existe um outro entendimento segundo o qual Linux é o nome dado a qualquer sistema que utilize 
o núcleo (kernel) Linux. Porém, não custa nada colocar um GNU antes do nome, né? 😉 
1.6 Sistema Operacional (SO) 
É um software/programa ou conjunto de programas que tem como função principal gerenciar os 
recursos do sistema, tais como quem recebe atenção do processador, quanto de memória 
determinado processo irá utilizar, qual a prioridade dos processos etc. Em outras palavras, um 
sistema operacional é responsável por realizar uma interface entre o usuário e a máquina, 
abstraindo e simplificando a realização de tarefas diversas. Pense no sistema operacional como 
uma interface amigável, um verdadeiro amigo, pois sem ele você teria que lidar com a dificuldade 
de gerenciar a memória, a prioridade entre os processos e muito mais. 
Este conceito é extremamente importante e vasto, mas não nos convém entrar em detalhes neste 
momento. 
1.7 Licença de software 
Todo software quando criado é associado a um documento, que tem como objetivo informar o que 
é permitido ou não fazer com aquele software. Esse documento é a licença do software; ela é quem 
dita as regras do “jogo”! 
1.7.1 GPL 
Em geral, o GNU/Linux segue as regras prescritas na GPL (GNU Public License), criada em 1989 
e revisada pela primeira vez em 1991, quando resultou na GPLv2 (GPL versão 2). A revisão mais 
recente até o lançamento desta obra é a de 2007, a GPLv3 (GPL versão 3). As quatro liberdades 
do software livre são garantidas graças à licença GPL. 
 
1.7.2 Copyleft 
Este é um termo comum no mundo do software livre; ele é basicamente o oposto do copyright. 
Enquanto o copyright se concentra em pontuar as restrições, o copyleft se concentra em pontuar as 
permissões consentidaspela licença. Em outras palavras, o copyleft se concentra em garantir que 
Para mais informações a respeito da GPL: www.gnu.org/licenses/gpl.html 
 
www.tinarede.com.br 
determinados direitos/permissões consentidos por sua licença acompanhem o software durante sua 
existência, e que versões derivadas dele carreguem consigo a mesma licença do software original. 
1.7.3 Outras licenças 
 
1.8 Distribuições Linux 
Quando falo em distribuições Linux, estou me referindo ao conjunto formado por kernel, programas 
e aplicativos que compõem um sistema operacional do tipo Unix-Like. Como já foi dito, Linux é 
somente o kernel do sistema; isso significa que as distribuições Linux utilizam o mesmo kernel, 
porém acoplam a si alguns programas e aplicativos conforme a necessidade que levou à criação 
daquela “distribuição ou customização” em especial. 
Existem algumas distribuições comerciais e outras não comerciais. No caso das distribuições 
comerciais, o utilizador paga pelo sistema e recebe suporte técnico para ele; já no segundo caso, 
não existe essa cobrança pelo uso do sistema, porém, se surgir algum problema, o utilizador terá 
que buscar ajuda em alguma lista de discussão na internet para tentar obter uma solução. 
As distribuições não comerciais também são conhecidas como distribuições comunitárias; um bom 
exemplo é o GNU/Linux Debian, um sistema operacional disponibilizado gratuitamente, mantido 
por uma comunidade de desenvolvedores e amantes do universo livre. 
Exemplos de distribuições GNU/Linux comunitárias: Debian, Ubuntu, Slackware, Mint... 
 
1.9 Onde o Linux é usado 
Um dia o Linux já foi um sistema imaturo e incompreendido. Mas, calma, ele era somente um bebê, 
ou melhor, um recém-nascido. O tempo passou e a cada novo aniversário ele adquiriu mais 
maturidade e destaque perante a comunidade. Atualmente esse sistema é utilizado em relógios de 
pulso, celulares, computadores, mainframes etc. 
Recordo-me de dois fatos históricos da trajetória desse sistema: o primeiro foi em 2001, quando a 
IBM anunciou o investimento de 1 bilhão de dólares em Linux; já o segundo foi em julho desse 
mesmo ano, quando a NASA anunciou o lançamento de um assistente pessoal de satélite baseado 
em Linux. 
Você pode nem imaginar, mas grandes estúdios de animação, tais como Pixar Estúdios, Lucas 
Arts e DreamWorks já utilizaram ou ainda utilizam o Linux na renderização de suas obras. Alguns 
Existem inúmeras outras licenças, algumas compatíveis com a filosofia do software 
livre e outras, não. Veja uma lista parcial: www.gnu.org/licenses/license-list.html 
Os mais íntimos preferem o termo distro Linux ao invés de distribuição Linux. 
 
www.tinarede.com.br 
bons exemplos de obras renderizadas utilizando o Linux são: O Senhor dos Anéis, Vida de Inseto 
e Shrek. 
1.10 Qual é a melhor distribuição Linux? 
Vixi, calma lá! Não existe a melhor distribuição; existe aquela que é mais adequada às suas 
necessidades. Listarei abaixo as minhas preferências: 
• Servidor: Para montar servidores gosto muito de utilizar a distribuição Debian; essa é uma 
distribuição comunitária muito famosa e com uma comunidade altamente ativa. 
 
• Uso pessoal: Em meu desktop e notebook gosto de utilizar o Linux Mint; essa distribuição 
já vem por padrão com uma suíte de multimídia e software básicos pré-instalados. A distro 
em questão também possui uma central de software, ou seja, um local onde você tem um 
catálogo de itens que podem ser baixados e instalados automaticamente, sem necessitar 
de nenhuma interação humana. Mais simples que isso, impossível. 
Então, Debian é a melhor opção para montar servidor e Linux Mint para uso pessoal? Não; essas 
foram as melhores opções para mim, mas cada um de nós vê o mundo de uma forma diferente e 
possui necessidades distintas. Sugiro que faça como eu: teste outras distribuições Linux até 
encontrar sua cara-metade. 
Em alguns casos gosto inclusive de usar o CentOS para servidor e o Ubuntu para uso pessoal, 
porém a minha maior preferência é pelos sistemas citados no início deste tópico. 
1.11 Os benefícios de uma distribuição Linux 
Ah, os benefícios, palavra amada e cobiçada por nós, meros mortais! Os benefícios são inúmeros; 
por este motivo listarei abaixo somente os mais relevantes: 
• Segurança: Esse é um assunto que poderia render facilmente várias páginas, porém não 
pretendo me aprofundar nele, uma vez que não representa o foco principal desta obra. Os 
tópicos abaixo possuem a função de expor os pontos fortes no quesito segurança das 
distribuições Linux: 
 
o Atualização constante: Possui atualizações regulares, o que se deve em parte ao 
fato de seu código ser aberto; como todos têm acesso às fontes do sistema, quando 
alguém identifica algum problema ou uma possível melhoria uma discussão é 
iniciada dentro da comunidade de software livre. Poucos dias depois, se não no dia 
seguinte, uma correção é disponibilizada; 
 
o Superusuário: O grande erro dos usuários de Windows é utilizar o sistema 
operacional com a conta de administrador; isso abre brecha para que malware se 
instalem no sistema. Já as distribuições Linux criam por padrão duas contas de 
usuário durante a etapa de instalação, o root (superusuário) e um usuário comum. 
 
www.tinarede.com.br 
Ao utilizar a máquina com o usuário comum, já elevamos nosso grau de segurança. 
Existem ainda as contas de usuário de sistema/serviço. Falaremos delas mais 
adiante; 
 
o Firewall no nível de kernel: Por padrão, o firewall das distribuições Linux está 
presente dentro do próprio kernel, ou seja, faz parte do núcleo do sistema, o que 
adiciona 1 ponto extra no quesito segurança; em capítulos posteriores falaremos 
sobre este recurso. 
 
• Custo/benefício: Seu custo de aquisição pode ser igual a 0 (zero). Caso queira, você 
poderá adquirir seu futuro sistema operacional sem pagar nada, ou até mesmo montar um 
ambiente inteiro sem tirar um centavo do bolso. Os software e suítes de aplicativo podem 
seguir essa mesma filosofia; 
 
• Facilidade de usar e manter: Atualmente as distribuições Linux são altamente intuitivas e 
de fácil utilização. A interface gráfica pode ser rica e altamente elegante, satisfazendo desta 
forma todos os “paladares”; 
 
• Customização 100%: Essa é uma vantagem que o software proprietário não dá: a liberdade 
para modificar o código-fonte e/ou redistribuir o resultado final desse trabalho; 
 
• Reconhecimento de hardware: Normalmente, após a instalação de uma distribuição Linux, 
não será necessário ter o trabalho de correr atrás dos drivers de áudio, vídeo, impressora 
etc. Na minha opinião esse é um benefício e tanto! 
Os benefícios listados acima serão abordados na prática em capítulos posteriores, então fique 
tranquilo; até o fim desta obra garanto que, no mínimo, você será um(a) amante de Linux. 😂 
 
1.12 Por trás da interface gráfica 
No início desta obra, convidei você a deixar de ser um mero usuário, refém das vontades da 
máquina, mas para isso é necessário deixar de lado a “cultura do botão” e passar a entender como 
as coisas funcionam por baixo da interface gráfica. Para ser capaz de submeter o sistema a suas 
vontades, é necessário se aventurar na linha de comando do GNU/Linux, uma telinha preta que 
deixa você com a maior cara de nerd e que pode lhe dar acesso total ao sistema! 😅 
A “cultura do botão” se aplica às pessoas que carregam o seguinte lema: “me dê um botão que eu 
clico”. Sem dúvida, as mentes mais engraçadinhas estão fazendo piada depois disso; não os culpo, 
Está pensando em montar um negócio? Então considere utilizar alguma 
distribuição Linux como sistema operacional; seu custo de implantação 
provavelmente será igual a zero, sem mencionar o fato de que você poderá ter 
acesso a software e suítes de escritório igualmente equivalentes em termos de 
custo.www.tinarede.com.br 
também ri até chorar! 😂 
Deixar de lado o entendimento de algo para se apegar com afinco à interface gráfica pode nos 
render muita dor de cabeça. A perfumaria visual chamada de interface gráfica deve acima de tudo 
agradar os olhos, ou seja, de uma hora para outra pode sofrer uma reformulação visual que deixe 
você desorientado, sem saber onde aquele botão que você tanto utilizava foi parar. Até se adaptar 
ao novo visual, você poderá sofrer um pouco, sem falar que a adaptação pode não ser tão rápida. 
Uma interface gráfica rica e elegante sempre conquista admiradores e, no fim das contas, somos 
todos usuários de alguma interface visual; isso é inevitável, porém é mais do que recomendado 
entender como as coisas funcionam por trás dessa perfumaria visual. No mundo GNU/Linux temos 
a figura da linha de comando, um recurso que nos dá acesso total ao sistema e nos abre 
possibilidades não proporcionadas pela interface gráfica, sem falar que esse recurso não sofre com 
a volatilidade dos elementos visuais, ou seja, os comandos estarão sempre lá, aguardando você. 
1.13 Resumo 
Neste capítulo, entendemos conceitos teóricos básicos e considerados obrigatórios. O 
entendimento desses conceitos facilitará sua vida ao longo dos vários capítulos que compõem esta 
obra, tornando ainda mais proveitosa sua estadia conosco. 
Neste primeiro capítulo entendemos qual é a real diferença entre os termos Linux e GNU/Linux, 
software livre e open source. Discutimos ainda questões de relevância comum, tais como qual a 
melhor distribuição Linux, onde cada uma é utilizada, sua importância e os benefícios 
proporcionados por sua utilização. 
Recomendo que realize pesquisas adicionais, consulte outras obras e visite as comunidades de 
software livre, com o objetivo de complementar o conteúdo passado por meio desta obra. Posso 
garantir que este conhecimento será de grande valia para seu crescimento profissional e, 
consequentemente, pessoal. 
Chegamos ao fim da parte teórica. Do próximo capítulo em diante, iniciaremos nosso primeiro 
contato “íntimo” com o GNU/Linux. Caso queira fazer uma pausa para o café, esta é a hora, pois os 
próximos capítulos desta obra prometem fortes emoções! 
 
 
 
 
www.tinarede.com.br 
Capítulo 2 
Estrutura e funcionamento do Linux 
"Quem	pensa	pouco	erra	muito."	
—	Leonardo	da	Vinci	
Para prosseguirmos com este capítulo, é necessário que você tenha uma distribuição Debian 
devidamente instalada. Caso não conheça o processo de instalação ou necessite de algum auxílio, 
consulte o material de apoio “Linux – Instalando a distribuição Debian”. 
Ao longo desta obra utilizaremos a distribuição Debian como referência de estudo, porém, as 
técnicas, conceitos e comandos apresentados daqui por diante poderão ser aplicados em qualquer 
outra distribuição. Talvez a maior diferença que você pode encontrar entre as várias distribuições 
disponíveis seja a localização de arquivos específicos de sistema, porém iremos aprender 
comandos e técnicas de pesquisa que nos permitirão localizar qualquer arquivo facilmente. 
2.1 Estrutura sistêmica do GNU/Linux 
Abaixo temos o esquema visual (layout) da estrutura dos sistemas GNU/Linux: 
 
Figura 1 – Estrutura das distribuições Linux 
• Gerenciador de janelas: permite realizar a abertura visual dos software e aplicativos. 
Disponível somente quando a interface gráfica está instalada; 
 
• Tty: é uma espécie de terminal virtual. Os tty de 1 até 6 são basicamente terminais de linha 
de comando, já o tty7 é reservado para a interface gráfica quando instalada; 
 
• Sistema Operacional e Kernel: estes dois assuntos já foram tratados no capítulo 1; 
 
• Hardware: representa os componentes físicos da máquina. 
 
www.tinarede.com.br 
2.2 Terminal Virtual (ttyN) 
O GNU/Linux é um sistema multiusuários, ou seja, permite que vários usuários utilizem uma 
máquina ao mesmo tempo. Isso é possível graças aos terminais virtuais, que são uma espécie de 
console isolada, recurso este que permite que os usuários trabalhem de forma isolada em uma 
mesma máquina sem que um interfira na experiência de uso do outro. 
Uma das formas mais comuns de vários usuários acessarem e trabalharem ao mesmo tempo em 
uma máquina é fazendo uso de conexões remotas. Nos sistemas baseados em Linux, o tipo de 
conexão remota mais comum é o ssh (abordado a fundo mais adiante). 
Ao trabalhar em um ambiente GNU/Linux temos a possibilidade de utilizar os terminais virtuais para 
dividir visualmente tarefas em telas distintas, ou trabalhar em paralelo com mais de um usuário. 
Para alternar entre os terminais virtuais (tty) utilizaremos as teclas ALT + F1 até F7, lembrando que 
o tty7 normalmente é reservado para a interface gráfica caso a tenha instalado, ou seja, 
normalmente teremos 6 tty a nossa disposição, quantidade esta que pode ser alterada por meio de 
configuração. 
2.3 Introdução ao shell 
As distribuições GNU/Linux contam com o shell, um poderoso interpretador de comandos. Em 
outras palavras, o shell é um programa de computador que permite ao usuário interagir com o 
sistema por meio de comandos, submetidos através do periférico teclado. 
O Bash é o shell mais famoso do universo GNU/Linux; sua popularidade se deve aos inúmeros 
recursos que possui, que facilitam a vida do usuário. Ao longo desta obra iremos trabalhar com o 
bash, porém existem outras soluções de shell, cada qual com suas características próprias. Seguem 
alguns exemplos: csh, ksh, tcsh e zsh. 
 
2.3.1 Logon e logout 
O logon nada mais é do que o ato de entrar no sistema. Já o logout é a saída do sistema, ou seja, 
o ato de encerrar sua sessão. No capítulo seguinte veremos como efetuar o logout. 
2.3.2 Superusuário (root), usuário comum e usuário de sistema/serviço 
Existem basicamente duas formas de abrir um shell no Linux: uma é como superusuário (root) e 
outra é como usuário comum. Vejamos as particularidades de cada uma: 
• Superusuário: Nos termos técnicos do universo Linux, chamamos este usuário de root. Ele 
é o usuário master do sistema, ou seja, o administrador. Tem acesso irrestrito; 
• Usuário comum: Com exceção do root, todos os usuários se enquadram nesta categoria. 
Possuem acesso limitado ao sistema; 
Shell, terminal e linha de comando são praticamente sinônimos recursivos. 
 
www.tinarede.com.br 
• Usuário de sistema/serviço: Estes usuários são utilizados para controlar serviços no 
sistema, não possuem senha nem diretório home. 
Para identificar o nível de acesso do usuário logado, basta observar o símbolo que se encontra à 
esquerda do cursor; caso seja uma # (tralha), significa que o usuário logado é o root; se for um $ 
(cifrão), significa que este é um usuário comum. 
2.4 Primeiro contato com o shell 
Chegou a hora de brincar com o shell, terminal ou linha de comando, como preferir. Inicie o seu 
sistema Debian. Caso ainda não o tenha instalado ou não se lembre como realizar a inicialização 
do sistema, consulte o material de apoio “Linux – Instalando a distribuição Debian”. 
 
Figura 2 – Logon 
O processo de inicialização pode levar alguns segundos; vai depender do hardware da sua 
máquina. Quando o resultado da sua tela for equivalente ao da Figura 2, isso significará que o 
sistema já está disponível para uso. Observe a primeira linha: o tty1 (destacado de verde) é o 
terminal virtual que está comportando essa sessão. Utilize usuário e senha criados na etapa de 
instalação: 
• Informe o login user e pressione ENTER; 
• Será solicitada a password (senha). Digite user e pressione ENTER. 
 
Caso não tenha errado o nome do usuário nem a senha, teremos um logon efetuado com sucesso: 
 
Figura 3 – Tela após o logon 
Na Figura 3, o retângulo vermelho é o que chamamos de banner. Ele será apresentado sempre que 
um usuário efetuar logon. Seu texto padrão pode ser personalizado,porém vamos deixar isso para 
um outro momento. 
Ao digitar a senha, nenhum output será apresentado no terminal; não se assuste, 
isso é um truque de segurança. Continue digitando e ao fim pressione ENTER. 
 
www.tinarede.com.br 
Ao acessar o sistema, nosso diretório inicial será /home/user, ou seja, nosso user tem um diretório 
pessoal dentro do diretório /home. Já o diretório pessoal do usuário root é o /root. Mais adiante 
entenderemos melhor como isso funciona. Uma coisa de cada vez. 😉 
Para compreender melhor a última linha da Figura 3, iremos dividi-la em partes: 
• user: nome do usuário logado, definido na etapa de instalação; 
• @: separador; 
• debian: hostname (nome da máquina) definido no processo de instalação; 
• $: indica que o user é uma conta de usuário comum; 
• _: o underline indica o espaço destinado à inserção de comando por parte do utilizador. 
2.5 Árvore de diretórios (“pastas”) 
A organização de diretórios do GNU/Linux tem o padrão Filesystem Hierarchy Standard (FHS), ou 
em português Hierarquia Padrão do Sistema de Arquivos. A principal vantagem deste conjunto de 
regras é a capacidade de predizer o local dos arquivos. Segue lista padrão de diretórios definidos 
pela FHS: 
Diretório Descrição 
/ Nível raiz 
bin Diretório de comandos programas essenciais ao sistema. Acesso de nível público 
boot Arquivos de configuração do sistema de arranque 
dev Arquivos de dispositivos 
etc Arquivos de configuração de sistema 
home Neste local ficam armazenados os diretórios pessoais dos usuários comuns 
lib Bibliotecas compartilhadas e módulos do kernel 
media Ponto de montagem para dispositivos removíveis 
mnt Ponto de montagem temporário para sistema de arquivos 
proc Diretório virtual onde ficam as informações do sistema obtidas do Kernel 
root Diretório pessoal do usuário root 
run Dados de execução variáveis 
sbin Binários essenciais ao sistema; somente o root tem privilégio para executá-los 
sys Contém praticamente as mesmas informações do diretório proc, porém, mais organizadas 
tmp Arquivos temporários. Por exemplo: dados temporários criados por programas ou usuários são salvos aqui. Ao reiniciar o sistema, este diretório é esvaziado 
usr Diretório onde ficam os programas dos utilizadores (/usr/bin), bibliotecas (/usr/lib), documentação (/usr/share/doc) etc. São programas portáveis e não essenciais ao sistema 
var Dados variáveis. Por exemplo, arquivos de log 
srv Dados para os serviços disponibilizados pelo sistema e de acesso público 
 
www.tinarede.com.br 
opt Pacotes de software e aplicações adicionais que não fazem parte do sistema 
Tabela 1 – Hierarquia Padrão do Sistema de Arquivos GNU/Linux 
 
Ao longo desta obra voltarei a mencionar os diretórios mais relevantes e/ou importantes ao nosso 
estudo, conforme a necessidade for surgindo. 
2.6 Case-sensitive 
O GNU/Linux é um sistema case-sensitive, ou seja, diferencia letras maiúsculas de minúsculas. 
Sendo assim, tome muito cuidado ao referenciar diretórios e arquivos. Por exemplo: 
• /bin 
• /Bin 
• /biN 
• /BIN 
Apesar da semelhança, os quatro diretórios citados acima são referências distintas. O mesmo se 
aplica a comandos. Por exemplo: 
• pwd 
• Pwd 
• pWD 
• PWD 
A escrita correta desse comando tem todos os caracteres em caixa baixa; ao escrever de forma 
diferente o sistema irá apresentar uma crítica de que o comando não existe ou não foi encontrado. 
2.7 Referências absoluta e relativa 
Existem duas vias para se apontar um alvo/destino em um ambiente GNU/Linux: 
• Referência absoluta: caminho completo (absoluto) para o diretório, arquivo ou recurso; 
• Referência relativa: este é um apontamento que leva em consideração a sua posição atual 
no sistema. 
Vamos a um exemplo prático. Para isso, considere a estrutura da figura abaixo: 
 
Figura 4 – Estrutura de diretórios 
Qualquer GNU/Linux deve conter fisicamente na partição raiz /bin, /sbin, /etc, /lib, 
/etc e /dev. Do contrário não será possível iniciar o sistema. 
 
www.tinarede.com.br 
Veja as formas possíveis de se deslocar do diretório var para o bkp (Figura 4): 
• Referência absoluta: /etc/bkp 
• Referência relativa: ../etc/bkp 
Os 2 pontos (..) indicam um nível acima. Vamos supor que você está no diretório bkp (Figura 4) e 
deseja voltar para a raiz do sistema (/); então você necessita subir 2 níveis, e para isso deve usar 
a representação (../..). Os primeiros 2 pontos tiram você do diretório bkp e o colocam dentro do etc; 
a próxima ocorrência irá tirá-lo do diretório etc e, dessa forma, você estará no diretório raiz, 
representado por um sinal de barra (/). 
Devemos ter muita atenção ao utilizar referência relativa, pois este tipo de apontamento é variável. 
Para fixar o entendimento, veja os exemplos abaixo, baseados na estrutura da Figura 4: 
Diretório atual: var 
Destino: arquivos 
Via referência absoluta: /etc/arquivos 
Via referência relativa: ../etc/arquivos 
Diretório atual: arquivos 
Destino: bkp 
Via referência absoluta: /etc/bkp 
Via referência relativa: ../bkp 
 
Na referência absoluta nosso ponto de partida é a raiz do sistema; como tudo está abaixo deste 
nível, independentemente de onde estiver no sistema, o destino será sempre alcançado. Já na 
referência relativa esse apontamento tem que se adequar a sua posição atual no sistema, ou seja, 
acaba sendo uma forma relativa/volátil de apontar um destino. 
2.8 Entrada e saída padrão de dados 
Ao trabalhar com GNU/Linux, ouvimos falar muito de entrada e saída padrão de dados; diante 
disso se faz necessário compreender melhor este conceito. A entrada padrão de dados é o 
teclado e a saída é a tela do computador. 
Existem três termos que fazem parte deste conceito. São eles: 
• stdin, que representa a entrada padrão de dados => Teclado 
• stdout, que representa a saída padrão de dados => Tela 
• stderr, saída padrão de erros => Tela 
2.9 Resumo 
Neste capítulo tivemos nosso primeiro contato prático com o GNU/Linux, entendemos o 
funcionamento do sistema e seu padrão organizacional, capaz de predizer o local onde determinado 
arquivo será alocado. 
Conceitos como logon, logout, terminal virtual e shell foram devidamente apresentados. 
A proposta de conteúdo para o capítulo 2 poderia render facilmente mais algumas páginas, talvez 
 
www.tinarede.com.br 
algumas dezenas. Porém, este grau de detalhamento adicional poderia quebrar a proposta de 
objetividade, simplicidade e relevância, considerando a temática de conteúdo essencial proposta 
para esta obra. 
 
 
www.tinarede.com.br 
Capítulo 3 
Comandos Programas essenciais 
"Busco	um	instante	feliz	que	justifique	minha	existência"	
—	Fiódor	Dostoiévski	
O termo comando é uma forma popular de fazer referência aos programas comuns a quase todas 
as distribuições GNU/Linux. Em geral um comando nada mais é do que um arquivo binário. 
Ao executar os comandos listados mais adiante, não se esqueça que o caractere cifrão ($), presente 
à esquerda do cursor, indica que este pode ser executado pelo usuário comum; já a tralha (#) indica 
que este deve ser obrigatoriamente executado pelo usuário root. 
3.1 Comandos Programas básicos 
Esta obra não tem como objetivo ser um guia/manual de comandos, ou seja, irei citar de forma 
resumida os comandos e opções mais utilizados no dia-a-dia, detalhando e me aprofundando 
somente em casos excepcionais. 
3.1.1 help 
É uma opção de ajuda rápida, utilizada para consultar as opções disponibilizadas por um programa. 
Sua sintaxe é: 
 
Devemos substituir o marcador [comando] pelo programa para o qual desejamos obter ajuda. Veja: 
 
Figura 5 – Retorno do comando de ajuda 
A seta em vermelho (primeira linha) mostra que foi solicitada ajuda para o comando ls (apresentado 
adiante). Na segunda linha temos uma demonstração de comoo comando deve ser usado; já nas 
linhas seguintes temos o restante dos parâmetros aceitos pelo programa, neste caso o ls. 
$ [comando] --help 
 
www.tinarede.com.br 
3.1.2 man 
As páginas de manual do GNU/Linux contêm a descrição dos comandos, bem como listam de 
forma detalhada as opções disponíveis e como elas funcionam. Sua sintaxe é: 
 
Opções internas (disponíveis no manual): 
• q: sai do manual; 
• PageDown ou f: rola 25 linhas para baixo; 
• PageUp ou w: rola 25 linhas para cima; 
• Seta para cima ou k: rola 1 linha para cima; 
• Seta para baixo ou e: rola 1 linha para baixo; 
• p ou g: volta para o início; 
• h: mostra a página de ajuda do manual. 
Opções: 
• -k: caso não saiba o nome de um determinado comando, basta utilizar essa opção para 
buscar ocorrências dentro do manual e retornar os possíveis comandos. 
3.1.3 logout 
Os comandos abaixo podem ser utilizados para encerrar nossa sessão no terminal: 
 
3.1.4 shutdown, poweroff e halt 
Os comandos abaixo podem ser utilizados para desligar a máquina: 
 
Todos os comandos acima possuem basicamente a mesma finalidade, porém, o comando 
shutdown permite agendar desligamento, programar reboot etc. Experimente utilizar o help para 
obter ajuda; exemplo: “shutdown –help”. 
Pessoalmente gosto de utilizar o comando poweroff para desligar a máquina. Ele funciona como 
um alias (apelido) para o “shutdown -h now”, com a vantagem de ser curto e fácil de decorar. 
$ man [opções] [comando] 
$ exit 
$ logout 
$ <CTRL> + d 
# shutdown -h now 
# poweroff 
# halt 
 
www.tinarede.com.br 
3.1.5 reboot 
Comando responsável por reiniciar a máquina: 
 
3.1.6 pwd (print working directory) 
Imprime na tela o caminho absoluto para o diretório corrente (atual): 
 
Resultado: 
 
Figura 6 – Retorno do comando pwd 
3.1.7 history 
Lista os comandos mais recentes executados no terminal. Este é um recurso do bash (discutido no 
capítulo anterior). Exemplo de uso: 
 
Resultado: 
 
Figura 7 – Retorno do comando history 
Observe que temos no lado esquerdo um valor numérico identificando cada comando. Aproveito 
para deixar a seguinte dica: se você utilizar um sinal de exclamação + o número + a tecla ENTER, 
por exemplo, !7, no meu caso iria ser autoexecutado o comando da posição 7, ou seja, essa 
instrução serve como atalho para comandos presentes no history (histórico). 
Caso seu shell seja o bash, utilize as setas para cima e para baixo para percorrer o histórico. 
Para descobrir o shell atualmente em uso, basta imprimir o valor da variável de sistema $0: 
# reboot 
$ pwd 
$ history 
 
www.tinarede.com.br 
 
Resultado: 
 
Figura 8 – Lista o shell atual 
O retorno acima confirma que estamos usando o bash. Caso queira mudar para outro shell, por 
exemplo, sh, basta digitar sh e pressionar ENTER; já para sair de um shell basta digitar exit e 
pressionar ENTER. 
3.2 Manipulação de arquivos e diretórios 
O conjunto de comandos a seguir nos permite identificar o diretório corrente, listar, copiar, mover e 
excluir arquivos e diretórios. 
3.2.1 ls (list) 
Utilizado para listar o conteúdo de um diretório ou as propriedades de um arquivo. Sintaxe: 
 
3.2.1.1 Listando o conteúdo do diretório corrente 
Na ausência do parâmetro de caminho, este comando lista o conteúdo do diretório corrente: 
 
Resultado: 
 
Figura 9 – ls sem retorno 
O comando ls executado acima não retornou nenhum valor, o que significa que no diretório corrente 
não existe nenhum conteúdo para ser listado, ou que os conteúdos estão ocultos (isso será discutido 
mais adiante). 
3.2.1.2 Opções (atributos de listagem) 
As opções podem listar mais informações ou até mesmo formatar os dados apresentados: 
 
$ echo $0 
$ ls [opções] [caminho_do_arquivo_ou_diretório] 
$ ls 
$ ls -lt /home 
 
www.tinarede.com.br 
Resultado: 
 
Figura 10 – ls -lt /home 
Iremos analisar a Figura 10 linha por linha. Sendo assim, vamos à 1ª linha: 
• ls: lista o conteúdo presente no diretório ou as propriedades do arquivo informado; 
• -lt: o sinal de menos (-) indica que o valor seguinte é um atributo (opção). A letra l (L 
minúsculo) lista as propriedades do conteúdo retornado, e a letra t é utilizada para ordenar 
a lista em ordem cronológica, o que é interessante para diretórios com muitos arquivos; 
• /home: diretório a ser considerado como alvo do comando. 
Na 2ª linha, o valor “total 4” representa o total de blocos do sistema de arquivo que estão sendo 
utilizados pelo conteúdo listado. Este conceito é um pouco avançado, porém, irrelevante ao escopo 
desta obra. Sendo assim, deixaremos para tratar deste assunto em uma outra oportunidade. 
Já a 3ª linha indica uma sequência de propriedades. Analisaremos cada uma delas: 
 
Figura 11 – Atributos 
Respectivamente: 
• drwxr-xr-x: no momento vamos nos apegar somente ao primeiro caractere do grupo: 
§ - (hífen): arquivo; 
§ b: dispositivo de bloco; 
§ c: dispositivo de caractere; 
§ d: diretório; 
§ l: link, equivalente aos atalhos no ambiente Windows; 
§ s: socket. 
• 2: número de hard links (irrelevante a nosso estudo); 
• user user: respectivamente, usuário e grupo. Será mais bem apresentado mais adiante; 
• 4096: tamanho do arquivo em bytes; 
• Jul 2 00:15: respectivamente, mês, dia e hora de criação; 
• user: essa última coluna indica o nome do elemento listado. 
3.2.1.3 Listar arquivos ocultos 
Para listar um arquivo oculto é muito simples: basta utilizar o atributo -a. Veja: 
 
$ ls -a 
 
www.tinarede.com.br 
No exemplo acima estamos listando os arquivos ocultos do diretório corrente, porém, poderíamos 
informar outro diretório, ou até mesmo substituir a opção -a por -al (L minúsculo), respectivamente, 
para mostrar arquivos ocultos e listar as suas propriedades. 
No universo Linux, um arquivo oculto é representado por um ponto final (.) à esquerda de seu nome. 
Por exemplo: 
• .exemplo1 • .arquivo_oculto 
Para tirar a propriedade de oculto, basta renomear o arquivo ou diretório retirando o ponto; já para 
ocultar, basta adicionar o caractere ponto. Veremos como fazer isso mais adiante. 
3.2.2 cd (change directory) 
Muda o diretório atual, ou seja, permite que efetuemos o deslocamento pela hierarquia de 
diretórios do sistema. Sintaxe: 
 
3.2.3 cp (copy) 
Permite copiar arquivos e diretórios. Sintaxe: 
 
Opções: 
• -i: pergunta antes de substituir arquivos; 
• -f: substitui arquivos sem perguntar; 
• -v: mostra o progresso da cópia de arquivos; 
• -r: copia o diretório e todos os seus arquivos recursivamente. 
3.2.4 rm (remove) 
Remove arquivos e diretórios. Sintaxe: 
 
Opções: 
• -f: força a exclusão; 
• -v: apresenta o nome dos arquivos à medida que forem removidos; 
• -r: exclui recursivamente arquivos e diretórios. Sem este parâmetro só serão excluídos 
diretórios vazios. 
$ cd [diretório] 
cp [opções] [origem] [destino] 
rm [opções] [caminho_do_arquivo_ou_diretório] 
 
www.tinarede.com.br 
3.2.5 mkdir 
Permite criar diretório no sistema. Sintaxe: 
 
Opções: 
• --verbose: mostra uma mensagem para cada diretório criado. 
3.2.6 rmdir 
Remove um diretório vazio. Sintaxe: 
 
3.2.7 cat (concatenar) 
Este comando pode ser utilizado para concatenar arquivos ou ler seu conteúdo. Nesta obra 
iremos focar na característica que permite ler/apresentar conteúdo. Sintaxe: 
 
Opções: 
• -n: numera as linhas apresentadas; 
• -s: não mostra mais que uma linha em branco entre os parágrafos. 
3.2.8 more 
Este comando é utilizado para paginar o resultado apresentado na tela. Sintaxe de uso: 
 
Opções: 
• +num: inicia a visualização a partir da linha informada; 
Opções internas: 
• f, ctrl+f ou barra de espaço para avançar uma página; 
• b ou ctrl+b para voltar uma página; 
• h:apresenta a lista de opções do aplicativo; 
• . (ponto final): repete o último comando aplicado; 
• q: encerra a visualização quando pressionado dentro do aplicativo. 
mkdir [opções] [caminho1/diretório1] [caminho2/diretório2] 
rmdir [caminho1/diretório1] [caminho2/diretório2] 
cat [opções] [caminho1/diretório1] [caminho2/diretório2] 
more [opções] [arquivo] 
 
www.tinarede.com.br 
Uma outra boa alternativa para paginação é o comando less, que é muito semelhante ao more, 
porém permite a navegação linha a linha, além da navegação por página igual à do comando more. 
3.2.9 cut (cortar) 
Permite selecionar parte de um conteúdo, sendo normalmente utilizado para filtrar colunas. 
Sintaxe: 
 
Opções: 
• -f [numCampos]: exibe os campos informados; 
• -d [caracteres]: define o delimitador a ser utilizado; o padrão é o TAB. 
3.2.10 find 
Pesquisa por arquivos ou diretórios no sistema. Sintaxe: 
 
Opções: 
• -iname [expressão]: faz a busca pelo nome do arquivo ou diretório; 
• -maxdepth [num]: nível máximo de diretórios abaixo do diretório de busca; 
• -mtime [num]: busca por arquivos modificados [num] dias atrás; 
• -size [num]k: busca por arquivos com tamanho igual a [num] Kbytes. 
• -type [tipo]: procura por arquivo do [tipo]: 
§ d: diretório 
§ f: arquivo regular 
§ l: link simbólico 
Exemplos: 
 
Na primeira linha, a consulta é feita somente dentro do diretório /etc por qualquer arquivo que 
contenha em seu nome a palavra “casa”. Já na segunda linha, o caractere / indica que a consulta 
deve ser feita em toda a raiz do sistema, -type f indica que devem ser pesquisados somente 
arquivos, e -size +1000k que o tamanho tem que ser superior a 1000 Kbytes. 
3.2.11 grep 
Faz busca em arquivos. Sintaxe: 
cut [opções] [arquivo] 
find [diretório] [opções/expressão] 
$ find /etc -iname casa 
$ find / -type f -size +1000k 
 
www.tinarede.com.br 
 
Expressão: 
Palavra ou frase a ser pesquisada; se composta deve ser delimitada por aspas duplas. 
Opções: 
• -h: não mostra o nome dos arquivos durante a busca; 
• -i: ignora diferença entre maiúsculo e minúsculo; 
• -v: ignora ocorrências que contenham o valor informado; 
• -n: mostra o número da linha onde a ocorrência foi encontrada. 
Exemplo: 
 
O marcador ^ encontra as linhas iniciadas pela palavra “Conteúdo” no arquivo file.txt 
3.2.12 head 
Lê por padrão as 10 primeiras linhas de um arquivo. Sintaxe: 
 
Opções: 
• -n: altera o número padrão de linhas a serem lidas/apresentadas. 
3.2.13 tail (lê do fim do arquivo) 
Lê por padrão as 10 últimas linhas de um arquivo. Sintaxe: 
 
Opções: 
• -f: permite a leitura constante do arquivo, o que é recomendado para arquivos que estão 
crescendo, quando há necessidade de acompanhar o que está sendo inserido em tempo 
real; 
• -n: altera o número padrão de linhas a serem lidas/apresentadas. 
3.2.14 wc (contar) 
Conta caracteres, palavras e linhas. Sintaxe: 
grep [opções] [expressão] [arquivo] 
grep -i '^Conteúdo’ file.txt 
head [opções] [arquivo] 
tail [opções] [arquivo] 
 
www.tinarede.com.br 
 
Opções: 
• -l: conta linhas; 
• -m: conta caracteres; 
• -w: conta palavras. 
3.2.15 tar (empacotar e desempacotar) 
O empacotamento visa a “pegar” vários arquivos ou diretórios e jogá-los dentro de um “envelope” 
único, ou seja, como resultado final teremos um arquivo único. Veja a sintaxe: 
 
Opções: 
• -c: Cria o arquivo final; 
• -z: Especifica o tipo como gzip (.gz); 
• -j: Especifica o tipo como bzip2 (.bz2); 
• -x: Indica que o conteúdo será extraído; 
• -v: Ativa o modo verbose, ou seja, lista todo o processo em tempo de execução; 
• -f: É obrigatório, esse comando vem de file (arquivo). 
Exemplo: 
 
Conforme pode ser observado, informamos o nome do arquivo a ser gerado, no exemplo acima 
pacote.tar.bz, e podemos passar um arquivo, diretório ou uma lista de vários arquivos e diretórios 
a serem empacotados. Observe que ao empacotamento foi adicionada a opção -z; isso irá instruir 
o tar que, após o empacotamento, ele deve compactar este arquivo com gzip. Já para extrair 
poderíamos fazer o seguinte: 
 
Caso o diretório de destino seja omitido, os arquivos serão extraídos e posteriormente 
desempacotados no local em que o comando foi executado. 
3.2.16 gzip e bzip2 (compactar e descompactar) 
Estes só realizam a compactação de arquivos, ou seja, se tiver diretório no meio da história isso 
será um problema. Qual a solução mais simples? Utilize o empacotamento tar para gerar um arquivo 
único e posteriormente compacte-o com um dos comandos abaixo: 
wc [opções] [arquivo] 
$ tar [opções] [arquivo_final.tar] [arquivo1|diretório1] [arquivo2|diretório2] 
$ tar -zcf pacote.tar.gz arquivo.txt foto.png /home/user 
$ tar -zxf pacote.tar.gz /diretório_destino 
 
www.tinarede.com.br 
 
Opções: 
• -d: utilizado para extrair. 
Normalmente o bzip2 gera arquivos menores, porém, seu tempo de compactação é um pouco 
maior. 
3.2.17 Outros comandos 
Essa obra não tem como objetivo ser um guia de comandos, logo, deixarei abaixo uma lista de 
comandos igualmente importantes, porém, caberá a você buscar mais informações sobre eles: 
• chown: altera o dono e o grupo do arquivo ou diretório 
• file: determina o tipo de um arquivo 
• df: exibe o espaço em disco 
• du: informa o tamanho dos objetos 
• free: mostra informações da memória RAM e memória SWAP 
• date: informa data/hora 
• uptime: mostra há quanto tempo o computador está ligado 
• uname -a: mostra a versão do kernel 
• diff: mostra a diferença entre 2 arquivos 
• awk: um cut mais sofisticado que permite busca por expressão regular 
• sed: editor de texto linha a linha 
• paste: junta arquivos na saída padrão 
• whereis: mostra o caminho do binário e das páginas de manual do comando informado 
• which: mostra somente o caminho do binário comando informado 
• ps: lista processos 
• type: revela o tipo do arquivo 
• kill: finaliza/mata processos 
• time: permite identificar quanto tempo levou a execução de um programa 
• touch: cria arquivo vazio 
• sudo: permite ao usuário obter privilégios de outro usuário, normalmente do root 
• uniq: remove linhas duplicadas 
A lista vai muito além dos comandos listados acima, porém, como já foi dito, esta obra não é um 
manual de comandos. 
 
$ gzip [opções] pacote.tar 
$ bzip2 [opções] pacote.tar 
Caso queira pesquisar outros comandos, obter definições mais completas e 
exemplos de uso para os comandos acima, sugiro que visite o endereço: 
http://www.uniriotec.br/~morganna/guia/index_guia.html 
 
www.tinarede.com.br 
3.3 Curingas 
Os curingas são recursos utilizados para que possamos nos referir a um conjunto de arquivos ou 
diretórios de forma genérica, permitindo que mais de um arquivo ou diretório seja manipulado ao 
mesmo tempo. Com este recurso somos capazes de realizar pré-seleções e buscas avançadas. As 
possibilidades são infinitas; nesta obra iremos focar na sua forma de uso mais cotidiana, contudo, 
nada o impede de se aprofundar no assunto ao buscar mais informações na web. 
Existem basicamente três tipos de curingas: 
• * (asterisco): atua como substituto para uma sequência de caracteres; 
• ? (interrogação): atua como substituto para um caractere; 
• [ ] (colchetes): atuam como substitutos para um conjunto de caracteres predefinidos. 
Exemplos básicos de uso: 
No exemplo abaixo, informamos que iremos remover qualquer arquivo/diretório que comece com 
“arq”, tenha qualquer sequência posterior e termine com “.txt”: 
 
Já neste exemplo iremos remover qualquer arquivo/diretório que comece com qualquer letra, 
seguida pela sequência “rquivo”, e finalize com qualquer sequência de caracteres: 
 
Existe ainda a possibilidade de realizar buscas considerando um intervalo alfanumérico ou uma listapredefinida: 
 
Na sentença acima estamos removendo o arquivo2.txt e o arquivo4.txt, porém, se no lugar da 
vírgula tivéssemos colocado um hífen (-), removeríamos o intervalo que vai de 2 a 4. 
Os curingas podem ser utilizados no sistema como um todo, não somente com o comando rm. 
3.4 Utilizando | (pipe) para direcionar o processamento 
O pipe, representado por uma barra ( | ), permite enviar a saída (stdout) de um programa para a 
entrada (stdin) de outro; este recurso é muito interessante, pois permite que o programa seguinte 
continue o processamento dos dados. Exemplo: 
 
$ rm arq*.txt 
$ rm ?rquivo.* 
rm arquivo[2,4].txt 
ls /etc | sort 
 
www.tinarede.com.br 
No comando acima utilizamos o “ls” para listar os arquivos do diretório “/etc”; inserimos um pipe 
para pegar essa saída e mandar para o programa “sort”. Este programa tem a função de ordenar 
caracteres alfanuméricos, ou seja, ele irá reordenar em ordem alfanumérica a saída do ls. 
É possível encadear quantas instruções forem necessárias; isso vai depender da sua necessidade. 
3.5 Encadeando execuções com ; (ponto e vírgula) e && 
Podemos encadear execuções ao utilizar os símbolos ; (ponto e vírgula) e && (dois “e” comerciais). 
Existe uma diferença sutil, porém, extremamente relevante entre essas duas formas de encadear 
execuções. Veja como utilizá-las: 
 
A primeira instrução irá retornar uma lista de diretórios. Já a segunda, uma mensagem de erro 
informando que o arquivo ou diretório não foi encontrado. 
Ao utilizar ; (ponto e vírgula) somos capazes de encadear numa mesma linha várias instruções a 
serem executadas sequencialmente, e independentemente do resultado da instrução anterior a 
próxima será executada. Já ao utilizar &&, instruímos o sistema a executar a próxima instrução 
somente se a anterior tiver sido executada com sucesso. 
No exemplo acima, a linha 2 não realizou a listagem de diretórios pois o /ettc não existe, logo a 
instrução “cd /ettc” foi concluída com erro, não passando assim na validação do &&. 
3.5.1 Exemplos 
 
Os comandos acima haviam sido apresentados como manipuladores de arquivos, porém, estes 
podem ser utilizados com pipe (|) para processar a saída de outro comando. 
Essa forma de uso não se limita aos programas apresentados até aqui. 
3.5.2 Redirecionar saída com > ou >> 
O pipe pega a saída de um comando e joga para a entrada do outro; isso permite um processamento 
encadeado. 
Já os operadores > e >> permitem redirecionar a saída para um arquivo: 
• > (sinal de maior que): permite redirecionar a saída para um arquivo. Caso este arquivo 
exista, seu conteúdo anterior será apagado; do contrário, ele será criado; 
cd /ettc ; ls / 
cd /ettc && ls / 
ls -l /etc | more 
ls -l /etc | wc 
 
www.tinarede.com.br 
 
• >> (dois sinais de maior que): permite redirecionar a saída para um arquivo. Caso o arquivo 
exista, a saída será adicionada ao seu fim; do contrário, um arquivo será criado. 
Exemplo: 
 
A instrução acima lista o conteúdo do diretório /etc e redireciona a saída que seria apresentada na 
tela para o arquivo output.txt que não existia no diretório /tmp, e portanto foi criado. Para ver o 
fruto de seu trabalho, utilize o comando de leitura cat da seguinte forma: 
 
Viu só? O conteúdo gerado pelo comando ls -l está no arquivo, logo o redirecionamento ocorreu 
com sucesso. Este recurso é muito valioso; pode ter certeza de que em algum momento irá precisar 
dele para gerar relatórios, salvar lista de arquivos ou até mesmo output de algum shell script (tema 
para outro momento). 
3.6 Atalhos essenciais 
Os atalhos abaixo têm como objetivo facilitar nossa vida. Neste caso em especial, os caracteres 
digitados não são case-sensitive, ou seja, tanto faz digitá-los em minúsculo ou maiúsculo, seu efeito 
será o mesmo: 
• Pressione Back Space para apagar um caractere à esquerda do cursor; 
• Pressione Delete para apagar o caractere acima do cursor; 
• Pressione CTRL + L ou Home para colocar o cursor no início da linha; 
• Pressione CTRL + E ou End para colocar o cursor no final da linha; 
• Pressione CTRL + U para apagar o que estiver à esquerda do cursor. O conteúdo apagado 
pode ser colado ao pressionar CTRL + Y; 
• Pressione CTRL + K para apagar o que estiver à direita do cursor. O conteúdo apagado 
pode ser colado ao pressionar CTRL + Y; 
• Pressione CTRL + L para limpar a tela; 
• Pressione CTRL + C para abrir uma nova linha de comando, descartando a atual; 
• Pressione CTRL + D para sair do shell. 
3.7 Resumo 
O segredo para ter sucesso neste capítulo não está em decorar a lista de comandos, mas sim em 
saber que determinada ação pode ser executada. Quando precisar executar a ação desejada, você 
pesquisa o comando e utiliza o man e o help para saber como ele funciona. Com o passar do 
tempo, você irá naturalmente decorar as opções mais relevantes. 
ls -l /etc > /tmp/output.txt 
cat /tmp/output.txt 
 
www.tinarede.com.br 
Além dos comandos, vimos como utilizar curingas, pipe, redirecionadores de saída e operadores 
de encadeamento, porém, nada disso irá fixar-se na mente se você não praticar; então, antes de ir 
para o próximo capítulo, sugiro que volte ao início deste e teste todos os comandos passados até 
aqui. 
Mãos à obra! 
 
 
www.tinarede.com.br 
Capítulo 4 
Usuários, grupos e permissões 
"Pensa	como	pensam	os	sábios,	mas	fala	como	falam	as	pessoas	simples"	
--	Aristóteles	
Um dos recursos do GNU/Linux que mais me encanta é o seu controle de permissões baseado em 
usuários e grupos, recurso este que atribui ao sistema do pinguim uma camada extra de segurança. 
Neste capítulo iremos aprender a criar usuários e grupos, bem como a manipular suas propriedades 
e permissões. 
4.1 O que é um usuário 
Indivíduo que tem direito ou privilégio de usar ou usufruir de algo. No escopo deste capítulo, o 
usuário será um indivíduo que terá ou não permissão para modificar, visualizar e/ou executar algo 
no sistema. 
4.2 O que é um grupo de usuários 
É um conjunto de pessoas ou indivíduos que possuem ou buscam os mesmos objetivos. No escopo 
deste capítulo, os grupos são formados por usuários que terão privilégios ou permissões comuns 
entre si. É mais simples/rápido gerenciar grupos de usuários do que usuários de forma individual. 
4.3 O que são permissões 
Segundo o dicionário, são o consentimento, a licença, a autorização dada a alguma coisa. No 
universo GNU/Linux as permissões são mecanismos pelos quais restringimos ou autorizamos os 
usuários ou grupos a modificar, visualizar ou executar algo. 
4.4 Gerenciamento de usuários e grupos 
É trivial que todo utilizador de sistemas saiba criar, editar e excluir usuários e grupos. Tendo, é 
claro, a consciência da importância desses recursos, de como eles realmente funcionam e seus 
benefícios. 
Antes de prosseguirmos, é importante que você saiba da existência de dois arquivos altamente 
importantes no nível de sistema. São eles: 
§ /etc/passwd: é a base onde ficam armazenados os usuários da máquina; 
 
www.tinarede.com.br 
§ /etc/shadow: é a base onde ficam armazenadas as senhas (hash) dos usuários; 
§ /etc/group: é a base onde ficam armazenados os grupos existentes. 
4.4.1 Criar usuário 
Existem basicamente duas formas de criar um usuário no sistema. Veja a sintaxe: 
 
• useradd: cria um usuário simples, que não possui senha nem diretório /home; 
• adduser: cria um usuário completo, com senha e diretório /home. 
Estes nomes de usuários são interessantes para nós, meros mortais, porém, o sistema não os 
compreende. Quando um usuário é criado, a ele é atribuído um ID, pelo qual o sistema interpreta e 
identifica os usuários. Para consultar um ID, utilize a instrução: 
 
Será retornada uma linha com três colunas: 
• uid: id do usuário; 
• gid: id do grupo do usuário;

Outros materiais