Вы находитесь на странице: 1из 89

Apostila

Instalação e Configuração de Sistemas


Linux

Professora Paôla de Oliveira Souza


 

O Sistema Linux 4
Mercado Linux 4
Formação Linux 8
Mas afinal, o que é o Linux? 12
História 12
Licenças no mundo Open Source 14
Software Livre 15
Distribuições 17

Hierarquia dos diretórios 18

Shell 22
Modo Texto e Modo Gráfico 22
Sintaxe 24
Obtendo ajuda 27

Gerenciamento de arquivos 29
Tipos de arquivos 29
Comandos básicos de manipulação de arquivos e diretórios 30

Administração de usuários 33
Conta de root 34
Comando sudo 35
Arquivo de usuários 38

Administração de grupos 40
Gerenciamento de permissões 44

Gerência e administração de Recursos 47


Gerenciamento de Memória 48
Gerenciamento de processos 48
Gerenciamento de Redes 50
Dispositivos de armazenamento 52
Criando partições e formatando 55
Gerenciando o sistema de arquivos 56
Montando Dispositivos 57

Buscas, Redirecionamento e Expressões Regulares 58


Expressões Regulares 60

Compactação de Arquivos 60
Compactadores/descompactadores 62
Formatos de compressão 62
Arquivos compactados via shell 63

ShellScript 64
Dicas e Truques - Trabalhando com as saídas 67
Repositórios e Gerenciadores de Pacote Linux 68
Repositórios 68
Mirrors 69
Repositórios offline 69
Gestores de Pacotes 70
O que é um pacote? 70
Instalando o software no Linux 71
Atualizar atrasos 71
Outros Repositórios 72
Instalando programas com o apt-get 72
Configurando Repositórios 75
Usando o dpkg 76

Sistema de Arquivos 77
Tipos de sistemas de arquivos 77
Particionamento 80
Formatação 82
Logical Volume Manager - LVM 83

Análise de logs 85

Segurança 85

Referências 87
 

 
O Sistema Linux 

Neste capítulo, você será introduzido no mundo OpenSource, veremos a importância do Linux no mundo
atual e quais são as principais profissões do mercado que utilizam Linux atualmente. Logo, vamos responder
perguntas como:

● Onde podemos encontrar o Linux ?


● Por onde posso começar usando o Linux ?
● Quais as principais profissões ?
 
Mercado Linux 

O Linux é um dos avanços tecnológicos mais importantes do século XXI. O Google roda milhares de
servidores Linux para fornecer sua tecnologia de busca. Os telefones Android são baseados no Linux. O
Facebook constrói e implanta seu site usando o que é conhecido como uma pilha LAMP (Linux, servidor web
Apache, banco de dados MySQL e linguagem de script web PHP). Portanto, essa ampla adoção do Linux em
todo o mundo criou uma enorme demanda pelo seu conhecimento.

Desktops Linux 
 
Ainda que as estações de trabalho não sejam muito utilizadas, a comunidade vem desenvolvendo interfaces
cada vez mais amigáveis. Atualmente, o Linux ocupa cerca de 1% dos desktops. ​Clique aqui para mais
informações.

Mesmo que o Linux não domine os computadores caseiros, ainda são desenvolvidas diversas distribuições
para a utilização domiciliar, muitas delas são até mesmo mais simples que o próprio Sistemas de Janelas da
Microsoft. Conheça as distribuições Linux mais utilizadas no ​DistroWatch​.

“Se o Windows domina no Desktop...o Linux domina o mundo” Steve Ranger - ZDnet

Mobile 

Atualmente, muitos nichos no mundo de tecnologia utilizam o Linux, começando pelo mercado Mobile. O
Android é um Sistema Operacional baseado no Kernel do Linux, licenciado pelo GPLv2, atualmente o S.O.
mais utilizado no mundo (considerando apenas sistemas conectados na internet). Em Março de 2017, a
StatCounter anunciou o Android como o novo sistema operacional mais utilizado no mundo. Foi a primeira
vez desde os anos 80 que o Windows deixou de ser o S.O. mais utilizado no mundo.

Segurança  

Por outro lado, não podemos deixar de falar sobre o mundo de Segurança, Testes de Penetração ou
Técnicas forenses sem conhecer Linux, muitas das ferramentas utilizadas nesse ramo foram desenvolvidas
para as distribuições do Linux.

Cloud Computing 
 
Hoje a Cloud vem transformando muitos dos recursos tecnológicos das empresas em serviços prestados por
provedores, nesses casos podendo fornecer, por exemplo, Infraestrutura sob demanda. E, a maior parte dos
recursos que estão hoje na Cloud rodam em Linux. No site, ​The Cloud Market é possível verificar o gráfico de
Sistemas Operacionais da Cloud.

Web Server 

A ​W3tECHr fez o levantamento do Market Share dos servidores Web mais utilizados baseados em Sistemas
Operacionais. O Linux domina quase 70% do mercado.

Linux Foundation & Dice Job Report URL - Todo ano a Linux Foundation em parceria com a Dice pública uma relatório
indicando para qual lado o mercado está andando e procurando profissionais (este é o de 2016).

MarketShare Cloud AWS ​- Qual sistema operacional é mais utilizado nas EC2 da AWS.
MarketShare Dispositivos conectados na internet​ - Verifique qual é o sistema operacional mais utilizado na internet.
MarketShare Sistema Operacional domiciliar​ - Consulte quais sistemas operacionais são mais utilizados em casa.
Formação Linux 

Os objetivos dessa seção é apresentar as principais Certificações Linux e os Centro Certificadores e por
onde podemos começar nossa carreira Linux..
 
Certificado ou Certificação?  
 
 
Existe diferença entre ​Certificado de Conclusão ​e ​Certificação. ​O certificado ​de conclusão de curso
acontece quando um indivíduo quer se capacitar em determinada tecnologia e contrata uma empresa terceira
para a capacitação. O certificado garante a carga horária e os conteúdos determinados. Mas não garante o
aproveitamento de 100% do curso. Já na certificação, é garantido que o indivíduo adquiriu o conhecimento.
 
Por que se Certificar 

Hoje em dia é muito comum ouvir pessoas falando que a certificação não prova nada. Porém, segundo o
Diretor de Currículo e Certificação da Red Hat, Randy Russel, “A premissa de qualquer certificação é que ela
ajude um gerente de contratações a organizar a pilha de currículos.”

Portanto, tirar uma certificação atualmente faz com que seu currículo tenha mais chances de ficar na pilha
dos selecionados do que dos descartados. É muito comum as certificações serem um pré-requisito para
determinadas vagas, principalmente do nosso mundo de tecnologia. Isso não é exclusivo para o mundo
Linux, e pode se estender para todo o mundo da tecnologia. 
 
Centros Certificadores  

Existem diversas carreiras e centros para certificar os profissionais em Linux, atualmente os mais buscados
são: LPI, Redhat e Linux Foundation. Apesar da Linux Foundation não ter tanto peso no mercado, ela vem
crescendo com o tempo. A Microsoft fechou parceria com ela no mesmo ano que disponibilizou o SQLServer
para plataforma Linux.

Além dos centros citados acima, também temos outros como OpenSuse, CompTIA+ e a própria Exin que
disponibilizou uma certificação de DevOps.

Linux Professional Institute 

LPI é uma organização sem fins lucrativos e as Certificação não possuem foco em determinada distribuição,
portanto a LPI fornece Certificação Independente de Fornecedores. A LPI cobra que você tenha
conhecimento em cada uma distribuição. O Conteúdo dos Exames são baseados no padrão LSB (Linux
Standard Base). O LSB é um padrão de arquitetura que todos os sistemas devem seguir para não terem
discrepâncias e diferenças entre uma distribuição e outra. Segundo Jon Maddog Hall, fundador da LPI,
trata-se da “É A MAIOR CERTIFICAÇÃO MUNDIAL EM LINUX”. A LPI também está focando na carreira de
DevOps.

 
Red Hat Certificate  
 
Dentre as versões comerciais de Linux, a Red Hat tem o mais popular programa de certificação. Isso porque
ele trabalha com provas práticas. O Conteúdo dos Exames são baseados sempre na versão mais recente do
Red Hat Enterprise. Isso significa que cada certificação dura em média 3 anos. Porém, isso não quer dizer
que você é desqualificado na certificação anterior.

A carreira de certificações dentro da Red Hat é gigantesca. Na imagem, vemos as principais certificações no
mundo Red Hat, iniciando a RHCSA, depois a RHCE e depois RHCA. Para tirar a RHCA é necessário fazer
as duas certificações anteriores.

Linux Foundation  

A Linux Foundation vem ganhando o mercado de certificações por causa de sua metodologia de aplicação
de provas. São provas práticas, porém é possível escolher qual a sua Distribuição. Ele não depende de
Escolas autorizadas para execução das Provas e será possível fazer a prova em casa. Ele também é o
Primeiro centro certificador a fechar parceria com a Microsoft.
 
O programa de certificação da Linux Foundation é um pouco mais simples. Temos duas certificações, a
LFCS e a LFCE.
Centro certificador Linux Professional Institute (LPI )
Centro certificador RedHat
Centro certificador Linux Foudation
A ​LPIBrasil ​é mantida pela 4Linux, e sempre trás novidades sobre o Linux Professional Institute.

Mas afinal, o que é o Linux? 

O termo Linux é usado em vários contextos com significados diferentes. A rigor, Linux é um ​kernel​. Contudo,
a expressão “sistema operacional Linux” tornou-se muito difundida. Portanto, em alguns contextos, Linux
pode significar sistema operacional (SO) que usa o kernel Linux. Ou seja, quando algum usuário instala “o
Linux”, ele está instalando o kernel e mais uma série de outros softwares. Grande parte desses softwares
pertencem a um projeto chamado GNU. Logo, o sistema operacional formado pelo kernel Linux mais
utilitários e aplicativos, como defendem alguns, deveria ser chamado de ​GNU/Linux​. Veremos a seguir como
surgiram o GNU e o Linux.

Sistema Operacional: é um software que serve de interface entre o computador e o usuário, gerenciando recursos
(como memória, processamento, etc.).

Kernel:​ é o núcleo ou cerne do sistema operacional (é a parte deste que fica mais “próxima” do hardware).

 
História 

Unix 

UNIX O Unix é um Sistema Operacional que foi projetado em 1960, com o auxílio de grandes empresas
como General Eletric (GE), Bell Labs, American Telephone and Telegraph (AT&T) e Massachusets Institute
of Technology (MIT). Nesta época ele era chamado de Multics e só adotou o nome de Unix em 1969. O Unix
em 1973 foi reescrito pelo Dennis Ritchie, o criador da linguagem C. Ele reescreveu o Unix nesta nova
linguagem. O Unix é muito utilizado em Super Computadores ou MainFrames, e foi usado para criação de
diversos Sistemas Operacionais, incluindo o MAC OS e o Linux.

O termo Unix-like é muito comum no mundo da tecnologia, pois diversos Sistemas Operacionais foram
derivados do Unix, e acabam herdando algumas características do Sistema. Em 1987, Andrew Stuart
Tanenbaum lançou um Sistema derivado do Unix chamado MINIX. O intuito do Tanenbaum era criar um
Sistema Operacional para estudo no livro “Sistemas Operacionais. Projeto e Implementação” de sua autoria,
ele apresenta o MINIX e explana sobre o funcionamento dos Sistemas Operacionais.

GNU/Linux  

Em 1984, Richard Stallman iniciou o Projeto GNU, que tinha por objetivo criar um sistema operacional que
fosse totalmente livre, o GNU. Esse SO deveria ser compatível com outro sistema operacional - o UNIX (daí o
nome GNU - GNU is Not Unix). Como ele foi desenvolvido com base no UNIX, logo ele também se enquadra
como UNIX-like, porém ele difere do UNIX por ser gratuito e licenciado sob a GPL (General Public License)
que falaremos em breve. Stallman e outros programadores começaram a escrever as principais peças do
sistema, como compiladores, editores de texto e outros binários. O Kernel (núcleo do sistema) que o Stallman
vinha trabalhando era chamado de Hurd.

No ano seguinte, Stallman fundou a FSF (Free Software Foundation), com o propósito de eliminar restrições
de uso, cópia e distribuição de softwares. Por volta de 1991, o sistema GNU estava quase pronto, exceto
pelo kernel. Stallman estava trabalhando no desenvolvimento de um kernel chamado Hurd mas não
conseguiu finalizá-lo.

Ao mesmo tempo, o finlandês Linus Torvalds, que utilizava o MINIX, havia criado um kernel compatível com
as aplicações do projeto GNU com o objetivo de uso pessoal. A esse kernel foi dado o nome de Linux (Linux,
Linus + Unix). Com o Kernel criado, ele precisava da suíte de ferramentas para interagir com o seu novo
núcleo, e como o Richard Stallman já havia criado o GNU e licenciado sob a GPL, o Linus Torvalds decidiu
utilizar o GNU em conjunto com o Linux e licenciar o novo sistema com a GPL.
Atualmente, Linux tornou-se um termo genérico para se referir a sistemas operacionais baseados no kernel
Linux. Tornou-se, também, o melhor exemplo de Software Livre e de código aberto.

Revolution OS é um documentário conta a história dos hackers que se rebelaram contra o modelo de
Software Proprietário para criar o GNU/Linux e o movimento Open Source. Filmado no Vale do Silício,
REVOLUTION OS apresenta entrevistas com as personalidades do GNU/Linux e o Movimento
OpenSource, Linus Torvalds, Richard Stallman, Bruce Perens, Eric Raymond, Brian Behlendorf, Michael
Tiemann, Larry Augustin, Frank Hecker e Rob Malda.

 
Licenças no mundo Open Source 

Durante a criação do GNU em 1985, o Richard Stallman decidiu fundar a Free Software Foundation, uma
organização sem fins lucrativos para o licenciamento de softwares, eliminando a restrição de acesso e
cópias. Em 1985 ele dedicava-se apenas ao licenciamento de softwares livre, porém hoje temos diversos
projetos que são desenvolvidos e contemplados pelo licenciamento da FSF, por tanto agora ele se dedica
aos aspectos legais e estruturais da comunidade do software livre. Todas as licenças são baseadas nas 4
Liberdades que será abordado em breve.

● GNU General Public License (GPL) - É designada para licenciar Softwares Livres.
● GNU Affero General Public License (AGLP) - É um tipo de licenciamento mais recente, muito similar
ao GNU GPL, porém visa fornecer as liberdades para os softwares enquadrados em SaaS (Software
as a Service), atualmente disponibilizados na Cloud.
● GNU Free Documentation License (FDL) - Utilizado para textos, apresentações e conteúdos da web,
sejam distribuídos e reaproveitados, mantendo os direitos autorais para que não seja utilizado de
forma inadequada.
● GNU Lesser General Public License (LGPL) - É como a GPL, porém muito menos “aberta”, podendo
licenciar softwares proprietários.

Software Livre  

Por “software livre”, devemos entender aquele software que respeita a liberdade e senso de comunidade dos
usuários. Isso significa que os usuários possuem a liberdade de executar, copiar, distribuir, estudar, mudar e
melhorar o software. Assim sendo, “software livre” é uma questão de liberdade, não de preço. Para entender
o conceito, pense em “liberdade de expressão”, não em “cerveja grátis”. Por vezes, chamamos de “libre
software” para mostrar que livre não significa gratis, pegando emprestado a palavra em francês ou espanhol
para “livre”, para reforçar o entendimento de que não nos referimos a software como grátis. Nós batalhamos
por essas liberdades porque todo mundo merece. Com essas liberdades, os usuários (tanto individualmente,
quanto coletivamente) controlam o programa, e o que ele faz por eles. Quando os usuários não controlam o
programa, o programa controla os usuários. O desenvolvedor controla o programa e, por meio dele, controla
os usuários. Esse programa não-livre e “proprietário” é, portanto, um instrumento de poder injusto. Fonte:
https://www.gnu.org/philosophy/free-sw.pt-br.html

Um programa é software livre se os usuários possuem as quatro liberdades essenciais:

● A liberdade de executar o programa como você desejar, para qualquer propósito (liberdade 0).
● A liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades (liberdade 1).
Para tanto, acesso ao código-fonte é um pré-requisito.
● A liberdade de redistribuir cópias de modo que você possa ajudar outros (liberdade 2).
● A liberdade de distribuir cópias de suas versões modificadas a outros (liberdade 3). Desta forma,
você pode dar a toda comunidade a chance de beneficiar de suas mudanças. Para tanto, acesso ao
código-fonte é um pré-requisito.
Aplicações OpenSource  

