Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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:
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.
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.
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
● 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.
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
Diretório Descrição
/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
/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
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.
$ 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
(/)
$ 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.
Já o caminho relativo, indica para onde você deseja ir a partir de onde você está.
# pwd
/home/tux
# cd ../../var/cache/bind
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:
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
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]
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
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.
Para visualizar estes caracteres nos nomes dos arquivos, digite ls -F
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.
$ 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.
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.
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
$ mkdir pasta1
$ 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:
Conta de root
No Ubuntu, o root vem desabilitado por padrão. Para ativá-lo, você deve definir uma senha para ele.
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)
$ exit
Se você habilitou a conta de root e agora quer desabilitar, use o seguinte comando
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_usuariotimestamp_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).
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
Opções
# 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.
Outros comandos
$ id usuárioutilizado para verificar informações do usuário.
$ groups <usuário>exibe grupos de um determinado usuário.
$ usersexibe 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.
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 “:”.
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)
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.
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.
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 “:”.
Faz referência à senha que por ventura o grupo venha possuir. As senhas dos
X
grupos estão no arquivo“gshadow”, localizados em“/etc/gshadow”.
$ groupadd <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:
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.
➤ Vamos analisar!
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:
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:
Permissionamento Especial
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:
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.
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.
O comando chown
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:
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
Além do comando chown para trocar o Dono do Arquivo, temos também o chgrp para trocar o Grupo Dono:
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
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
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
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.
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
# hostname
O comando mii-tool verifica 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
# route -n
●
domain — Especifica o nome do domínio local.
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
●
# cat /etc/resolv.conf
# 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.
# ip address
# ip a
# 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:
Para remover a interface virtual enp0s8:0, use o subcomando del do comando ip:
●
route del — Remove uma rota estática.
●
route add — Adiciona uma rota estática.
# ip route show
●
dns — Lê o arquivo /etc/resolv.conf.
●
files — Lê o arquivo /etc/hosts.
# 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
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.
●
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).
●
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
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.
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:
Indicado com a seta, você tem o nome (ID) da sua placa de rede.
- 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.
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:
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 /dev/. 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.
Opção Descrição
a Ativa partição
d Apaga partição
n Nova particição
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.
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 [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 [opções] <arquivo>
Tabela 7 - Opções do DU
Opções Descrição
-h Mostra em MB e Gb
FSCK - O comando FSCK é utilizado para verificar e corrigir erros no sistema de arquivos
Opções Descrição
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
O comando umount
Este comando faz o contrário do “mount”, ou seja, desmonta o dispositivo montado pelo mount.
# umount /mnt/hdexterno
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.
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
O comando grep (global/regular expression/print) é utilizado para fazer filtro na saída padrão de comandos,
ou buscar determinadas palavras em arquivos.
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:
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/
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
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.
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.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.
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 -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
ZIP
$ zip document.txt
$ unzip documento.zip
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:
Descompactando o arquivo:
root@debian:~# ls /home/tux/
arquivo.txt
BZIP
Compactando um arquivo:
Descompactando o arquivo:
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:
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
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.
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:
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:
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:
Configurando Repositórios
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:
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.
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.
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.
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 arquivos 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.
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.
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.
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.
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 .
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.
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.