Buscar

LINUX ESSENTIALS

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 89 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 89 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 89 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

SOBRE O SISTEMA OPERACIONAL GNU/LINUX
O Linux comecou em 1991 como projeto de hobby de Linus Torvalds, um cientista da computacao 
nascido na finlandia que estudava na Univerdidade de Helsinque.
• Frustrado com o licenciamento do MINIX, um sistema operacional semelhante ao UNIX 
projetado para uso educacional, foi o gatilho para iniciar o projeto.
• Originalmente Linus Torvalds nomeou o projeto como Freax, no entanto, um administrador 
do servidor ao qual os arquivos de desenvolvimento foram carregados, renomeou-o para 
Linux, um portmanteau do nome de Linus e UNIX.
◦ O nome ficou preso.
• Apesar de adotar todos os requisitos da especificacao UNIX, o Linux nao foi certificado, 
portanto Linux realmente nao e UNIX!
◦ E apenas... tipo UNIX.
◦ Linux e um Kernel.
▪ Linux significa o kernel do sistema, que e o controlador central de tudo o que 
acontence no computador.
• Ao lado do desenvolvimento do Linux estava o projeto GNU, criado por Richard Stallman 
no ano de 1983.
◦ GNU e o software livre que fornece equivalente de codigos abertos de muitos comandos 
UNIX comuns.
◦ GNU e um acronimo recursivo para "GNU`s Not Unix", e e pronunciado como o 
antilope africano com chifres que e seu homonimo.
• Linux e de codigo aberto.
◦ O desenvolvimento do Linux e paralelo ao surgimento de softwere de codigo aberto.
◦ O codigo aberto tem um visado do software centrada na fonte.
• A filosofia do codigo-fonte aberto e que voce tem o direito de obter o codigo-fonte 
do software e modifica-lo para seu proprio uso.
• O Linux e escrito em C, uma linguagem versatil e relativamente facil de aprender, 
que compartilha historia com o UNIX original.
Fundacao do Software Livre.
Dois grupos podem ser considerados as forças mais influentes no mundo do código aberto: 
• A Free Software Foundation e a Open Source Initiative.
• Apenas alguns anos após o desenvolvimento do projeto GNU, Richard Stallman fundou a 
Free Software Foundation (FSF) em 1985 com o objetivo de promover o software livre .
◦ Nesse contexto, a palavra "grátis" não se refere ao preço, mas à liberdade de 
compartilhar, estudar e modificar o código-fonte subjacente.
• A FSF também defende que as licenças de software devem impor a abertura de 
modificações. 
◦ É sua opinião que, se alguém modificar o software livre, deverá compartilhar todas as 
que tiver feito ao compartilhá-lo novamente.
▪ Essa filosofia específica é chamada copyleft . 
• De acordo com a FSF, "copyleft é um método geral para tornar um programa (ou outro 
trabalho) gratuito (no sentido de liberdade, não" preço zero ") e exigindo que todas as 
versões modificadas e estendidas do programa também sejam gratuitas" .
• A FSF desenvolveu seu próprio conjunto de licenças, que são gratuitas para qualquer um 
usar, com base na GNU General Public License (GPL) original .
◦ Atualmente, a FSF mantém a GNU General Public License versão 2 (GPLv2) e versão 3
(GPLv3), bem como as GNU Lesser General Public Licenses versão 2 (LGPLv2) e 
versão 3 (LGPLv3).
• Essas licenças devem ser incluídas no código fonte real para garantir que todas as futuras 
variantes e modificações do programa original continuem tendo a mesma liberdade de uso 
que o original. 
• As mudanças entre a GPLv2 e a GPLv3 se concentraram amplamente no uso de software 
livre em um dispositivo de hardware fechado que foi chamado de Tivoization . 
◦ A TiVo é uma empresa que constrói um gravador de vídeo digital de televisão em seu 
próprio hardware e usa o Linux como base para seu software.
◦ Embora o TiVo tenha lançado o código-fonte para sua versão do Linux, conforme exigido
na GPLv2, o hardware não executaria nenhum binário modificado. 
◦ Aos olhos da FSF, isso foi contrário ao espírito da GPLv2, então eles adicionaram uma 
cláusula específica à versão 3 da licença.
• Linus Torvalds concorda com a TiVo sobre este assunto e optou por permanecer na GPLv2.
Open Source - Software and Licensing
O código aberto tem uma visão do software centrada na fonte. 
• A filosofia do código-fonte aberto é que os usuários têm o direito de obter o código-fonte do 
software e de expandir e modificar os programas para uso próprio. 
• O código-fonte compilado em programas binários é um método de criação de programas e 
execução de instruções de computação.
• Outro são os muitos tipos de linguagens interpretadas, como scripts PERL, Python e até 
BASH, em que o código não é compilado, mas alimentado a um programa de interpretação, 
geralmente um executável binário que entende e implementa as instruções contidas no 
código-fonte ou nos scripts.
• Existem muitas variantes diferentes de código aberto, mas todos concordam que os usuários 
devem ter acesso ao código fonte. Onde eles diferem é como se pode, ou deve, redistribuir 
as mudança
• O Linux adotou essa filosofia com grande sucesso.
◦ Como o Linux foi escrito na linguagem de programação C e refletia o design e a 
funcionalidade dos sistemas UNIX já estabelecidos, tornou-se naturalmente um fórum no
qual as pessoas podiam desenvolver e compartilhar novas idéias.
• Antes do desenvolvimento do Linux, muitos aplicativos corporativos e científicos eram 
executados em sistemas UNIX proprietários.
• Empresas, universidades e governos que administram grandes farms de servidores gostaram 
da estabilidade e da relativa facilidade de desenvolvimento de aplicativos que essas 
plataformas ofereciam.
◦ O UNIX foi criado inicialmente em 1969. 
▪ Em sua quarta edição, em 1973, ele foi reescrito na linguagem de programação C 
que ainda hoje é destaque. 
▪ Em 1984, a Universidade da Califórnia em Berkeley lançou o 4.2BSD, que 
introduziu o TCP/IP, a especificação de rede que sustenta a Internet. 
◦ No início dos anos 90, quando o desenvolvimento do Linux começou, diferentes 
empresas que desenvolviam sistemas operacionais UNIX perceberam que seus sistemas 
precisavam ser compatíveis e começaram a trabalhar na especificação X/Open que ainda 
hoje é usada.
• Licenciamente de codigo aberto.
◦ Ao falar sobre a compra de software, existem três componentes distintos
▪ Propriedade - quem possui a propriedade intelectual por trás do software
▪ Transferência de dinheiro - Como o dinheiro muda de mãos, se é que existe?
▪ Licenciamento - O que você ganha? O que você pode fazer com o software? Você 
pode usá-lo em apenas um computador? Você pode dar a outra pessoa?
1. Na maioria dos casos, a propriedade do software permanece com a pessoa ou 
empresa que o criou.
2. Os usuários recebem apenas uma licença para usar o software; isso é uma questão de
lei de direitos autorais.
1. A transferência de dinheiro depende do modelo de negócios do criador.
3. É o licenciamento que diferencia o software de código aberto do software de código 
fechado.
4.
◦ Dois exemplos contrastantes darão início às coisas.
▪ Microsoft Windows:
• A Microsoft Corporation possui a propriedade intelectual.
• A licença em si, o EULA (Contrato de Licença de Usuário Final) , é um 
documento legal personalizado no qual você deve clicar, indicando sua aceitação,
para instalar o software.
• A Microsoft mantém o código-fonte e distribui apenas cópias binárias através dos
canais autorizados.
◦ Para a maioria dos produtos de consumo, você tem permissão para instalar o 
software em um computador e não pode fazer cópias do disco, exceto para 
backup. 
◦ Você não tem permissão para fazer engenharia reversa do software.
◦ Você paga por uma cópia do software, o que oferece pequenas atualizações, 
mas não grandes atualizações
• O código-fonte se refere a:
◦ Uma versão legível por humanos do software de computador.
▪ GNU/Linux:
• Linux é de propriedade de Linus Torvalds.
• Ele colocou o código sob uma licença chamada GNU General Public License 
versão 2 (GPLv2).
• Esta licença, entre outras coisas, diz que o código-fonte deve ser disponibilizado 
para quem solicita e que alguém pode fazer alterações. 
• Uma ressalva é que, se alguém faz alterações e as distribui, deve colocar as 
alterações sob a mesma licença para que outrospossam se beneficiar. 
• A GPLv2 também diz que ninguém pode cobrar pela distribuição do código-
fonte além dos custos reais de fazê-lo (como copiá-lo para mídia removível).
• Software Livre e de Código Aberto (FOSS):
• Refere-se ao software em que esse direito foi cedido; qualquer pessoa pode 
visualizar o código fonte e redistribuí-lo. 
▪ Linus Torvalds fez isso com o Linux - mesmo que ele tenha criado o Linux, ele não 
pode proibir alguém de usá-lo em seu computador, porque ele desistiu desse direito 
através da licença GPLv2.
• A iniciativa de codigo aberto.
◦ Open Source Initiative (OSI) foi fundada em 1998 por Bruce Perens e Eric Raymond. 
▪ Eles acreditavam que a Free Software Foundation era cobrada politicamente demais 
e que eram necessárias licenças menos extremas, principalmente em relação aos 
aspectos copyleft das licenças da FSF. 
◦ A OSI acredita que não apenas a fonte deve estar disponível gratuitamente, mas também 
que não devem ser impostas restrições ao uso do software, independentemente do uso 
pretendido
◦ Ao contrário do FSF, o OSI não possui seu próprio conjunto de licenças. 
▪ Em vez disso, o OSI possui um conjunto de princípios e adiciona licenças a essa lista
se eles atenderem a esses princípios, chamados licenças de código aberto.
▪ O software que está em conformidade com uma licença Open Source é, portanto, 
software open source
▪ Um tipo de licença de código aberto é o BSD (Berkeley Software Distribution)e seus 
derivados, que são muito mais simples que a GPL.
▪ Atualmente, existem duas licenças "BSD" reais aprovadas pela OSI, uma cláusula 2 e
uma cláusula 3. 
• Essas licenças afirmam que você pode redistribuir a fonte e os binários, desde 
que mantenha avisos de direitos autorais e não implique que o criador original 
endossa sua versão.
◦ Em outras palavras, "faça o que quiser com este software, apenas não diga 
que o escreveu".
▪ De acordo com a FSF, a licença original do BSD apresentava uma falha grave, pois 
exigia que os desenvolvedores adicionassem uma cláusula reconhecendo a 
Universidade da Califórnia, Berkeley, em todos os anúncios de software licenciado 
dessa maneira.
▪ As licenças FSF, como a GPLv2, também são licenças de código aberto.
• No entanto, muitas licenças de código aberto, como BSD e MIT, não contêm as 
disposições de copyleft e, portanto, não são aceitáveis pela FSF.
◦ Essas licenças são chamadas de licenças permissivas de software livre porque são 
permissivas na maneira como você pode redistribuir o software.
Creative Commons
A organização Creative Commons (CC) criou as licenças Creative Commons que tentam abordar as 
intenções por trás das licenças FOSS para entidades que não são de software.
• As licenças CC também podem ser usadas para restringir o uso comercial, se esse for o 
desejo do detentor dos direitos autorais.
• As licenças CC são compostas pelo seguinte conjunto de condições que o criador pode 
aplicar ao seu trabalho:
◦ Attribution (BY):
▪ Todas as licenças CC exigem que o criador receba crédito, sem implicar que o autor 
aprova o uso.
◦ ShareAlike (SA):
▪ Isso permite que outras pessoas copiem, distribuam, executem e modifiquem o 
trabalho, desde que o façam nos mesmos termos.
◦ NonCommercial (NC):
▪ Isso permite que outras pessoas distribuam, exibam, executem e modifiquem o 
trabalho para qualquer finalidade que não seja comercial.
◦ NoDerivatives (ND):
▪ Isso permite que outras pessoas distribuam, exibam e executem apenas cópias 
originais da obra. 
▪ Eles devem obter a permissão do criador para modificá-lo.
▪ Essas condições são então combinadas para criar as seis principais licenças 
oferecidas pela Creative Commons:
◦ Attribution (CC BY):
▪ Assim como a licença BSD, você pode usar o conteúdo CC BY para qualquer uso, 
mas deve creditar o detentor dos direitos autorais.
◦ Attribution ShareAlike (CC BY-SA):
▪ Uma versão copyleft da licença de Atribuição.
▪ Trabalhos derivados devem ser compartilhados sob a mesma licença, como nos 
ideais de Software Livre.
◦ Attribution NoDerivs (CC BY-ND):
▪ Você pode redistribuir o conteúdo nas mesmas condições que o CC-BY, mas não 
pode alterá-lo.
◦ Attribution-NonCommercial (CC BY-NC):
▪ Assim como o CC BY, mas você não pode usá-lo para fins comerciais.
◦ Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) 
▪ Cria a licença CC BY-NC, mas exige que suas alterações sejam compartilhadas sob a
mesma licença.
◦ Attribution-NonCommercial-NoDerivs (CC BY-NC-ND) 
▪ Você está compartilhando o conteúdo a ser usado para fins não comerciais, mas as 
pessoas não podem alterar o conteúdo.
◦ No Rights Reserved (CC0)
▪ Esta é a versão Creative Commons de domínio público.
Ciclo de vida ou Manutencao.
Os fornecedores suportam apenas versoes mais antigas do software por um determinando periodo 
de tempo antes de nao oferecer nenhuma atualizacao;
• Isso e chamado de ciclo de manutencao ou ciclo de vida.
◦ O cico de Manutencao descreve por quanto tempo uma versão do software será 
suportada.
Ciclo de liberacao ou lancamento.
Os sistemas operacionais e as atualizacoes de software ocorrem periodicamente.
• Em um ambiente de servidor corporativo, os ciclos de manutencao e liberacao sao 
consideracoes criticas, pois e demorado e caro fazer grandes atualizacoes.
• O ciclo de Lancamento dita com que frequência o software é atualizado.
Compatibilidade.
A norma para o desenvolvimento de software de codigo aberto e garantir primeiro a 
compatibilidade com versoes anteriores e interromper as coisas apenas como ultimo recurso.
• A pratica comum de manter e controlar versoes de bibliotecas de funcoes ajuda muito nisso.
• Normalmente, uma biblioteca usada por um ou mais programas e versionada como um nova 
versao quando ocorrem alteracoes significativas, mas tambem mantem todas as funcoes e 
(compatibilidade) de versoes anteriores que podem ser codificadas ou mencionadas pelo 
software existente.
Estabilidade
Algumas distribuicoes oferecem versoes estaveis, de teste e instaveis.
• Ao escolher uma versao instavel para o recurso necessarios, deve-se considerar o fato de que
esses recursos podem mudar a qualquer momento durante o ciclo de desenvolvimento.
• Distribuicoes em pre-lancamentos ou instaveis sao chamadas de beta.
Terminal e GUI (Grafical User Interface)
Nos sistemas que inicializam em uma GUI, existem duas maneiras comuns de acessar a linha de 
comando
• Um terminal baseado em GUI.
◦ Um terminal da GUI e um programa dentro do ambiente da GUI que emula uma janela 
do terminal e podem ser acessados atraves do sistema de menus.
• Um terminal virtual.
◦ Um terminal virtual pode ser executado ao mesmo tempo que uma GUI, mas querer que 
o usuario efetue loguin atravas do terminal virtual antes de poder executar comandos 
(como faria antes de acessar a linha de comando).
▪ Xterm
Principais aplicativos.
O kernel do Linux pode executar uma ampla variedade de software em varias plataformas de 
hardware.
• O software Linux geralmente se enquadra em uma de tres categorias;
◦ Aplicativo de servidor:
▪ Software que nao possui interacao direta com o monitor e o teclado da maquina em 
que e executado.
• Servidores Web
◦ Um servidor web hospeda conteudo para paginas da web, que sao 
visualizadas por um navegador da web usando o HyperText Transfer 
Protocol (HTTP) ou seu tipo criptografado, (HTTPS).
◦ WordPress e um exemplo popular.
▪ Os usuarios podem desenvolver conteudo por meio de seu navegador no 
aplicativo WordPress, e o software o transforma em um site dinamico 
totalmente funcional.
◦ O Apache e o servidor Web dominante em uso hoje.
▪ O Apache ear originalmente um projeto idependente, mas o grupo formou
a Apache Software Foundation e mantem mais de cem projetos de 
software de codigo aberto.
▪ O Apache HTTPD e o daemon, ou programa de aplicativo para servidor, 
que "atende" solicitacoes de paginas web.
◦ Outro servidor web e o NGINX.
▪ Ele se concentra no desempenho, usando os kernels UNIX mais modernos
e faz apenas um subconjunto do que o Apache podefazer.
◦ Mais de 65% dos sites sao alimentados por NGINX ou Apache.
• Servidores em nuvem privada.
◦ A medida que empresas e individuos comecaram a mover dados para nuvem, 
ha demanda por softwares de servidor em nuvem privada vem crescendo, 
pois pode ser implementado e administrado internamente.
◦ Exemplos como ownCloud.
▪ Criado e desenvolvido por Frank Karlitschek em 2010, o projeto fornece 
software para armazenar sincrinizar e compartilhar dados de servidores 
em nuvem privada.
• Disponivel sob a licenca GNU AGPLv3 de codigo aberto padrao.
◦ Nextcloud.
▪ Foi extraido da ownCloud em 2016 por Karlitschek e vem crescendo 
constantemente.
• Tambem desenvolvido sob a licenca GNU AGPLv3 e tem como 
objetivo:
• Um processo de desenvolvimento aberto e transparente.
• Servidores de banco de dados.
◦ Os aplicativos de servidor de banco de dados formam a espinha dorsal da 
maioria dos serviços online. 
◦ Aplicativos dinâmicos da Web extraem dados e gravam dados nesses 
aplicativos. 
▪ Exemplos de aplicativos.
• MariaDB 
◦ E um fork desenvolvido pela comunidade do sistema de 
gerenciamente de banco de dados relacional MySQL.
◦ Um banco de dados armazena informacoes e tambem permete 
facil recuperar e consultar.
• Firebird.
• PostgreSQL
◦ Pode-se inserir numeros brutos de vendas no banco de dados e, em seguida 
usar uma linguagem chamado SQL (Structured Query Language).
• Servidores de email.
◦ Ao discutir servidores de email, e sempre util examinar as tres tarefas 
diferentes necessarias para receber email entre as pessoas.
▪ Agente de Transferência de Correio (MTA)
• O MTA mais conhecido (software usado para transferir mensagens 
eletrônicas para outros sistemas) é o Sendmail . 
• O Postfix é outro popular e tem como objetivo ser mais simples e 
mais seguro que o Sendmail.
▪ Agente de Entrega de Correio (MDA)
• Também chamado de Agente de Entrega Local , ele cuida de 
armazenar o email na caixa de correio do usuário. 
• Geralmente invocado a partir do MTA final na cadeia.
• Servidor POP / IMAP
◦ O POP (Protocolo da agência postal) e o 
◦ IMAP (Internet Message Access Protocol)
▪ São dois protocolos de comunicação que permitem que um cliente de 
email em execução no seu computador fale com um servidor remoto para 
receber o email.
◦ Aplicativo de desktop:
▪ Nevegadores da Web, editores de texto, tocadores de musica ou outros aplicativos 
com os quais os usuarios interagem diretamente.
• Compartilhamento de arquivos.
◦ Para compartilhamento de arquivos centrados no Windows, o Samba e o 
melhor.
▪ Permite que uma maquina Linux pareca e se comporte como uma 
maquina Windows, para que possa compartilhar arquivos e participar de 
um dominio do Windows.
◦ O projeto Netatalk permite que uma maquina Linux funcione como um 
servidor de arquivos Apple Macintosh.
◦ O protocolo de arquivos nativo para UNIX/Linux e chmado de:
▪ NFS (Network File System).
• O NFS geralmente faz parte do kernel, o que significa que um sistema
de arquivos remoto pode ser montado (tornado acessivel) como um 
disco comum, tornando o acesso ao arquivo transparente para outros 
aplicativos.
◦ O LDAP (Lightweight Directory Access Protocol), e um sistema de diretorio 
comum que tambem alimenta o Active Directory da Microsoft.
◦ Ferramentas:
▪ Uma categoria flexivel de software que existe para facilitar o gerenciamento de 
sistemas de computador.
• Shells
◦ O trabalho do Shell e aceitar comandos, como manipulacoes de arquivos e 
iniciar programas, e passa-los ao Kernel do Linux para execucao.
◦ As duas principais familias sao o "Shel Bourne" e o "C Shell".
▪ Suas vercoes mais modernas sao:
• Bash ( Bourne Again Shell) e
• Tcsh (Tee-Cee-Shell)
◦ O Shell é o intérprete de linha de comando que traduz comandos inseridos 
por um usuário em ações a serem executadas pelo sistema operacional.
▪ O Shell mais comumente usado para distribuições Linux é chamado de 
“Shell Bash”.
• O Bash fornece muitos recursos avançados, como histórico de 
comandos e edição em linha, o que permite ao usuário reexecutar 
facilmente comandos executados anteriormente ou uma variação 
deles por meio de edição simples.
• O Shell Bash também possui outros recursos populares, alguns dos 
quais estão listados abaixo;
◦ Script:
▪ Capacidade de colocar comandos em um arquivo e depois 
interpretar (efetivamente usar o Bash para executar o 
conteúdo) o arquivo, resultando na execução de todos os 
comandos.
◦ Aliases:
▪ A capacidade de criar apelidos curtos para comandos mais 
longos.
◦ Variáveis:
▪ Usadas para armazenar informações para o Shell Bash e para o
usuario.
• Gerenciamento de Pacotes.
◦ Debian;
▪ A ferramenta de nivel mais baixo para gerenciar esses arquivos no debian 
e o coamndo:
• dpkg.
◦ apt-get (Advanced Package Tool)
▪ Programa front-end da ferramenta dpkg
◦ aptitude
• Ferramenta adicinai de linha de comando que servem como front-
ends para o dpkg
▪ Synaptic
• Ferramenta front-end da GUI
▪ Software Centrer.
• Ferramenta front-end da GUI
◦ RPM
▪ O Linux Standards Base , que é um projeto Linux Foundation , foi 
projetado para especificar (por consenso) um conjunto de padrões que 
aumentam a compatibilidade entre os sistemas Linux em conformidade. 
De acordo com a Linux Standards Base, o sistema padrão de 
gerenciamento de pacotes é o RPM.
▪ O RPM utiliza um arquivo .rpm para cada pacote de software.
▪ Este sistema e o que as distribuicoes derivadas do Red Hat, incluindo 
CentOS e Fedora, usam para gerenciar seus softwares.
▪ Outras distribuicoes nao derivadas da Red Hat, como SUSE, OpenSUSE e
Arch Linux, tambem utilizam pacotes RPM.
▪ A ferramenta de back-end mais comumente usada para gerenciamente de 
Pacotes RPM e o comando:
• rpm.
◦ Embora o comando rpm possa instalar, atualizar, consultar e 
remover pacotes, as ferramentas de front-end de linha de comando
como:
▪ yum e up2date
• Automatizam o processo na resolucao de problemas de 
dependencia.
• A ferramentas front-end da GUI mais conhecidas sao:
◦ Yumex e Gnome PackageKit, que facilitam o gerenciamento de 
pacotes RPM.
▪ Algumas distribuicoes baseadas em RPM implementaram o estilo de 
gerenciamento de pacotes ZYpp ou (libzypp) principalmente OpenSUSE e 
SUSE Linux Enterpris.
• O comando zypper e a base do metodo ZYpp e possui comandos 
longos escritos em ingles para executar funcoes, como a instalacao de 
um pacote incluindo as dependencias necessarias:
◦ zypper in packagename.
A Nuvem
Computacao em nuvem.
• Um modelo de implantacao em nuvem fornece uma base para como a infraestrutura em 
nuvem e criada, gerenciada e acessada.
• Existem quatro modelos principais de implantacao em nuvem:
◦ Nuvem Publica: 
▪ Uma nuvem pública é uma infraestrutura de nuvem implantada por um provedor 
para oferecer serviços em nuvem ao público em geral e organizações pela Internet.
• No modelo de nuvem pública, pode haver vários inquilinos (consumidores) que 
compartilham recursos comuns de nuvem.
◦ Nuvem Privada:
▪ Uma nuvem privada é uma infraestrutura de nuvem configurada para o uso exclusivo
de uma organização específica. 
• Quando comparada a uma nuvem pública, uma nuvem privada oferece às 
organizações um maior grau de privacidade e controle sobre a infraestrutura, 
aplicativos e dados da nuvem.
◦ Nuvem da Comunidade:
▪ Uma nuvem da comunidade é uma infraestrutura de nuvem configurada para uso 
exclusivo por um grupo de organizações com objetivos ou requisitos comuns. 
• As organizações que participam da comunidade geralmente compartilham o 
custo do serviço de nuvem da comunidade.
◦ Nuvem Hibrida:
▪ Uma nuvem híbrida é composta por duas ou mais nuvens individuais, cada uma das 
quais pode ser uma nuvem privada, comunitária ou pública.
• Uma nuvem híbrida pode mudar com o tempo à medida que as nuvens 
componentes se juntam e saem.
• O uso dessa tecnologia permite a portabilidade de dados e aplicativos. 
• Etambém permite que as empresas aproveitem os recursos externos, mantendo o 
controle de recursos sensíveis.
COMANDOS DE AJUDA
type
Usado paraexibir informacoes sobre o tipo de comando.
• E um comando embutido do bash.
◦ Bash e o interpretador de comandos mais usado no linux.
• Serve para informar se um comando ou programa e do tipo:
◦ Alias:
▪ Um apelido. Geralmente um nome mais curto para memorizar.
◦ Comando interno do Shell:
▪ Um comando embutido ao bash ou a outro shell;
• Quando o comando e interno ao shell ele e conhecido como built-in.
◦ Comando externo do Shell:
▪ Um comando que não faz parte do shell.
• O shell mais usado e o bash.
◦ Mas e um arquivo localizado no sistema de arquivos, geralmente dentro das 
pastas:
▪ (/bin/, sbin/, usr/bin … etc.)
• Quando o comando e externo o do shell o (type) retorna seu caminho.
• Opção mais usada no comando type:
◦ -t Abrevia o resultado.
man
Exibe o manual dos comandos
• -f Exibe paginas de manual correspondentes.
• -k Pesquisa os nomes e as descrições das páginas de manual em busca de uma palavra-
chave.
◦ Os arquivos terminados com a extensao (.gz) são páginas de manual.
◦ As páginas do manual são diferenciadas por "seções". 
▪ Por padrão, existem nove seções de páginas de manual:
1. Programas executáveis ou comandos do shell.
2. Chamadas do sistema.
• Funções fornecidas pelo kernel.
3. Chamadas de biblioteca:
• Funções nas bibliotecas de programas.
4. Arquivos especiais:
• Geralmente encontrados em (/dev).
5. Formatos de arquivo e convenções:
• Por exemplo:
◦ (/etc/passwd).
6. Jogos.
7. Diversos:
• Incluindo pacotes de macro e convenções:
◦ Por exemplo:
▪ man(7)>,groff(7).
8. Comandos de administração do sistema:
• Geralmente apenas para raiz.
9. Rotinas do Kernel.
whatis
Exibe páginas de manual que correspondem parcialmente a um nome específico e fornece o número
da seção e uma breve descrição de cada página de manual. 
• Funciona exatamente como o comando:
◦ man -f.
apropos
Pesquisa os nomes e as descrições das páginas de manual em busca de uma palavra-chave.
• Funciona exatamente como o comando:
◦ man -k palavra chave.
info
Documentação sobre comandos e recursos do sistema operacional.
• O comando (info) serve para termos nocao do que o comando faz e quando já sabemos o 
nome do comando, mas queremos saber sua respectiva funcao.
• A navegacao nas paginas “info pages” e feita atraves de nomes marcados com um 
(HiperTextos) que, ao pressionar a tecla ENTER, nos leva ate a secao correspondente e, ao 
precionar a tecla BACKSPACE retorna a pagina anterior.
◦ As teclas de navegacao são:
▪ n: next/proximo.
▪ p: previous/anterior
▪ u: up/sobre um nivel.
▪ q: Para sair do info, basta precionar esta tecla.
--help
Esta opção é útil para aprender rapidamente o uso básico de um comando sem sair da linha de 
comando:
• A opcao (--help) serve para mostrar as opções disponiveis de um comando.
◦ Por exemplo:
▪ Quero saber quais as opções disponiveis do comando X, utilizando a opção –help, e 
possível verificar todas as opções disponiveis para funcao.
• Sua sintexe funciona da seguinte forma:
◦ (comando –help)
(/usr/share/doc) 
Onde se localiza informacoes mais detalhadas sobre os comandos.
• Neste caminho fica localizado as documentacoes dos comandos.
ascii
Exibe a tabela de texto ASCII
• Tabela de texto ASCII é usada para determinar o intervalo de caracteres.
COMANDOS DE MANIPULACAO DE ARQUIVOS E DIRETORIOS
"Existem várias maneiras de criar um novo arquivo, incluindo o uso de um programa projetado para
editar um arquivo um editor de texto".
"Também existe uma maneira de criar um arquivo vazio que pode ser preenchido com dados 
posteriormente."
touch
O comando touch não coloca nenhum dado dentro do novo arquivo.
• O comando touch pode ser usado para criar arquivos simultaneamente. 
◦ Por Exemplo:
▪ (sysadmin@localhost:~$ touch exemple.txt arquivo.txt teste.txt)
▪
file
Informa qual tipo de arquivo foi digitado como parametro.
• Por exemplo:
◦ (file TEXTO.txt).
▪ Informa que e um arquivo de texto.
mkdir
Cria diretorios.
• Sua sintexe funciona da seguinte forma:
◦ (mkdir diretorio_exemplo).
rm (Remove)
Remove arquivos.
• Os arquivos sao excluídos sem perguntas. 
◦ Isso pode causar problemas ao excluir vários arquivos usando caracteres glob.
• Os arquivos são excluídos permanentemente.
◦ Não há comando para recuperar um arquivo e não há lixeira para recuperar arquivos 
excluídos.
• Como precaução, os usuários devem usar a opção (-i) ao excluir vários arquivos: 
◦ Por exemplo: 
▪ (rm -i *.txt).
• O comando (rm) pode ser usado para excluir diretórios.
◦ No entanto, o comportamento padrão (sem opções) do comando (rm) é não excluir 
diretórios.
◦ Para excluir um diretório com o comando (rm), use a opção (-r) recursiva: 
▪ Por exemplo: 
• (rm -r diretorio)
▪ Quando um usuário exclui um diretório, todos os arquivos e subdiretórios são 
excluídos sem nenhuma pergunta interativa. 
• É melhor usar a opção (-i) com o comando (rm).
• Um diretorio tambem pode ser excluido com o comando (rmdir),mas apenas se o diretorio 
estiver vazio.
cd (Change Directory)
Comando utilizado para navegar entre diretorios do sistema.
• .. (dois pontos)
◦ O caracter dois pontos (..) representa um nivel acima do diretorio atual.
▪ Caracteres de ponto duplo sempre representam um diretório mais alto em relação ao 
diretório atual.
• As vezes chamado de diretório pai. 
◦ Por exemplo:
▪ para mover do diretório Art de volta para o diretório School:
• (/home/sysadmin/Documents/School/Art$ cd ..).
◦ O ponto duplo também pode ser usado em caminhos mais longos. 
▪ Por exemplo:
• o caminho relativo a seguir pode ser usado para mover do diretório School para o
diretorio Downloads: 
◦ (/home/sysadmin/Documents/School$ cd ../../Downloads)
• . (ponto)
◦ Independente do diretorio em que o usuario esteja, o ponto sempre representa o diretorio
atual.
1. Caminhos absolutos
• Caminhos absolutos permitem ao usuário especificar a localização exata de um diretório
◦ (/home/sysadmin/Documents$ cd /home/sysadmin)
▪ Quando o caminho que é fornecido como argumento para o comando (cd) 
começa com a barra (/), esse caminho é chamado de "caminho absoluto". 
◦ Caminhos absolutos são sempre caminhos completos do diretório raiz para um 
subdiretório ou arquivo.
2. Caminhos relativos
• Os caminhos relativos começam no diretório atual. 
◦ Um caminho relativo fornece instruções para um arquivo em relação à localização 
atual no sistema de arquivos. 
◦ Eles não começam com o caractere (/). Em vez disso, eles começam com o nome de 
um diretório. 
▪ Mais especificamente, os caminhos relativos começam com o nome de um 
diretório contido no diretório atual. 
• (/home/sysadmin/Documents$ cd Shool/Art).
• Com nomes de caminho relativos, você fornece "instruções" de onde deseja ir do 
diretório atual.
cp (Copy)
Usado para copiar arquivos. 
• Requer uma "fonte" e um "destino". 
◦ A estrutura do comando é a seguinte: 
▪ (cp [fonte] [destino]).
• A fonte é o arquivo a ser copiado. 
• O destino é o local onde a cópia deve ser localizada. 
◦ Quando bem-sucedido, o comando (cp) não possui saída. 
• O comando a seguir copia o arquivo (/etc/hosts) para o diretório inicial (~): 
◦ (cp /etc/hots ~)
• A opção (-v) faz com que o comando (cp) produza saída se for bem-sucedido. 
◦ A opção (-v) significa detalhado.
• Quando o destino é um diretório, o novo arquivo resultante mantém o mesmo nome que o 
arquivo original. 
◦ Para dar um novo nome ao novo arquivo, forneça o novo nome como parte do destino.
▪ Exemplo: 
• (cp /etc/hots ~/hots.copy).
• O comando (cp) pode ser destrutivo para os dados existentes se o arquivo de destino já 
existir.
◦ A opção (-i) requer que você responda "y" ou "n" para cada cópia que possa acabar 
substituindo o conteúdo de um arquivo existente.
▪ Com a opção interativa (-i), o comando (cp) solicita ao usuário antes de substituir um
arquivo. 
• O exemplo a seguir demonstra essa opção: 
◦ (cp -i /etc/hots exemple.txt)
• Para responder "n" a cada prompt automaticamente, use a opção (-n).
◦ Significa não destruir ou substituir.
• Por padrão, o comando (cp) não copiarádiretórios; qualquer tentativa de fazer isso resulta 
em uma mensagem de erro:
◦ No entanto, a opção (-r) do comando (cp) pode copiar arquivos e diretórios.
▪ Tenha cuidado com esta opção: 
• Toda a estrutura de diretórios será copiada, o que pode resultar na cópia de 
muitos arquivos e diretórios.
• O comando (cp) tem como principais funcoes:
◦ Opção: Significado:
▪ -i Interativo: pergunte se um arquivo deve ser substituído.
▪ -n No Clobber: Não substitua o conteúdo de um arquivo de destino.
▪ -v Detalhado : mostre a movimentação resultante.
◦ Tambem pode ser digitado como (--verbose)
▪ -r Recursive: Copia diretorios. 
◦ Tambem pode ser digitado como -R (Maiusculo).
▪ -p Preserva os atributos do arquivo.
dd
Utilitario para copiar arquivos ou particoes inteiras no nivel de bit.
• dd [opções] operando
◦ Este comando possui vários recursos uteis, incluindo:
▪ Pode ser usado para clonar ou excluir (limpar) discos ou particoes inteiros.
▪ Ele pode ser usado para copiar dados brutos para dispositivos removiveis, como 
unidade USB e CDROMs.
▪ Ele pode fazer backup e restaurar o MBR (Master Boot Record).
▪ Ele pode ser usado para criar um arquivo de tamanho especifico preenchido com 
zeros binarios, que pode ser usado como arquivo de troca (Memoria virtual).
◦ O comando (dd) usa argumentos especiais para especificar como ele funcionara.
▪ Exemplos mais usados:
• Argumento: Descricao:
◦ if Arquivo de entrada a ser lido.
▪ Exemplo:
• dd if=/dev/zero of=/tmp/swapex bs=1M count=50
◦ Este exemplo le do (/dev/zero arquivo), um arquivo especial que 
contem um numero ilimitado de zeros.
◦ of Arquivo de saida a ser gravado
▪ Exemplo:
• dd if=/dev/zero of=/tmp/swapex bs=1M count=50
◦ bs Tamanho do bloco a ser usado.
▪ Exemplo:
• dd if=/dev/zero of=/tmp/swapex bs=1M count=50
◦ Por padrao o valor e considerado em bytes.
▪ Use os seguintes sufixos para especificar outras unidades
• K-kilobytes, M-megabytes, G-gigabytes e T-terabytes.
◦ Este exemplo usa um tamanho de bloco de 1 megabyte.
◦ count Contagem: Numero de blocos a serem lidos no arquivo de 
entrada. 
▪ Exemplo:
• dd if=/dev/zero of=/tmp/swapex bs=1M count=50
◦ Este exemplo le 50 blocos.
• Nao e necessario especificar nenhum tamanho ou contagem de bloco ao copiar em 
dispositivos inteiros.
◦ Por exemplo:
▪ Para clonar de um disco rigido
• (/dev/sda) para outro (/dev/sdb).
◦ Execute o seguinte comando:
▪ dd if=/dev/sda of=/dev/sdb
mv (Move)
Para mover um arquivo, use o comando (mv).
• A sintaxe para o comando (mv) é muito parecida com o comando (cp): 
◦ (mv [fonte] [destino]).
▪ FONTE e o arquivo ou diretorio a ser movido.
• Quando um arquivo é movido, ele é removido do local original e colocado em um novo 
local. 
◦ Mover arquivos pode ser um pouco complicado no Linux porque os usuários precisam 
de permissões específicas para remover arquivos de um diretório.
▪ Sem as permissões corretas, uma mensagem de erro é retornada 
• "Permission denied".
• O comando (mv) tem como principais opcoes:
◦ Opção: Significado:
▪ -i Interativo: pergunte se um arquivo deve ser substituído.
▪ -n No Clobber: Não substitua o conteúdo de um arquivo de destino.
▪ -v Detalhado: mostre a movimentação resultante.
◦ Tambem pode ser digitado (--verbose)
▪ Não há opção (-r), pois o comando (mv) move os diretórios por padrão.
mv (Rename)
O comando (mv) não é usado apenas para mover um arquivo, mas também para renomear um 
arquivo.
• Se o destino do comando (mv) for um diretório, o arquivo será movido para o diretório 
especificado. 
◦ O nome do arquivo muda apenas se um nome de arquivo de destino também for 
especificado. 
▪ Exemplo:
• (sysadmin#localhost:~$ mv exemplo.txt Videos/novo_exemplo.txt).
• Se um diretório de destino não for especificado, o arquivo será renomeado usando o nome 
do arquivo de destino e permanecerá no diretório de origem.
◦ Por exemplo;
▪ Os seguintes comandos renomeiam o arquivo "newexample.txt" para "myfile.txt"
• (sysadmin@localhost:~/Videos$ mv newexemple.txt myfile.txt).
SOBRE ARQUIVAMENTO E COMPACTACAO.
Arquivamento:
Combina vários arquivos em um, o que elimina a sobrecarga em arquivos individuais e facilita a 
transmissão dos arquivos.
• Arquivando arquivos.
◦ Se você tiver vários arquivos para enviar a alguém, poderá optar por compactar cada um 
individualmente. 
◦ Você teria uma quantidade menor de dados no total do que se enviasse arquivos 
descompactados, no entanto, ainda teria que lidar com muitos arquivos ao mesmo 
tempo.
▪ O arquivamento é a solução para esse problema.
• É chamado o utilitário tradicional do UNIX para arquivar arquivos (.tar), que é 
uma forma curta do TApe aRchive.
• O comando (tar) possui três modos úteis para se familiarizar:
◦ Criar: Crie um novo arquivo com uma série de arquivos.
◦ Extrair: Retire um ou mais arquivos de um arquivo morto.
◦ Lista: Mostra o conteúdo do arquivo morto sem extrair.
• A compressão (bzip2) pode ser usado em vez de substituindo (gzip).
◦ A opção -j para a opção -z e usar:
▪ (tar.bz2), (.tbzou), (.tbz2).
• Como extensão de arquivo.
• O primeiro argumento zipfile e o nome do arquivo a ser criado, depois disso, uma lista de 
arquivos a serem adicionados.
Compactação
Reduz os arquivos removendo informações redundantes.
• Os arquivos podem ser compactados individualmente ou vários arquivos podem ser 
combinados em um único arquivo e, posteriormente, compactados. 
• O último ainda é chamado de arquivamento.
• Ao falar sobre compactação, existem dois tipos:
◦ Sem perdas: 
▪ Nenhuma informação é removida do arquivo. 
▪ A compactação e descompactação de um arquivo deixa algo idêntico ao original.
◦ Com perdas:
▪ As informações podem ser removidas do arquivo.
• É compactado de forma que a descompactação de um arquivo resulte em um 
arquivo ligeiramente diferente do original.
◦ Por exemplo:
▪ Uma imagem com dois tons de verde sutilmente diferentes pode ser 
reduzida ao tratar esses dois tons da mesma forma. 
▪ Muitas vezes, o olho não consegue perceber a diferença de qualquer 
maneira.
◦ A maioria dos formatos de imagem, como:
▪ GIF, PNG e JPEG
• Implementa alguma forma de compactação com perdas.
• Os arquivos compactados podem ser restaurados para sua forma original usando o comando 
(gunzip) ou o comando (gzip) seguido da opcao (–d) 
◦ Esse processo é chamado de descompressão
◦ O comando (gzip) usa o algoritmo de compactação de dados Lempel-Ziv.
▪ Enquanto os utilitários (bzip) usam um algoritmo de compactação diferente chamado
de classificação de blocos Burrows-Wheeler.
• Que pode compactar arquivos menores do que gzipàs custas de mais tempo da 
CPU.
COMANDOS DE COMPACTACAO E DESCOMPACTACAO.
tar
O comando (tar) e usado para mesclar vários arquivos em um único arquivo.
• Por padrao, ele não compacta os dados.
• Sua sintaxe e a seguinte:
• tar -c [-f ARQUIVO] [OPÇÕES] [ARQUIVO…]
◦ O argumento ARCHIVE será o nome do arquivo resultante
▪ Opção: Significado:
• -c Informa ao comando tar para criar um arquivo tar.
• -v Significa “detalhado”, que institui o comando tar a demonstrar o 
que esta fazendo.
• -f Usada para especificar o nome de um arquivo tar.
• -t Usado para listar o conteudo do arquivo em formato de lista.
• -z Esta opção utiliza o utilitario gzip para executar a compactacao.
• -j Esta opção utiliza o utilitario bzip2 para executar a compactacao.
• -x Extrai o conteudo de um arquivo tar.
• -r Adiciona um arquivo a um arquivo existente
• Nao e necessario usar a extensao (.tar) para no nome de arquivo morto, no entanto, e util 
para identificar o tipo de arquivo.
◦ E considerado “Boas praticas” ao enviar um arquivo morto para outra pessoa.
gzip
O comando (gzip) e utilizado para compactar arquivos, onde sua extensao terminara com (.gz)
• Quando se usa gzip, o arquivo original e substituido pelo arquivo compactado.
◦ Quando o arquivo e descompactado ele volta a ser substituido pelo arquivo original.
▪ Opção: Significado:
• -d Restaura os arquivos para sua versao original
◦ Processo chamado de descomprenssao
gunzip
Comandousado para descompactar arquivos com extensao (.gz)
• Restauro os arquivos para sua versao original.
bzip2
O comando (bzip2) tem as mesma funcoes que o comando (gzip) e e utilizado para compactar 
arquivos, onde sua extensao terminara com (.bz2).
• A extensao e removida quando não compactada.
bunzip2
Comando similar ao (gunzip), utilizado para descompactar arquivos porem com extensao (.bz2)
xz
Comando utilizado para compactar arquivos, onde sua extensao terminara com (.xz).
• A extensao e removida quando não compactada.
unxz
Comando utilizado para descompactar arquivos terminados com a extensao (.xz)
zip
Comando utilizado para compactar arquivos para ser compartilhados com utilizadores Windowns.
• Diferente dos outros compactadores como (gzip, bzip2) o comando (zip) compacta uma 
copia do arquivo original, fazendo com que o arquivo original permanece descompactado.
• Arquivos criados com o comando (zip) terminam com a extensao (.zip)
• Nao e necessario usar a extensao (.zip) para o nome de arquivo morto, no entanto, e util para
identificar o tipo de arquivo.
◦ E considerado “Boas praticas” ao enviar um arquivo morto para outra pessoa.
• Sua sintaxe e a seguinte:
◦ zip [OPÇÕES] [zipfile [arquivo…]]
▪ Opção: Significado:
• -r Esta opção especifica a recursividade em diretorios.
• -l Visualiza o conteudo do arquivo (.zip)
unzip
Comando utilizado para descompactar arquivos com extensao (.zip)
COMADOS DE BUSCA
which
Procura a localizacao do caminho completo de um comando.
• Essa localizacao funciona efetuando uma pesquisa na variavel
◦ "PATH".
◦
whereis
Este comando procura por arquivos de origem, comandos e páginas de manual em locais 
específicos onde esses arquivos são tipicamente armazenados.
locate 
Este comando pesquisa um banco de dados de todos os arquivos e diretórios que estavam no 
sistema quando o banco de dados foi criado.
• O banco de dados utilizado pelo comando (locate) fica localizado em
◦ (/var/lib/mlocate/mlocate.db).
• O comando (locate) na verdade e um link logico que aponta para o comando (mlocate).
• Algumas das opções do comando:
◦ -c Exibe quantos arquivos correspondem ao digitado.
◦ -b Procura pelo nome do arquivo literalmente digitado.
▪ Tambem pode ser digitado como: -basename
▪ Por exemplo:
• (locate -b tree).
◦ O locate ira procurar por arquivos apenas com o nome “tree”, não ira buscar 
por “tree.txt” ou arquivotree.txt” ...etc.
◦ \ Esse caractere limita a saída a nomes de arquivos que correspondem exatamente 
ao termo.
◦ -i Nao faz diferença entre letras maiusculas e minusculas.
▪ Tambem pode ser digitado como: -ignore-case.
◦ -s Exibe estatisticas, como localizacao da base de dados, total de diretorios e 
arquivos indexados na base ...etc.
▪ Tambem pode ser digitado como: -statistics
• Existem varias implementacoes do locate:
◦ A original encontrada nas findutils da GNU, e mlocate.
▪ As vantagens do mlocate são:
• Indexa todo o sistema de ficheiros.
◦ Mas os resultados da pesquisa só incluem ficheiros a que o utilizador tem 
acesso.
• Em vez de reler todo o conteudo de todos os diretorios de cada vez que a base de
dados e atualizada, o mlocate mantem informacoes temporais na sua base de 
dados e consegue determinar se o conteudo dos diretorios foi alterado sem os ler
novamente.
◦ Isso torna as atualizacoes muito mais rapidas e menos exigentes para o disco
rigido.
• O banco de dados e criado por um outro utlitario chamado “updatedb”.
◦ updatedb
▪ Utilizado para criacao e atualizacao de bando de dados.
• Este comando varre todo o sistema gerando uma listagem completa que por sua 
vez e copiada para o banco de dados.
◦ Dependendo do tamanho do sistema, pode-se agendar, via “cron”, a execucao
do updatedb com a frequencia que for mais conveniente.
▪ Horas, minutos ...etc.
• updatedb.conf não e um arquivo de configuracao, mas apenas um meio de 
facilitar o uso do comando updatedb de forma que não precisamos passar os 
valores do arquivo updatedb.conf para a linha de comando.
• Usuários regulares não podem atualizar o arquivo de banco de dados.
• Opcoes mais utilizadas no comando updatedb.
◦ -prunefs Grava sistemas de arquivos digitados na variavel PRUNEFS.
▪ Essa opção sobrescreve os valores passados para PRUNEFS em:
• (/etc/updatedb.conf)
◦ -f Adiciona valores (separados por espacos em branco) para a variavel 
PRUNEFS.
• Tambem pode ser digitado como: -add-prunefs.
◦ Por exemplo:
▪ (- n ou -add-prunefs Nomes_de_sistemas_de_arquivos).
◦ -prunenames Grava nomes digitados na variavel PRUNENAMES.
▪ Essa opção sobrescreve os valores passados para PRUNENAMES em.
• (/etc/updatedb.conf).
◦ -n Adiciona valores (separados por espacos em branco) para a variavel 
PRUNENAMES.
▪ Tambem pode ser digitado como: -add-prunenames.
• Por exemplo:
◦ -n ou -add-prunenames Digite_alguns_nomes_aqui.
◦ -prunepaths Grava caminhos digitados na variavel PRUNEPATHS.
▪ Essa opção sobrescreve os valores passados para PRUNEPATHS em:
• (/etc/updatedb.conf)
◦ -e Adiciona valores (separados por espacoes em branco) para a variavel
PRUNEPATHS.
▪ Tambem pode ser digitado como: -add-prunepaths.
• Por exemplo:
◦ -e ou -add-prunepaths Digite_caminhos_de_arquivos.
◦ -U Armazena na base de dados apenas os caminhos passados para -U.
▪ Por padrao todo sistema de arquivo e passado para a base de dados do 
updatedb.
▪ Tambem pode ser digitado como: -database-root
• Por exemplo:
◦ (-U ou -database-root Digite_caminhos_de_arquivos).
◦ -o Grava em arquivo.db o conteudo da base de dados.
▪ Tambem pode ser digitado como: -output
• Por exemplo:
◦ (-o ou -output arquivo.db)
find.
Utilizado para procurar por arquivos na arvore de diretorios.
• O comando find iniciara a pesquisa no diretorio especificado e pesquisara recursivamente 
todos os subdiretorios.
• Isto e, ele tenta localizar o que solicitamos dentro do local que indicamos checando os 
subdirtorios tambem.
◦ Por exemplo
▪ Para procurar arquivos comecando no diretorio inicial que contem o nome bash.
• (find ~ -name "*bash*")
• Este comando e muito flexível, permite pesquisar com uma variedade de opções 
como nome do arquivo, tamanho, data, tipo e permissão.
• Este comando pesquisa o sistema de arquivos ativo, em vez de um banco de dados estático.
◦ A sintaxe do comando e a seguinte:
▪ find [CAMINHO] [OPCOES] [NOMES_DO_ARQUIVO].
grep
Este comando e um filtro de texto que pesquisara linhas de entrada e retorno que contem uma 
correspondencia com um determinado padrao.
• Pode ser usado para filtrar linhas em um arquivo ou a saida de outro comando que 
corresponda a um padrao especificado.
• Sua sintaxe e a seguinte:
◦ grep [OPCOES] PADRAO [ARQUIVO]
▪ Opção Função
• --color Descata os itens correspondentes com determinadas cores.
• -c Fornece uma contagem de quantas linhas correspondem ao 
padrao.
• -n Exibi numeros de linhas originais, todas as linhas e seus numeros 
de linhas.
• -v Inverte a correspondencia, produzindo todas as linhas que nao 
contem o padrao.
• -i Ignora as distincoes de maiusculas e minusculas.
• -w Retorna apenas linhas que contem correspondecias que formam 
palavras inteira.
• -E Pode ser usada para executar pesquisas com expressões regulares 
estendidas , expressões regulares essencialmente mais poderosas.
egrep
Usa expressões regulares estendidas.
fgrep
Usado para corresponder caracteres literais, ignorando o significado especial dos caracteres de 
expressão regular.
COMANDOS DE VISUALIZAÇÃO E LISTAGEM
echo
Usado para exibir a saída no terminal.
• echo ~~ sysadmin ~ root ~ mail ~ arquivo or diretorio.
◦ Exibe o caminho absoluto ate o arquivo ou diretorio especificado.
cat
Abreviação de concatenar, é um comando simples, mas útil, cujas funções incluem criar e exibir 
arquivos de texto, além de combinar cópias de arquivos de texto.
• Exibe todo o conteudo do arquivo.
◦ Por isso e recomendado para arquivos menores, onde a saidae limitada e não requer 
rolagem.
◦ Embora o terminal seja a saída padrão deste comando, o comando cat também pode ser 
usado para redirecionar o conteúdo do arquivo para outros arquivos ou inserir outro 
comando usando caracteres de redirecionamento.
▪ Sua sintaxe e a seguinte:
• (cat TEXTO.txt).
less
O comando less fornece um recurso de paginação muito avançado.
• Geralmente é o pager padrão usado por comandos como o comando man.
• Sua sintaxe e a seguinte:
◦ (less Nome_do_arquivo)
• Teclas h ou Shift + H exibe uma tela de ajuda.
• As teclas que são idênticas (more e less) estão resumidas abaixo para demonstrar como 
entrar (more e less) ao mesmo tempo:
◦ Chave Movimento
▪ Barra de espaço Janela para a frente
▪ B Janela para trás
▪ Entrar Linha em frente
▪ Q Saída
▪ H Socorro
▪ # Número de linhas contadas na parte inferior da saída a 
serem excluídas.
• Ao usar less como pager, a maneira mais fácil de avançar uma página é 
pressionar a barra de espaço .
• Existem duas maneiras de pesquisar no comando less:
◦ Pesquisar para frente ou para trás a partir da sua posição atual.
▪ Para iniciar uma pesquisa a partir da sua posição atual, use a tecla barra (/).
• Em seguida, digite o texto ou padrão correspondente e pressione a tecla Enter 
◦ Se nenhuma correspondência a partir de sua posição atual puder ser 
encontrada, a última linha da tela informará 
▪ Pattern not found:.
▪ Para pesquisar para trás em sua posição atual, pressione o ponto de interrogação (?), 
digite o texto ou padrão correspondente e pressione a tecla Enter.
• Se mais de uma correspondência puder ser encontrada por uma pesquisa, use a 
tecla (n) para mover a próxima correspondência e use a combinação de teclas 
(Shift + N) para ir para uma correspondência anterior
more
O comando more existe desde os primeiros dias do UNIX.
• O comando more está sempre disponível, direfente do comando less que nao esta presente 
em todas as distribuicoes, porem possui mais recursos que o comando more.
head
Utilizado para visualizar um numero selecionado de linhas na parte superior de um arquivo.
• Sua sintaxe e a seguinte:
◦ head [OPCOES] [ARQUIVO]
◦ Por padrao este comando exibe apenas dez linhas no shell.
◦ Passar um número como uma opção fará com que o comando head produza o número 
especificado de linhas, em vez do padrão dez.
▪ Por exemplo:
• Para exibir as últimas cinco linhas do arquivo (/etc/sysctl.conf), use a opcao -5:
◦ (head -5 /etc/sysctl.conf)
• A versão GNU do comando head reconhece -n -3 como mostrar todas, exceto as 
últimas três linhas, e ainda assim o comando head ainda reconhece a opção -3 
como mostrar as três primeiras linhas.
•
▪ Opcoes mais utilizadas:
• Opcoes: Significado:
◦ -n Usada para especificar a quantidade de linhas a serem exibidas
▪ Por exemplo:
• (head -n 3 /etc/sysct1.conf)
n1
Adiciona numeros de linha a saida.
tail
Utilizado para visualizar um numero selecionado de linhas na parte inferior de um arquivo.
• Sua sintaxe e a seguinte:
◦ tail [OPCOES] [ARQUIVO]
◦ Por padrao este comando exibe apenas dez linhas no shell.
◦ Opção de valor negativo
▪ Para o comando tail, um -3 ou -n -3 ainda significa mostrar três linhas.
• A versão GNU do comando tail permite uma variação de como especificar o 
número de linhas a serem impressas.
• Se a opção -n for usada com um número prefixado pelo sinal de mais, o comando
tail reconhecerá que isso significa exibir o conteúdo iniciando na linha 
especificada e continuando até o final.
◦ Por exemplo,
▪ (n1 /etc/passwd | tail -n +25)
• O seguinte exibe o conteúdo da linha de origem (/etc/passwd) até o 
final do arquivo 25:
▪ Opcoes mais utilizadas:
• Opcoes: Significado:
◦ -n Usada para especificar a quantidade de linhas a serem exibidas
◦ -f Usada para visualizar as alteracoes do arquivo ativo.
▪ útil quando se deseja ver as alterações em um arquivo enquanto elas estão
acontecendo.
ls
Usado para listar diretorios de arquivos.
• Em muitas distribuições Linux, o comando (ls) usa cores para distinguir por tipo. 
◦ Exemplos:
▪ Azul = Arquivos de Diretorios.
▪ Verde = Arquivos de Execucao
• Um programa.
▪ Ciano = Links Simbolicos.
• Um arquivo que aponta para outro arquivo.
▪ Preto ou branco = Arquivos regulares
• Opcoes mais comuns no comando (ls):
◦ -a Exibe todos os arquivos do diretorio, incluindo os arquivos ocultos.
◦ Arquivos ocultos:
▪ Um arquivo oculto é qualquer arquivo (ou diretório) que começa com um
caractere de ponto (.arquivo)
• Por exemplo, o arquivo “.bashrc” mostrado no exemplo
◦ (sysadmin@localhost:~$ ls -a).
▪ Contém informações de configuração para o shell “bash.” 
▪ Este é um arquivo que você normalmente não precisa visualizar 
regularmente.
◦ -h Deixa legivel para humanos.
◦ -d Refere-se ao diretorio atual.
◦ Esse comando deve ser usado junto a opcao (-l)
◦ -S Classificar os arquivos por tamanho do maior para o menor.
◦ A letra (S) e (maiuscul o ).
◦ -t Classifica os arquivos com base na hora em que foram modificados.
◦ É importante lembrar que a data modificada nos diretórios representa a 
última vez que um arquivo foi adicionado ou removido do diretório.
▪ Para obter informações mais detalhadas sobre o tempo de modificação, 
pode-se usar a opção:
• --full-time Para exibir o registro de data e hora completo 
◦ Incluindo:
▪ Horas, minutos, segundos.
◦ -R Mostra o conteudo dos subdiretorios alem do atual 
◦ (R) e (Maiusculo).
▪ Listagem recursiva:
• Exibir todos os arquivos em um diretório, bem como todos os 
arquivos em todos os subdiretórios desse diretório. 
◦ Tenha cuidado com esta opção;
▪ Por exemplo, executar o comando no diretório raiz listaria 
todos os arquivos no sistema de arquivos, incluindo todos os 
arquivos em qualquer dispositivo USB conectado e DVD no 
sistema. 
◦ Limite o uso de listagens recursivas para estruturas de diretório 
menores. 
◦ -r Exibe o diretorio em ordem de tras para frente.
◦ (r) (minusculo).
◦ -l Exibe informacoes dos arquivos contidos no diretorio.
◦ Tipos de informacoes contidas na opcao (-l) do comando (ls) 
◦ (ls -l)
▪ drwxr--r-- 1 syslog utmp 1603 16 de marco de 2016 nome_do_arquivo.
◦ Tipos de arquivos:
▪ Consiste no tipo de arquivos contidos na saida do comando.
▪ Primeira letra mostrada na saida do comando.
• (d)rwxr--r--.
◦ d Directory = Um arquivo usado para armazenar outros 
arquivos.
◦ - Regular File = Inclui arquivos legíveis, arquivos de 
imagens, arquivos binários e arquivos compactados.
◦ l Symbolic Link = Aponta para outro arquivo.
◦ s Socket = Permite a comunicação entre processos.
◦ p Pipe = Permite a comunicação entre processos.
◦ b Block File = Usado para se comunicar com o hardware.
◦ c Character File = Usado para se comunicar com o 
hardware. 
◦ Permissoes:
▪ Consiste nas permissoes dada ao arquivo pelo dono dele.
▪ Nove caracteres apos o tipo de arquivos.
• d(rwxr—r--).
◦ r – Read.
▪ Efeito em arquivos:
• Permite que o conteudo do arquivo seja lido ou copiado.
▪ Efeito em diretorios:
• Sem permissao de execucao no diretorio, permite uma lista
não detalhada de arquivos.
• Com permissoes de execucao, o comando ls -l pode 
fornecer uma lista detalhada.
◦ w – Write.
▪ Efeito em arquivos:
• Permite que o conteudo seja modificado ou substituido, 
permite tambem que arquivos sejam adicionados ou 
removidos de um diretorio.
▪ Efeito em diretorios:
• Para que essa permissao funcione, o diretorio tambem 
deve ter permissoes de execucao.
◦ x – Execute.
▪ Efeitos em arquivos:
• Permite que um arquivo seja executado como um 
processo, embora os arquivos de script tambem exijam 
permissoes de leitura.
▪ Efeitos em diretorios:
• Permite que o usuario mude para o diretorio se os 
diretorios pai tambem tiverem permissoes de execucao.
◦ Links fisicos:
▪ Indicam quantos links fisicos apontam para o arquivo.
▪ Os links fisicos sao os numeros apos as permissoes:
• drwxr--r--(1).
◦ Proprietario do usuario:▪ Cada arquivo pertence a uma conta de usuario, a qual permite ao 
proprietario o direito de definir as permissoes do arquivo.
▪ A propriedade de usuario e o primeiro nome apos os links fisicos. 
• drwxr--r-- 1 (syslog)
◦ Proprietario do grupo:
▪ Indica qual grupo possui este arquivo, isso e importante porque qualquer 
membro deste grupo tem um conjunto de permissoes no arquivo.
▪ O priprietario do grupo e o segundo nome apos o proprietario do arquivo.
• drwxr--r-- 1 syslog (utmp)
◦ Tamanho do arquivo:
▪ Exibe o tamanho do arquivo em bytes.
▪ Para diretórios, esse valor não descreve o tamanho total do diretório, mas 
quantos bytes são reservados para acompanhar os nomes de arquivos no 
diretório.
• Em outras palavras, ignore esse campo para diretórios.
▪ Às vezes, é preferível apresentar o tamanho do arquivo em um tamanho 
mais legível por humanos, como megabytes ou gigabytes.
• Para fazer isso, adicione a opção (-h) ao comando (ls -lh):
◦ Importante: 
▪ A opção (-h) deve ser usada com a opção (-l).
▪ O tamanho do arquivo e o numero apos o proprietario do grupo.
• drwxr--r-- 1 syslog utmp (1603) 
◦ Registro de data e hora:
▪ Indica a hora em que o conteúdo do arquivo foi modificado pela última 
vez. 
▪ Para diretórios, esse registro de data e hora indica a última vez que um 
arquivo foi adicionado ou excluído do diretório.
▪ O registro de data e hora e a data encontrada apos o tamanho do arquivo.
• drwxr--r-- 1 syslog utmp 1603 (16 de marco de 2016)
◦ Nome do arquivo:
▪ Campo final que contem o nome do arquivo ou diretorio.
▪ O nome do arquivo e o ultimo campo localizado no final.
• drwxr--r-- 1 syslog utmp 1603 16 de marco de 2016 (nome).
▪ No caso de links simbólicos , o nome do link é exibido junto com uma 
seta e o nome do caminho do arquivo original.
• drwxr--r-- 1 syslog utmp 1603 16 de marco de 2016 (/etc/grub.conf -
>../boot/grub/grub.conf).
• O comando (ls) é normalmente usado para listar arquivos em um diretório:
◦ Como resultado, o uso do comando (echo) pode parecer uma escolha estranha. 
• No entanto, há algo no comando (ls) que causa problemas ao listar arquivos usando padrões 
glob.
◦ Se o comando (ls) receber um nome de diretório, ele exibirá o conteúdo do diretório.
▪ O s nomes dos arquivos no diretório , não apenas o nome do diretório.
◦ Por exemplo se executar o comando:
▪ (ls /etc/ap*).
• Quando o comando (ls) vê um nome de arquivo como argumento, ele apenas 
exibe o nome do arquivo. 
• No entanto, para qualquer diretório, ele exibe o conteúdo do diretório, não 
apenas o nome do diretório.
▪ Isso se torna ainda mais confuso em uma situação como a seguinte:
• (ls /etc/x*). 
◦ O comando (ls) exibiu apenas os arquivos do diretorio.
▪ Existe uma solução simples para esse problema: 
• Sempre use a opção (-d) com globs, que informa ao comando (ls) para exibir o 
nome dos diretórios, em vez de seu conteúdo.
◦ (ls /etc/x*). 
pwd (print working directory)
Imprime o diretório de trabalho, que é o local atual do usuário no sistema de arquivos.
ps
Usado para listar processos atuais que estao sendo executados no terminal.
• As saidas incluem as seguintes informacoes:
◦ PID: Identificador do processo, que e exclusivo para o processo.
▪ Esta informacao e util para controlar o processo pelo seu numero de identificacao.
◦ TTY: Nome do terminal em que o processo esta sendo executado.
▪ Esta informacao e util para distinguir entre diferentes processos que tem o mesmo 
nome.
◦ TIME: Quantidade total de tempo do processador usado no processo.
▪ Normalmente essas informacoes não são usadas por usuarios regulares.
◦ CMD: Comando que iniciou o processo
◦ Sua sintaxe e a seguinte:
▪ ps [OPCOES]
◦ Opces utilizadas
▪ Opcoes: Significados:
• -e Lista todos os processos do sistema.
• -f Fornece informacoes detalhadas sobre os processos.
tee
SOBRE LINHAS DE COMANDO
Caractere de barra vertical ( | ) pipe
Pode ser usado para enviar a saída de um comando para outro.
• Normalmente, quando um comando tem saída ou gera um erro, a saída é exibida na tela; no 
entanto, isso não precisa ser o caso.
◦ Em vez de ser impresso na tela, a saída de um comando se torna entrada para o próximo 
comando. 
◦ O caractere de pipe (|) permite que utilize esses comandos não apenas nos arquivos, mas 
na saída de outros comandos.
▪ Para visualizar mais facilmente o início da saída, canalize-o para o comando head.
• Por exemplo:
◦ O exemplo a seguir exibe apenas as dez primeiras linhas:
▪ (ls /etc | head)
▪ A saída completa do comando ls é passada para o comando head pelo shell, em vez 
de ser impressa na tela.
• O comando head pega essa saída do comando ls como dados de entrada e a saída 
do head é impressa na tela.
▪ (ls/etc/ssh | tail -5 | n1)
• No segundo exemplo, a saída do comando ls é primeiro enviada ao comando tail 
que captura apenas as últimas cinco linhas da saída. 
◦ Em seguida, o comando tail envia essas cinco linhas para o comando n1, que 
os numera 1- 5.
tr
Este comando pega um conjunto de caracteres e os converte em outro conjunto de caracteres.
• Por exemplo:
◦ Para capitalizar uma linha de texto:
▪ Use o comando tr da seguinte maneira:
• (tr 'az' 'A-Z')
▪ o comando tr não suporta argumentos de nome de arquivo
▪ É possível, no entanto, dizer ao shell para obter STDIN de um arquivo em vez do 
teclado usando o caractere (<):
• Por Exemplo:
◦ (tr 'az' 'AZ' <exemplo.txt) 
sort
Este comando pode ser usado para reorganizar as linhas de um arquivo ou inserir em dicionario ou 
ate em ordem numerica.
• O comando sort pode reorganizar a saída com base no conteúdo de um ou mais campos.
◦ Os campos são determinados por um delimitador de campo contido em cada linha
◦ Na computação, um delimitador é um caractere que separa uma sequência de texto ou 
dados; o padrão é espaço em branco, como espaços ou tabulações.
• O exemplo a seguir cria um arquivo pequeno, usando o comando head para capturar as 5 
primeiras linhas do arquivo (/etc/passwd) e enviar a saída para um arquivo chamado 
mypasswd.
◦ (head -5 /etc/passwd> mypasswd)
• Agora usando o comando sort no arquivo mypasswd
◦ (sort mypasswd)
▪ Após um exame minucioso da saída no exemplo anterior, o comando sort organizou 
as linhas do arquivo em ordem alfabética.
• Três opções são usadas para atingir esse tipo:
◦ Opção Função
◦ -t(caracter) Especifica o delimitador de campo.
◦ -k(number) Especifica o numero do campo.
◦ -n Executa uma classificacao numerica.
◦ -r Executa uma classificacao reversa.
wc
Fornece o número de linhas, palavras e bytes (1 byte = 1 caractere em um arquivo de texto) para um
arquivo e uma contagem total de linhas se mais de um arquivo for especificado.
• Por padrão, o comando wc permite que até três estatísticas sejam impressas para cada 
arquivo fornecido, bem como o total dessas estatísticas se mais de um nome de arquivo for 
fornecido:
◦ Por exemplo:
▪ (wc /etc/passwd/etc/passwd-)
• Também é possível visualizar apenas estatísticas específicas.
◦ Opção Função
▪ -l Exibe apenas o numero de linhas
▪ -w Exibe apenas o numero de palavras
▪ -c Exibe apenas o numero de bytes ou qualquer combinacao dessas 
opções
▪ Por exemplo
• Se desejar saber o numero total de arquivos no diretorio /etc, canalize a saida de 
ls para o wc e conte apenas o numero de linhas:
◦ (ls /etc/ | wc -l)
cut
O comando cut pode extrair colunas de texto de um arquivo ou entrada padrao.
• Usado principalmente para trabalhar com arquivos de banco de dados delimitados.
◦ Arquivos delimitados sao arquivos que contem colunas separadas por um delimitador.
◦ Por padrao o comando cut espera que sua entrada seja separada pelo caractere de 
tabulacao porem a opcao (-d) pode especificar delimitadores alternativos, como dois 
pontos ou virgula.
▪ Opção Função
• -d Pode especificar delimitadores especificos como dois pontos ou 
virgula
• -f Pode especificar quais camposexibir, como um intervalo 
hifenizado ou uma lista separada por virgulA
• -c Extrair colunas de texto com base na posicao do caractere.
COMANDOS DE GERENCIALMENTO DE PACOTES.
dpkg
dpkg --print-architecture
apt
Advanced Packet Tool.
• Programa front-end da ferramenta (dpkg) 
◦ Programa front-end são programas aos quais os usuarios podem ver e interagir.
• Opcoes utilizadas.
◦ Opcoes: Significados:
▪ update: Atualiza a lista de cache dos pacotes disponiveis para atualizacao.
▪ upgrade Efetua a atualizacao dos pacotes baixados.
▪ cache search: Procura palavras chaves nos pacotes.
▪ Install: Instala pacotes encontrados.
• O comando apt-get install tambem pode atualizar pacotes, se o pacote estiver 
instalado e uma versao mais recente estiver disponivel.
▪ remove: Remove um pacote instalado.
▪ purge: Limpa e remove todas as informacoes do pacote no sitema
• Exemplo de comando:
◦ apt purge packet_name
cowsay
Boot robo configuravel
• Utiliza palavras-chaves ou frase como argumento.
◦ Recomendado colocar o argumento entre aspas simples para impedir que o shell 
interprete caracteres especiais.
SOBRE ADMINISTRACAO DE USUARIOS.
CREATING USERS AND GROUPS
A maioria dos sistemas Linux é configurada para permitir que um usuário não privilegiado (não 
raiz) efetue login, além de poder executar efetivamente comandos como usuário raiz, direta ou 
indiretamente.
• O comando sudo pode ser configurado para conceder a capacidade de executar comandos 
administrativos selecionados. 
• Se for necessário que os usuários usem o comando sudo para executar comandos 
administrativos, o sistema registrará quando os usuários executarem esses comandos.
• Em algumas distribuições, a criação de uma nova conta de usuário também cria 
automaticamente uma conta de grupo para o usuário, denominada UPG (Grupo Privado do 
Usuário).
◦ Nesses sistemas, o grupo e o nome de usuário seriam os mesmos, e o único membro 
desse novo grupo seria o novo usuário.
• Para distribuições que não criam um UPG, normalmente os novos usuários recebem o grupo
users como seu grupo principal.
• O administrador pode criar manualmente contas de grupo privadas para o usuário, mas é 
mais comum criar grupos para vários usuários que precisam colaborar.
• As contas de usuário podem ser modificadas a qualquer momento para adicioná-las ou 
removê-las das associações de contas de grupo, mas os usuários devem pertencer a pelo 
menos um grupo para serem usados como grupo principal.
• Antes de começar a criar usuários, você deve planejar como usar grupos. Os usuários podem
ser criados com associações em grupos que já existem ou usuários existentes podem ser 
modificados para ter associações em grupos existentes.
• Se você já planejou quais usuários e grupos deseja, é mais eficiente criar seus grupos 
primeiro e criar seus usuários com a participação deles. 
◦ Caso contrário, se você criar seus usuários primeiro e, em seguida, seus grupos, será 
necessário executar uma etapa extra para modificar seus usuários e torná-los membros 
de seus grupos.
GROUPS
O motivo mais comum para criar um grupo é fornecer uma maneira de os usuários compartilharem 
arquivos.
• Por exemplo, se várias pessoas que trabalham juntas no mesmo projeto e precisarem 
colaborar em documentos armazenados em arquivos para o projeto. 
• Nesse cenário, o administrador pode tornar essas pessoas membros de um grupo comum, 
alterar a propriedade do diretório para o novo grupo e definir permissões no diretório que 
permite que membros do grupo acessem os arquivos.
• Após criar ou modificar um grupo, você pode verificar as alterações visualizando as 
informações de configuração do grupo no arquivo /etc/group com o comando grep.
◦ Se estiver trabalhando com serviços de autenticação baseada em rede, o comando getent 
poderá mostrar grupos locais e baseados em rede.
▪ grep pattern filename
▪ getent database record
• Para uso local, estes comandos mostram o mesmo resultado, neste caso para o grupo root:
◦ root@localhost:~# grep root /etc/group
◦ root:x:0:
◦ root@localhost:~# getent group root
◦ root:x:0:
CREATING A GROUP
O comando groupadd pode ser executado pelo usuário root para criar um novo grupo.
• O comando requer que apenas o nome do grupo seja criado.
◦ A opção -g pode ser usada para especificar um ID de grupo para o novo grupo:
▪ root@localhost:~# groupadd -g 1005 research
▪ root@localhost:~# grep research /etc/group
▪ research:x:1005:
◦ Se a opção -g não for fornecida, o comando groupadd fornecerá automaticamente um 
GID para o novo grupo.
◦ Para fazer isso, o comando groupadd examina o arquivo /etc/group e usa um número 
com um valor maior que o número GID mais alto atual.
◦ A execução dos seguintes comandos ilustra isso:
▪ root@localhost:~# groupadd development
▪ root@localhost:~# grep development /etc/group\
▪ development:x:1006:
CONSIDERAÇOES SOBRE CRIAÇÃO DE GRUPO
Em algumas distribuições Linux, particularmente aquelas baseadas no Red Hat, quando um ID do 
usuário (UID) é criado, um grupo privado de usuários (UPG) também é criado com esse usuário 
como seu único membro. 
• Nessas distribuições, o UID e o ID do UPG devem corresponder (seja o mesmo número).
• Portanto, você deve evitar criar GIDs nos mesmos intervalos numéricos em que espera criar 
UIDs, para evitar um conflito entre um GID criado e um número UPG criado para 
corresponder a um UID.
• GIDs sob 500 (RedHat) ou 1000 (Debian) são reservados para uso do sistema. 
• Pode haver momentos em que você deseja atribuir um valor GID mais baixo.
• Para fazer isso, use a opção -r que atribui ao novo grupo um GID menor que o GID padrão 
mais baixo:
◦ root@localhost:~# groupadd -r sales
◦ root@localhost:~# getent group sales
◦ sales:x:999:
CONSIDERAÇOES SOBRE NOMEAÇÃO DE GRUPOS
Seguir estas diretrizes para nomes de grupos pode ajudar a selecionar um nome de grupo que seja 
portátil (funcione corretamente com outros sistemas ou serviços):
• O primeiro caractere do nome deve ser um sublinhado _caráter ou um alfabético minúsculo 
a- z personagem.
• São permitidos até 32 caracteres na maioria das distribuições Linux, mas o uso de mais de 
16 pode ser problemático, pois algumas distribuições podem não aceitar mais de 16.
• Após o primeiro caractere, os caracteres restantes podem ser alfanuméricos, um traço - ou 
um sublinhado _.
• O último caractere não deve ser um hífen -.
• Infelizmente, essas diretrizes nem sempre são aplicadas. 
• O problema não é que o comando groupadd não necessariamente falhe, mas que outros 
comandos ou serviços do sistema podem não funcionar corretamente.
MODIFICANDO UM GRUPO
O comando groupmod pode ser usado para alterar o nome de um grupo com a opção -n ou alterar o 
GID do grupo com a opção -g.
• Alterar o nome do grupo pode confundir os usuários que estavam familiarizados com o 
nome antigo e não foram informados sobre o novo nome. 
• No entanto, alterar o nome do grupo não causará problemas no acesso a arquivos, pois os 
arquivos pertencem a GIDs, não a nomes de grupos. 
• Por exemplo:
◦ root@localhost:~# ls -l index.html
◦ -rw-r-----. 1 root sales 0 Aug 1 13:21 index.html
◦ root@localhost:~# groupmod -n clerks sales
◦ root@localhost:~# ls -l index.html
◦ -rw-r-----. 1 root clerks 0 Aug 1 13:21 index.html
• Após o comando anterior groupmod , arquivo o index.html possui um nome de proprietário 
de grupo diferente.
• No entanto, todos os usuários que estavam no grupo sales agora estão no grupo clerks, 
portanto todos eles ainda podem acessar o arquivo index.html. Novamente, isso ocorre 
porque o sistema define o grupo pelo GID, não pelo nome do grupo.
• Por outro lado, se você alterar o GID de um grupo, todos os arquivos associados a esse 
grupo não serão mais associados a esse grupo.
• De fato, todos os arquivos associados a esse grupo não serão mais associados a nenhum 
nome de grupo.
• Em vez disso, esses arquivos pertencerão apenas a um GID, conforme mostrado abaixo:
◦ root@localhost:~# groupmod -g 10003 clerks
◦ root@localhost:~# ls -l index.html◦ -rw-r-----. 1 root 491 13370 Aug 1 13:21 index.html
Considere isto
Esses arquivos sem nome de grupo são chamados de arquivos órfãos .
Para procurar todos os arquivos pertencentes a apenas um GID (não associado a um nome de 
grupo), use a opção -nogroup do comando find:
root@localhost:~# find / -nogroup 
/root/index.html
APAGANDO UM GRUPO
Se você decidir excluir um grupo com o comando groupdel, esteja ciente de que todos os arquivos 
pertencentes a esse grupo ficarão órfãos.
• Somente grupos suplementares podem ser excluídos; portanto, se qualquer grupo que for o 
grupo principal de qualquer usuário, ele não poderá ser excluído.
• O administrador pode modificar qual grupo é o grupo principal de um usuário, para que um 
grupo que estava sendo usado como grupo principal possa ser transformado em um grupo 
suplementar e, em seguida, possa ser excluído.
• Enquanto o grupo a ser excluído não for o grupo principal de um usuário, a exclusão do 
grupo será realizada usando o comando groupdel junto com o nome do grupo:
◦ root@localhost:~# groupdel clerks
USUARIOS
As informações da conta do usuário são armazenadas no arquivo /etc/passwd e as informações de 
autenticação do usuário (dados da senha) são armazenadas no arquivo /etc/shadow.
• A criação de um novo usuário pode ser realizada adicionando manualmente uma nova linha 
a cada um desses arquivos, mas essa geralmente não é a técnica recomendada.
• Antes de começar a criar usuários para o seu sistema, você deve verificar ou estabelecer 
valores práticos que são usados por padrão com o comando useradd.
• Essas configurações podem ser encontradas nos arquivos de configuração usados pelo 
comando useradd.
• Garantir que os valores nesses arquivos de configuração sejam razoáveis antes da adição de 
usuários pode ajudar a economizar tempo e problemas para corrigir as configurações da 
conta de usuário após a adição dos usuários.
◦ ARQUIVOS DE CONFIGURAÇÃO DE USUARIO
▪ A opção -D para o comando useradd permite visualizar ou alterar alguns dos valores
padrão usados pelo comando useradd. 
▪ Os valores mostrados por useradd -D também podem ser visualizados ou atualizados 
manipulando o arquivo /etc/default/useradd:
• root@localhost:~# useradd -D 
• GROUP=100
• HOME=/home
• INACTIVE=-1
• EXPIRE=
• SHELL=/bin/bash
• SKEL=/etc/skel
• CREATE_MAIL_SPOOL=yes
▪ A seguir, descreve cada um desses valores:
• Grupo
◦ GROUP=100
▪ Nas distribuições que não usam UPG, este é o grupo principal padrão 
para um novo usuário, se um não for especificado com o comando 
useradd.
▪ Este é geralmente o grupo users com um GID de 100.
▪ Essa configuração afeta o campo de ID do grupo principal do arquivo 
/etc/passwd destacado abaixo:
• bob:x:600:600:bob:/home/bob:/bin/bash
▪ A opção -g para o comando useradd permite que você use um grupo 
principal diferente do padrão ao criar uma nova conta de usuário.
• Home
◦ HOME=/home
▪ O diretório /home é o diretório base padrão no qual o novo diretório 
inicial do usuário é criado. 
▪ Isso significa que um usuário com um nome de conta bob teria um 
diretório inicial de /home/bob.
▪ Essa configuração afeta o campo do diretório inicial do arquivo 
/etc/passwd destacado abaixo:
• bob:x:600:600:bob:/home/bob:/bin/bash
▪ A opção -b para o comando useradd permite que você use um grupo de 
diretórios base diferente do padrão ao criar uma nova conta de usuário.
• Inativo
◦ INACTIVE=-1
▪ Este valor representa o número de dias após a senha expirar que a conta 
está desabilitada. 
▪ Um valor -1 significa que esse recurso não está ativado por padrão e 
nenhum valor "inativo" é fornecido para novas contas por padrão.
▪ Essa configuração afeta o campo inativo do arquivo /etc/shadow 
destacado abaixo:
• bob:pw:15020:5:30:7:60:15050:
▪ A opção -f para o comando useradd permite que você use um valor 
INACTIVE diferente do padrão ao criar uma nova conta de usuário.
• Expire
◦ EXPIRE=
▪ Por padrão, não há valor definido para a data de validade. 
▪ Normalmente, uma data de validade é definida em uma conta individual, 
nem todas as contas por padrão.
▪ Por exemplo, se você tivesse um contratado que foi contratado para 
trabalhar até o final do dia em 1º de novembro de 2019, poderá garantir 
que eles não consigam efetuar logon após essa data usando o campo 
EXPIRE
▪ Essa configuração afeta o campo de validade do arquivo /etc/shadow 
destacado abaixo:
• bob:pw:15020:5:30:7:60:15050:
▪ A opção -e para o comando useradd permite que você use um valor 
EXPIRE diferente do padrão ao criar uma nova conta de usuário.
• Shell
◦ SHELL=/bin/bash
▪ A configuração SHELL indica o shell padrão para um usuário quando ele 
efetua login no sistema.
▪ Essa configuração afeta o campo de shell do arquivo /etc/passwd 
destacado abaixo:
• bob: x: 600: 600: bob: / casa / bob: / bin / bash
▪ A opção -s para o comando useradd permite que você use um shell de 
login diferente do padrão ao criar uma nova conta de usuário.
• Diretorio de esqueleto:
◦ SKEL=/etc/skel
▪ O valor SKEL determina qual diretório do esqueleto tem seu conteúdo 
copiado no diretório inicial do novo usuário.
▪ O conteúdo desse diretório é copiado para o diretório inicial do novo 
usuário e o novo usuário recebe a propriedade dos novos arquivos.
▪ Essa configuração fornece aos administradores uma maneira fácil de 
preencher uma nova conta de usuário com os principais arquivos de 
configuração.
◦ A opção -k para o comando useradd permite que você use um diretório SKEL
diferente do padrão ao criar uma nova conta de usuário.
• Criar spool de e-mail:
◦ CREATE_MAIL_SPOOL=yes
▪ Um spool de email é um arquivo em que o email recebido é colocado.
▪ Atualmente, o valor para a criação de um spool de correio é yes, o que 
significa que os usuários por padrão estão configurados com a capacidade
de receber e armazenar correio local. 
▪ Se você não planeja usar o correio local, esse valor pode ser alterado para
no.
▪ Para modificar um dos valores useradd padrão, o arquivo 
/etc/default/useradd pode ser editado com um editor de texto. 
▪ Outra técnica (mais segura) é usar o comando useradd -D
▪ Por exemplo, se você deseja permitir que os usuários tenham senhas expiradas com 
as quais eles ainda possam efetuar login por até trinta dias, execute:
• root@localhost:~# useradd -D -f 30
• root@localhost:~# useradd -D
• GROUP=100
• HOME=/home
• INACTIVE=30
• EXPIRE=
• SHELL=/bin/bash
• SKEL=/etc/skel
• CREATE_MAIL_SPOOL=yes
ARQUIVOS DE CONFIGURAÇÃO DE USUARIO
O arquivo /etc/login.defs também contém valores que são aplicados por padrão aos novos usuários 
criados com o comando useradd.
• Diferentemente do arquivo /etc/default/useradd, o arquivo /etc/login.defs geralmente é 
editado diretamente pelo administrador para alterar seus valores.
• Esse arquivo contém muitos comentários e linhas em branco; portanto, para exibir apenas as
linhas que não são comentários ou linhas em branco (as configurações reais), você pode usar
o seguinte comando grep:
◦ root@localhost:~# grep -Ev '^#|^$' /etc/login.defs
◦ MAIL_DIR /var/mail/spool
◦ PASS_MAX_DAYS 99999
◦ PASS_MIN_DAYS 0
◦ PASS_MIN_LEN 5
◦ PASS_WARN_AGE 7
◦ UID_MIN 500
◦ UID_MAX 60000
◦ GID_MIN 500
◦ GID_MAX 60000
◦ CREATE_HOME yes
◦ UMASK 077
◦ USERGROUPS_ENAB yes
◦ ENCRYPT_METHOD SHA512
◦ MD5_CRYPT_ENAB no
• O exemplo acima representa um arquivo /etc/login.defs de distribuição típico do CentOS 6 
com seus valores. 
• A seguir, descreve cada um desses valores:
◦ Diretório de Correio
▪ MAIL_DIR /var/mail/spool
• O diretório no qual o arquivo de spool de correio do usuário é criado.
◦ Dias máximos da senha
▪ PASS_MAX_DAYS 99999
• Essa configuração determina o número máximo de dias em que um usuário pode 
continuar usando a mesma senha. 
• Como o padrão é 99999 dias (mais de 200 anos), efetivamente significa que os 
usuários nunca precisam alterar sua senha.
• As organizações com políticas eficazes para manter senhas seguras

Outros materiais