O mercado possui diversas aplicações OpenSource que são mantidas sob a licença da GPL, em muitos
casos utilizamos elas todos os dias mesmo sem ter ciência disso. Grande parte dos softwares licenciados
pela FSF são transparentes ao usuário, como por exemplo o Apache, que é o servidor Web mais utilizado no
mundo (fonte netcraft.com). A MediaWiki e a WikiMedia também são licenciados pela GPL e vêm
desempenhando um papel deveras importante, pois em muitas vezes ele supre a necessidade de
conhecimento de determinados assuntos. É possível consultar a lista de softwares livres ​aqui​.

Distribuições 

Uma vez licenciado pela GPL dependendo da modalidade, os códigos fonte das Distribuições ficam abertos
para os usuários, o que proporciona na criação de diversas variações de Sistema Operacionais. Com isso, a
lista de distribuições só tem crescido, conforme pode ser consultado na linha do tempo de distribuições
disponibilizadas ​aqui​.

Distribuições Linux (também chamadas Distribuições GNU/Linux ou simplesmente distros) consistem em


sistemas operacionais formados pelo kernel Linux e “pacotes” de software para satisfazer as necessidades
de um grupo específico de usuários, dando origem a versões domésticas, empresariais e para servidores.
Alguns exemplos de Distribuições Linux são: Ubuntu, Debian, Slackware, Fedora, Red Hat, Gentoo,
Mandriva, openSUSE etc.

The Code é um documentário finlandês de 2001 sobre a história do GNU/Linux, feito com algumas das
pessoas mais influentes do movimento software livre. Disponível em: ​https://libreflix.org/i/the-code
 
Hierarquia dos diretórios 
 
A FHS (Filesystem Hierarchy Standard) Estrutura Padrão de Diretórios. tem a função de padronizar a
estrutura de arquivos de Sistemas GNU/Linux; mantida pelo Free Standards Group (IBM, RedHat, Dell…),
são 13 diretórios obrigatórios e 2 opcionais.

Guardar as informações no disco deve ser de forma organizada e facilitada de acesso. É por estas
características que os sistemas operacionais são robustos e uma maneira de organizar as informações
dentro dos discos é distribuir os arquivos em diretórios e subdiretórios. Esta distribuição vale para todos os
sistemas operacionais Windows, Linux, etc.

Sistemas operacionais com kernel Linux criam um sistema de arquivos virtual, o que faz com que todos os
arquivos em todos os dispositivos pareçam existir em uma única hierarquia. Isso significa que, nesses
sistemas, existe um diretório raiz e cada arquivo existente no sistema está localizado em algum lugar abaixo
do diretório raiz. ​Os diretórios são distribuídos no Linux em forma de árvore, só que ao contrário, pois no
topo é que está a base de tudo, chamada de raiz ou root e representada por “/”. Não existe o conceito de
disco C: ou D: por exemplo. Na figura é apresentada a estrutura típica de diretórios Unix/Linux seguida com a
tabela com um resumo da função de cada diretório.
Figura 1 - Estrutura de Diretórios Típica. Sistemas Unix/Linux

Tabela 2 - Hierarquia de diretórios

Diretório  Descrição 

/ raiz ou root, base do sistema de arquivos

/bin possui todos os arquivos executáveis, inclusive o kernel do Linux

/dev possui os dispositivos do sistema

/etc possui os arquivos de configuração

/home diretório dos usuários

/lib biblioteca do Linux

/media diretório de montagem para mídias removíveis;

/mnt diretório de montagem para sistemas de arquivos temporários

/proc informações do sistema operacional

/opt possui aplicativos extras

/root é o home do super usuário

/sbin arquivos do sistema utilizados apenas pelo usuário root

/srv possui aplicativos extras

/tmp Diretório de arquivo temporário, suas informações são removidas automaticamente a cada reboot

/usr possuem arquivos dos usuários, este diretório é a 2ª maior hierarquia de diretórios no Linux

/var informações do sistema (log, e-mail, print, etc.)

/boot armazena o kernel e alguns arquivos usados na fase inicial do boot

/sys informações de dispositivos instalados, incluindo o tipo, fabricante, capacidade, endereços usados etc
Shell 

Antes de ícones e janelas tomarem as telas de computador, era necessário digitar comandos para interagir
com a maioria dos computadores. Em sistemas UNIX, do qual o Linux se originou, o programa usado para
interpretar e gerenciar comandos era referido como ​shell​. Hoje, você pode usar o Linux a partir de uma
interface de desktop gráfica, mas, a medida que for crescendo em Linux, vai precisar usar o shell. Embora o
shell seja menos intuitivo do que interfaces gráficas (GUIs) comuns, a maioria dos especialistas considera o
shell do Linux como sendo muito mais poderoso do que as GUIs. O shell permite criar arquivos de script
executável, executar programas, trabalhar com sistemas de arquivos, compilar código e gerenciar o
computador. E, independentemente da distribuição Linux usada, você sempre terá um shell disponível para
você. Eis uma outra boa razão para aprender a usar o shell: você saberá se virar em qualquer sistema Linux.

O shell do linux mais comumente usado é chamado de ​bash​, que é uma abreviação de Bourne Again Shell.
Embora o bash seja incluído na maioria das distribuições e seja considerado um padrão, outros shells estão
disponíveis, incluindo o shell C (csh), que é popular entre os usuários de BSD UNIX, e o shell Korn (ksh), que
é popular entre os usuários de Unix System V. O Ubuntu usa o shell dash, por padrão, que é projetado para
executar mais rápido do que o shell bash.

A maneira mais fácil de abrir o terminal é clicando no botão "Mais aplicativos" e encontrá-lo nessa lista
exibida usando a função de busca. Outra forma, é utilizar o atalho de teclado: ​Ctrl + Alt + T​. Ao abrir o
terminal, você notará que há um comando na tela com uma sintaxe semelhante a esta:

usuario@nomepc:~$ 

Aqui “usuario” indica o nome de usuário que iniciou o terminal e “nomepc” indica o nome da máquina, ou
seja, o “apelido” do computador, usado para algumas funções do Ubuntu. Já o til ( ̃) em seguida indica que
o terminal está aberto na pasta Home, que é a pasta padrão de usuário..

 
Já, os TTYs são os terminais nativos do sistema que podem ser acessados utilizando CTRL+F1 … até F6. É
possível utilizar vários terminais desses ao mesmo tempo para acessar a interface gráfica. Primeiro o
Sistema Operacional deve ter instalado o servidor gráfico nele, caso já o tenha, basta pressionar CTRL+F7.

Lembrando que isso serve apenas quando você está fisicamente na máquina, quando acessamos o
equipamento remotamente ou quando abrimos um terminal pela interface gráfica, na realidade não estamos
acessando um TTY, mas sim um PTS (shell), que é um pseudo terminal. Logo, ele tem as mesmas
características que um TTY, porém ele é volátil, diferente dos TTY que mesmo sem utilizar, eles sempre vão
existir. Os PTS são criados apenas quando abrimos alguma aplicação que “emula” o terminal, ou conectando
no equipamento de forma remota

Sintaxe 

Os comandos de texto no shell possuem a seguinte sintaxe:

$ COMANDO -[PARÂMETROS] [ARQUIVO/SERVIÇO/AÇÃO]   

Porém, não é necessário atender sempre a sintaxe completa. Os comandos mais simples de executar partir
de um shell são formados apenas pelo nome do comando. Vamos conhecer e experimentar alguns desses
comandos.

$  date    ​#  exibe  dia,  mês,  data,  hora, fuso horário e 


ano 

$  pwd    ​#  p​rint  work  directory  -  exibe  o  diretório  de  trabalho 


atual   

$  hostname    ​#  ​exibe  o  nome  de  host  do  seu 


computador 

$  ls  #  exibe  os  arquivos  do  "diretório 


atual" 

$ clear # limpa a tela 


A maioria dos comandos permitem que você adicione parâmetros, ou seja, opções para mudar o seu
comportamento. Em geral, as opções consistem em uma letra precedida por um hífen conforme exemplo a
seguir.

$ ls -l   

Mas você pode agrupar opções de uma letra ou preceder cada uma com um hífen, para usar mais de uma
opção de cada vez. Por exemplo, os dois seguintes usos de opções para o comando ls são os mesmos.

$ ls -l -a -t 
$ ls -lat 

Em ambos os casos, o comando ls é executado com as opções: -l (listagem longa); -a (exibe arquivos de
ponto ocultos) e -t (lista por tempo).

Alguns comandos incluem opções que são representados por uma palavra inteira. Para instruir um comando
a usar uma palavra inteira como uma opção, você geralmente a precede com um hífen duplo (--). Por
exemplo, para usar a opção de ajuda em muitos comandos, você digita --help na linha de comando. Sem o
hífen duplo, as letras h, e, l e p devem ser interpretadas como opções separadas. (Há alguns comandos que
não seguem a convenção de hífen duplo, usando um único hífen antes de uma palavra, mas a maioria dos
comandos usará hífens duplos para as opções de palavras.)

$ ls --color 

Os comandos são, em geral, em letras minúsculas. É importante lembrar que a linha de comando é case sensitive,
isto é, diferencia letras maiúsculas de minúsculas. Portanto, “echo" e diferente de “Echo", que são diferentes
de \ECHO". Isso também vale para nomes de diretórios e arquivos.
Além das opções, é possível adicionar argumentos aos comandos, como nomes de arquivos ou caminho de
diretórios. Veja um exemplo de comando com argumento a seguir.

$  ls  /etc  #  exibe  o  conteúdo  do  diretório  etc  localizado  dentro  do  raiz 
(/)  

Navegação entre diretórios 


 
O comando cd (change directory) permitirá que você altere os diretórios e percorra o sistema de arquivos.
Para navegar por vários níveis de diretório de uma só vez, especifique o caminho completo do diretório

$  cd  /  # navega no diretório 
raiz 

A navegação entre os diretórios pode ser feita de duas maneiras, utilizando o caminho absoluto ou o
caminho relativo. O caminho absoluto quando nos referimos ao diretório para ir a partir da raiz.

$ cd /var/cache/bind # caminho absoluto 

Já o caminho relativo, indica para onde você deseja ir a partir de onde você está.

# pwd   
/home/tux  
# cd ../../var/cache/bind   

O “.” e “..” são links que sempre se referem:


. Diretório atual
.. Diretório anterior
 
O comando cd também permite alguns atalhos rápidos, conforme apresentado a seguir.

$ ​cd ~​ # navega até o seu diretório pessoal 


$ ​cd -​ # volta ao diretório anterior 

$ ​cd ..​ # volta um nível na hierarquia de diretórios 

Você pode digitar os comandos e nomes de arquivos ou diretórios pela metade e depois pressionar \Tab". O
shell “tentará completar" o que falta para você. Se houver mais de uma opção para completar o que foi digitado, as
alternativas possíveis serão mostradas.

Obtendo ajuda 

Os comandos ficam armazenados normalmente dentro de /usr/bin, /usr/sbin, /bin, /sbin, /usr/local/bin e
/usr/local/sbin. Porém, isso não impede que sejam armazenados em outros diretórios. Portanto, podemos
utilizar os comandos digitando o caminho completo deles, conforme exemplo a seguir:

# /bin/echo “Ola Mundo” 

Ou podemos digitar apenas o comando, sem seu caminho:

# echo “Ola Mundo” 

Mas então, como o sistema sabe o local desses binários (comandos)? Utilizando uma variável de ambiente
chamada PATH. Ela possui todos os diretórios onde os binários podem estar armazenados. Para consultar
esses diretórios, você pode utilizar o comando “echo”.

# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
Procurando por Comandos 

Existem várias formas de procurarmos comandos dentro dentro do sistema. Nesse caso já que não temos
pistas, podemos usar o comando apropos. Esse comando procura determinada palavra em todos os
comandos do sistema e manuais. Por exemplo, se quisermos encontrar um comando para adicionar um
usuário ao sistema, podemos tentar buscar pela palavra user.

# apropos user 

Porém, antes de utilizarmos um comando, precisamos entender onde esse comando está e como ele
funciona. O comando which mostra onde está o binário, conforme segue.

# which useradd 

# whereis useradd 

Funcionamento dos Comandos 

Através da própria linha de comando é possível obter ajuda e informações a respeito dos comandos. O
comando man (manual) mostra uma página de manual para um determinado comando. Essa é uma ótima
opção para descobrir a função, os argumentos e as opções aceitas para modificar determinado comando.

$ man [comando] 

$ man ls exibe o manual do comando ls 

Para sair de uma pagina de manual, basta digitar q".

Você pode usar a opção --help com a maioria dos comandos para ver as opções e argumentos que eles
suportam:
$ [comando] --help 

$ ​hostname --help 

Além do comando man e do –help, existe um site que pode auxiliar na busca de ajuda na syntaxe dos comandos:
https://explainshell.com/

 
Gerenciamento de arquivos 
 
Para os sistemas Linux, o gerenciamento de arquivos é uma atividade mais complexa do que no ambiente
Windows. Isso ocorre pela necessidade de se conhecer os detalhes de cada um dos vários tipos de sistemas
de arquivos disponíveis. Além de alguns comandos não existirem em modo gráfico, apenas em modo de
terminal. Porém é possível afirmar que, independente do sistema de arquivos, a organização dos diretórios é
a mesma para todos, inclusive as definições e restrições nos nomes de arquivos.

Tipos de arquivos  

Veja na tabela seguinte os tipos de arquivos do Linux.

Tabela 1 - Arquivos do Linux

Tipo  Descrição 

Arquivos Suportam qualquer tipo de dado, seja ASCII, Unicode, arquivos comprimidos e até os programas executáveis
Comuns (também chamados de arquivos binários).

São arquivos especiais que contém os nomes dos arquivos que estão armazenados ou organizados como um
Diretórios
grupo.
Um ​link é um arquivo que faz uma referência a outro arquivo ou diretório dentro do sistema de arquivos. Esta
característica permite que um arquivo esteja em dois ou mais lugares ao mesmo tempo, na sua localização
original e no lugar referenciado pelo arquivo de link. Há dois tipos de arquivos de links: O ​hard link cria novos
Links
nomes para um arquivo, associando assim dois ou mais para um mesmo arquivos. O ​soft link,​ ou link
simbólico é o conjunto de arquivos que fazem referência ao arquivo original, contendo o caminho completo até
o mesmo.

Device São arquivos especiais que representam dispositivos no sistema, como um disco rígido, por exemplo.

São arquivos utilizados para comunicação entre processos, sendo estes processos executados na mesma
Sockets
máquina ou então em outro computador dentro de uma rede.

Pipes São arquivos utilizados para intercomunicação entre processos, normalmente, processos locais.

O Linux marca alguns tipos de arquivos, conforme abaixo:


● arquivos executáveis possuem um * no final do nome;
● arquivos de backup possuem um ~ no final do nome;
● diretórios são marcados com um / no final do nome;
● arquivos do tipo ​link s​ imbólico possuem um @ no final do nome;
● arquivos do tipo ​socket​ possuem um = no final do nome;
● arquivos do tipo ​pipe​ possuem um | no final do nome;
● diretórios ocultos possuem um . antes do nome.

Para visualizar estes caracteres nos nomes dos arquivos, digite ​ls -F

Comandos básicos de manipulação de arquivos e diretórios 

Os comandos de manipulação de arquivos e diretórios implementam uma das mais importantes funções em
qualquer sistema operacional. Por exemplo, funções como criar arquivos, removê-los e procurá-los são de
vital, importância para o uso do sistema. A seguir serão apresentados os principais comandos de
manipulação de arquivos e diretórios do linux.
Criando arquivos - touch 

O comando touch serve para dois fins: criar um novo arquivo (vazio), ou atualizar a data e hora de acesso e
modificação de arquivos existentes.

$ touch [nomedoarquivo]   

A T E N Ç Ã O 

O GNU/Linux não faz distinção de arquivos por conta de suas extensões. Programas específicos as
utilizam para saber proceder com a forma correta de manipulá-los.

Vendo o conteúdo de um arquivo 

Com o cat, é possível visualizar o conteúdo de um ou mais arquivos.

$ cat [nomedoarquivo]   

Tanto o comando tail, quando o head, exibem na tela as 10 primeiras linhas (head) ou as 10 últimas linhas
(tail) de determinado arquivo.

# head /etc/passwd
# tail /etc/passwd   

O more é bem semelhante ao comandos less, porém ele permite visualizar o conteúdo com “paginação”.
Então toda vez que você pressionar um tecla, ele mudará de página. 

$ less [nomedoarquivo]   

$ more [nomedoarquivo]   
Copiando arquivos e diretórios - cp 

O comando cp (copy paste) é utilizado para se fazer cópias tanto de arquivos quanto de diretórios. Portanto,
o comando necessita de um arquivo de origem, o qual será copiado, e de um destino, local onde será
colocado a sua cópia.

$ cp [opção] origem destino   

No exemplo a seguir o arquivo1 que está no diretório corrente é copiado para o diretório /tmp.

$ cp arquivo1 /tmp   

Quando um diretório for copiado, é desejável que todo seu conteúdo também seja copiado. Esse conceito é
conhecido como cópia recursiva e é representado pela opção -R. No exemplo um diretório é copiado,
incluindo seus subdiretórios, para dentro de outro diretório.

$ cp -R /tmp /home   

Movendo arquivos - mv

O comando mv (move) move ou renomeia arquivos ou diretórios. Ele possui sintaxe de uso similar ao cp. A
origem pode ser um arquivo ou diretório. O destino é o local para onde está sendo levado a origem ou o novo
nome dado. Porém no uso do mv não é necessário indicar a recursividade.

$ mv [opção] origem destino   

No exemplo o arquivo2 é movido para dentro do /tmp, mas com um nome novo que, nesse caso, é chamado
de arquivo_novo.

$ mv arquivo2 /tmp/arquivo_novo   

Criando diretórios - mkdir


O comando mkdir (make directory) serve para a criação de diretórios. Um diretório é um local que serve de
armazenamento para outros diretórios ou arquivos, criando-se assim, uma estrutura organizada. No exemplo
a seguir o diretório pasta1 é criado no diretório corrente.

$ mkdir pasta1   

Removendo arquivos e diretórios - rm 

Para remover um diretório use o comando rmdir conforme segue

$ rmdir [opção] diretório   

A função do comando rm é a de remoção de arquivos, mas se trabalhado com a recursividade, o mesmo


poderá servir para deletar diretórios vazios ou não.

$ rm [opção] arquivo/diretório   

Administração de usuários 

Administrar usuários significa criar, remover, bloquear, etc., as contas dos usuários. Na maioria dos sistemas
operacionais você pode criar usuários, e atribuir a eles perfis com características especiais. Os tipos de
usuários podem ser divididos basicamente em "​usuário​" e o "​administrador​". No Windows podemos definir
vários usuários como Administradores.

No Linux​, existe apenas um administrador, o superusuário chamado ​root​. ​Portanto este usuário tem todos os
privilégios e pode alterar tudo que há no sistema. Porém, podemos colocar permissões especiais em
determinados comandos para outros usuários. No Linux, também temos um tipo de usuário que é chamado
de usuário de sistema, ele responsável pelos serviços do sistema. Então se eu instalar um apache, um mysql
da vida, ele vai ter um usuário para casa serviço deste e controlar essa aplicação. Por fim,á os usuários
comuns que são usuário que não tem privilégios de administrador, aqui no caso o Tux. ​Portanto No
GNU/Linux (e no Unix em geral) existem 3 tipos de usuários:

1. Usuário Administrador que é apenas o ROOT;


2. Usuário de Sistema responsáveis pela Aplicações
3. Usuário Comum que possui privilégios limitados.
No momento da instalação do Ubuntu Server, a senha digitada é a do usuário que criamos e não do root. No
entanto, esse usuário possui privilégios para ​executar todos os comandos de administração. Porém esse
privilégio não o torna um (root). Vamos aprender como utilizar root. Mas, primeiro precisamos conhecer os
comandos o “​su​” e o “​sudo​”.

Tabela 9 - Comandos “su” e “sudo” 

permite você se logar como algum usuário. Sintaxe: su [opções]


[usuário]
su (s​witch user) 
Onde usuario é o nome do usuário que deseja usar. Se não digitado, é
assumido o usuário root.  

permite dar privilégios temporários de root para o seu ou outro


sudo (​superuser do​) usuário. Todo usuário que estiver contido no grupo "sudoers" poderá
se utilizar do "sudo".

Conta de root  

No Ubuntu, o ​root​ vem desabilitado por padrão. Para ativá-lo, você deve definir uma senha para ele.

$ sudo passwd root 


password: (digite a senha criada na instalação) 
New Password Unix: (digite a senha que será do root) 
Repeat Password Unix: (repita a senha que será do root)  

Pronto, você acaba de criar senha para o root ao definir a senha, a conta de ​root é ativada e você passa a
poder usá-la normalmente. Para logar como root digite:

$ su 
password: (digite a senha do root)  

Digite ​exit​ quando desejar retornar a identificação de usuário anterior:

$ exit 
Se você habilitou a conta de root e agora quer desabilitar, use o seguinte comando

$ sudo passwd -l root  

Comando sudo 

O superusuário pode fazer tudo. Portanto, trabalhar diariamente como superusuário pode ser perigoso. Você
pode digitar o comando incorretamente e derrubar o sistema. Para resolver esse problema, ​você pode logar
em sua conta de usuário comum e, se desejar executar algum comando, com privilégios de superusuário
basta utilizar o comando sudo.​ O exemplo a seguir atualiza a lista de pacotes.

# apt-get update 

A senha que o sudo pede, por padrão, é a sua senha de usuário comum. Esta é uma forma de o
administrador do sistema compartilhar privilégios administrativos limitados a outros usuários, sem revelar a
senha de root.

Quando você executa uma aplicação como root no Ubuntu, utilizando o sudo, a sessão não pedirá senha nos
próximos ​15 minutos​. Essa é a configuração padrão, que muitos acham inseguro, pois aplicações suspeitas
podem agir sobre arquivos do sistema neste intervalo. Você pode mudar esse padrão abrindo o arquivo
sudoers para editá-lo:

# nano /etc/sudoers    

 
Adicione a seguinte linha ao final do arquivo:

$ Defaults:​nome_de_usuario​timestamp_timeout=0   

Substitua ​nome_de_usuario pelo nome do seu usuário. O número ​0 significa que o tempo em que o sistema
não pedirá senha é de 0 minutos (você pode modificar de acordo com suas preferências). Você também
pode fazer o sudo pedir a senha de root ao invés da do seu usuário. Adicione a palavra-chave rootpw na
linha que começa com Defaults do arquivo ​/etc/sudoers​.
Criando contas de usuários 

Há duas formas de criar as contas de usuários. A primeira é por meio do ​useradd. Para acessar esta opção
você terá que passar alguns parâmetros para a criação do usuário. A segunda maneira é mais fácil, utilizando
o comando ​adduser​. Desta forma, o sistema solicita os dados do usuário.

O comando ​adduser​, utiliza o arquivo /etc/adduser.conf como parâmetro para criação do usuário, então
quando um usuário é adicionado pelo adduser, ele já vem configurado na sua home e no seu interpretador
do Shell (terminal). Diferente do useradd que apenas adiciona o usuário em baixo nível sem nenhum tipo de
tratamento, se não for especificado durante sua adição (utilizando parâmetros).

# adduser <nome do usuário> 

Mas como o sistema conseguiu criar essa home? Ele conseguiu criar essa home porque o próprio sistema
faz uma cópia de um outro diretório para cá: o /etc/skel/. Esse diretório tem todas as informações padrões
dos usuários. Portanto, toda vez que é criado um novo usuário, e ele precisa criar uma home, ele copia o
/etc/skel/ inteiro para a home desse usuário. Então, se você quiser deixar algo padrão para todos os novos
usuários, basta vocês acrescentarem no /etc/skel. Aqui no caso só vai ter arquivo oculto, nao vai aparecer
nada.

Quando o usuário é adicionado no sistema utilizando o adduser, ele usa o diretório /etc/skel para criar a
home do usuário. Caso você queira alguma configuração padrão para todos os novos usuários, você deve
alterar o /etc/skel. Como saber qual é a home do usuário atual? Existe uma variável global chamada HOME
com este valor:

# echo $HOME

É possível utilizar o comando useradd com outros parâmetros para adicionar o usuário já pertencendo à um
grupo específico e criar a home do usuário automaticamente. Se utilizarmos a opção -m, também será criada
uma pasta para o usuário dentro de /home.

# useradd -m tux 
# useradd ​m ​g GRUPO USUARIO

Alterando contas de usuários  

Para realizar alterações nas contas de usuários.

# usermod <opções> conta do usuário 

Tabela 11 - Opções de alteração nas contas

Opções 

-d Altera o diretório home do usuário.

-c Altera o número do grupo do usuário..

-g Altera o número do grupo do usuário.

-s Altea o Shell do Linux.

-L Usado para bloquear a conta do usuário.

-U Desbloqueia a conta do usuário.

Para alterar ou criar senhas de usuários, utilize:

# passwd <usuário>   

Dessa forma, o sistema irá solicitar uma nova senha para o usuário. Nota: o root pode alterar a senha de todo
e qualquer usuário, mas o usuário altera apenas a sua própria senha.

Remoção de uma conta de usuário

$ sudo userdel <opções> conta do usuário  

Outros comandos
 
$ id usuário​utilizado para verificar informações do usuário. 
$ groups <usuário>​exibe grupos de um determinado usuário. 
$ users​exibe usuários ativos no sistema.  

Arquivo de usuários 

E como saberemos se o usuário realmente existe no sistema depois de criado? Existe um arquivo chamado
passwd, que contém informação de todos os usuários cadastrados no sistema.

Para consultar um usuário é possível utilizar o comando getent passwd:


 

# getent passwd root


root:x:0:0:root:/root:/bin/bash 

No Linux as contas são armazenadas no arquivo chamado ​passwd que está localizado ​“/etc/passwd”​.
Este arquivo possui a conta do usuário, nome, grupo, diretório home, etc. Para acessá-lo digite os seguintes
comandos.

$ nano /etc/passwd 

Analisando a primeira linha da vemos que cada informação do arquivo passwd é separada por “:”.

Figura 2 - Detalhes do arquivo passwd

Tabela 10 - Detalhamento do arquivo passwd


Login  Nome da conta do usuário para entrar no sistema.

Este“x”representa a senha do usuário. Caso tenha um “x” é porque a senha está registrada
X  no arquivo /etc/shadow .Colocar neste campo um asterisco "*" é a maneira típica de
desabilitar uma conta para evitar que seja utilizada.

Id do 
Identificador de usuário, o número que o sistema operacional utiliza para propósitos
usuário 
internos. Ele não precisa ser único.
(UID) 

O quarto campo é o campo de identificador do grupo. Este número identifica o grupo


Id do grupo 
primário do usuário; todos os arquivos que forem criados por este usuário pertencerão
(GID) 
inicialmente a este grupo.

O quinto campo, chamado campo Gecos, é um comentário que descreve a pessoa ou a


Gecos  conta. Tipicamente, é um conjunto de valores separados por vírgulas, incluindo o nome
completo do usuário e detalhes para contato.

Diretório 
Faz referência ao nome da pasta criada para o usuário.
home 

Indica qual Shell o usuário utilizará para a execução de suas aplicações. Por padrão é
Shell  utilizado o“/Bin/bash”, mas podemos utilizar outros Shell. Se colocarmos a expressão false,
exemplo“/Bin/false”, o usuário não terá permissão para acessar o sistema.

Em relação aos tipos de usuários:

● O usuário root sempre vai ser UID “0”;


● O usuário do sistema, como por exemplo o usuário que gerencia determinado serviço como o
Apache, receberá um UID entre 100 e 999;
● Os usuários comuns do sistema receberam o UID 1000 ou maior.

Como você pode observar, a senha do usuário é representada por um X. Isto acontece porque este arquivo é
muito utilizado para verificação de nome de usuário, pasta home e outras informações. Dessa forma, a senha
mesmo estando criptografada, tornou-se vulnerável e não é mais armazenada em passwd. O arquivo
/etc/shadow é usado para armazenar as senhas dos usuários criptografadas, além de informações sobre
datas de expiração e validade das contas. Esse arquivo somente pode ser lido pelo usuário ​root ou membros
do grupo ​shadow​, possuindo permissões bem restritivas.

$ sudo nano /etc/shadow 

Administração de grupos  
 
Os grupos dos usuários facilitam as configurações de permissões de acesso aos diretórios e arquivos. Uma
vez permitido a um grupo acessar um diretório, você estará dando permissão para um conjunto de usuários
cadastrado neste grupo. O arquivo responsável por guardar os grupos é o ​group​, localizado em “​/etc/group​”.
Assim como o arquivo de usuários, cada informação do arquivo group é separada por “:”.

​Tabela 12 - Informações do arquivo group

Nome do grupo  Faz referência ao nome dado ao grupo de usuários.

Faz referência à senha que por ventura o grupo venha possuir. As senhas dos

grupos estão no arquivo“gshadow”, localizados em“/etc/gshadow”.

Faz referência a um número único para código do grupo. Este número é o


ID do grupo 
mesmo contido no arquivo passwd.

Usuários do grupo  Faz referência a todos os usuários cadastrados no grupo.

Criação de grupos -​ groupadd

$ groupadd <grupo>  

Remoção de grupos - ​groupdel

$ groupdel <nome do grupo>  

Modificação de grupos - groupmod

$ groupmod <opções> grupo 

 
Permissões de arquivos e diretórios 

As permissões de acesso aos arquivos em sistemas Linux é implementada de forma diferente do que nos
ambientes Windows. Quando executamos o comando “​ls -l ​/​” nos são mostrados todos diretórios e arquivos
na raiz do sistema, é fácil identificar nessas listagens o nome, tamanho, data e dono dos diretórios e
arquivos. Os 10 primeiros caracteres das linhas listadas pelo “ls -l” definem precisamente o que os usuários
de cada classe podem fazer com seus arquivos. Esses caracteres são chamados de modos de permissão 
dos arquivos ​e se dividem em 4 grupos com 1, 3, 3 e 3 caracteres:

Figura 3 - Modos de permissão dos arquivos

O primeiro caracter define o tipo de arquivo que pode ser:

● “-” : significa um arquivo normal.


● “d” : significa um diretório.
● “l” : significa um ‘link’ simbólico.

Os outros 9 caracteres devem ser separados em 3 grupos de 3 caracteres como o exemplo acima, sendo:

1. permissões de acesso do ​dono​ do arquivo (normalmente quem cria ou é definido pelo root);
2. permissões de acesso do ​grupo​ ao qual o arquivo pertence;
3. permissões de acesso aos ​demais usuários​.

Para cada tipo de categoria acima, há três tipos básicos de permissões: 


 
● r=read (leitura)
● w=write (gravação, alteração, deleção)
● x=execute (execução)

OBS: Permissão negada é indicada com um “-“.

➤ Vamos analisar!

drwxr-xr-x 2 root root 3072 2018-01-29 10:13 bin 

Observando os detalhes do diretório “bin” temos as permissões drwxr-xr-x , que podemos interpretar como:

● tipo = d (diretório)
● dono = rwx (permissão total)
● grupo = r-x (permissão de leitura e execução, não pode gravar nem deletar)
● outros = r-x (permissão de leitura e execução, não pode gravar nem deletar)

O primeiro campo apresenta o permissionamento do arquivo listado, ele é dividido da seguinte forma:

Sendo que o significado de cada letra é:


r – read (leitura), representado por 4;
w – write (escrita), representado por 2;
x – execute (execução), representado por 1.

Por padrão, todos os arquivos que são criados no Linux, não recebem permissão de execução para
aplicarmos. Para tal permissão basta executar:

# chmod +x /root/mapeamento.sh

Desta forma, é acrescentado o “x” de execute para todos os usuários. Neste caso, ele irá executar todos os
comandos que vimos nessa aula de forma automática.
Também é possível aplicar o permissionamento de execução utilizando a forma octal, uma vez que sabemos
que gostaríamos de aplicar, por exemplo quando o root cria um arquivo, por padrão ele recebe o
permissionamento:

Neste caso este arquivo possui o permissionamento 644, se quisermos adicionar execução para o usuário
dono, o grupo dono e os outros bastaria acrescentar 1 em cada campo:

# chmod 0755 /root/mapeamento.sh

Permissionamento Especial

Além do permissionamento comum de leitura, escrita e gravação também existe o permissionamento


especial que são utilizados para as finalidades abaixo:
SUID bit – Utilizado em binários, serve para herdar as permissões do dono do arquivo ao executar. Exemplo:
-rwsr-xr-x 1 root root 54192 Nov 20 2014 /usr/bin/passwd
O binário passwd deve ser executado por qualquer usuário, porém estes usuários não têm acesso ao arquivo
/etc/shadow, logo eles precisam executar este binário com a herança do dono que é o “root”.
SGID bit – Usado em diretórios para que os novos arquivos herdem o mesmo grupo dono do diretório.
STICKY bit – Usado em diretórios para que apenas o dono dos arquivos possam deletar os mesmos.

Gerenciamento de permissões 

O gerenciamento de permissões de acesso nos sistemas Unix/Linux poderá ser realizado em linha de
comando, por meio das ferramentas ​chmod e ​chown​. A primeira permite a mudança das permissões de
acesso com relação à leitura, escrita ou execução, tanto para o dono, grupo ou demais usuários. Já a
ferramenta chown, permite a mudança na definição do dono do arquivo ou do grupo do arquivo. Vamos
aprender de modo simples a usar as permissões que muitas vezes é bastante complicado. Tendo em mente
que o conceito de binário significa 0 = desligado e 1 = ligado, vejamos como fica na tabela abaixo:

Tabela 13- Permissões para acesso aos arquivos e diretórios do Linux

String  Binário (rwx)  Decimal  Permissões 

--- 000 0 Nenhuma permissão

--x 001 1 Executar

-w- 010 2 Gravar

-wx 011 3 Gravar e executar

r-- 100 4 Ler

r-x 101 5 Ler e executar

rw- 110 6 Ler e gravar

rwx 111 7 Ler, gravar e executar

Feito isso, sabemos que um arquivo ou diretório possui 3 modos de permissão. Uma permissão para o ​dono
do arquivo ou seja, quem o criou, uma outra permissão para o ​grupo do usuário dono do arquivo, e outra
permissão para ​qualquer​ outro usuário ou grupo.

O comando chmod 

O comando para definir permissões para um arquivo é o ​chmod​. Por exemplo, temos um diretório chamado
mp3 que eu quero permissão total para o dono [eu], permissão de apenas leitura para o meu grupo e
nenhuma permissão para o resto do mundo.

$ chmod 740 /mp3  


Porém, neste exemplo eu apliquei a permissão somente ao diretório, e não a todo o conteúdo dele. Para que
todo o conteúdo, incluindo sub-diretórios, tenham a permissão que estou aplicando, usaremos o argumento
recursivo:

$ chmod -R 740 /mp3 

Lembra do “r”, “w” e do “x” falado acima? Também posso usar o chmod para aplicar permissões diretas a um
arquivo ou diretório. Neste caso usaremos as letras.

$  chmod  +x  arquivo  permite execução por qualquer 


usuário   

$  chmod  +w  arquivo  permite escrita por qualquer 


usuário 

$  chmod  +rw  arquivo  permite leitura por qualquer 


usuário  

$  chmod  -w  arquivo  desabilita a possibilidade de escrita no 


arquivo 

O comando chown

O comando chown altera o dono e o grupo de um arquivo. A sintaxe básica do chown é:

$ chown dono:grupo [arquivo ou diretório] 

 
Vamos entender isso: eu tenho um arquivo chamado teste.txt que ao executar o ls -l, percebo que o dono é o
usuário aluno e o grupo é classe. Caso eu queira mudar o grupo do arquivo teste.txt de classe para admin,
executaria o chown assim:

$ chown aluno:admin teste.txt 


E se eu quisesse alterar o dono e o grupo do teste.txt para o root (dono root e grupo root)? Faria assim:

$ chown root:root teste.txt ou 


$ chown root: teste.txt 

E se quiséssemos alterar o dono/grupo de um diretório? Podemos? Sim, claro. Porém devemos atentar que,
se este diretório possuir sub-diretórios e eu quiser alterar o dono/grupo de tudo que está lá dentro, devo usar
o argumento recursivo, assim

$ chown -R root: pasta/ 

Além do comando chown para trocar o Dono do Arquivo, temos também o chgrp para trocar o Grupo Dono:

$ ​chgrp ​root test.txt 

Gerência e administração de Recursos 

Para resolver a primeira etapa, info da distro. Dependendo da distro, existem alguns comandos que permitem
a gente consultar essa informação. Porém, podemos consultar o arquivo /etc/os-realse que independente da
distribuição, ele sempre irá existir e trazer qual a distribuição que está sendo usada.

Less /etc/0s-release q 

Para informações dos recursos da máquina, podemos utilizar o conteúdo dentro do diretório /proc. O diretório
/proc possui 3 tipos de conteúdo:

1. Subdiretórios de processos; (todos os processos que estão rodando na máquina no momento vão
estar na forma de subdiretórios em /proc)
2. Arquivos Informativos; (podemos consultar memória ram, processador, tipo de filesystem suportado,
as partições que ele reconheceu)
3. Parâmetros alteráveis
Para consultar informações do processador

less /proc/cpuinfo 

Para saber quantos núcleos tem essa maquina

cat /proc/cpuinfo | grep processor

Para verificar as informaçõe da RAM

less /proc/meminfo

Porém, podemos perceber que as as informações vem em kbytes. Isso acontece por que o SO usa o /proc
para consultar informações e portanto elas nao estao pronto para para serem consultadas por nós humanos.
Existem outras formas de consultarmos informações do recursos do PC, como veremos a seguir.

Gerenciamento de Memória 

Podemos usar o comando free para exibir a quantidade de memória livre e usada no sistema. O free exibe a
quantidade total de memória física e de swap usada no sistema, bem como os buffers e caches usados ​pelo
kernel.

$ free 

É muito comum termos que consultar informações do sistema utilizando comandos, normalmente a saída do
comando trás informações que não são usuais para nós humanos, para isso muitos comandos possuem
parâmetros como “-h” de Human, no caso do “free” ele sempre vai trazer o formato adaptado para Mega,
Giga, Tera, etc.

$ free -h 
 
Gerenciamento de processos 
 
O Linux é um sistema multitarefa. Isso significa que é possível executar muitos programas ao mesmo tempo.
Cada instância de um programa em execução é referida como um ​processo​. Por exemplo, pode haver um
determinado programa no sistema. Mas se o programa estiver sendo executado por 15 usuários diferentes,
esse programas será representado por 15 processos diferentes. E, cada processo será identificado por um
número de ID exclusivo ​(PID) e estará associado a uma ​conta de usuário e a uma ​conta de grupo​. O Linux
fornece ferramentas para, a partir de um shell, carregar processos, listar processos em execução, monitorar o
uso do sistema e parar (ou eliminar) processos quando necessário.

Para consultar as informações de processo, nós utilizamos ferramentas como ps ou top ao invés de
investigar cada subdiretório dos processos

Listando processos com ps 

O utilitário mais comum para verificar os processos em execução é o comando ps​. Use-o para ver quais
programas estão em execução, os recursos que eles estão usando e quem os está executando.

$ ps 

Listando e alterando processos com top 

O comando ​top ​por padrão exibe os processos ordenados por quanto tempo de CPU eles estão atualmente
consumindo (mas você também pode ordenar por outras colunas).

$ top 

Informações gerais sobre o sistema aparecem na parte superior da saída de top, seguidas por informações
sobre cada processo em execução. No topo, você pode ver há quanto tempo o sistema está ativo, quantos
usuários estão conectados nele e quanta demanda tem havido sobre o ele no(s) último(s) 1, 5 e 10 minutos.
Outras informações gerais incluem quantos processos (tarefas) estão atualmente em execução, quanto da
CPU está sendo usado e quanta memória RAM e swap estão disponíveis e sendo usadas. Depois das
informações gerais, vêm as listas de cada processo, ordenadas pela porcentagem da CPU sendo usado por
cada processo. Todas essas informações são exibidas novamente a cada 5 segundos, por padrão.

A T E N Ç Ã O 

Se quiser ser capaz de eliminar ou repriorizar processos, você precisará executar top com o usuário root.
Se só quiser exibir processor, talvez, eliminar ou mudar seus próprios processos, você pode fazer isso
como um usuário regular.

Uma prática comum é usar top para encontrar processos que estão consumindo muita memória ou poder de
processamento e, então, agir sobre esses processos de alguma forma. Você pode usar top para eliminar
(terminar completamente) ou repriorizar (“renice”) esse processo.

Repriorizando um processo 

Observe o ID do processo que você deseja repriorizar e pressione r. Quando a mensagem do PID para
repriorizar aparecer, digite o ID do processo que você deseja repriorizar. Quando solicitado a informar o valor
para repriorizar o PID (Renice PID to value): digite um número entre –19 e 20.
 
Eliminando um processo 

Observe o ID do processo que você deseja eliminar e pressione k. Digite 15 para terminar de forma limpa ou
9 para simplesmente eliminar o processo imediatamente.

Processos em primeiro e segundo plano 

Há várias maneiras de colocar um programa ativo em segundo plano. Uma delas é adicionar uma letra E
comercial (&) ao final de uma linha de comando quando você executá-lo. Para parar a execução de um
comando e colocá-lo em segundo plano, pressione Ctrl+Z. Depois que o comando parar, você pode trazê-lo
de volta para o primeiro plano para que seja executado (o comando fg) ou iniciá-lo rodando em segundo
plano (o comando bg).

 
 
 
Gerenciamento de Redes 

Obtendo informações da rede 

O comando ​hostname ​ mostra ou muda o nome de seu computador na rede.

# hostname

O comando i​fconfig ​é usado para configurar (e posteriormente manter) as interfaces de rede. É


usado durante o boot para configurar a maioria delas para um estado usável.

# ifconfig -a # lista as informações de suas Interfaces de Rede

-a ​— Exibe informações de todas as interfaces de rede ativas ou inativas no servidor.


O comando ​mii-tool v​erifica ou define o status da interface de rede. A maioria dos adaptadores Fast
Ethernet usa uma MII para auto negociar a velocidade do link e a configuração do duplex. Para verificar a
conectividade física da interface podemos executar:

# mii​-tool enp0s3

O comando route ​— Permite gerenciar configurações de rotas no sistema. Para


​ verificar o
roteador padrão, execute o seguinte comando:

# route -n

-n ​— Mostra as rotas definidas, sem resolver nomes.


 
O arquivo​ /etc/resolv.conf​ é o arquivo de configuração principal do código do resolvedor de nomes. Seu
formato é um arquivo texto simples com um parâmetro por linha e o endereço de servidores DNS
externos são especificados nele. Existem três palavras chaves normalmente usadas que são:

●​
domain ​— Especifica o nome do domínio local.

search ​— Especifica uma lista de nomes de domínio alternativos ao procurar por um


●​

computador, separados por espaços. A linha search pode conter no máximo 6 domínios ou 256
caracteres.
nameserver ​— Especifica o endereço IP de um servidor de nomes de domínio para resolução
●​

de nomes. Pode ser usado várias vezes.

Para verificar os servidores DNS para resolução de nomes, execute o comando:

# cat /etc/resolv.conf

O arquivo ​/etc/hosts​ faz o relacionamento entre um nome de computador e endereço IP local.


Recomendado para IPs constantemente acessados e para colocação de endereços de virtual
hosts (quando deseja referir pelo nome ao invés de IP). Verifique a resolução de nomes manual através do
comando:

# cat /etc/hosts

 
Administrando a Rede 
 
Explorando o comando IP  
 
O comando ​ip​ constitui uma ferramenta extremamente poderosa. Em sistemas Linux, podemos configurar a
maioria das necessidades, interfaces de rede, utilizar do arp, políticas de roteamento, túneis de vpn inclusive
substituir os comandos ifconfig, arp, route e muito mais.

Visualize as informações das interfaces de rede:

# ip address

# ip a

Visualize as informações de uma interface de rede específica:

# ip a show enp0s3

Desative e remova a configuração de uma interface de rede com os comandos:


#ip link set enp0s3 down
# ip addr del 10.0.2.15/24 dev enp0s3
# ip a show enp0s3

Opções do comando ip

●​
address ​— Exibe ips das interfaces de rede.
●​
a show <interface> ​— Exibe o ip de uma interface específica.
●​
link set <interface> ​down — Desabilita uma interface de rede.
●​
addr del ​— Exclui um endereço IP de uma interface específica.

● ​addr add a <ip> dev <interface> label <label> ​— Configura um rótulo para seleção de
endereço. No exemplo estamos criando uma interface virtual a partir da interface física.

Configurando IP e Máscara

O comando dhclient permite efetuar a configuração de uma ou mais interfaces de rede usando o
protocolo DHCP (Dynamic Host Configuration Protocol). Obtenha configurações automáticas da interface de
rede, execute os comandos:  

# dhclient enp0s3

 
IP Virtual 
 
A configuração de IP Virtual é uma prática usada quando existe uma limitação de placas físicas, porém uma
necessidade de interligar redes com diferentes range de IPs. Você pode criar diversos alias para uma mesma
placa.

Para adicionar a interface virtual enp0s8:0, use o subcomando add do comando ip:  

# ip add a 10.10.0.20/16 dev enp0s8 label enp0s8:0


 

Para remover a interface virtual enp0s8:0, use o subcomando del do comando ip:   

# ip addr del 10.10.0.20/16 dev enp0s8:0


 
 
Configurar roteamento  
  
Um computador precisa de um roteador padrão (Gateway) para navegar em outras redes, ou seja,
para sair para a internet. No Linux, o comando que define de forma temporária o gateway do
sistema é o ​ip route​.

Opções do comando ip route

●​
route del ​— Remove uma rota estática.
●​
route add ​— Adiciona uma rota estática.

L​iste as configurações de rota padrão:

#​ ip route show
 

Remova as configurações ​de rota padrão:

#​ ip route del default


 

Adicione configurações de rota padrão:

#​ ip route add default via 172.16.100.101


 

Configurar resolução de nomes  

Name Services Switch


O arquivo nsswitch.conf (Name Services Switch) é responsável por definir a ordem da resolução de
nomes, onde a resolução de rede é uma das opções desse arquivo.
Opções principais do arquivo nsswitch.conf

●​
dns ​— Lê o arquivo /etc/resolv.conf.
●​
files ​— Lê o arquivo /etc/hosts.

Podemos alterar a ordem de resolução:

#​ nano /etc/nsswitch.conf
hosts: ​dns ​files myhostname
 
 
Após alterar o arquivo, verifique em qual servidor DNS está sendo feita a busca na internet :

#​ cat /etc/resolv.conf

Configuração Estática de Rede

Tudo que vimos até agora, são configurações que podem ser atribuídas através de linha de

comando (configurações dinâmicas). Porém nosso “host” deve estar devidamente configurado

para que, por exemplo, após um “boot”, a máquina mantenha as configurações certas.

Descrição dos arquivos

/etc/network/interfaces ​— Arquivo usado pelos comandos ifconfig <interface> ifup e ifconfig


●​

<interface> ifdown, respectivamente para ativar e desativas as interfaces de rede.

Opções do arquivo /etc/network/interfaces

●​
iface lo inet loopback ​— É usado para configurar a interface loopback (lo) IPv4.
●​
iface <interface> inet static ​— Configura um endereço IPv4 fixo para a interface.
●​
address ​— Endereço IP da Interface de rede (por exemplo, 192.168.1.1).
●​
netmask ​— Máscara de rede da Interface de rede (por exemplo, 255.255.255.0).
●​
broadcast ​— Endereço de Broadcast da interface (por exemplo, 192.168.1.255).
●​
network ​— Endereço da rede (por exemplo, 192.168.0.0).

gateway ​— O gateway é o endereço do computador responsável por conectar o seu


●​

computador a outra rede. Use somente se for necessário em sua rede.

●​
iface <interface> inet dhcp ​— Este método é usado para obter os parâmetros de
configuração através de um servidor DHCP da rede através das ferramentas: dhclient, pump
(somente Kernels 2.2.x) ou dpcpcp (somente kernels 2.0.x e 2.2.x)

●​
/etc/hostname ​— Arquivo lido pelo utilitário hostname para definir o nome de sua estação de
trabalho.

●​
/etc/hosts ​— Banco de dados DNS estático que mapeia o nome ao endereço IP da estação de
trabalho (ou vice versa).
/arquio netplan
Config estaticas x dinamicas
Comando route
Hostname -i

Há algum tempo o nosso querido Ubuntu Server mudou consideravelmente a


sua forma de configuração de rede padrão, se antigamente nós configurávamos
as nossas placas de rede em ​/etc/network/interfaces​, à partir do Ubuntu 18.04
LTS (Server ou não) as configurações de rede devem ser feitas através do
"​netplan​". Aprenda a fazer essa configuração.

Para configurar a rede no Ubuntu Server, atualmente, você deve navegar até o
diretório ​/etc/netplan, ​onde será possível encontrar um arquivo com a extensão
.yaml​, ​é nele que você deve fazer os seus ajustes.

Entendendo a formatação e configuração do arquivo .yaml de


rede
Eu sei, "​old habits die hard"​ , mas o novo formato permite um único tipo de
configuração de rede em todas as versões do Ubuntu disponíveis, do seu
desktop até a "internet das coisas", e bom, mesmo que você não goste muito
da ideia de mudar, francamente, não há muito que você possa fazer nesse
sentido, porém, a configuração atual é, na verdade, extremamente simples.

Dica: ​Para editar estes arquivos eu vou usar o editor de textos "nano", no meu
caso a sintasse para abrir o arquivo de configuração seria:
sudo nano /etc/netplan/50-cloud-init.yaml
Verifique qual o nome do seu arquivo de configuração de rede com:
ls /etc/netplan/
Esta é a imagem de um arquivo de configuração de um dos meus servidores:

O arquivo por si só já é identado, então, recomendo tomar esse cuidado na


organização, isso vai fazer com que seja realmente simples de entender tudo.

Indicado ​com a seta​, você tem o nome (ID) da sua placa de rede.

Logo abaixo você tem:

- ​Endereço do IP ​que você quer para a máquina, seguido de uma máscara de


sub-rede​, ​declarada nesse caso com um simples "/24" (255.255.255.0)​;
- gateway4 ​para IPV4, ​se você for usar IPV6, terá de declarar como
"​gateway6​";

- ​dhcp4 ​para ​IPV4, ​suportando "verdeiro" ou "falso" para DHCP ativo ou não,
com as palavras em Inglês "true" e "false", asssim como o gateway, caso você
vá utilizar IPV6, ele deve ser declarado como "​dhcp6​";

- ​"optional" ​define se essa placa de rede deve ser aguardada (false) ou não
(true) na hora do boot para iniciar o sistema;

- Por último você deve configurar o seu DNS sob "​nameservers​". Observe a
identação, você pode adicionar mais de um DNS na mesma linha, apenas
separando-os por vírgula, é bem simples de entender observando o exemplo
acima.

Observe, na imagem acima também, como é feita a organização das


informações para que tudo saia corretamente. Antes de fazer qualquer
alteração nesse arquivo, você pode, é claro, fazer um backup dele.

Configurando DHCP no arquivo de Netplan

A configuração de rede do ​Ubuntu Server pode ser feita no momento da


instalação​, se você marcar para ele usar DHCP ou ignorar a configuração de
rede, esse será o comportamento padrão do sistema, porém, caso você tenha
alterado alguma configuração ou queira fazer algum tipo de teste, o DHCP
padrão do Ubuntu Server se configura dessa forma:

E claro, você pode mesclar as coisas e adicionar configurações extras, como


usar um DNS específico.

Dica: Como descobrir o ID da minha placa de rede?

Como você deve ter percedido, é necessário declarar a sua placa de rede para
então fazer as configurações adequadas. Geralmente o próprio Ubuntu
adincionará essa identidade ao arquivo por padrão se as placas estiverem no
servidor na hora da instalação, mas em caso de dúvida, use o comando:
ip address
Mesmo sem internet no computador você verá um resultado semelhante a
esse, observe o local onde a placa de rede é exibida:

Se precisar estudar mais o ​netplan para fazer configurações menos comuns,


basta consultar o manual:
man netplan
No site da Canonical ​você encontra uma versão web desse manual​.

Testando e aplicando o "seu plano de rede"

O "Netplan" possui alguns recursos interessantes, como uma ferramenta para


testar se a configuração está funcional, antes de você aplicar mudanças:
sudo netplan try
Dessa forma o "Netplan" tentará implementar a suas modificações no sistema,
caso algo dê errado, ele vai te avisar. Nesse caso, eu escrevi a palavra "true"
errado propositalmente para mostrar o resultado, veja:
Ajustando esse erro e repetindo o teste:

Repare que agora o meu arquivo de configuração foi aprovado como


"funcional", eu posso aplicar a modificação ao sistema simplesmente
pressionando "enter" novamente, caso contrário, em 2 minutos o arquivo será
revertido ao padrão anterior.

Caso você já saiba fazer as modificações e simplesmente queira aplicar direto


as suas configurações, basta rodar:
sudo netplan apply
Como você pode ver, especialmente se você era um dos que constumava fazer
ajustes em ​/etc/network/interfaces​, aqui não é necessario reiniciar nenhum
serviço ou mesmo o servidor. No entanto, vale a pena observar que caso você
edite o seu arquivo (com o nano por exemplo), o salve, e depois reinicie o seu
computador, ele vai usá-lo como "netplan" sem a necessidade do "apply".

Uma forma nova de configurar o seu Ubuntu Server

Apesar de eu ter tratado isso como algo novo, esse método já está disponível
para as pessoas que vão usar o Ubuntu Server há praticamente um ano e não
é necessariamente mais difícil do que o modo antigo, é apenas diferente. De
fato, tirando o nome meio esquisito que o seu "yaml" pode ter, o resto é simples
até demais.

Espero que o artigo tenha ajudado, se ele lhe foi útil, não esqueça de
compartilhar, até a próxima!

# ip -​a 

O parâmetro “-a” é para ele exibir todas as interfaces, incluindo as que estiverem desabilitadas.

Portas de Serviços 

As portas servem para encaminhar determinados pacotes para serviços correspondentes. Então, por
exemplo, quando um cliente da dexter digitar no navegador dexter.com.br um pacote vai sair pela interface
de rede dele, da máquina dele lá do navegador, e vai para o servidor da dexter, com destino a porta 80.
Então o servidor da dexter vai receber esse pacote na porta 80, e quem vai estar ouvindo na porta 80? O
serviço do apache, que é o serviço do servidor web. E aí o serviço do apache sabe o que fazer com esse
pacote, ele sabe como responder essa informação. Então as portas servem para entregar determinado
pacote para determinado serviço.
# ss ​nltpu 

-n se eu nao colocar, o ss tenta resolver cada ip para nome, isso leva muito tempo, vale mais a pena
colocarmos -n e observarmos apenas os ips
-l quias as portas ele está ouvindo
-t todas portas cujo protocolo seja tcp
U udp
P process
A ordem dos parâmetros é indiferentes
Aqui nao tem nada rodando nesta máquina

O binário ss faz parte do pacote iproute2 (mesmo pacote pacote que contém o binário ip), esse comando
serve para apresentar e filtrar as portas que estão abertas e conexões que estão ativas no servidor no
momento atual. Os parâmetros mais utilizados são:
n → Para não resolver os nomes, quando o comando é executado sem este parâmetro ele tende a demorar
mais, uma vez que ele irá tentar resolver cada IP para nome nos servidores DNS conhecidos;
l → Limita a saída do comando, mostrando apenas as portas que estão sendo ouvidas (listening), não
apresentando as conexões ativas no momento;
t → Mostra as conexões TCP;
p → Exibe o ID do processo vinculado à esta conexão;
u → Mostra as conexões UDP.

Além do comando ss também é possível utilizar o netstat, porém este comando faz parte do pacote net-tools
que vem sendo retirado das distribuições, os parâmetros utilizados são os mesmos:
# netstat ​nltpu

Dispositivos de armazenamento 

Antes de pegarmos o espaço em disco, temos que entender o conceito de unidade no linux. No linux, não
existe unidade, mas sim ponto de montagem. La no windows, se vc tiver duas partições ele vai criar duas
unidades (Letrada D:/ e E:/). Aqui no linux, cada partição eh reconhecida por um arquivo dentro do /dev, e
esses arquivos podem ser montados onde vc preferir. Nos sistemas mais atuais ele monta dentro /media

Quando conectamos um dispositivo de bloco em um linux, ele é reconhecido e interpretado como um arquivo
dentro de /dev, porém para esse dispositivo ser acessado é necessário que esteja montado em algum
diretório, diferente do Windows que reconhece os dispositivos como uma unidade e atribuindo uma letra para
acessá-lo.
Logo, no Linux é necessário acessar o ponto de montagem para poder visualizar os arquivos do disco. O
comando abaixo lista todos os discos conectados no equipamento, mesmo os que não estão montados:

O comando df apresenta apenas o relatório dos dispositivos montado, e o parâmetro -h serve para
apresentar os valores em formatos “humanos” como no comando free. Caso exista a necessidade, você
pode consultar o tamanho de determinado arquivo utilizando o comando “du”:

# du ​hs /etc
3.6M /etc/

Du -h /var/log/

O parâmetro -h tem o mesmo significado dos demais (human), já o parâmetro -s vem de sumarizar, serve
para ele exibir apenas o tamanho total de cada Arquivo.

O Linux possui suporte a diversos dispositivos: disco SCSI, disco SATA, CD-ROM, PEN-DRIVE etc. Estes
dispositivo, podem ser formatados como sistema de arquivo padrão do Linux ( EXT4 ou btrFS) ou, ainda, em
outro tipo de sistema de arquivo de sua escolha, como os do tipo ​journaling ou reiserfs, ou os oriundos da
Microsoft FAT, FAT16, FAT32 e NTFS.

Todo dispositivo de armazenamento no Linux é identificado por um arquivo dentro do diretório /de​v/. O nome
utilizado para o arquivo depende do tipo do dispositivo (SATA, SCSI etc) e de suas partições. Discos rígidos
(SCSI ou SATA), mesmo os externos, são nomeados /dev/sda, /dev/sdb, /dev/sdc, etc, na ordem
correspondente à que são identificados pelo sistema.

A primeira partição do disco /dev/sda será /dev/sda1, a segunda partição neste disco será /dev/sda2, assim
por diante. O mesmo vale para os demais dispositivos de armazenamento de bloco, como pendrives. Em
versões mais antigas do kernel, os dispositivos IDE eram identificados como /dev/hda, /dev/hdb, etc. Nos
sistemas Linux mais recentes, desde a versão 2.6 do Kernel, os discos IDE serão identificados como se
fossem discos SATA. Já um leitor/gravador de CD/DVD conectado ao primeiro canal IDE será identificado
como /dev/sr0. Se conectado ao segundo canal IDE será identificado como /dev/sr1.

Tabela 4 - Nomeação dos dispositivos de armazenamento e das suas localizações

/dev – localização do dispositivo;


Nomeação da localização dos 
/sd – faz referência a um disco scsi, sata ou ide.
dispositivos: 
/sr - faz referência a leitor/gravador de CD/DVD

/dev/sda – disco no primeiro canal;


Nomeação do Disco   /dev/sdb – disco no segundo canal;
/dev/sdc – disco no terceiro canal.

/dev/sda1 – primeira partição do disco sda


Nomeação das partições 
/dev/sda2 – segunda partição do disco sda

Criando partições e formatando 


 
Como já visto, as partições são criadas preferencialmente na instalação do sistema operacional, mas é
possível criá-las, também, após o término do procedimento. Existem diversos programas que permitem criar,
listar, apagar e alterar partições. O comando fdisk é um utilitário baseado em texto para visualizar e gerenciar
partições do disco rígido no Linux.. Para a execução deste programa utilizam-se alguns parâmetros,
conforme a tabela a seguir.

Tabela 5 - Opções do fdisk para criação de uma nova partição

Opção  Descrição 

a Ativa partição

d Apaga partição

l Lista as partições ativas no disco

n Nova particição

p Tabela de partição em memória

q Sai do fdisk e não salva as alterações realizadas


r Altera o tipo de partição

w Salva as alterações realizadas no disco

Depois de criarmos partições podemos utilizar alguns comandos para formatar os discos. O ​mkfS (make
filesystem) é o comando utilizado para formatar as partições criadas por meio do FDISK. Acompanhe um
exemplo de formatação de uma partição /dev/sda3 com sistema de arquivo EXT4 e com o nome DADOS.

# mkfs --t ext4 --L dados /dev/sda3 

Gerenciando o sistema de arquivos  

Para realizar tarefas importantes como montar e desmontar, verificar a capacidade e a integridade dos
dispositivos, diversos programas são utilizados. Nesta sessão, vamos apresentar alguns.

DF​ - O comando DF verifica o espaço total e a utilização de um sistema de arquivo.

# df [opções] <dispositivo> 

Tabela 6 - Opções do DF

Opções   Descrições 

-i Valores em inodes

-k Valores em KB

-h Valores em MB e GB

DU​ - O comando disk usage detalha a utilização do disco por diretórios.

# du [opções] <arquivo> 

Tabela 7 - Opções do DU
Opções  Descrição 

-a Mostra arquivos e diretórios

-h Mostra em MB e Gb

-s Mostra espaço total ocupado

FSCK ​- O comando FSCK é utilizado para verificar e corrigir erros no sistema de arquivos

# fsck [opções] <dispositivo> 

Tabela 8 - Opções do fsck

Opções  Descrição 

-A Verifica os sistemas contidos no /dev/fstab

-c Verifica os setores defeituosos

-t tipo_sist Verifica por tipo de sistema

-p Repara o sistema automaticamente

-y Executa sem realizar perguntas

Montando Dispositivos  
 
As mídias removíveis se tornaram muito comuns em plataformas de microcomputadores. Para obter acesso a
arquivos em dispositivos externos, o sistema operacional deve primeiro ser informado onde, na árvore de
diretórios, esses arquivos devem aparecer. Esse processo é chamado de ​montagem de um sistema de
arquivos. Por exemplo, para acessar os arquivos em um HD externo, deve-se informar ao sistema
operacional "pegue o sistema de arquivos desse HD e faça-o aparecer em tal diretório". O diretório fornecido
ao sistema operacional é chamado de ponto de montagem. Atualmente, a maioria dos sistemas provêem
mecanismos de automontagem, onde o sistema faz automaticamente a montagem para o usuário.
Entretanto, algumas vezes temos que fazer esse processo manualmente, o que é feito utilizando-se o
comando mount.
/media é o ponto de montagem para mídia removível. Esse diretório contém subdiretórios usados ​para
montar mídias removíveis, como CD-ROMs, HDs, etc.
/mnt​ é geralmente usado para montar temporariamente os arquivos quando necessário.

O comando ​mount

O comando ​mount ​é utilizado para montar dispositivos após a carga do sistema operacional. No exemplo a
seguir é montado um HD externo identificado como /dev/sdc em “ mnt/hdexterno”.

# mount /dev/sdc /mnt/hdexterno 

Para verificar quais sistemas de arquivos estão montados, digita-se apenas:

# mount  

O comando ​umount

Este comando faz o contrário do “mount”, ou seja, desmonta o dispositivo montado pelo mount.

# umount /mnt/hdexterno 

Buscas, Redirecionamento e Expressões Regulares 

A busca no Linux é extremamente poderosa quando se tem domínio dos comandos. O comando “find” possui
diversos parâmetros, inclusive para tomar ações com os arquivos encontrados.

# find /etc -name interfaces 

Esse -name é um parâmetro do comando find.


# Find - /etc -iname INTERFACESS

Além do find também temos o locate, porém nem sempre ele vai encontrar os arquivos, pois sua indexação
não é em tempo real, logo você tem que forçar a atualização da base de arquivos conhecidos por ele antes
de efetuar a busca, mas ele é muito mais rápido.

# updatedb
# locate interfaces

Como procurar um arquivo que tem determinado parâmetro, determinada configuração? Por exemplo um
número ip. Podemos utilizar um comando chamado grep (global regular expression), ou seja, é uma
ferramenta para usarmos expressões regulares

Consulta de forma recursiva (diretorios e subdiretorios)

O comando grep (global/regular expression/print) é utilizado para fazer filtro na saída padrão de comandos,
ou buscar determinadas palavras em arquivos.

# grep - R “eth0” /etc/

Como o seu próprio nome já diz, ele suporta diversos metacaracteres de Expressão Regular, o que pode
facilitar quando queremos encontrar determinados termos. Tudo o que casar com a palavra buscada é
exibido na tela, como por exemplo para filtrar apenas os IPs do comando “ip a”.

# ip a | grep inet

Pipe “|” O Pipe serve para redirecionar a saída de determinado comando para outro comando, ele é muito
utilizado em conjunto com o grep, pois em muitos casos as saídas dos comandos podem ser grandes, o que
dificulta a visualização da informação buscada. Para isso, podemos fazer o filtro com o “ | grep palavra”.
Agora como faço para pegar toda essa informação de rede e colocar dentro de um arquivo. Tenho todas as
configurações no arquivo no /etc e posso copiar usando o comando cp. Porém podemos também usar um
redirecionador.

Redirecionador “>” O sinal de “maior” serve para redirecionar a saída de determinado comando para um
ARQUIVO, ele apaga o conteúdo do arquivo e escreve exatamente a saída do comando. Caso utilize “>>”,
ao invés dele apagar o conteúdo do arquivo, ele simplesmente adiciona no final do arquivo a saída do
comando. Obs.: Caso o arquivo não exista, ele cria o arquivo.

Ip a > /home/networkconfig.txt

O sinal > Apaga tudo o q está no arquivo enquanto o sinal >> acrescenta o que está´no arquivo

Expressões Regulares 

Compactação de Arquivos 

No Linux é muito comum ver arquivos empacotados e compactados no formato “tar.gz”, diferente do windows
a ferramenta tar serve para “empacotar” arquivos e podemos utilizar outras ferramentas para aplicar
compressão como o “gz”, “xz”, “bzip”, etc… O empacotador serve para unificar em apenas um arquivo
diversos arquivos. Para empacotar um diretório você pode utilizar o tar:

# tar ​cf arquivo.tar /diretório/a/ser/compactado/

O parâmetro -cf significa respectivamente, “create” e “file”, logo sempre após o comando -f deve ser citado o
arquivo que será criado. Com o arquivo criado, já é possível compactá-lo utilizando, por exemplo, a
ferramenta gzip:

# gzip arquivo.tar

Porém o comando tar possui parâmetros para manipular os arquivos utilizando os compressores, logo
podemos criar o arquivo utilizando:
# tar ​czf arquivo.tar.gz /diretório/a/ser/compactado/

Para descompactar arquivos com a extensão “.tar”, basta utilizar o parametro -x


# tar ​xf arquivo.tar

Se você quiser consultar o que tem dentro do arquivo

Tar -tf mapeamento.tar.gz


-t exibe o conteúdo do arquivo
F especifica o arquivo

E para tirar essa conteúdo da compactação

Tar -xf mapeamento.tar.gz eles descompactar no diretório onde estou


Tar -xf mapeamento -C /tmp

Removendo dados

O comando “rm” serve para remover arquivos ou diretórios. Os parâmetros apresentados no exemplo acima,
servem para:
-r Remover de forma recursiva, logo se não for passado este parâmetro ele não remove diretórios.
-f Força a remoção.

Trocando os donos

Listando com detalhes

A utilização de arquivos compactados é um método útil para reduzir o consumo de espaço em disco ou
permitir grandes quantidades de arquivos serem transferidas para outro computador mais rapidamente.
Compactadores/descompactadores 

Compactadores são programas que diminuem o tamanho de um arquivo (ou arquivos) através da substituição
de caracteres repetidos. Para descompactar é feito o processo inverso. A quantidade de compactação de um
arquivo é chamada de taxa de compactação. Assim se o tamanho do arquivo for diminuído a metade após a
compactação, dizemos que conseguiu uma taxa de compactação de 2:1 (lê-se dois para um), se o arquivo
diminuiu 4 vezes, dizemos que conseguiu uma compactação de 4:1 (quatro para um) e assim por diante.

A T E N Ç Ã O 

Não é possível trabalhar diretamente com arquivos compactados! É necessário descompactar o arquivo
para usá-lo. Alguns programas atualmente suportam a abertura de arquivos compactados, mas na
realidade eles apenas simplificam a tarefa descompactando o arquivo, abrindo e o recompactando assim
que o trabalho estiver concluído. 

 
Formatos de compressão 

Cada esquema de compressão gera um formato próprio de arquivo compactado que só pode ser
descompactado pelo mesmo compactador que o gerou ou por outro compactador que também seja capaz de
compreender o mesmo esquema. Confira na tabela a seguir alguns formatos de compressão de arquivo mais
utilizados. Alguns destes podem ser abertos pelo Ubuntu automaticamente. Outros podem ser manipulados
se você instalar pacotes extras.

Tabela 14- Formatos de arquivos comprimidos

Formato  Descrições 

.zip A extensão do compactador Winzip se tornou tão famosa que já foi criado até o verbo “zipar”
para mencionar a compactação de arquivos. O programa é um dos pioneiros em sua área,
sendo amplamente usado para a tarefa desde sua criação.

.rar É um formato de arquivo não-livre criado pela Rarsoft. Este é o segundo formato mais
utilizado de compactação, tido por muitos como superior ao ZIPA. Porém a versão 3.0 não é
suportada por nenhuma ferramenta gratuita.
.7z Criado pelos desenvolvedores do 7-Zip, esta extensão faz menção aos arquivos compactados
criados por ele, que são de alta qualidade e taxa de diminuição de tamanho se comparado às
pastas e arquivos originais inseridos no compactado.

.tar O arquivo .tar é um antigo formato de arquivo criado para fitas. Os arquivos TAR consistem
em arquivos que são sequencialmente adicionados a um único arquivo.

.gz vem do GNU ZIP, e foi criado para ser um substituto para o formato ZIP, mas não é o mesmo.

.bz2 é semelhante ao .gz, mas com um algoritmo de compressão diferente chamado codificação
Burrows-Wheeler and Huffman

.tar.gz/.tgz um arquivo Tar GZ é um arquivo .tar comprimido por gzip

.tar.bz2 arquivos Tar BZ2 são arquivos .tar compactados com bzip2. Arquivos compactados Bzip2 são
menores que os arquivos gzip. O problema é que a compactação bzip requer mais poder de
processamento do que a compactação gzip.

Arquivos compactados via shell 

Muitos dos utilitários acima podem ser usados ​de maneira rápida e eficiente pela linha de comando. Vamos
usar alguns pacotes fundamentais para compressão e descompressão para Linux: o gzip, bzip2 e zip.

Gzip 

Para compactar um arquivo com a extensão .gz utilizamos o gzip conforme comandos a seguir.

$ gzip document.txt 

$  gzip  -c  document.txt  novo_nome.gz  modifica o nome 


de saída  
Para descomprimir um arquivo que já está comprimido, é igualmente simples, embora possamos usar dois
comandos diferentes com o mesmo efeito. E como resultado de qualquer um dos dois comandos, você irá
obter o arquivo descompactado sem extensão .gz.

$ gzip -d document.gz 
$ gunzip documento.gz 

Bzip2 

Para poder compactar um arquivo no formato .bz2 utilizamos o Bzip2 conforme comandos a seguir.

$ bzip2 document.txt 

$  bzip2  -c  document.txt  name.bz2  modifica o nome de 


saída 

bzip2 -d documento.bz2 # descompactar o arquivo 


bunzip2 documento.bz2 

ZIP 

Para criar ou extrair um arquivo zip use:

$ zip document.txt 

$ unzip documento.zip 

Dicas e Truques - Compactadores 

Os principais compactadores utilizados no Linux são o gzip e o bzip, aprenda a utilizá-los com os passos
abaixo.

GZIP 
Compactando um arquivo:

root@debian:~# gzip /home/tux/arquivo.txt

root@debian:~# file /home/tux/arquivo.txt.gz

/home/tux/arquivo.txt.gz: gzip compressed data, was "arquivo.txt"

Descompactando o arquivo:

root@debian:~# gunzip /home/tux/arquivo.txt.gz

root@debian:~# ls /home/tux/

arquivo.txt

BZIP 

Compactando um arquivo:

root@debian:~# bzip2 /home/tux/arquivo.txt

root@debian:~# file /home/tux/arquivo.txt.bz2

/home/tux/arquivo.txt.bz2: bzip2 compressed data, block size = 900k

Descompactando o arquivo:

root@debian:~# bunzip /home/tux/arquivo.txt.bz2

root@debian:~# ls /home/tux/

arquivo.txt

Atenção!  

Sempre que utilizamos o gzip ou o bzip eles removem automaticamente o arquivo de origem, ao menos que
seja utilizado o parâmetro "-k" de keep durante a compactação ou descompactação dos arquivos 

ShellScript 
O shellscript é uma maneira de automatizar determinadas tarefas repetitivas. Por exemplo, um backup. Se eu
tenho que fazer um backup todo dia em um determinado horário. EM vez de eu me logar no servidor e fazer
isso todo dia. Eu posso criar um shellscript e colocar todos os comandos que eu faço diariamente. É claro
que eu tenho que utilizar de outras ferramentas por exemplo o um agendador de tarefas do linux.

Atualmente no mundo de DevOps, existem outras diversas ferramentas para este tipo de automatização,
porém no caso do Shellscript ele basicamente executa os comandos que estão descritos nele.

Dentro de um script em Shell, encontramos sempre na primeira linha, qual será o interpretador dos
comandos apresentados no decorrer do documento. A sintaxe dele é “#!/bin/bash” porém, poderia ser
chamado outro interpretador diferente do bash, como por exemplo o python, php,perl, etc... O nome dado a
este campo é Shebang.

Outra característica importante do ShellScript são os comentários, tudo que vier após o caractere “#” dentro
do documento será sempre desconsiderado durante a execução do script. É deveras importante documentar
dentro do script para quê ele serve, e o que os comandos estão fazendo. Sem está documentação o script
funcionará normalmente, porém ao fazer uma manutenção no script, será sempre mais complicado, uma vez
que não há comentários.
O shell suporta alguns argumentos de programação, logo para um melhor aproveitamento dele, é bom
conhecer um pouco de lógica de programação. Ele suporta expressões como: for, while, if, case, function,
etc… Você pode executar um Shellscript de diversas maneiras. Caso esteja no diretório onde está o script,
basta executar:

# cd /root/
# ./mapeamento.sh

Se o script não estiver no seu diretório, pode ser digitado o caminho absoluto do script:

# /root/mapeamento.sh

Também é possível especificar qual é o interpretador que irá executá-lo (neste caso não é necessário o script
ter permissão de execução):

# bash /root/mapeamento.sh

Transformando um shellscript em comando Por padrão, algumas distribuições já possuem alguns alias
criados, como por exemplo quando você utiliza um ls e ele apresenta a saída do comando colorido, pois
possui um alias da seguinte forma:

# alias ls=”ls ​color=auto”

Porém, sempre que o equipamento for reiniciado ele perderá a configuração do alias. Para que seja
carregado sempre que acessar o sistema, você deverá inserir esse comando nos arquivos que são
carregados durante o login do usuário (~/.bashrc).

O comando ln, serve para criação de links. Usado junto com o parâmetro -s, e criado um link simbólico
apenas, semelhante aos atalhos do windows.

# ln ​s /root/mapeamento.sh /bin/mapeamento

Quando adicionado o atalho em /bin, qualquer usuário que possua o diretório


/bin na sua PATH poderá utilizar o comando “mapeamento” que ele irá executar o script.

Repositórios e Gerenciadores de Pacote Linux 

Instalar software no Linux envolve ​gerenciadores de pacotes e ​repositórios de software​. Se você é novo


no Linux, isso pode parecer uma mudança cultural dramática. Aqui, não baixamos e executamos arquivos
.exe de sites como fazemos no Windows. Porém, usar um gerenciador de pacotes torna a instalação e
atualização de software mais fácil do que no Windows.

Há uma grande variedade de distribuições Linux e uma grande variedade de gerenciadores de pacotes. O
Linux é construído a partir de software de código aberto, o que significa que cada distribuição Linux compila
seu próprio software com suas versões de biblioteca e opções de compilação desejadas. Os aplicativos
compilados no Linux geralmente não podem ser executados em todas as distribuições - mesmo que eles
pudessem, a instalação seria prejudicada por formatos de pacotes concorrentes. Se você localizar o site de
um aplicativo Linux, provavelmente verá vários links de download para diferentes formatos de pacote e Linux.
distribuições - assumindo que o site da aplicação forneça versões pré-compiladas. A aplicação também pode
dizer para você baixar o código-fonte e compilá-lo.

Repositórios 

Os usuários de Linux normalmente não baixam e instalam aplicativos dos sites dos aplicativos, como os
usuários do Windows fazem. Em vez disso, cada distribuição do Linux hospeda seus próprios repositórios de
software. Um repositório é um lugar onde se guarda, arquiva, coleciona alguma coisa. Portanto, repositórios
de software contêm pacotes de software especialmente compilados para cada distribuição e versão do Linux.
Por exemplo, se você estiver usando o Ubuntu 12.04, os repositórios que você usa contêm pacotes
especialmente compilados para o Ubuntu 12.04. Um usuário do Fedora usa um repositório cheio de pacotes
especialmente compilados para sua versão do Fedora. Sistemas como Ubuntu, Debian, SUSE, Red Hat,
CentOS e muitos outros possuem seus próprios repositórios, ou seja, eles possuem a sua "fonte de pacotes".

Os repositórios são servidores que hospedam os pacotes de software de cada distribuição Linux. Portanto,
todo o conteúdo que você consegue baixar no seu computador através do terminal ou de uma loja de
aplicativos vem de um destes servidores. Também, quando a Canonical, a empresa que desenvolve o
Ubuntu, deseja atualizar algum componente do sistema, basta subir uma nova versão do pacote para o
repositório, e ele vai aparecer como uma atualização para você.

Para facilitar a organização, geralmente a distros dividem os tipos de pacotes em repositórios diferentes. Por
exemplo, no caso do Ubuntu, no repositório "Multiverse" você encontrará apenas softwares de código
fechado, como drivers de vídeo.

Apesar da existência de um servidor como repositório, geralmente é preciso de uma ferramenta que acesse
os dados do servidor, baixe e instale os pacotes no seu sistema. Para isso existem comandos como o ​apt
(Advanced Packaging Tool), que consegue buscar os pacotes no repositório e trazer para o seu sistema,
para que, geralmente outro utilitário o instale, o ​dpkg​.

Mirrors 

A Canonical é uma empresa britânica, e seus servidores principais são hospedados geograficamente muito
longe de nós, brasileiros. É aí que entram outros servidores que nós chamamos de mirrors. Os mirros, ou
espelhos, são servidores que basicamente copiam todo o conteúdo do repositório principal e por estarem
mais próximos de nós, eles tendem a ter uma velocidade maior, permitindo que o download das aplicações
seja mais rápido.

Repositórios offline 

Falamos até agora de repositórios online, que são estes que são hospedados em servidores mundo à fora,
mas um repositório de software não precisa ser online. Um exemplo legal disso é o Debian. Se você já tentou
baixar alguma vez o sistema, deve ter reparado que existem várias mídias de instalação. A primeira mídia
geralmente inclui o próprio sistema com alguns softwares básicos, porém, nas mídias seguintes você tem a
versão offline dos softwares que compõem a distro, sendo um repositório offline de softwares.

O interessante das distros Linux, de forma geral, possuírem repositórios online, é que geralmente são as
próprias empresas e sistemas que te oferecem, não somente os softwares que estão instalados na distro em
si, mas também os disponíveis para instalar neste repositório de software.
Essa prática aumenta fortemente a segurança do sistema. O GIMP, o LibreOffice e o Firefox que você pode
instalar no Ubuntu, para citar alguns exemplos, por mais que sejam feitos por comunidades e empresas
terceiras, por serem software livre, são empacotados pela equipe da Canonical e distribuídos dentro do
Ubuntu de forma semi-independente. Por isso o LibreOffice que você pode baixar em formato .deb no site do
software não é exatamente igual ao que você encontra no repositório do Ubuntu.

Gestores de Pacotes 

Pense em um gerenciador de pacotes como uma loja de aplicativos para dispositivos móveis. Quando você
escolhe instalar o software no gerenciador de pacotes, ele irá automaticamente baixar o pacote apropriado de
seus repositórios de software configurados, instalá-lo e configurá-lo. Quando uma atualização é lançada, o
gerenciador de pacotes observa e faz o download da atualização apropriada. Ao contrário do Windows, onde
cada aplicativo deve ter seu próprio atualizador para receber atualizações automáticas, o gerenciador de
pacotes lida com atualizações para todos os softwares instalados - assumindo que eles foram instalados a
partir dos repositórios de software.

O que é um pacote? 

Ao contrário do Windows, onde os aplicativos vêm em arquivos .exe que podem fazer o que quiserem no
sistema, o Linux usa formatos de pacotes especiais. Há uma variedade de tipos de pacotes - principalmente
o DEB no Debian e no Ubuntu e o RPM no Fedora, Red Hat e outros. Esses pacotes são essencialmente
arquivos contendo uma lista de arquivos. O gerenciador de pacotes abre o arquivo e instala os arquivos no
local especificado pelo pacote. O gerenciador de pacotes permanece ciente de quais arquivos pertencem a
quais pacotes - quando você desinstala um pacote, o gerenciador de pacotes sabe exatamente quais
arquivos no sistema pertencem a ele. O Windows não tem idéia de quais arquivos pertencem a um aplicativo
instalado - ele permite que os instaladores de aplicativos gerenciam a instalação e a desinstalação sozinhos.

Os pacotes também podem conter scripts que são executados quando o pacote é instalado e removido,
embora sejam geralmente usados ​para configuração do sistema e não para mover arquivos para locais
arbitrários.
Instalando o software no Linux 

Para instalar o software no Linux, abra o gerenciador de pacotes, procure o software e informe ao
gerenciador de pacotes para instalá-lo. Distribuições Linux geralmente oferecem uma variedade de interfaces
para o gerenciador de pacotes. Por exemplo, no Ubuntu, o Ubuntu Software Center, o Update Manager, o
aplicativo Synaptic e o comando apt usam o apt e o dpkg para baixar e instalar pacotes DEB. Você pode usar
qualquer utilitário que desejar - eles apenas fornecem interfaces diferentes. Você geralmente encontrará um
gerenciador de pacotes gráfico simples nos menus da sua distribuição Linux.

Atualizar atrasos 

Uma coisa que os novos usuários de Linux notam frequentemente com gerenciadores de pacotes e
repositórios é um atraso para que novas versões de software cheguem aos seus sistemas. Por exemplo,
quando uma nova versão do Mozilla Firefox for lançada, os usuários do Windows e Mac a adquirirão da
Mozilla. No Linux, sua distribuição Linux deve empacotar a nova versão e lançá-la como uma atualização. Se
você abrir a janela de preferências do Firefox no Linux, observará que o Firefox não tem capacidade de se
atualizar automaticamente (supondo que você esteja usando a versão do Firefox dos repositórios da sua
distribuição Linux).

Você também pode baixar e instalar o aplicativo - por exemplo, baixando o Firefox diretamente do Mozilla -
mas isso pode exigir a compilação e instalação do software a partir do código-fonte e remove os benefícios
dos gerenciadores de pacotes, como atualizações de segurança automáticas e centralizadas.

Embora as novas versões do Firefox sejam uma prioridade, porque contêm atualizações de segurança,
outros aplicativos podem não ser entregues com a mesma rapidez. Por exemplo, uma nova versão principal
da suíte de escritório do LibreOffice pode não ser lançada como uma atualização para a versão atual de sua
distribuição Linux. Para evitar instabilidade em potencial e dar tempo para testes, esta versão pode não estar
disponível até a próxima versão principal de sua distribuição Linux.

Para corrigir este problema, algumas distribuições Linux, como o Arch Linux, oferecem ciclos de lançamento,
onde novas versões de software são inseridas nos principais repositórios de software. Isso pode causar
problemas - enquanto você pode querer novas versões de aplicativos de desktop, você provavelmente não
se importa com novas versões de utilitários de sistema de baixo nível, o que poderia potencialmente
introduzir instabilidade.

O Ubuntu oferece o repositório de backports para trazer versões mais recentes de pacotes significativos para
distribuições mais antigas, embora nem todas as novas versões entrem no repositório de backports.

Outros Repositórios 

Enquanto as distribuições do Linux são fornecidas com seus próprios repositórios pré-configurados, você
também pode adicionar outros repositórios ao seu sistema. Depois disso, você pode instalar pacotes de
software deste repositório e receber atualizações dele usando o gerenciador de pacotes. O repositório que
você adiciona deve ser projetado para sua distribuição Linux e gerenciador de pacotes.

Por exemplo, o Ubuntu oferece uma ampla variedade de arquivos de pacotes pessoais (PPAs) , que contêm
software compilado por indivíduos e equipes. O Ubuntu não garante a estabilidade ou a segurança dos
pacotes nesses repositórios, mas você pode adicionar PPAs de indivíduos confiáveis ​para fazer download de
pacotes que ainda não estão no repositório do Ubuntu - ou baixar versões mais recentes de pacotes
existentes. Para descobrir novos endereços de repositórios PPA, basta dar uma olhada no site
http://www.ubuntuupdates.org/ppas.

Alguns aplicativos de terceiros também usam seus próprios repositórios de software. Por exemplo, quando
você instala o Google Chrome no Ubuntu, ele adiciona seu próprio repositório apt ao seu sistema. Isso
garante que você receba atualizações para o Google Chrome por meio do Update Manager do Ubuntu e das
ferramentas padrão de instalação de software.

Instalando programas com o apt-get 

O apt-get é uma ferramenta extremamente poderosa e prática de usar depois que você aprende os conceitos
básicos. Ele pode ser encontrado não apenas no Ubuntu Kurumin, mas em outras todas as distribuições
baseadas no Debian.

Em primeiro lugar, o apt-get utiliza um conceito de fontes de atualização. Ele pode obter pacotes de
praticamente qualquer lugar, incluindo CD-ROMs do Debian, unidades de rede, etc. Mas, o meio mais usado
é justamente baixar os pacotes via internet, o que permite obter sempre as versões mais recentes dos
programas.

Para usar o apt-get, o primeiro passo é rodar o comando “apt-get update”, que faz com que o apt-get
verifique todos os repositórios disponíveis e baixe a lista com os pacotes disponíveis em cada um. Isso
permite que ele crie uma espécie de banco de dados, com os pacotes disponíveis, onde cada um pode ser
encontrado e qual endereço contém a versão mais recente. Este comando deve ser executado
periodicamente. O ideal é que você o use uma vez por semana, ou sempre que for fazer alguma instalação
importante:

# apt update 

Terminado, você pode começar a instalar os programas, usando o comando “apt-get install”, seguido do
pacote desejado. Para instalar o GIMP, (o processador de textos), por exemplo, use o comando:

# apt install gimp 

Veja que o apt-get cuida de toda a parte chata. Inclusive, ele instala outros os pacotes necessários para a
instalação do programa junto com o pacote principal, depois de pedir uma confirmação. Terminada a
instalação, o GIMP já está pronto para usar. Você vai encontrar o ícone dentro do menu “Escritório e
utilitários” no iniciar. Alguns programas podem não criar corretamente os ícones no iniciar (é possível criar o
ícone manualmente, usando o kmenuedit), mas você sempre pode chamá-los via terminal:

$ gimp 

Além de instalar, é possível usar o apt-get para atualizar qualquer pacote do sistema. Para isso, repita o
comando de instalação, como em:

# apt install gimp 


O comando faz com que ele verifique se existe uma versão nova do programa e, em caso afirmativo, já a
baixa e instalada automaticamente. Caso contrário, ele simplesmente avisa que a versão mais recente já está
instalada e não faz nada.

Caso os arquivos referentes ao programa tenham se corrompido de alguma maneira (desligamentos


incorretos, problemas de BIOS, etc. ;), você pode forçar sua reinstalação, usando o parâmetro “–reinstall”.
Normalmente o apt-get avisa que o programa já está em sua versão mais recente e não faz nada.
Adicionando o “–reinstall” ele prossegue a instalação, mesmo que o pacote já seja a versão mais recente,
substituindo todos os arquivos referentes a ele e resolvendo o problema.

# apt-get install –reinstall abiword 

DICA 

Quando você não se lembrar do nome completo do programa, digite apenas as primeiras letras e
pressione a tecla TAB duas vezes, assim você verá uma lista com as alternativas possíveis.

Em casos onde o programa realmente “desapareça” depois de instalado, sem rastros aparentes, você pode
procurá-lo usando o comando “whereis” (onde está), como em:

$ whereis realplay 
realplayer: /usr/bin/realplay 

Lembre-se de que em muitos casos o nome do executável do programa pode ser diferente do nome do
programa. Por exemplo, o executável do Realplayer é “realplay” e o do VMware Player é “vmplayer”.

Em muitos casos, o programa pode ser instalado em uma pasta fora do PATH (as pastas /bin, /usr/bin,
/usr/local,bin, etc.), e por causa disso o sistema não encontre o comando. Nestes casos, chame-o indicando
o caminho completo, ou crie um link para ele (usando o comando “ln -s”) dentro da pasta “/usr/bin”, ou
“/usr/local/bin”, onde o sistema consiga localizá-lo diretamente, como em:

# ln -s /usr/lib/realplayer10/realplay /usr/bin/realplay 
Um detalhe interessante é que, mesmo ao atualizar um programa, as suas configurações são mantidas. Ao
atualizar o Firefox ou o Konqueror, por exemplo, você não perde seus bookmarks. Isso acontece porque as
configurações e arquivos referentes aos programas são armazenados em pastas ocultas dentro do seu
diretório de usuário. Os bookmarks, cache, cookies e outros arquivos do Firefox, por exemplo, vão para a
pasta “.mozilla/firefox”, dentro do seu home. O apt-get nunca altera estes arquivos, de forma que sua
preferências sempre são preservadas durante os upgrades.

Um segundo tipo são os arquivos de configuração do sistema, que também fazem parte dos pacotes.
Quando um pacote traz uma nova versão de um determinado arquivo de configuração, mas o apt-get
percebe que o arquivo anterior foi alterado por você, ele pergunta se você quer manter o arquivo atual ou se
você quer substituí-lo pela nova versão. O conselho geral nestes casos é responder não à substituição (que é
o default). Isso mantém o arquivo atual, que afinal está funcionando. Autorize a substituição apenas quando
você souber do que se trata.

É possível também remover pacotes instalados, neste caso usando o parâmetro “remove”, como em:

# apt remove gimp 

Configurando Repositórios 

O apt-get procura por pacotes em todos os endereços de repositórios listados no arquivo


“/etc/apt/sources.list“. Este é um simples arquivo de texto, onde os endereços são colocados um por linha. As
linhas iniciadas com “#” são comentários, observações gerais que são ignoradas pelo programa. No Ubuntu
ele já vem configurado com os endereços dos repositórios do Debian, mas você pode editar o arquivo
manualmente caso queira incluir algum endereço adicional, ou trocar o endereço de algum repositório que
está fora do ar.

Outra configuração comum é com relação ao mirror do Debian que será usado. Existem vários mirrors
disponíveis, diferenciados pelo código de país. A linha “deb http://ftp.us.debian.org/debian testing main
contrib non-free”, por exemplo, especifica que deve ser usado o mirror dos Estados Unidos (us.debian.org).
Para usar o do Brasil, você substitui a sigla por “br”, para usar o da Alemanha por “de”, para usar o da
Inglaterra por “uk” e assim por diante.

Não existe uma regra fixa para qual mirror será mais rápido. Pela lógica, o do Brasil seria sempre mais
rápido, mas isso depende muito do horário, de qual operadora você usa, e assim por diante. Em muitos
casos, o dos EUA ou da Alemanha podem ser mais rápidos. O melhor é testar os três em diferentes horários
e ver qual apresenta melhores resultados. Não se esqueça de rodar o “apt-get update” depois de cada
alteração.

Usando o dpkg 

O dpkg complementa o apt-get, permitindo instalar pacotes .deb baixados manualmente. Digamos que você
tenha baixado, por exemplo, o arquivo “skype_1.2.0.18-1_i386.deb”, o pacote com o Skype, disponível no
http://skype.com​. Para instalá-lo, você usaria o comando:

# dpkg -i skype_1.2.0.18-1_i386.deb 

Lembre-se de usar a tecla <TAB> para completar o nome do arquivo depois de digitar as primeiras letras.

Sempre, depois de instalar qualquer pacote usando o dpkg, rode o comando “apt-get -f install” para que o
apt-get possa verificar o que foi feito e corrigir qualquer problema que tenha aparecido durante a instalação.
Em casos de pacotes quebrados ou conflitos, o apt-get sempre vai sugerir alguma solução, mesmo que ela
seja simplesmente remover o novo pacote.

ATENÇÃO 
O ideal é que você instale todos os programas através do apt-get. Apele para a instalação manual de
pacotes apenas como último recurso, para o caso de programas específicos, que não estejam disponíveis
no apt-get.
Sistema de Arquivos 

Os arquivos são agrupamentos lógicos de informação armazenados em uma unidade de disco (ou SSD,
Pen-drive, Blu-ray etc). Um arquivo possui uma identificação dada pelo usuário, ou seja um nome formado
por uma sequência de caracteres. Em alguns sistemas operacionais (SOs) como o Windows, a identificação
dos arquivos é composta por duas partes separadas por um ponto (Apostila.pdf). A parte após o ponto é
chamada de extensão do arquivo e serve para identificar o tipo de conteúdo.

O sistema operacional tem a função de criar um meio onde os arquivos podem ser gravados, alterados,
consultados e excluídos. Entretanto, os SOs possuem várias formas de controlar a alocação de espaço em
disco para novos arquivos e a liberação de espaço quando da exclusão de arquivos.

A menor unidade de alocação utilizada para gravação de arquivos é conhecida como um ​bloco de dados​.
Assim, gravar arquivos é uma operação que implica no conhecimento do endereço de blocos livres no disco e
também na gravação e marcação destes blocos gravados em alguma estrutura de dados que permita ser
consultada, para que não se grave informações em blocos já utilizados por outros arquivos. Este controle de
blocos livres no disco é o determinante dos ​sistemas de arquivos (​filesystem​), e cada um possui a sua
forma de gestão de blocos. É por isso que há diversos tipos de sistemas de arquivos.

Pode-se afirmar então que ​sistema de arquivos é uma estrutura de dados organizada que possui a
finalidade de armazenamento e recuperação de arquivos. ​Às vezes, o sistema operacional e o sistema de
arquivos estão tão entrelaçados que é difícil separar as funções do sistema de arquivos. O sistema de
arquivos do sistema operacional deve permitir aos usuários uma série de facilidades de acesso e trabalho
com seus arquivos. Dentre as facilidades, é possível citar:

● poder criar, alterar, consultar ou excluir arquivos;


● definir as permissões de acesso aos arquivos;
● dar nome (nomear) aos seus arquivos;
● organizar seus arquivos em diretórios e subdiretórios;
● fazer backups de arquivos;
● recuperar arquivos em caso de deleção indevida ou em caso de danos.

Tipos de sistemas de arquivos  


Existem muitos tipos de sistemas de arquivos. Cada um tem estrutura e lógica diferentes, propriedades de
velocidade, flexibilidade, segurança, tamanho etc. Além disso, ​os sistemas de arquivos são variados para os
diversos tipos de sistemas operacionais, seja em uma arquitetura aberta ou fechada. ​Também, os sis​temas
operacionais podem incluir suporte para mais de um sistema de arquivos. ​Por exemplo, nos sistemas
Windows, o ​filesystem predominante é o NTFS ​(mas também existe suporte para outros como o FAT exFAT ​.
O Linux suporta vários sistemas de arquivos, mas as opções comuns para o disco do sistema em um
dispositivo de bloco incluem a família ext * ( ext2 , ext3 e ext4 ), XFS , JFS , ReiserFS e BtrFS. O Ext4 é o
sistema de arquivos padrão na maioria das distribuições Linux. Apesar de não é o sistema de arquivos mais
avançado, o Ext4 é sólido e estável. No futuro, as distribuições Linux irão gradualmente mudar para o BtrFS
que ainda está em desenvolvimento. Veja na tabela a seguir um resumo das caraterísticas dos sistemas de
arquivos para Linux citados.

Todo sistema de arquivos moderno suporta o ​journaling consiste em um registro (​log ou ​journal​) de
transações cuja finalidade é recuperar o sistema em caso de desligamento não programado. Digamos que
seu sistema esteja no meio da escrita de um arquivo no disco e, de repente, ele perde energia. Sem um
log, seu computador não teria idéia se o arquivo foi completamente gravado no disco. O arquivo
permaneceria lá no disco, corrompido. J​á com o journaling o​ Linux verificaria no log do sistema de
arquivos quando ele reinicializasse e retomaria os trabalhos parcialmente concluídos. Isso evita perda de
dados e corrupção de arquivos. Porém, o journaling ​reduz um pouco o desempenho de gravação em
disco, mas vale a pena em um desktop ou laptop. Entretanto os sistemas de arquivos que não oferecem
journaling estão disponíveis para uso em servidores de alto desempenho e outros sistemas em que o
administrador deseja extrair desempenho extra. Eles também são ideais para pen drives removíveis, nos
quais você não deseja a sobrecarga mais alta.

Tabela 3 - Tipos de sistemas de arquivos para Linux

O Extended file system (Sistema de arquivos estendido) e foi o primeiro sistema de arquivos
Ext  criado em 1992 especificamente para o Linux. Muitas distribuições do Linux não suportam
mais o Ext.
Second extended file system é uma atualização do Ext. É um sistema de arquivos para

Ext2 dispositivos de blocos (disco rígido, disquete, pen drive). O tamanho máximo de um volume
Ext2 é de 8 TiB. Os arquivos também tiveram seu tamanho máximo alterado para 2 TiB. Este
sistema, por não ter suporte a journaling, foi substituído pelo EXT3.

O Third extended file system é basicamente o Ext2 com journaling. O Ext3 foi projetado para
Ext3 ser compatível com o Ext2, permitindo que as partições sejam convertidas entre o Ext2 e o
Ext3 sem a necessidade de qualquer formatação.

O ext4 é um sistema de arquivos do Linux desenvolvido para ser o sucessor do ext3 a partir
de 2006. Ee inclui recursos mais novos que reduzem a fragmentação de arquivos, permitem
Ext4  volumes (1 EiB) e arquivos (16 TiB) maiores e usam alocação atrasada para melhorar a vida
útil da memória flash. Esta é a versão mais moderna do sistema de arquivos Ext e é o padrão
na maioria das distribuições Linux.

Pronunciado como “Butter” ou “Better” FS, foi originalmente criado pela Oracle. Ele significa
“Sistema de arquivos em árvore B” e permite agrupamento de unidades,, compactação

BtrFS  transparente e desfragmentação online. Ele compartilha várias das mesmas idéias
encontradas no ReiserFS.. O BtrFS é projetado para ser uma quebra clara da série Ext de
sistemas de arquivos. Ted Ts'o, o mantenedor do sistema de arquivos Ext4, considera o Ext4
uma solução de curto prazo e acredita que o BtrFS é o caminho a seguir .

O ReiserFS, lançado em 2001, foi um grande avanço para os sistemas de arquivos Linux e
incluiu muitos novos recursos que o Ext nunca seria capaz de implementar. Possui
desempenho melhor que os EXT, principalmente quanto ao uso de uma grande quantidade de

ReiserFS arquivos pequenos. Também possui suporte ao journaling. O ReiserFS foi substituído pelo
Reiser4 , que melhorou em muitos dos recursos que estavam incompletos ou faltando no
lançamento inicial, em 2004. Mas o desenvolvimento do Reiser4 parou depois que o principal
desenvolvedor, Hans Reiser, foi mandado para a prisão em 2008. Uma desvantagem deste
sistema é que consome muito processamento da CPU.

Journaled File System é um sistema de arquivos de 64 bits com journaling desenvolvido pela

JFS  IBM em 1990 e, posteriormente, portado para o Linux. Possui baixo uso de CPU e bom
desempenho para arquivos grandes e pequenos. Partições JFS podem ser dinamicamente
redimensionadas, mas não reduzidas. Ele foi extremamente bem planejado e tem suporte na
maioria das principais distribuições, no entanto, seu teste de produção em servidores Linux
não é tão extenso quanto o Ext, já que foi projetado para o AIX. O Ext4 é mais comumente
usado e é mais amplamente testado.

O XFS foi desenvolvido pela Silicon Graphics em 1994 para o sistema operacional SGI IRX e
foi portado para o Linux em 2001. É semelhante ao Ext4 em alguns aspectos. O XFS tem um
bom desempenho ao lidar com arquivos grandes, mas tem um desempenho pior do que
XFS outros sistemas de arquivos ao lidar com muitos arquivos pequenos. Pode ser útil para
determinados tipos de servidores que precisam principalmente lidar com arquivos grandes.
Seu uso é recomendado em sistemas que usam banco de dados, por sua velocidade de
gravação. Também possui suporte ao​ journaling​.

Enquanto a Microsoft desenvolve o Windows e a Apple controla o macOS, o Linux é um projeto de código
aberto desenvolvido pela comunidade. Qualquer pessoa (ou qualquer empresa) com habilidade e tempo
pode criar um novo sistema de arquivos Linux. Essa é uma das razões pelas quais existem tantas opções.

O uso do Ext4 se aplica apenas a partições do sistema Linux e outras partições que somente o Linux
acessará. Se você estiver formatando uma unidade externa que deseja compartilhar com outros sistemas
operacionais, não deverá usar o Ext4, pois o Windows, macOS e outros sistemas não poderão ler o
filesystem Ext4. O ideal é usar exFAT ou FAT32 ao formatar uma unidade externa no Linux. Esses
sistemas de arquivos também não incluem journaling​, por isso são ideais para unidades USB externas. O
FAT32 é mais antigo. O exFAT é a opção ideal, pois suporta arquivos com mais de 4 GB de tamanho e
partições com mais de 8 TB.

Particionamento 

Para que os sistemas de arquivo sejam criados e seja possível salvar arquivos é necessário que existam
partições criadas no disco rígido ou outra unidade de armazenamento. Senão, todos os dispositivos de
armazenamento são tratados apenas como uma massa de espaço livre não alocado quando não contêm
partições. A partição pode conter todo o espaço de armazenamento na unidade ou apenas parte dela. Em
muitos dispositivos de armazenamento, uma única partição geralmente ocupa a unidade inteira.

As partições funcionam como um contêiner para o sistema de arquivos, e ​indicam onde começa e termina 


o sistema de arquivos​. A criação de partições se dá, preferencialmente, no momento em que é instalado o
sistema operacional. Depois de criar uma partição, esta é formatada com um sistema de arquivos.

Porém, ao particionar, você precisará estar ciente da diferença entre partições primárias, estendidas e
lógicas. Um disco com uma tabela de partições tradicional só pode ter até quatro partições, estão são
chamadas de ​partições primárias​. Porém se você precisar de mais de quatro partições as partições
estendidas e lógicas são uma maneira de contornar essa limitação. As ​partições estendidas são partições
primárias divididas em outras partições, chamadas de ​partições lógicas​. As partições extendidas não podem
conter sistemas de arquivo. São as partições lógicas, assim como as primárias, que recebem sistemas de
arquivos. Também só pode existir uma partição estendida, que irá ocupar o lugar de uma partição primária.
Dentro de um disco é possível ter três partições primárias, uma estendida e doze partições lógicas, sendo um
total de 15 partições possíveis em um disco.

Porque várias partições? 

Não é desejável possuir várias partições em uma unidade flash USB. Se você tiver várias partições, várias
unidades diferentes aparecerão quando você conectar seu pendrive ao computador. No entanto, várias
partições podem ser desejáveis em outros contextos. Cada partição pode ser isolada das outras e conter um
sistema de arquivos diferente. Por exemplo, muitos computadores Windows vêm com uma partição de
recuperação separada, na qual são armazenados os arquivos necessários para restaurar o sistema
operacional Windows para as configurações padrão de fábrica. Quando você restaura o Windows, os
arquivos dessa partição são copiados para a partição principal. A partição de recuperação está normalmente
oculta, por isso não é possível acessá-la a partir do Windows e alterá-la. Se os arquivos de recuperação
estivessem armazenados na partição principal do sistema, seria mais fácil serem excluídos, infectados ou
corrompidos. Também é uma prática comum criar uma partição separada da partição do sistema operacional
para arquivos de dados pessoais. Dessa forma os dados são encapsulados, e em caso de corrupção ou
reinstalação do SO, a partição de dados ficará intacta. Também, se você quiser instalar mais de um sistema
operacional no computador, poderá instalá-lo no mesmo disco rígido em uma ou mais partições separadas
para que os sistemas não interfiram entre si.
A partição swap, também conhecida como área de troca é utilizada como memória virtual para o Linux.
Ela é somada à memória física auxiliando a troca entre a memória física e o disco. Recomenda-se que o
tamanho da partição swap deve ser o dobro da quantidade de memória física existente no equipamento.

 
Formatação 
 
A “formatação de computadores” é uma atividade frequente entre técnicos em informática. Porém, é comum
vermos a utilização do termo de maneira errônea. Por exemplo, ​instalação de sistema operacional e
formatação são processos que podem depender um do outro, mas não ​são a mesma coisa​. Vamos
entender essas diferenças;

Após criar uma partição, ela ainda não estará pronta para ser usada. Antes devemos estabelecer um
sistema de arquivo​s para aquela partição, ou seja, é preciso definir como os dados dentro dela serão
organizados. Isto é feito através da formatação, que nada mais é do que preparar a partição criada para para
que o sistema operacional tenha condições de ler e gravar as informações no disco. É no momento da
formatação que escolhemos qual o sistema de arquivos iremos utilizar naquela partição. Portanto, a
formatação não é apenas apagar tudo o que há na unidade de armazenamento, apesar de esta ser uma
consequência. Mas atenção, aqui estamos falando de um tipo de formação, chamada formatação lógica​.
Veremos a seguir os dois tipos de formatação existente.

As formatações estão divididas em dois tipos física e lógica. Primeiro, a ​formatação física, que é realizada
na criação do disco rígido, ou seja, na fábrica. Esta formação cria setores, cilindros, trilhas e ainda separa as
trilhas defeituosas (bad block). A formatação física é feita apenas uma vez, e não pode ser desfeita ou refeita
através de ​software​. Já a formatação lógica, conforme falamos anteriormente, é necessária para o
reconhecimento do sistema operacional, não altera a estrutura criada pela formatação física e poderá ser
realizada diversas vezes.

A T E N Ç Ã O 
❖ Sistema de arquivos é a forma como os dados são armazenados, organizados e acessados no
disco pelo sistema operacional.
❖ Uma ​partição indica onde começa e termina o sistema de arquivos em uma unidade de
armazenamento e deverá ser formatada logicamente para receber dados.
❖ Formatar logicamente​ uma partição em é estabelecer um ​sistema de arquivos​.

Já a ​instalação de sistema é o processo de escrita do sistema operacional em uma partição já formatada,


ou seja, é onde o novo (ou talvez o mesmo) sistema operacional será armazenado no seu disco e irá se
configurar da melhor maneira possível para funcionar de acordo com seu computador. O processo de
instalação de um sistema, exceto em algumas versões do Windows que podem ser instaladas diretamente do
próprio Windows (nesse caso, são chamadas de atualizações), sempre irá requerer uma formatação. Nos
sistemas atuais, A formatação já é feita pelo próprio instalador do sistema, ou seja, ao inserir um dvd do
Windows ou Linux para ser instalado no seu computador, ele mesmo já te dará as opções de formatação
mais adequadas e após isso iniciará automaticamente a instalação.

Logical Volume Manager - LVM 


 
Voltando ao particionamento, temos ainda a opção de criar um particionamento baseado no LVM, um sistema
alternativo muito usado em servidores Linux. Ele oferece algumas vantagens, mas também algumas
complicações adicionais. Imagine que no LVM o sistema não vê HDs e partições, mas sim um ou mais
volumes lógicos. Cada volume se comporta como se fosse uma partição, que é formatada e montada da
forma usual (um volume pode ser usado inclusive como partição swap). Estes volumes são agrupados em um
grupo de volumes lógicos (logical volume group), que se comporta de forma similar a um HD.

A vantagem é que o grupo de volumes lógicos pode combinar o espaço de vários HDs e ser modificado
conforme necessário, incorporando mais HDs. Os volumes lógicos também podem ser redimensionados
livremente conforme for necessário. Se você precisar de mais espaço dentro do volume referente à pasta
home, por exemplo, você poderia reduzir o tamanho de um dos outros volumes do sistema (que estivesse
com espaço vago) e aumentar o tamanho do volume referente ao home, tudo isso com o servidor operante.

Outra possibilidade é adicionar novos HDs caso precise de mais espaço no futuro. Ao instalar um novo HD,
você começaria criando um volume físico, englobando todo o espaço do HD. Uma vez que o volume físico é
criado, você pode expandir o grupo de volumes lógicos, de forma que ele incorpore o espaço referente ao
novo HD. A partir daí, você pode expandir os volumes lógicos, usando o espaço livre. Essa possibilidade é
interessante no caso dos servidores, onde (ao utilizar uma controladora SCSI ou SAS com suporte a
hot-swap) é possível até mesmo adicionar, remover ou substituir HDs, fazendo as alterações necessárias nos
volumes lógicos sem necessidade de reiniciar.

O grupo de volumes lógicos criado pelo instalador é visto pelo sistema como "/dev/system" e os volumes
lógicos dentro dele são vistos como "/dev/system/root", "/dev/system/home", "/dev/system/swap" e assim por
diante, nomes que você pode alterar ao criar os volumes manualmente. O instalador cria também uma
pequena partição no início do HD, usada para montar o diretório "/boot". Ela é necessária, pois, por enquanto,
ainda não é possível inicializar o sistema diretamente a partir de um volume LVM: é necessário primeiro
inicializar o kernel e iniciar o carregamento dos utilitários básicos a partir da partição convencional, montada
no diretório "/boot", para só então montar os volumes LVM e continuar o carregamento do sistema.

Como pode ver, o LVM é bem mais complicado do que o sistema tradicional, baseado em partições. Ele
surgiu da necessidade de oferecer um sistema mais flexível para uso em servidores e não necessariamente
para ser usado em desktops. A menos que você se sinta à vontade com ele, é recomendável que
simplesmente use o particionamento tradicional.

Administração de Impressoras 

Agora, os desktops do Ubuntu podem reconhecer muitas marcas de impressoras quando conectadas e estas
instalam seus drivers automaticamente. Siga os passos abaixo para obter uma impressora local conectada e
instalada no Ubuntu

1. Certifique-se de que a impressora esteja ligada quando você conectar o cabo USB ao computador.
2. Quando a impressora estiver conectada, você poderá ver a atividade na tela enquanto o sistema
procura por drivers, e você pode ser solicitado a autenticar digitando sua senha para instalá-los.
3. Uma mensagem aparecerá quando o sistema terminar de instalar a impressora. Selecione  Imprimir 
página de teste para imprimir uma página de teste ou ​Opções para fazer alterações adicionais na
configuração da impressora.

Se os passos acima não funcionarem e o Ubuntu não conseguir instalar a impressora, siga o passo abaixo.

1. Abra as Atividades no canto superior esquerdo da tela, e digite Impressoras.


2. Clique em Impressoras
3. Clique no botão Desbloquear no canto superior direito e insira sua senha para autenticar. Somente
administradores na máquina Ubuntu podem adicionar impressoras.
4. Clique no botão +
5. Na janela pop-up, selecione sua nova impressora. Clique em Adicionar . Fazendo isso, você
instalará sua impressora no Ubuntu.

Se você ainda não conseguir instalar a impressora, talvez seja necessário instalar os drivers da impressora
no site do fabricante.

Análise de logs 

O Linux é sistema operacional complexo e uma das coisas que o Linux faz bem é monitorar a si próprio. Às
vezes você está tentando obter um novo recurso para trabalhar e ele falha sem explicar minimamente por
que falhou. Outras vezes, você quer monitorar seu sistema para ver se há tentativas de acesso ilegal ao seu
computador. Em qualquer uma dessas situações, você pode utilizar os arquivos de log para ajudar a
monitorar o problema.

A principal utilidade para registro em log de erros e mensagens de depuração em Linux é o daemon rsyslogd.
O registro em log será feito de acordo com informações no arquivo /etc/rsyslog.conf. As mensagens são
normalmente direcionadas para arquivos de log que geralmente estão no diretório /var/log. Eis alguns
arquivos de log comuns:

❖ boot.log — Contém mensagens de boot sobre serviços à medida que eles iniciam.
❖ messages — Contém muitas mensagens informativas gerais sobre o sistema.
❖ secure — Contém mensagens relacionadas à segurança, como a atividade de login ou qualquer
outro ato que autentica usuários.
❖ XFree86.0.log ou Xorg.0.log — Dependendo de qual servidor X você está usando, contém
mensagens sobre a placa de vídeo, o mouse e a configuração do monitor.

Segurança 
A segurança é um assunto muito amplo e não existe um guia simple para ensinar manter um sistema linux
seguro. Porém, iremos apresentar nesta sessão uma lista dos conceitos de segurança mais básicos que
podem ser facilmente implementados.

1. Não instale antivírus

Existem programas antivírus direcionados a usuários de desktop Linux. Porém você não precisa de um
programa antivírus no Linux. A principal razão pela qual você não precisa de um antivírus no Linux é que
existe muito pouco malware de Linux no mundo. Já malware para Windows é extremamente comum.

2. Utilize o máximo possível o repositório oficial

Quando você deseja instalar um novo programa em sua área de trabalho do Windows, normalmente você se
dirige ao Google e procura o programa. Já quando você deseja instalar a maioria dos programas no Linux,
isso é feito pelo gerenciador de pacotes de onde são baixados os repositórios de software da sua distribuição
Linux . Esses repositórios contêm software confiável que foi verificado pela sua distribuição Linux.

3. Atualizações de segurança

Atualizações de segurança são liberadas pelos desenvolvedores do Ubuntu quando descobrem e corrigem
vulnerabilidades. Se você não instalar as atualizações, manterá a vulnerabilidade. O Ubuntu permite que
você tenha atualizações de segurança instaladas automaticamente - uma vez configurado, você não precisa
executar as atualizações de segurança manualmente novamente. Procure o Update Manager na sua área de
trabalho e clique em "configurações" para configurar como você deseja que o Ubuntu gerencie as
atualizações. Ou você pode configurar atualizações automáticas via terminal .

4. Aprenda a usar o firewall do Linux

Há muitas informações existentes sobre firewalls - juntamente com um longo debate sobre a necessidade de
um firewall no Ubuntu. Portanto estude sobre o uso de Firewalls para entender como ele funciona e como é
configurado.

5. Aumente a segurança do browser


O navegador é o caminho para muitas ameaças cibernéticas em vigor, e isso inclui o Mozilla Firefox, Google
Chrome, Opera ou qualquer outro navegador. Muitas extensões gratuitas estão disponíveis para melhorar a
segurança do seu navegador, e sua privacidade também como por exemplo: HTTPS Everywhere-; Adblock
Plus; NoScript; Ghostery e Disconnect.

Referências 

DANESH, A. ​Dominando o Linux: a bíblia​, Editora Makron Books do Brasil, Sao Paulo, 2000.
MOTA FILHO, J E. ​Descobrindo o Linux: entenda o sistema operacional GNU/Linux​, 3ª Edição revista e
ampliada, Editora Novatec, São Paulo, 2012
MORIMOTO, C E. Linux – Guia Prático, Editora GDH Press e Sul Editores, 2009.
BONAN, A R. ​Configurando e usando o sistema operacional Linux​, 3ª edição, Editora Futura, São Paulo,
2004.
TOBLER, M J. ​Desvendando Linux​, Editora Campus, Rio de Janeiro, 2001.
PRITCHARD, S; PESSANHA, B G; LANGFELDT, N; STANGER, J; DEAN, J, Certificação Linux 
LPI: Rápido e prático – Nível 1​: Exames 101 e 102, 2ª Edição Revisada, Editora Alta Books, Rio de Janeiro,
2007.
PRITCHARD, S.; PESSANHA, B.G.; LANGFELDT, N.; STANGER, J.; DEAN, J., ​Certificação 
Linux LPI: 
Rápido e prático – Nível 2​: Exames 201 e 202, 2ª Edição Revisada, Editora Alta Books, Rio de Janeiro,
2007.
RIBEIRO, U. ​Certificação Linux​. Ed. Axcel Books, Rio de Janeiro, 2004.
SOBELL, M G. ​Guia Prático Linux De Comandos, Editores, e Programaçao de Shell. Ed., São Paulo,
2009.

Вам также может понравиться