Você está na página 1de 43

ISOLADA DE INFORMÁTICA

Assunto sobre a Aula


AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

ISOLADA DE INFORMÁTICA
PRINCIPAIS CONCURSOS DO PAÍS

AULA Nº 10
S.O. GNU Linux

Professor
Leonardo Martins

PDF PDF VÍDEO

Youtube: @prof.leonardomartins

Página 1 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Sistema Operacional Linux


Perfil: facebook.com/prof.leomartins
Grupo do Face: #LeonardoMartins
Instagram: @Prof.LeonardoMartins

O Kernel Linux e o S. O. GNU


O kernel Linux é quem faz a ligação bruta entre
Software e Hardware, funcionando como uma
interligação entre os dois. Nada acontece sem que o
kernel não tenha conhecimento. O kernel é quem faz o
trabalho pesado de fazer aquele monte de circuitos,
placas e componentes dentro do seu gabinete e com a
interação com o usuário (teclado, mouse, sensores) e
vice-versa (exibindo os resultados na tela do PC,
gravando uma mídia de CD, gravando/lendo no HDD, Richard Stallman, fundador do projeto GNU
etc). para um sistema operacional livre.
O usuário vai abrir um programa de sistema e usar a Como nos anos 1980, se utilizava muito o UNIX, Linus
CPU? Vai abrir a calculadora? O Facebook? Consumir Torvalds pegou um UNIX Comercial chamado Minix e o
RAM com um editor de vídeos? Rodar um game? O reenscreveu criando um sistemaoperacional melhor
kernel fará a comunicação do programa com o que o próprio Minix, registrando-o na GPL (General
computador. Public License) Licença Pública Geral. Essa licença
determina que não se deve fechar o código drivado do
ATENÇÃO: Ele é quem carrega as projeto. Logo que Linus Torvalds passou a
instruções, os módulos e a instâncias de disponibilizar o Linux, na sua versão 0.01, já havia
sistema que fazem o programa ser usado suporte ao disco rígido, tela, teclado e portas seriais,
pela CPU, ser alocado na memória RAM, ser o sistema de arquivos adotava o mesmo layout do
enviado para a placa de vídeo para gerar a
Minix (embora não houvesse código do Minix no
imagem na tela do seu PC.
Linux), havia extensos trechos em assembly.
Como o kernel cuida lado a lado do hardware, é ele
quem detém os módulos (drivers) de Wifi, Bluetooth, A expressão “GNU/Linux”
placa de vídeo, etc. O projeto GNU Hurd não havia se
Em meados de 1984 Richard Stallman estava
desenvolvido bem porque eles não queriam módulos
desenvolvendo um sistema operacional completo
proprietários em seu sistema. O Linus Torvalds apenas
(como o Microsoft Windows) com vários programas,
desenvolveu um kernel diferente, gratuito e livre, que
interface, etc. Este sistema se chamava GNU.
suportasse os módulos proprietários, tornando o Linux
(Acrônimo recursivo de ‘GNU Is Not UNIX’, um
uma base interessante para desenvolvedores diversos.
sistema operacional parecido com o UNIX, mas só
Compatível com o projeto GNU, logo tínhamos um
parecido.)
sistema baseado em UNIX aberto, livre, gratuito e
compatível com os principais hardwares da época.
Já estávamos em meados de 1991, e a GNU
Foundation não havia terminado o kernel Hurd, a
ligação entre seu GNU e o hardware dos
computadores. Os motivos são incertos; Eles tinham
dificuldade de lidar com o código que tinha falhas,
tiveram problemas com maneiras de trabalhar, a
própria filosofia da comunidade GNU atrapalhava o
desenvolvimento por querer tudo 100% livre e os
drivers de hardware são proprietários, etc; Quando
Linus Torvalds desenvolveu o linux, baseado no
MINIX, ele não possuía sistema operacional para
funcionar. Ele se comunicava com o hardware mas
não havia controle por parte do usuário. Era um
controle limitado com mínima acessibilidade depois
de compilar o bash.

Foi então que uniram o útil ao agradável, adotaram o


Linus Torvalds, criador e principal kernel Linux como núcleo do GNU e o sistema
mantenedor do núcleo Linux.

Página 2 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

operacional nasceu e foi crescendo. A importância do O Sistema Operacional Linux é gratuito e de


GNU hoje vai muito além do shell. Praticamente tudo código aberto por princípios
que é usado pelos principais sistemas Linux hoje
rodam sob GNU. Do gerenciador de boot GRUB, o
Uma questão de escolha e de princípios. Como citado
shell BASH, GNU Cash, EFI, fdisk, OpenMaps…. até
anteriormente, o Linux de desktop se chamava
partes sensíveis, como a Biblioteca Library que
originalmente GNU/Linux. O cabeça do projeto GNU,
fornece comunicação entre os softwares e o kernel,
Richard Stallman, defende a liberdade de
quando estes não possuem autorização para fazer
compartilhamento de código de programas em
SystemCalls diretamente com o kernel. Na imagem
benefício de todos. Você pega o programa, usa onde
vemos bem como isso funciona na prática, alguns
quiser, explora seu código, edita ele como quiser,
processos conseguem acesso direto, via SystemCall,
república ele para a comunidade e todos se beneficiam
mas por motivos de segurança nem todo processo
das melhorias que você fez. Da mesma maneira o
pode acessar o kernel diretamente e a maioria não
kernel Linux encabeçado pelo Linus Torvalds, cujos
tem condição de se comunicar com ele, se não for via
programadores, muitos deles não ganham dinheiro pra
GNU C Library.
isso, colaboram com seu conhecimento adicionando
As Liberdades de uso do Linux recursos ao kernel permitindo que ele suporte novas
tecnologias e hardwares; no final, estes mesmos
programadores saem no “lucro” de terem um sistema
O Linux em si possui uma licença de código aberto
melhorado com melhor suporte possível e toda a
(Copyleft), mantida pela FreeSoftware Foundation. Isso comunidade se beneficia disso.
significa que ele é de graça e seu código fonte pode ser
explorado por quem quiser, sejam programadores, Basicamente todos ali se ajudam e todos saem
entusiastas, curiosos ou mesmo pessoas que ajudam a ganhando. E o resultado disso tudo, nós, os usuários
comunidade a procurar problemas e falhas. comuns, podemos nos aproveitar de todo esse trabalho
comunitário. Apenas pra esclarecer: o GNU pode ser
Enquanto sistemas como o macOS ou o Windows são cobrado, mas não é uma regra; já o kernel é e sempre
pagos e licenciados – seu uso possui Termos de Uso e será gratuito.
diretrizes rígidas, o Linux e a maioria de seus
programas são livres e gratuitos, tendo o usuário Como qualquer projeto sem fins lucrativos, o sistema
liberdade para fazer o que quiser. Essas liberdades Linux precisa de doações para se manter. Por sorte
foram tratadas no código base do projeto GNU. São temos diversas empresas que doam dinheiro para o
estas: projeto contribuindo para mantê-lo; e essas empresas
se beneficiam das melhorias que o projeto receber.
❖ A liberdade de executar o programa como
desejar, em qual hardware ele desejar, para O dinheiro poderia ser um problema se algumas
qualquer propósito, não importando se será de empresas doassem, mas, temos centenas de empresas
uso civil, militar ou científico. que apoiam o projeto Linux, inclusive a mais recente a
❖ A liberdade de estudar como funciona o entrar pra Linux Foundation foi a própria Microsoft dona
programa e adaptá-lo às suas necessidades. O do Windows. Inclusive a Microsoft utiliza Linux em seus
acesso ao código-fonte é uma condição prévia servidores Azure Cloud; o que ela beneficiar o projeto
para isso. poderá utilizar para si em seus servidores.
Curiosamente esses benefícios são revertidos
❖ A liberdade de melhorar o programa e divulgar
publicamente para todos.
suas melhorias para o público, para que toda a
comunidade se beneficie. O acesso ao código-
O usuário não é obrigado a pagar para usar o
fonte é uma condição prévia para isso.
Linux
❖ A liberdade de redistribuir cópias para que
você possa ajudar seus amigos.
O Linux é gratuito sim, mas caso você assim o desejar,
Um exemplo prático e simples de restrição de uso, é pode fazer doações financeiras para as instituições que
cuidam do projeto Linux e do seu sistema.
com relação ao Windows 8.1 Pro que a Microsoft não
permite que seja utilizado como Servidor. Para isso
A FreeSoftware Foundation por exemplo é a uma
você DEVE adquirir a licença do Windows Server e
utilizar somente o Windows Server para este fim. No organização sem fins lucrativos que necessita de
caso do Linux, qualquer versão e qualquer distribuição doações voluntárias para se manter, tal qual diversos
linux pode ser usada com a finalidade que quiser, seja outros projetos dentro do mundo colaborativo livre
como a Wikipedia ou a fundação Mozilla, dona do
ele em um computador servidor, em um terminal de
Firefox.
acesso remoto, em um computador pessoal, em um
sistema embarcado, portátil, etc, etc.

Página 3 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Popularidade do Linux simplesmente “Sistemas Operacionais”, que são o que


realmente são. Por exemplo, o Windows usa ZLIB e
Porque primeiramente, o projeto é gratuito e livre. Sem várias outras bibliotecas e componentes presentes em
fins lucrativos, não há propaganda dele em massa na Linux e ninguém chama ele de Distribuição.
mídia. Ele até vem por padrão em diversas marcas e
modelos de computadores, mas costumam ser versões ATENÇÃO: Ter muita atenção pra não
pouco amigáveis, fechadas e pesadas que mais confundir as Distribuições com as Interface
denigrem o nome Linux do que o ajudam de fato. E seu gráficas, as distribuições são: Ubuntu,
Fedora, Debian e as Interfaces são
desenvolvimento, pelo menos nos primeiros anos, foi
ambientes gráficos utilizadas nas
focado em servidores e não usuários finais. distribuições como Gnome, KDE e etc.
O Linux adentrar os desktops comuns foi algo
Mesma coisa a distribuição Fedora, a OpenSUSE, o
relativamente recente. O maior problema está no fato
Majeia, ArchLinux, Debian, etc. Todos são classificados
de que até meados de 2007 o Linux não era amigável,
como Linux, mas com variações, sistemas com layouts
os sistemas baseados em Linux disponíveis tinham
diferentes, temas diferentes, programas diferentes além
poucos recursos se comparado ao Windows ou macOS
de formatos de instalação de programas, todos
e muitas configurações feitas nele deveriam ser feitas
diferentes.
via linhas de comando no terminal.
Quem vai querer utilizar um sistema que exige saber O que todos tem em comum é o fato de seguirem as
usar linhas de comandos se existia o Windows logo ali normas XDG - X Desktop Guidelines – quem manda na
muito mais amigável e focado no usuário comum? Por hierarquia de pastas do sistema e o fato de todos
muito tempo isso o deixou restrito ao seu foco original, usarem o kernel Linux. Mas cada um deles, é apenas
os servidores. um Sistema Operacional. Não distribuição.

Componentes do GNU/Linux Uma vantagem – ou desvantagem? – do mundo Linux


é a liberdade de escolher qual sistema mais combina
Podemos classificar o Linux em três componentes com você e poder customiza-la o quanto quiser,
principais, o Kernel, o Shell e os Aplicativos: trocando até a interface de usuário e colocando um
menu iniciar com disposição e botões novos, por
- Kernel: kernel é o núcleo do sistema. É responsável exemplo. Por um lado, isso é uma coisa boa, você
pelas operações de baixo nível, tais como: decide como quer trabalhar com o sistema.
gerenciamento de memória, gerenciamento de
processos, suporte ao sistema de arquivos, periféricos Por outro lado, isso divide a comunidade Linux gerando
e dispositivos. sistemas que não são compatíveis entre si, um
- Shell: o shell é o elo entre o usuário e o sistema. programa do Fedora não abre no Debian gerando
Imagine-o como um intérprete entre pessoas que falam restrições que não deveriam existir. Claro, temos ainda
línguas diferentes. Ele traduz os comandos digitados membros na comunidade que buscam trazer soluções
pelo usuário para a linguagem usada pelo kernel e vice- para compatibilizar programas e funções entre as
versa. Sem o shell a interação entre usuário e kernel variadas distribuições Linux; infelizmente esse suporte
seria bastante complexa. ainda está longe do ideal e pode trazer alguma dor de
- Aplicações: incorporam novas funcionalidades ao cabeça dependendo da distribuição que você escolher
sistema. É por meio delas que é possível a para seu uso pessoal.
implementação de serviços necessários ao sistema.
Podem ser divididos em aplicações do sistema e As que possuem o melhor suporte no momento são as
aplicações do usuário, aplicações do sistema são as baseadas no Debian, como Linux Mint e Ubuntu.
necessárias para fazer o sistema funcionar e aplicações Versão e interface cabe o usuário escolher aquele que
do usuário são as voltadas para a realização de tarefas melhor combina com seu perfil e necessidades.
do usuário.
AS PRINCIPAIS DISTRIBUIÇÕES LINUX
Distribuição é um pacote do kernel do sistema
operacional mais os programas que o acompanham.
Este pacote, incluindo as ferramentas necessárias para
sua instalação. Em outras palavras no mundo Linux,
uma “distribuição” é a adição de várias ferramentas e
softwares ao kernel Linux, compondo o que pode de
fato ser chamado de um “Sistema Operacional
Desktop”. Por algum motivo, a comunidade no geral
optou por chamar de “Distribuições” ao invés de

Página 4 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Conhecendo um pouco melhor sobre cada


distribuição GNU/Linux

Linux Fedora 28, segue sendo um laboratório de


testes da Red Hat e costuma trazer as novidades mais
cedo, nos dando uma noção do que o vindouro sistema
Red Hat Enterprise Linux 8 terá quando chegar ao
Debian Linux é simultaneamente o nome de uma
distribuição não comercial livre (gratuita e de código mercado. Novidades, fácil instalação, melhor vida útil
fonte aberto) de GNU/Linux (amplamente utilizada) da bateria, kernel 4.16, drivers de convidado do
utiliza seu próprio sistema de gerenciamento de VirtualBox, manipulação aprimorada do Thunderbolt, e
pacotes. diversas melhorias do desktop que no momento é o
GNOME 3.28.
ATENÇÃO: Distribuição de fácil acesso e de
interface simples para o usuário doméstico. ATENÇÃO: Distribuição de fácil acesso e de
Link para baixar: https://www.debian.org interface simples para o usuário doméstico.
Link para baixar: https://www.getfedora.org

OpenSUSE Linux é uma distribuição comunitária


apoiada pela Novell, baseada no sistema operacional Mandriva Linux é uma distribuição Linux. Nasceu da
comercial SUSE Linux da empresa. Enquanto a fusão entre o antigo Mandrake Linux e a brasileira
distribuição paga usada no mundo corporativo usa Conectiva. A Empresa Francesa Mandriva dedica-se à
como ambiente gráfico principal o Gnome, o sistema distribuição e suporte do Sistema Operacional
OpenSUSE usa o KDE. Mandriva Linux.

ATENÇÃO: Distribuição de fácil acesso e de ATENÇÃO: Distribuição de fácil acesso e de


interface simples para o usuário doméstico. interface simples para o usuário doméstico.
Link para baixar: https://www.suse.com Link para baixar: https://www.openmandriva.org

Página 5 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Ubuntu 18.04 Linux é um sistema operacional ou


Slackware Linux é uma distribuição Linux mantida sistema operativo de código aberto, construído a partir
ainda em evidência pelo seu criador, Patrick do núcleo Linux, baseado no Debian e utiliza GNOME
Volkerding, Além de seu uso profissional, é como ambiente de desktop de sua mais recente versão
considerado também como uma distribuição de nível com suporte de longo prazo (LTS). É desenvolvido pela
acadêmico. Canonical Ltd. para notebooks, desktops e servidores,
contém todos os aplicativos que o usuário precisa,
ATENÇÃO: Distribuição de fácil acesso e de navegador, edição de texto, planilha eletrônica.
interface simples para o usuário doméstico.
Link para baixar: http://www.slackware.com/
ATENÇÃO: Distribuição de fácil acesso e de
interface simples para o usuário doméstico.
Link para baixar: https://www.ubuntu.com

Red Hat Linux é uma distribuição de Linux líder do Mint Linux Linux Mint é uma distribuição Linux
mercado nos Estados Unidos, criada pela Red Hat. irlandesa. Possui duas versões: uma baseada em
Esta distribuição foi baseada no conceito de pacotes Ubuntu (com o qual é totalmente compatível e partilha
cada pacote fornece um pedaço diferente de software os mesmos repositórios) e outra versão baseada em
configurado. Debian. Suporta muitos idiomas, incluindo a língua
portuguesa, e utiliza o Cinnamon como seu principal
ATENÇÃO: Distribuição de fácil acesso e de ambiente de desktop.
interface simples para o usuário doméstico.
Link para baixar: https://www.redhat.com
ATENÇÃO: Distribuição de fácil acesso e de
interface simples para o usuário doméstico.
Link para baixar: https://linuxmint.com

Página 6 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Linux Deepin é uma distribuição chinesa baseada no


Pear Linux é uma distribuição Linux de origem Ubuntu e tem como objetivo fornecer um sistema
francesa. O objetivo/missão desta distribuição, que operacional elegante e amigável, possui seu próprio
se assemelha muito à distribuição elementary OS é ambiente desktop; chamado DDE ou Deepin Desktop
oferecer um sistema completo e produtivo, ao estilo do Environment.
MacOS X, mas numa vertente open source.
ATENÇÃO: Distribuição de fácil acesso e de
ATENÇÃO: Distribuição de fácil acesso e de interface simples para o usuário doméstico.
interface simples para o usuário doméstico. Link para baixar: https://www.deepin.org
Link para baixar: http://pearllinux.com/

Linux Manjaro ou apenas Manjaro, é uma distribuição


BRASIL LINUX é uma distribuição Linux onde o Linux, com o ambiente gráfico padrão Xfce. Um
diferencial dela é que é configurada com ferramentas sistema operacional de software livre, principalmente
de comunicação com o usuário através de síntese de para computadores pessoais destinadas a facilidade
voz, viabilizando, deste modo, o uso de computadores de uso. Como sua base de inspiração, Arch Linux,
por deficientes visuais. Manjaro usa um modelo rolling release.

ATENÇÃO: Distribuição de fácil acesso e de ATENÇÃO: Distribuição de fácil acesso e de


interface simples para o usuário doméstico. interface simples para o usuário doméstico.
Link para baixar: https://br-linux.org/ Link para baixar: https://manjaro.org/

Página 7 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

INTERFACES GRÁFICAS DO LINUX painéis, botões das janelas, menus e elementos


diversos como relógios, calculadoras e miniaplicativos.

O que se pode esperar do Linux

A mudança será relativamente grande, a começar pela


interface que será bem diferente. Mas nada que um
pouco de esforço não te ajude a se adaptar.

Primeiramente você precisa ter mente aberta a novas


experiências e ter consciência de que precisará se
adaptar a programas novos caso utilize algum que só
GUI (Graphical User Interface) exista no Windows.
Ambiente Gráfico para Usuário GNOME
Por exemplo:
Interface Gráfica GNOME
❖ Temos o Firefox, Opera e o Google Chrome
O GNOME (Network Object Model Environment) como opções de browsers.
Ambiente Modelo de Rede e Objetos é um projeto ❖ Não temos Adobe Photoshop, mas temos o
Internacional de software livre que provê um ambiente GIMP e o Krita.
desktop intuitivo e atraente para usuários finais e com ❖ Não temos o 3DS Max, mas temos o Blender.
um framework extenso para construção de aplicações ❖ Não temos o Microsoft Office, mas temos o
que se integrem com todo o desktop. O GNOME é WPS Office e o LibreOffice.
Software Livre e parte do Projeto GNU, que se dedica a ❖ Não temos o Adobe Illustrator, mas temos o
dar a usuários e desenvolvedores controle sobre seus Inkscape.
desktops, software e dados. Isso consiste, ❖ Não temos Windows Media Player, mas temos
basicamente, em garantir a todos o direito de usar o o VLC Media Player.
software para qualquer fim, estudar o seu código-fonte,
modificá-lo para qualquer necessidade que você possa
ter e redistribui-lo, modificado ou não.

Interface Gráfica KDE


O KDE (K Desktop Environment) é uma comunidade
internacional de software livre produzindo um conjunto
de aplicativos multiplataforma projetados para funcionar
em conjunto com sistemas GNU/Linux, FreeBSD,
Solaris Microsoft Windows, e Apple Mac OS X. Ela é
mais conhecida pela sua área de trabalho Plasma, um
ambiente de trabalho fornecido como o ambiente
padrão em muitas distribuições Linux. Interface de trabalho do Krita, um poderoso e
gratuito editor de imagens do Linux

Tudo vai depender de sua adaptação ao sistema e o


quanto estará disposto a mudar para isso.
Tem quem não pode abrir mão do Photoshop ou precisa
rodar o AutoCAD, por exemplo.

Para isso, ainda temos como alternativa o WINE, um


programa que permite rodar programas originalmente
lançados para Windows em formato .exe, no linux,
como se fosse um programa nativo.
GUI (Graphical User Interface)
Ambiente Gráfico para Usuário KDE O WINE, só para constar, não é um emulador, mas um
tradutor em tempo real camada de abstração que pega
O KDE se baseia no princípio da facilidade de uso e da o código em formato .exe e traduz para binário para o
personalização. Todos os elementos da interface Linux.
gráfica podem ser personalizados de acordo com o
gosto do usuário, tanto na posição quanto na aparência:

Página 8 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

❖ Apenas a (/) não pode ser


utilizado como nome de
arquivo.
Folha_2018 ❖ Recomendado: Letras,
Números, Pontos e
Underline.
❖ A extensão não é
necessária mas, podem
Relatório.docx ser usadas para facilitar a
identificação do arquivo.

Interface do PlayOnLinux, um gestor para o WINE, que


permite gerenciar a instalação de programas Processo de Inicialização (boot)
originalmente criados somente para Windows.
Se o processo de instalação do Linux tiver ocorrido
O desempenho da execução deles depende de muitos conforme o previsto, o sistema terá reconhecido todo
fatores, mas o curioso é que, como o foco do WINE era hardware então todos os pacotes de instalação terão
executar games, sua compatibilidade é maior. Você sido instalados corretamente o Kernel será carregado
pode executar Crysis com todos os shaders habilitados; normalmente finalizando com a exibição da interface de
mas poderá ter problemas para executar o CorelDRAW usuário (shell, em modo texto ou interface gráfica) para
por exemplo. fazer a inicialização do sistema, o Linux apresenta os
aplicativos LILO e GRUB.
Os Tipos De Arquivos no Linux
LILO: quando o LILO é selecionado, manual ou
No Linux, temos vários tipos de arquivos: texto, automaticamente, deverá ser carregado, sem
executável, arquivos de imagem e arquivos especiais. problemas, em mais ou menos cinco segundos. Caso
Para distinguir entre os tipos de arquivos, observe: isso não aconteça, pode se ter as seguintes situações
representadas pelo aparecimento de letras na tela:
- D l b,c,s
arquivo; diretório; link; especiais. L – o primeiro estágio do carregador é iniciado, mas,
não é possível carregar o segundo; apenas 25% do
sistema é inicializado.
Arquivos especiais estão associados a dispositivos do
LI – o primeiro estágio do carregador é executado, o
sistema, ou seja, cada periférico do seu computador, na
segundo foi inicializado, mas falhou na execução;
verdade, interage com o Linux por meio desses
apenas 50% do sistema inicializado erro de geometria
arquivos. Peguemos um exemplo de um drive: quando
ou movimentação do /boot/boot.b.
você manda gravar algum conteúdo, o Linux, na
LIL – não é responsável carregar o arquivo boot.map;
verdade, grava esse conteúdo em um arquivo especial
75% do sistema é inicializado.
que atua como intermediário entre o periférico e o
LILO – todos os estágios foram inicializados; 100% do
sistema.
sistema é inicializado.
Regras usadas no Linux para criação de GRUB: é um gerenciador de inicialização amigável, que
(Arquivos e Pastas) fornece um menu gráfico para a escolha de partições, e
é altamente confiável.

❖ Arquivos e Diretórios no Se durante a instalação, o GRUB tiver sido configurado


ambiente Linux são (case como o gerenciador de inicialização padrão, após a
sensitives), diferencia verificação de hardware da bios, será apresentada uma
letras maiusculas de tela gráfica com uma lista de sistemas operacionais
Projetos para que uma opção seja escolhida.
minúsculas.
❖ Quantidade máxima de
255 Caracteres. ATENÇÃO: Nas distribuições atuais o
GRUB é de fato o mais utilizado, o LILO
❖ Nomes que começam com está deixando de ser utilizado.
(.) representam arquivos e
PROJETOS diretórios estão ocultos.

Página 9 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Sistemas de Arquivos ❖ Privilégios de usuários padrão do sistema.


❖ A arquitetura modular do Linux, isolando
Sistemas de arquivos: Entre os sistemas de arquivos programas uns dos outros.
suportados pelo Linux, podemos citar FAT, NTFS, JFS, ❖ Firewall simples e eficiente.
XFS, HPFS, alguns sistemas de arquivos nativos, Ext2, ❖ Incompatibilidade de malwares populares para
Ext3, Ext4, ReiserFS e Reiser4. Alguns sistemas de com o Linux.
arquivos com características especiais são SWAP, ❖ Sistema de auditoria, embutido em todos os
UnionFS, SquashFS, Tmpfs, Aufs e NFS, dentre Linux, grava mudanças não autorizadas.
outros. ❖ O código é público e livre, qualquer um pode
analisá-lo e ajudar a encontrar falhas.

Em suma, vírus em sistemas Linux são como filhotes


de pombo, a gente sabe que existe, mas quase
ninguém nunca viu.

A galera do macOS ficará um pouco “a pé” com a


segurança caso migre pro Linux. Os Mac’s possuem a
tradição de serem sistemas seguros por terem base de
segurança do FreeBSD, tradicionalmente
superseguros. Mas a discrepância da segurança não
vai longe. O Linux permite criptografar pastas de
Sistemas de Arquivos com (Journaling), este tipo de usuário tal qual o macOS.
sistema de arquivos evita que haja corrupção de dados
no caso de o sistema travar ou faltar energia, e uma Um dos poucos pontos de insegurança, pode ficar na
recuperação mais rápida. instalação de um .deb sem assinatura digital em um
Ubuntu. Mas como todos os pacotes atuais existem nos
repositórios, nas lojas virtuais do sistema e no site
Segurança no Linux
oficial dos programas, não existe bem um risco real de
A galera do Windows sabe da má fama que o sistema algum usuário instalar um .deb que cause problemas.
da Microsoft possui no aspecto infecções por vírus e Também, como a maioria dos programas é gratuito e
outras pragas virtuais; nesse aspecto o Linux é muito livre, não compensa procurar “crack” e versões
mais seguro. O Linux possui um usuário especial alternativas em sites como o The Pirate Bay: Os
chamado Root, um usuário que tem controle sobre próprios desenvolvedores os fornecem gratuitamente.
tudo.
ClamAV (Antivírus para Linux)
Esse usuário não fica habilitado o tempo todo e impede
que programas mal-intencionados rodem no sistema ClamAV é um antivírus desenvolvido para sistemas
sem a devida permissão. Além disso por padrão o baseados em UNIX, tendo versões para o Linux, BSD,
sistema pede senhas para qualquer tarefa Solaris e disponível como um aplicativo pago para
administrativa. macOS.
– Ué, mas meu sistema não precisa de um antivírus
Falando em permissões, os arquivos e pastas do – provavelmente foi o pensamento de alguns de vocês
sistema possuem definições bem especificas de ao ler isso. Na verdade, ele possui a proposta inicial de
permissão de acesso, limitando o uso pelos próprios remover pragas e proteger as partições Windows, que
programas. Exemplo, os programas relacionados a muitos usuários possuem em seus computadores, ou
servidores como um banco de dados de um site, são seja, o foco é na galera que usa dual boot e gostaria de
por padrão montados sob o usuário www-data. Esse usar o Linux ou o BSD como um reforço de segurança,
usuário difere do padrão e do root, tendo permissões fazendo uma limpeza nas partições NTFS de maneira
únicas impedindo que uma infecção ataque esses mais leve, tendo em vista que muitos antivírus gratuitos
arquivos. e populares disponíveis para Windows são
demasiadamente pesados e consomem preciosos
Tal qual a segurança no macOS e no Windows, um recursos de hardware. – É de você mesmo que eu falei,
vírus só entra no Linux caso o usuário seja Avast!
extremamente descuidado e queira instalar programas
de fontes não confiáveis e mesmo levando isso em Claro, nada impede que você o use para escanear
conta é difícil uma ameaça entrar no sistema Linux por arquivos e proteger seu precioso sistema, seja ele qual
uma série de fatores. Dentre esses fatores, posso listar: for, dentre os baseados no UNIX. O ClamAV também
pode ser muito eficiente para escanear pendrives de

Página 10 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

uso “público” que acabam sendo muito compartilhados /srv Serviço de dados.
entre alunos de universidades, em lan houses, etc;
Existem ainda casos, por exemplo, um sistema Linux /sys
numa rede LAN junto a diversas máquinas Windows, o /tmp Arquivos temporários.
Linux aqui não será afetado caso se infecte, mas
/usr Comandos, bibliotecas e aplicativos.
poderá servir de ponte para vírus que vão infectar e
afetar outros sistemas, como os Windows que /var arquivos que sofrem modificações durante
estiverem na mesma rede. a sessão, tais como logfiles, arquivos de
spools, caches etc...
Estrutura de Diretórios do Linux /lost diretório para o qual são alocados os
+found arquivos “recuperados” pelo utilitário fsck
isto é, clusters.

ATENÇÃO: A estrutura de diretórios do Linux


é bastante cobrada nas questões de concursos,
uma atenção especial no diretório do
administrador /root e do usuário padrão /home.

Shell de Comandos ou o mesmo que


Interpretador de Comandos

Fazendo uso dos Comandos no Linux.


/ Todos os arquivos e pastas (diretórios) do No Linux, você poderá ter vários interpretadores de
sistema. comandos. O interpretador de comandos é que executa
/bin (Binaries) Armazena os binários comandos lidos do teclado ou de um arquivo
essenciais para o funcionamento do executável.
sistema. Como também comandos
básicos do SO como: rm, pwd, su, tar entre
outros.
/boot Arquivos necessários para o Boot do
sistema.
/cdrom
/dev (Devices) Armazena os drivers /dev dos
dispositivos.
/etc Armazena os arquivos de configuração do
sistema /etc Operacional.
/home Armazena as pastas dos usuários.
/lib Biblioteca básica compartilhados pelo É a principal ligação entre o usuário. Entre os
Kernel. programas interpretadores de comandos podemos
/media destacar o bash, csh e sh entre outros. Entre eles o
(Mount) conhecido como ponto de mais usado é o Bash (Bourne Again Shell), criado por
/mnt montagem padrão, é o local através do S.R. Bourne. Os comandos podem ser enviados de
qual se tem acesso as unidades de duas maneiras para o interpretador:
armazenamento, CD-Rom´s e PenDrivers
conectados no computador.
/opt opcionalmente, software instalado é
armazenados aqui.
/proc Arquivos que monitoram o funcionamento
e informações a respeito do sistema.
/root Diretório do Super Usuário, conhecido
como (administrador).
/run
/sbin (Binaries) Armazena os binários
essenciais para o funcionamento do
sistema que sejam vinculados ao Super
Usuário (administrador).

Página 11 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Interativa - Os comandos são digitados no teclado pelo residentes nela. A grande vantagem dos comandos
usuário e passados ao interpretador de comandos um internos, é a velocidade, pois não precisam ser
a um. Neste modo o computador depende do usuário procurados no HD e nem criam processos. Exemplos:
para executar uma tarefa ou o próximo comando. cd, alias, kill e logout.

Não-interativa – São usados arquivos de comandos Comandos externos: são comandos que estão
(scripts) criados pelo usuário para o computador localizados em diretórios específicos no HD, como /bin
executar os comandos na ordem encontrada no e /sbin. O GNU/Linux precisa consultar o HD sempre
arquivo. Neste modo, o computador executa os que um desses comandos é solicitado. A maioria dos
comandos do arquivo um por um, e dependendo do comandos do GNU/Linux é externa. Exemplos: ls, cp,
término do comando, o script pode verificar qual será rm, mv, mkdir e rmdir.
próximo comando que será executado e dar
continuidade ou não ao processamento. Para execução
de muitos comandos é necessário ter privilégios de
administrador, então como no Ubuntu o usuário root por
questões de segurança se encontra desabilitado, será
necessário o uso do "sudo".

Assim sendo sempre que um comando necessitar deste


privilégio, o mesmo estará precedido do sudo. Adicione
também o comando sudo na frente de todos os
comandos, caso esteja trabalhando em um diretório ou
em arquivos que não lhe pertencem (arquivos do
sistema, por exemplo).
COMANDOS DE AJUDA (man | help | info)
BASH Bourne Again SHell (Interpretador de
❖ MAN
Comandos) Padrão na maioria das
distribuições Linux.
ATENÇÃO: O comando “man”
Consulta os manuais dos comandos do
O GNU BASH é uma evolução muito mais interativa do
Bourne Shell (sh) do sistema BSD. Os shells Bourne sistema.
permitem a execução de sequências de comandos
inseridos diretamente no terminal ou ainda lidos de Sintaxe:
arquivos de texto conhecidos como shell scripts. Neles $ man [opcoes] [secao] comando
se podem invocar comandos internos aos próprios
Opções:
shells ou ainda arquivos binários ou scripts de terceiros
arquivados nos dispositivos de armazenamento do -a: exibe todas as páginas do manual.
sistema. -h: mensagem de ajuda.
-w: exibe a localização de páginas do manual a
Apresenta recursos e características de uma linguagem serem exibidas.
de programação de alto nível além de ser compatível
com as normas POSIX, de forma que os scripts bash
Exemplos:
podem ser executados em diversos sistemas “tipo Informações sobre o comando ls:
UNIX”, como um padrão. $ man ls
O BASH executa scripts em formato .sh (shell script) e ❖ HELP
funciona como interface global de usuário, chamada
CLI (CommandLine Interface - Interface de Linha de
Comando). Ou seja, tudo que o usuário faria num ATENÇÃO: O comando “help” Exibe
desktop com ícones, mouse e menus, faz via terminal apenas uma ajuda resumida contendo
de comandos, desde navegar entre pastas, até acessar os parâmetros mais usados.
a internet.
Exemplos:
Comandos do GNU/Linux Ajuda sobre o comando ls:
Tipos de comandos: $ ls - -help
OBS: O comando “help” deve ser utilizado no final da
Comandos internos: são comandos que estão dentro sintax, diferente de “man” e “info” que são usados no
de um shell interpretador de comandos. Quando o shell início da sintax.
é carregado na memória, seus comandos ficam

Página 12 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

❖ INFO Sintaxe:
$ ls [opções] [arquivo]
ATENÇÃO: O comando “info” Exibe
Opções:
informações de um comando do
sistema. -a: Exibe arquivos ocultos;
--author: Mostra o autor (criador) de cada arquivo;
Sintaxe: info [opçoes] comando -b: Exibe caracteres de escape octais no lugar dos
Opções: caracteres que não podem ser vistos, como o espaço
em branco;
-d nome_dir: adiciona um diretório à lista de -c: Lista os arquivos por ordem da data da última
diretórios a serem procurados para arquivos. modificação;
-f arqinfo: especifica o arquivo a ser utilizado pelo -C: Exibe a listagem em colunas;
comando info. -d: Exibe o diretório especificado, e não o seu
-h: mensagem de ajuda. conteúdo;
Exemplo: -F: Acrescenta um caracter gráfico ao final de cada
$ info ls arquivo para identificar o seu tipo;
Obs.: para sair do info, pressione Q. -l: Listagem detalhada, com diversas informações
sobre os arquivos;
-L: Quando listar links simbólicos, lista o local para
❖ DATE onde o link aponta, e não o link propriamente dito;
-o: O mesmo que o parâmetro -l, mas não exibe as
ATENÇÃO: O comando “date” serve para informações sobre o grupo;
exibir ou alterar a data e a hora no Linux. -r: Organiza a lista na ordem inversa;
-R: Lista recursivamente o conteúdo dos diretórios e
subdiretórios do diretório atual;
Para exibir a data e a hora atual: -S: Organiza a lista de acordo com o tamanho do
$ date arquivo;
-t: Lista pela data de modificação;
Para alterar a data e a hora: -u: Organiza a listagem pela data do último acesso;
$ date 03121730 2018 -U: Não organiza a listagem, exibindo os arquivos na
$ date mmddhhmmyyyy seqüência em que estão gravadas no diretório;
-w: Ajusta o tamanho da tela para o número de
O significado de cada conjunto de caracteres é: colunas especificado;
mm: mês -X: Organiza a listagem em ordem alfabética;
dd: dia -1: Lista apenas um arquivo por linha;
hh: hora
mm: minuto Pode-se também utilizar curingas para filtrar os
yyyy: ano arquivos que serão listados. Por exemplo, podemos
usar ls *.sxw para listar somente os arquivos
❖ CAL terminados em .sxw.
❖ CD
ATENÇÃO: O comando “cal” é utilizado
para mostrar um calendário de um mês e/ou
ATENÇÃO: O comando cd, sigla de
ano em específico.
change directory (selecionar diretório), serve
para acessar um determinado diretório.
Onde mês é o número do mês (01 a 12) e ano, é o
ano aaaa (4 algarismos).
Sintaxe:
Exemplos:
$ cd [diretório]
$ cal
Lembrando a lista dos diretórios do sistema:
❖ LS
..: Diretório acima do atual. Se você estiver no
ATENÇÃO: Comando “ls” exibe arquivos diretório /home/aluno/ e quiser acessar o diretório
ou o conteúdo de um ou vários diretórios. /home/, digite cd ... Se quiser acessar o diretório
/home/davidson/, digite cd ../davidson/;
~: Diretório pessoal do usuário atual, ou seja,
/home/[usuário]/;

Página 13 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-: Diretório anterior. Se você estava no diretório /etc/ ❖ CAT


e mudou para o diretório /home/, digite cd - para voltar
ao diretório /etc/. Se for usado sem parâmetro, ou
ATENÇÃO: O comando cat concatena
seja, apenas cd, você será redirecionado para o arquivos e imprime na saída padrão (exibe
diretório pessoal do usuário atual. na tela). Em arquivos, usamos o cat para
listar seu conteúdo na tela. Com o uso de
❖ MKDIR
direcionadores, podemos usá-lo para unir
diferentes arquivos em um só, dentre outras
ATENÇÃO: O comando mkdir, abreviatura funções.
de make directory (criar diretório), é usado
para criar um novo diretório. Sintaxe:
$ cat [opções] [arquivo]
Sintaxe:
Opções:
$ mkdir [opções] [novo diretório] -b: Numera as linhas, com exceção das linhas em
Opções: branco;
-m: Especifica as permissões que do novo diretório -E: Mostra um "$"? (cifrão) para indicar fim de linha;
terá; -n: Numera todas as linhas, incluindo as em branco;
-p: Cria todos os diretórios e subdiretórios necessários; -s: Não mostra mais do que uma linha em branco. Se
-v: Exibe uma mensagem para cada diretório criado. houver duas ou mais linhas em branco consecutivas,
elas são truncadas e apenas uma é mostrada;
Em [novo diretório] devemos colocar os diretórios que -T: Substitui tabulações pelos caracteres "^I"?;
queremos criar. Não é necessário digitar o caminho -v: Substitui os caracteres não imprimíveis por
completo, caso queiramos criar um diretório dentro do símbolos, exceto tabulações e final de linha.
diretório atual. Podemos criar vários diretórios com um
único comando, bastando separá-los com espaços. Se Exemplos de uso:
quiser que o nome do novo diretório tenha espaços em $ cat [arquivo1 arquivo2 arquivo3 ... arquivoN] > [arquivo]
branco, escreva-o entre aspas duplas, dessa forma:
Isso pode ser usado em qualquer tipo de arquivo,
$ mkdir /home/davidson/"diretório com espaços em inclusive arquivos binários. É prática comum utilizar
branco" isso para juntar arquivos de vídeo grandes, como
filmes, que muitas vezes são divididos em várias
❖ RMDIR partes.

ATENÇÃO: Esse comando é utilizado Veja no exemplo abaixo, como unir as 2 partes do filme
para apagar um diretório vazio. Matrix em um único arquivo:

$ cat the-matrix_part-1.mpeg the-matrix_part-2.mpeg >


Sintaxe: the-matrix.mpeg
$ rmdir [opções] [diretório]
❖ TAC
Opções:
-p: Remove os diretórios-pai do diretório selecionado, ATENÇÃO: O tac faz o mesmo que o cat,
se possível. Assim, o comando rmdir -p a/b/c/ vai mas exibe o arquivo pela ordem inversa, ou
apagar o diretório a/b/c/, depois o diretório a/b/ e por seja, começando pela última linha e
fim o diretório a/, se possível; terminando com a primeira.
-v: Mostra os detalhes da remoção dos diretórios.
Sintaxe:
Podem ser especificados mais de um diretório por vez.
O rmdir só remove diretório vazios. $ tac [arquivo]

❖ PWD ❖ TOUCH

ATENÇÃO: O pwd, sigla de print working ATENÇÃO: O comando touch é usado


directory (exibir diretório de trabalho), exibe atualizar as informações sobre as datas de
o diretório atual. último acesso e última modificação de um
arquivo.
Sintaxe:
Sintaxe:
$ pwd
$ touch [opções] [arquivo]

Página 14 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Se o arquivo não existir, ele é criado, por padrão. Isso $ cp file.gz /tmp
faz o touch ser muito utilizado para criar arquivos
vazios, através do comando touch [arquivo]. Para para fazer uma cópia do arquivo file.gz com o
nome file-copia.gz:
Opções:
-a: Modifica apenas a data do último acesso; $ cp file.gz file-copia.gz
-c: Não cria arquivos, caso eles não existam;
-m: Modifica apenas a data de modificação; Para copiar os arquivos file1, file2 e file3 para o diretório
-t: A data e hora a ser utilizada para o último acesso /home/davidson/doc/:
ou última modificação. O formato utilizado é
MMDDhhmm (mês, dia, hora e minuto); $ cp file1 file2 file3 /home/davidson/doc

❖ CP Para copiar o diretório img/ para o diretório


/tmp/upload/:
ATENÇÃO: O cp, abreviação de copy $ cp -r img /tmp/upload
(copiar), é utilizado para copiar arquivos e
diretórios de um local para outro, com o
mesmo nome ou com nome diferente.
Para copiar os arquivos file1, file2 e file3 e o diretório
img/ para o diretório /tmp/upload/:
Sintaxe:
$ cp [opções] [origem] [destino] $ cp -r file1 file2 fil3 img /tmp/upload

-b: Cria um arquivo dos arquivos de destino se eles ❖ MV


estiverem para ser sobrescritos;
-P: Quando tratar de links simbólicos, copia o link, e ATENÇÃO: Utilizamos o mv mover ou
não o local para onde o link aponta; renomear arquivos.
-f: Operação forçada. Se um dos arquivos de destino
não puder ser aberto, apaga-o e repete a operação;
-i: Pede confirmação antes de sobrescrever um Sintaxe:
arquivo;
-L: Quando tratar de links simbólicos, copia o local para $ mv [opções] [destino]
o onde o link aponta, e não o link; Opções:
-p: Preserva as propriedades do arquivo (permissões, -b: Cria um backup dos arquivos de destino, se eles
dono e datas); forem sobrescritos;
--preserve=[propriedade]: Escolhe quais propriedades -f: Força as operações, sem fazer perguntas caso seja
preservar, separadas por vírgula. Podem ser: necessário sobrescrever arquivos e outros;
mode: Preserva as permissões; -i: Modo interativo, pede confirmação para
ownership: Preserva a informação de dono do sobrescrever arquivos;
arquivo; --target-directory=[diretório]: especifica o diretório de
timestamp: Preserva as datas de acesso e destino para os arquivos;
modificação. -u: Só move os arquivos novos. Se o arquivo que está
--no-preserve=[propriedade]: Escolhe quais sendo movido já estiver presente no diretório de
propriedades não devem ser preservadas. As opções destino, ele é ignorado;
são as mesmas que do parâmetro --preserve; -v: Mostra os detalhes do processo de movimentação.
-R ou -r: Modo recursivo, copia todos os arquivos e
subdiretórios do diretório especificado. Esse Exemplos de uso:
parâmetro deve ser usado para copiar diretórios
inteiros; Para mover o arquivo file1 para o diretório
--target-directory=[diretório]: Especifica para qual /home/davidson/doc/:
diretório devem ser copiados os arquivos/diretórios
especificados; $ mv file1 /home/davidson/doc
-u: Copia apenas os arquivos novos. Se um arquivo
que estiver sendo copiado já existir no diretório de Para mover o diretório /home/davidson/doc/ para
destino, sua cópia será ignorada; /tmp/upload/:
-v: Mostra os detalhes da cópia dos arquivos.
$ mv /home/davidson/doc /tmp/upload
Exemplos de uso:
Para renomear o arquivo package.tar.gz para
Para copiar o arquivo file.gz para o diretório /tmp/: pacote.tar.gz:

Página 15 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

$ mv package.tar.gz pacote.tar.gz /home/davidson/doc/ no diretório atual, com o mesmo


nome do diretório real (no caso, doc):
Para mover o arquivo file1 e o diretório img/ para o
diretório /tmp/upload/: $ ln -s /home/davidson/doc

$ mv file1 img /tmp/upload Se você quiser fazer a mesma coisa, mas preferir que
o link criado tenha o nome "documentos":
❖ RM
$ ln -s /home/davidson/doc documentos
ATENÇÃO: O rm é utilizado para excluir
arquivos.
Se você quiser criar um link absoluto (hardlink), oculte
o parâmetro -s:

$ ln /home/davidson/doc
Sintaxe:
❖ CMP
$ rm [opções] [arquivo]
ATENÇÃO: Esse comando é utilizado
Opções: para comparar dois arquivos e mostrar a
-f: Modo forçado, não pede confirmação para realizar primeira diferença entre eles. Use para
as operações; certificar-se de que dois arquivos possuem
-i: Pede confirmação antes de remover qualquer ou não o mesmo conteúdo.
arquivo;
-R, -r: Exclui recursivamente todo o conteúdo do Sintaxe:
diretório e o próprio diretório. Quando quiser excluir $ cmp [opções] [arquivo1] [arquivo2]
um diretório que não está vazio, utilize esse
parâmetro; Opções:
-v: Mostra os detalhes das exclusões. -b: Imprime os bytes que são diferentes entre si;
-i [n]: Não considera os primeiros [n] bytes de cada
❖ LN arquivo;
-l: Mostra os número dos bytes e os valores
ATENÇÃO: Esse é o comando utilizado diferentes;
para criar links, simbólicos ou absolutos. -s: Não mostra nenhum detalhe, apenas sai com
status 1 se alguma diferença for encontrada.

Exemplos de uso:
Sintaxe:
Vamos comparar os arquivos file1 e file2:
$ ln [opções] [alvo] [nome do link]
$ cmp file1 file2
Opções: file1 file2 differ: byte 10, line 2
-b: Se houver um arquivo com o mesmo nome do link
que está sendo criado no diretório de destino, cria um
❖ DIFF
backup do arquivo existente;
-d: Permite ao administrador do sistema (root) criar um
hardlink (link absoluto) para um diretório; ATENÇÃO: Esse comando compara dois
-f: Força a criação dos links; arquivos de texto e mostra as diferenças
-n: Trata um link simbólico pra um diretório como se entre eles.
fosse um arquivo normal;
-i: Pergunta antes de remover arquivos existentes; Sintaxe:
-s: Cria um link simbólico;
--target-directory=[diretório]: Especifica em qual $ diff [opções] [arquivo1] [arquivo2]
diretório o link deve ser criado;
-v: Exibe o nome de cada link antes de criá-lo. Opções:
-i: Ignora as diferenças de letras
Exemplos de uso: maiúsculas/minúsculas;
-E: Ignora as diferenças de tabulação;
Se você quiser criar um link simbólico para o arquivo -b: Ignora diferenças na quantidade de espaço em
branco;

Página 16 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-w: Ignora qualquer espaço em branco;


-B: Ignora linhas em branco a mais ou a menos; $ diff -y file1 file2
-a: Compara os arquivos como arquivos de texto, ainda 5 f j 33 5 f j 33
que não sejam; diferença <
-u [n]: Mostra [n] linhas do conteúdo final do arquivo1, 2ac1 2ac1
adicionadas as diferenças do arquivo2; 1t4f 1t4f
-q: Mostra apenas se o conteúdo dos arquivos são ou 6bc_ 6bc_
não diferentes; 10 i r 3 10 i r 3
-y: Mostra os arquivos em duas colunas, indicando as >
diferenças; outradiferença
-t: Expande as tabulações, convertendo-as em
espaços, na saída; Veja que os sinais de maior e menor (>, <) sempre
-r: Compara recursivamente todo o conteúdo de um apontam para a linha que é diferente. Se a diferença
diretório; estiver no primeiro arquivo, listado à esquerda, ela deve
-S [arquivo]: Quando comparar diretórios, inicia a ser apagada. Se a diferença estiver no segundo
comparação pelo arquivo especificado. arquivo, listado à direita, ela deve ser adicionada.

Exemplos de uso: O diff, quando usado em conjunto com o utilitário patch,


fornece uma grande funcionalidade para atualizações.
Vamos considerar os arquivos file1 e file2, com o Um grande exemplo é o código-fonte do kernel Linux.
seguinte conteúdo: Ao invés de gravar a nova versão do kernel inteira, é
possível gravar a penas as diferenças entre eles, algo
$ cat file1 como:
5 f j 33
diferença $ diff [kernel-antigo] [kernel-novo] > diferenças.diff
2ac1
1t4f E depois utilizar o utilitário patch para gravar as
6bc_ diferenças no kernel-antigo, fazendo-o ficar com o
10 i r 3 mesmo conteúdo de kernel-novo. A grande vantagem é
que não é necessário o usuário baixar todo o kernel,
$ cat file2 que é muito grande, mas apenas o arquivo com as
5 f j 33 diferenças, bem pequeno.
2ac1
1t4f ❖ PATCH
6bc_
10 i r 3
outra diferença ATENÇÃO: Utilizamos esse comando para
atualizar as diferenças geradas através do
comando diff. Suponhamos os arquivos file1
Aplicando o diff nos dois arquivos, temos o seguinte e file2, que são diferentes. Podemos criar as
retorno: diferenças entre os dois arquivos com o
comando diff:
$ diff file1 file2
2d1 $ diff file1 file2 > file.diff
< diferença
6a6 Esse comando gera um arquivo file.diff com as
> outra diferença diferenças entre os arquivos file1 e file2. Podemos
agora usar o comando patch para aplicar as diferenças
O diff exibe informações sobre o que é necessário fazer no arquivo file1, fazendo seu conteúdo ficar igual ao de
para que o conteúdo de file1 seja igual ao de file2. file2:
Nesse caso, 2d1 quer dizer que a diferença foi
encontrada na linha 2, e que é necessário apagar (d = $ patch file1 file.diff
delete) a palavra diferença do arquivo file1. O 6a6 nos
diz que a diferença foi encontrada na linha 6, e que é Sintaxe:
necessário adicionar (a = add) a linha outra diferença
no arquivo file1. $ patch [opções] [arquivo] [arquivo de patch] (para
arquivos)
O parâmetro -y exibe esses parâmetros de forma mais $ patch [opções] < [arquivo de patch] (para
clara: diretórios)

Página 17 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Opções: As opções acima podem ser combinadas para resultar


em uma listagem mais completa. Você também pode
-p [n]: Nível do diretório onde será aplicado o patch. usar pipes "|" para filtrar a saída do comando ps. Ao
Se [n] for 0, o patch será aplicado no diretório atual. contrário de outros comandos, o comando ps não
Se for 1, será aplicado no diretório acima (..), se 2, 2 precisa do hífen "-" para especificar os comandos. Isto
diretórios acima (../..) e assim por diante; porque ele não utiliza opções longas e não usa
-b: Cria cópias dos arquivos originais antes de aplicar parâmetros. Exemplos: ps, ps ax|grep inetd, ps auxf, ps
o patch; auxw.
-binary: Lê e grava usando o modo binário;
-d [diretório]: Muda para o diretório especificado antes ❖ TOP
de aplicar o patch;
-E: Remove arquivos vazios após a aplicação do patch;
ATENÇÃO: Mostra os programas em
-n: Interpreta o arquivo de patch como um .diff normal; execução ativos, parados, tempo usado na
-N: Não desfaz patches já aplicados; CPU, detalhes sobre o uso da memória
-s: Modo silencioso, não exibe mensagens de erro; RAM, Swap, disponibilidade para execução
-u: Interpreta o patch em formato unificado. Use isso de programas no sistema, etc.
se o arquivo de patch foi gerado com diff -u.
top é um programa que continua em execução
mostrando continuamente os processos que estão
❖ PS
rodando em seu computador e os recursos utilizados
por eles. Para sair do top, pressione a tecla q. top
ATENÇÃO: Algumas vezes é útil ver quais [opções] Onde:
processos estão sendo executados no
computador. O comando ps faz isto, e -d [tempo]
também nos mostra qual usuário executou o Atualiza a tela após o [tempo] (em segundos).
programa, hora que o processo foi iniciado, -s
etc. Diz ao top para ser executado em modo
seguro.
ps [opções] Onde: -i
opções Inicia o top ignorando o tempo de processos
a zumbis.
Mostra os processos criados por você e de -c
outros usuários do sistema. Mostra a linha de comando ao invés do nome
x do programa.
Mostra processos que não são controlados A ajuda sobre o top pode ser obtida dentro do programa
pelo terminal. pressionando a tecla h ou pela página de manual (man
u top). Abaixo algumas teclas úteis:
Mostra o nome de usuário que iniciou o
processo e hora em que o processo foi iniciado. espaço - Atualiza imediatamente a tela.
m CTRL L - Apaga e atualiza a tela.
Mostra a memória ocupada por cada processo h - Mostra a tela de ajuda do programa. É mostrado
em execução. todas as teclas que podem ser usadas com o top.
f i - Ignora o tempo ocioso de processos zumbis.
Mostra a árvore de execução de comandos q - Sai do programa.
(comandos que são chamados por outros k - Finaliza um processo - semelhante ao comando
comandos). kill. Você será perguntado pelo número de
e identificação do processo (PID). Este comando não
Mostra variáveis de ambiente no momento da estará disponível caso esteja usando o top com a
inicialização do processo. opção -s.
w n - Muda o número de linhas mostradas na tela. Se
Mostra a continuação da linha atual na próxima 0 for especificado, será usada toda a tela para
linha ao invés de cortar o restante que não listagem de processos.
couber na tela.
--sort ❖ JOBS
[coluna]
Organiza a saída do comando ps de acordo
com a coluna escolhida. Você pode usar as ATENÇÃO: O comando jobs mostra os
colunas pid, utime, ppid, rss, size, user, priority. processos que estão parados ou
Pode ser especificada uma listagem em ordem inversa rodando em segundo plano.
especificando—sort:[-coluna].

Página 18 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Processos em segundo plano são iniciados usando o Envia um sinal de destruição ao processo ou
símbolo "&amp;" no final da linha de comando (veja [#s- programa. Ele é terminado imediatamente sem
run-tipos Tipos de Execução de comandos/programas, chances de salvar os dados ou apagar os
Seção 7.3]) ou através do comando bg. jobs O número arquivos temporários criados por ele.
de identificação de cada processo parado ou em Você precisa ser o dono do processo ou o usuário root
segundo plano (job), é usado com os comandos [#s- para termina-lo ou destruí-lo. Você pode verificar se o
run-fg fg, Seção 7.7.4] e [#s-run-bg bg, Seção 7.7.5]. processo foi finalizado através do comando ps. Os tipos
Um processo interrompido pode ser finalizado usando- de sinais aceitos pelo GNU/Linux são explicados em
se o comando kill %[num], onde [num] é o número do detalhes em [#s-run-sinais Sinais do Sistema, Seção
processo obtido pelo comando jobs. 7.7.9]. Exemplo: kill 500, kill -9 500, kill %1.
❖ FG ❖ KILLALL

ATENÇÃO: Permite fazer um programa


ATENÇÃO: Permite finalizar processos
rodando em segundo plano ou parado, rodar
em primeiro plano. Você deve usar o através do nome.
comando Jobs para pegar o número do
processo rodando em segundo plano ou
interrompida, este número será passado ao
comando fg para ativa-lo em primeiro plano.
killall [opções] [sinal] [processo] Onde:
processo
fg [número] Onde número é o número obtido através do Nome do processo que deseja finalizar
comando Jobs. Caso seja usado sem parâmetros, sinal
o fg utilizará o último programa interrompido (o maior Sinal que será enviado ao processo (pode ser
número obtido com o comando jobs). obtido usando a opção -i).
opções
❖ BG -i
Pede confirmação sobre a finalização do
ATENÇÃO: Permite fazer um programa processo.
rodando em primeiro plano ou parado, rodar -l
em segundo plano. Para fazer um programa Lista o nome de todos os sinais conhecidos.
em primeiro plano rodar em segundo, é -q
necessário primeiro interromper a execução Ignora a existência do processo.
do comando com CTRL Z, será mostrado o -v
número da tarefa interrompida, use este Retorna se o sinal foi enviado com sucesso ao
número com o comando bg para iniciar a processo.
execução do comando em segundo plano. -w
bg [número] Onde: número número do programa obtido Finaliza a execução do killall somente após
com o pressionamento das teclas CTRL Z ou através finalizar todos os processos.
do comando jobs. Os tipos de sinais aceitos pelo GNU/Linux são
explicados em detalhes na [#s-run-sinais Sinais do
❖ KILL Sistema, Seção 7.7.9]. Exemplo: killall -HUP inetd

❖ PSTREE
ATENÇÃO: Permite enviar um sinal a um
comando/programa. Caso seja usado sem
parâmetros, o kill enviará um sinal de ATENÇÃO: Mostra a estrutura de
término ao processo sendo executado. processos em execução no sistema em
forma de árvore.
kill [opções] [sinal] [número] Onde:
número
É o número de identificação do processo obtido pstree [opções] [pid] Onde:
com o comando [#s-run-ps ps, Seção 7.5]. pid
Também pode ser o número após o sinal de % Número do processo que terá sua árvore
obtido pelo comando jobs para matar uma listada. Se omitido, lista todos os processos.
tarefa interrompida. opções
sinal -a
Sinal que será enviado ao processo. Se omitido Mostra opções passadas na linha de comando.
usa -15 como padrão. -c
opções Mostra toda a estrutura (inclusive sub-
-9 processos do processo pai).

Página 19 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-G ❖ DF
Usa caracteres gráficos no desenho da árvore
de processos.
ATENÇÃO: Mostra o espaço livre/ocupado
-h de cada partição.
Destaca o processo atual e seus antecessores.

-H [pid]
Destaca o processo especificado. df [opções]
-l onde:
Não faz quebra de linha opções
-n -a
Classifica pelo número PID ao invés do nome. Inclui sistemas de arquivos com 0 blocos.
-p -h, --human-readable
Mostra o número PID entre parênteses após o Mostra o espaço livre/ocupado em MB, KB,
nome do processo. GB ao invés de blocos.
-u -H
Mostra também o dono do processo. Idêntico a -h mas usa 1000 ao invés de 1024
-U como unidade de cálculo.
Usa o conjunto de caracteres Unicode para o -k
desenho da árvore. Lista em Kbytes.
-l
❖ NICE Somente lista sistema de arquivos locais.
-m
Lista em Mbytes (equivalente a --block-
ATENÇÃO: Configura a prioridade da
execução de um comando/programa. size=1048576).
--sync
Executa o sync antes de mostrar os dados.
-T
nice [opções] [comando/programa] Onde:
Lista o tipo de sistema de arquivos de cada
partição
nice comando/programa
-t tipo
Comando/programa que terá sua prioridade
Lista somente sistema de arquivos do tipo tipo.
ajustada.
-x tipo
Não lista sistemas de arquivos do tipo tipo.
Opções
Exemplos: df, df -h, df -t vfat.
-n [numero]
Configura a prioridade que o programa será ❖ DU
executado. Se um programa for executado com
maior prioridade, ele usará mais recursos do ATENÇÃO: Mostra o espaço ocupado por
sistema para seu processamento, caso tenha arquivos e sub-diretórios do diretório atual.
uma prioridade baixa, ele permitirá que outros
programas tenham preferência. A prioridade de
execução de um programa/comando pode ser
du [opções]
ajustada de -19 (a mais alta) até 19 (a mais
onde:
baixa).
opções
-a, --all
Exemplo: nice -n -19 find / -name apropos.
Mostra o espaço ocupado por todos os
arquivos.
❖ CLEAR -b, --bytes
Mostra o espaço ocupado em bytes.
ATENÇÃO: Limpa a tela e posiciona o -c, --total
cursor no canto superior esquerdo do vídeo. Faz uma totalização de todo espaço listado.
-D
Não conta links simbólicos.
-h, --human
clear
Mostra o espaço ocupado em formato legível
por humanos (Kb, Mb) ao invés de usar blocos.

Página 20 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-H Procura por arquivos que possuam a


Como o anterior mas usa 1000 e não 1024 identificação numérica do grupo igual a [num].
como unidade de cálculo. -group [nome]
-k Procura por arquivos que possuam a
Mostra o espaço ocupado em Kbytes. identificação de nome do grupo igual a [nome].
-m -uid [num]
Mostra o espaço ocupado em Mbytes. Procura por arquivos que possuam a
-S, --separate-dirs identificação numérica do usuário igual a [num].
Não calcula o espaço ocupado por sub- -user [nome]
diretórios. Procura por arquivos que possuam a
-x identificação de nome do usuário igual a
Não faz a contagem de diretórios em sistemas [nome].
de arquivos diferentes do atual. -inum [num]
Exemplo: du -h, du -hc. Procura por arquivos que estão localizados no
inodo [num].
❖ FIND -links [num]
Procura por arquivos que possuem [num] links
como referência.
ATENÇÃO: Procura por arquivos/diretórios
no disco. find pode procurar arquivos -mmin [num]
através de sua data de modificação, Procura por arquivos que tiveram seu conteúdo
tamanho, etc através do uso de opções. find, modificado há [num] minutos. Caso for
ao contrário de outros programas, usa antecedido por "-", procura por arquivos que
opções longas através de um "-". tiveram seu conteúdo modificado entre [num]
minutos atrás até agora.
find [diretório] [opções/expressão] -mtime [num]
Onde: Procura por arquivos que tiveram seu conteúdo
diretório modificado há [num] dias. Caso for antecedido
Inicia a procura neste diretório, percorrendo por "-", procura por arquivos que tiveram seu
seu sub-diretórios. conteúdo modificado entre [num] dias atrás até
agora.
opções/expressão -ctime [num]
Procura por arquivos que teve seu status
-name [expressão] modificado há [num] dias. Caso for antecedido
Procura pelo nome [expressão] nos nomes de por "-", procura por arquivos que tiveram seu
arquivos e diretórios processados. conteúdo modificado entre [num] dias atrás até
-depth agora.
Processa os sub-diretórios primeiro antes de -nouser
processar os arquivos do diretório principal. Procura por arquivos que não correspondam a
-maxdepth [num] identificação do usuário atual.
Faz a procura até [num] sub-diretórios dentro -nogroup
do diretório que está sendo pesquisado. Procura por arquivos que não correspondam a
-mindepth [num] identificação do grupo do usuário atual.
Não faz nenhuma procura em diretórios -perm [modo]
menores que [num] níveis. Procura por arquivos que possuam os modos
-mount, -xdev de permissão [modo]. Os [modo] de permissão
Não faz a pesquisa em sistemas de arquivos pode ser numérico (octal) ou literal.
diferentes daquele de onde o comando find foi -used [num]
O arquivo foi acessado [num] vezes antes de
executado.
ter seu status modificado.
-amin [num]
-size [num]
Procura por arquivos que foram acessados
Procura por arquivos que tiverem o tamanho
[num] minutos atrás. Caso for antecedido por "-
[num]. [num] pode ser antecedido de " " ou "-"
", procura por arquivos que foram acessados
para especificar um arquivo maior ou menor
entre [num] minutos atrás até agora.
que [num]. A opção -size pode ser seguida de:
-atime [num]
b - Especifica o tamanho em blocos de 512 bytes. É o
Procura por arquivos que foram acessados
padrão caso [num] não seja acompanhado de nenhuma
[num] dias atrás. Caso for antecedido por "-",
letra.
procura por arquivos que foram acessados
c - Especifica o tamanho em bytes.
entre [num] dias atrás e a data atual.
k - Especifica o tamanho em Kbytes.
-gid [num]

Página 21 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-type [tipo] hora


Procura por arquivos do [tipo] especificado. Os Momento que o computador será desligado.
seguintes tipos são aceitos: Você pode usar HH:MM para definir a hora e
b - bloco minuto, MM para definir minutos, SS para
c - caracter definir após quantos segundos, ou now para
d - diretório imediatamente (equivalente a 0).
p - pipe
f - arquivo regular O shutdown criará o arquivo /etc/nologin para não
l - link simbólico permitir que novos usuários façam login no sistema
s - sockete (com exceção do root). Este arquivo é removido caso a
execução do shutdown seja cancelada (opção -c) ou
❖ HEAD após o sistema ser reiniciado.

mensagem
ATENÇÃO: Mostra as linhas iniciais de um
arquivo texto.
Mensagem que será mostrada a todos os
usuários alertando sobre o
reinicio/desligamento do sistema.

head [opções] opções


Onde: -h
-c [numero] Inicia o processo para desligamento do
Mostra o [numero] de bytes do inicio do arquivo. computador.
-n [numero] -r
Mostra o [numero] de linhas do inicio do Reinicia o sistema
arquivo. Caso não for especificado, o -c
head mostra as 10 primeiras linhas. Cancela a execução do shutdown. Você pode
Exemplos: head teste.txt, head -n 20 teste.txt. acrescentar uma mensagem avisando aos
usuários sobre o fato.
❖ TAIL -a
Permite que os nomes de usuários contidos no
arquivo /etc/shutdown.allow possam utilizar
ATENÇÃO: Mostra as linhas finais de um
arquivo texto.
o shutdown para reinicializar/desligar o
sistema. Deve ser colocado um nome de
usuário por linha. O limite máximo de usuários
neste arquivo é de 32.
tail [opções]
Onde: Este arquivo é útil quando o shutdown é usado para
-c [numero] controlar o pressionamento das teclas CTRL ALT DEL
Mostra o [numero] de bytes do final do arquivo. no /etc/inittab.
-n [numero]
Mostra o [numero] de linhas do final do arquivo. -k
Exemplos: tail teste.txt, tail -n 20 teste.txt. Simula o desligamento/reinicio do sistema,
enviando mensagem aos usuários.
❖ SHUTDOWN -f
Não executa a checagem do sistema de
arquivos durante a inicialização do sistema.
ATENÇÃO: Desliga/reinicia o computador
Este processo é feito gravando-se um
imediatamente ou após determinado tempo
(programável) de forma segura. Todos os arquivo /fastboot que é interpretado pelos
usuários do sistema são avisados que o scripts responsáveis pela execução
computador será desligado. do fsck durante a inicialização do sistema.
-F
Este comando somente pode ser executado pelo Força a checagem do sistema de arquivos
usuário root ou quando é usada a opção -a pelos durante a inicialização. É gravado um arquivo
usuários cadastrados no arquivo chamado /forcefsck que é interpretado pelos
/etc/shutdown.allow que estejam logados no console scripts responsáveis pela execução
virtual do sistema. do fsck durante a inicialização do sistema.
-n
shutdown [opções] [hora] [mensagem] Faz com que o shutdown ignore a execução
do init fechando todos os processos.

Página 22 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-t [num] ❖ WC
Faz com que o shutdown envie um sinal de
término aos processos e aguarde [num]
ATENÇÃO: Conta o número de palavras,
segundos antes de enviar o sinal KILL. bytes e linhas em um arquivo ou entrada
padrão. Se as opções forem omitidas, o
O shutdown envia uma mensagem a todos os usuários wc mostra a quantidade de linhas, palavras
do sistema alertando sobre o desligamento durante os e bytes.
15 minutos restantes e assim permite que finalizem
suas tarefas. Após isto, o shutdown muda o nível de wc [opções] [arquivo]
execução através do comando initpara 0 arquivo
(desligamento), 1 (modo monousuário), 6 Arquivo que será verificado pelo comando wc.
(reinicialização). É recomendado utilizar o símbolo
"&amp;" no final da linha de comando para que opções
o shutdown seja executado em segundo plano. -c, (caracteres).
Mostra os caracteres do arquivo.
Quando restarem apenas 5 minutos para o
-w, words (palavras).
reinicio/desligamento do sistema, o
Mostra a quantidade de palavras do arquivo.
programa login será desativado, impedindo a entrada
de novos usuários no sistema. -l, lines (linhas).
Mostra a quantidade de linhas do arquivo.

O programa shutdown pode ser chamado A ordem da listagem dos parâmetros é única, e
pelo init através do pressionamento da combinação das modificando a posição das opções não modifica a
teclas de reinicialização CTRL ALT DEL alterando-se o ordem que os parâmetros são listados.
arquivo /etc/inittab. Isto permite que somente os Exemplo:
usuários autorizados (ou o root) possam reinicializar o
sistema. wc /etc/passwd
Mostra a quantidade de linhas, palavras e letras
Exemplos: (bytes) no arquivo /etc/passwd.
wc -w /etc/passwd
"shutdown -h now" - Desligar o computador Mostra a quantidade de palavras.
imediatamente.
wc -l /etc/passwd
"shutdown -r now" - Reinicia o computador Mostra a quantidade de linhas.
imediatamente.
wc -l -w /etc/passwd
"shutdown 19:00 A manutenção do servidor será Mostra a quantidade de linhas e palavras no arquivo
iniciada í s 19:00" - Faz o computador entrar em modo /etc/passwd.
monousuário (init 1) as 19:00 enviando a mensagem A
manutenção do servidor será iniciada í s 19:00 a todos ❖ WHICH
os usuários conectados ao sistema.
ATENÇÃO: Mostra a localização de um
"shutdown -r 15:00 O sistema será reiniciado as 15:00 arquivo executável no sistema. A pesquisa
horas" - Faz o computador ser reiniciado (init 6) as de arquivos executáveis é feita através do
15:00 horas enviando a mensagem O sistema será path do sistema.
reiniciado as 15:00 horas a todos os usuários
conectados ao sistema. which [comando]
Exemplos: which ls, which shutdown, which which.
shutdown -r 20 - Faz o sistema ser reiniciado após 20
minutos. ❖ WHEREIS

shutdown -c - Cancela a execução do shutdown . ATENÇÃO: Localiza o arquivo que contém


uma página de manual. A pesquisa é feita
usando-se os caminhos de páginas de
shutdown -t 30 -r 20 - Reinicia o sistema após 20
manuais configuradas no sistema
minutos, espera 30 segundos após o sinal de término (normalmente o arquivo
para enviar o sinal KILL a todos os programas abertos. /etc/manpath.config).
whereis [comando]
Exemplo: whereis ls, whereis cd.

Página 23 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

❖ TRACEROUTE ❖ WHOAMI

ATENÇÃO: Mostra o caminho percorrido ATENÇÃO: Mostra o nome que usou para
por um pacote para chegar ao seu destino. se conectar ao sistema. É útil quando você
Este comando mostra na tela o caminho usa várias contas e não sabe com qual
percorrido entre os Gateways da rede e o nome entrou no sistema :-)
tempo gasto de retransmissão.

Este comando é útil para encontrar computadores whoami


defeituosos na rede caso o pacote não esteja chegando
ao seu destino. ❖ WHO

Algumas distribuições Linux podem não reconhecer o ATENÇÃO: Mostra quem está atualmente
comando traceroute, caso isso aconteça use o seguinte conectado no computador. Este comando
código para que o shell reconheça o comando: lista os nomes de usuários que estão
conectados em seu computador, o terminal
sudo apt-get install traceroute e data da conexão.

Após executar esse comando o shell pede que você who [opções]
digite a senha de root, depois disso os pacotes onde:
necessários serão baixados. opções

traceroute [opções] [host/IP de destino] -H, --heading


Onde: Mostra o cabeçalho das colunas.
-i, -u, --idle
host/IP destino Mostra o tempo que o usuário está parado em
É o endereço para onde o pacote será enviado Horas:Minutos.
(por exemplo, www.debian.org). Caso o -m, i am
tamanho do pacote não seja especificado, é Mostra o nome do computador e usuário
enviado um pacote de 38 bytes. associado ao nome. É equivalente a digitar who
opções i am ou who am i.
-l -q, --count
Mostra o tempo de vida do pacote (ttl) Mostra o total de usuários conectados aos
-m [num] terminais.
Ajusta a quantidade máximas de ttl dos -T, -w, --mesg
pacotes. O padrão é 30. Mostra se o usuário pode receber mensagens
-n via talk (conversação).
Mostra os endereços numericamente ao invés
▪ O usuário recebe mensagens via talk
de usar resolução DNS.
▪ - O usuário não recebe mensagens via talk.
-p [porta]
▪ ? Não foi possível determinar o dispositivo de
Ajusta a porta que será usada para o teste. A
terminal onde o usuário está conectado.
porta padrão é 33434.
-r
Pula as tabelas de roteamento e envia o pacote ❖ FINGER
diretamente ao computador conectado a rede.
-s [end] ATENÇÃO: Mostra detalhes sobre os
Usa o endereço IP/DNS [end] como endereço usuários de um sistema. Algumas versões
de origem para computadores com múltiplos do finger possuem bugs e podem significar
endereços IPs ou nomes. um risco para a segurança do sistema. É
recomendado desativar este serviço na
-v
máquina local.
Mostra mais detalhes sobre o resultado
do traceroute.
finger [usuário] [usuário@host]
-w [num]
Onde:
Configura o tempo máximo que aguardará por
usuário
uma resposta. O padrão é 3 segundos.
Nome do usuário que deseja obter detalhes do
Exemplos: traceroute www.debian.org, traceroute
sistema. Se não for digitado o nome de usuário,
www.linux.org.
o sistema mostra detalhes de todos os usuários
conectados no momento.

Página 24 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

usuário@host ❖ PING
Nome do usuário e endereço do computador
ATENÇÃO: Verifica se um computador
que deseja obter detalhes.
está disponível na rede. Este comando é
-l muito utilizado por alguns programas de
Mostra os detalhes de todos os usuários conexão e administradores para verificar se
conectados no momento. Entre os detalhes, uma determinada máquina está conectada
estão incluídos o nome do interpretador de na rede e também para verificar o tempo de
comandos (shell) do usuário, diretório resposta de cada máquina da rede.
home, nome do usuário, endereço, etc. Estes
dados são lidos de /etc/passwd. O ping envia pacotes ICMS ECHO_REQUEST para um
-p computador, este quando recebe o pacote envia uma
Não exibe o conteúdo dos resposta ao endereço de origem avisando que está
arquivos .plan e .project disponível na rede.
Se for usado sem parâmetros, mostra os dados de
todos os usuários conectados atualmente ao seu ping [opções][IP/DNS]
sistema. onde:
IP/dns
Exemplo: finger, finger root. Endereço IP ou nome DNS do endereço.
opções
❖ TELNET -c [num]
Envia num pacotes ao computador de destino.
-f
ATENÇÃO: Permite acesso a um
Flood ping. Envia novos pacotes antes de
computador remoto. É mostrada uma tela de
acesso correspondente ao computador local receber a resposta do pacote anterior. Para
onde deve ser feita a autenticação do cada requisição enviada, um "." é mostrado na
usuário para entrar no sistema. Muito útil, tela e para cada resposta recebida, um
mas deve ser tomado cuidados ao backspace é mostrado. Somente o usuário root
disponibilizar este serviço para evitar riscos pode utilizar esta opção e pode te auxiliar muito
de segurança. na detecção de erros de transmissão de
pacotes em interfaces das máquinas em sua
telnet [opções] [ip/dns] [porta] rede.
onde: -i [seg]
Aguarda [seg] segundos antes de enviar cada
ip/dns pacote.
Endereço IP do computador de destino ou -q
nome DNS. Não mostra as requisições enquanto são
porta enviadas, somente mostra as linhas de sumário
Porta onde será feita a conexão. Por padrão, a no inicio e término do programa.
conexão é feita na porta 23. -s [tamanho]
opções Especifica o tamanho do pacote que será
; -8 enviado.
Requisita uma operação binária de 8 bits. Isto -v, --verbose
força a operação em modo binário para envio e Saída detalhada, tanto os pacotes enviados
recebimento. Por padrão, telnet não usa 8 bits. como recebidos são listados.
-a Exemplo: ping 192.168.1.1, ping www.br.debian.org.
Tenta um login automático, enviando o nome
do usuário lido da variável de ambiente USER. ❖ NETSTAT
-d
Ativa o modo de debug.
-r ATENÇÃO: Mostra conexões de rede,
tabela de roteamento, estatísticas de
Ativa a emulação de rlogin.
interfaces, conexões masquerade, e
-l [usuário] mensagens.
Faz a conexão usando [usuário] como nome de
usuário. netstat [opções]
Onde:
Exemplo: telnet 192.168.1.1, telnet 192.168.1.1 23. opções
-i [interface]
Mostra estatísticas da interface [interface].

Página 25 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-M, --masquerade deseje permitir que grupos de usuários possam


Se especificado, também lista conexões ter acesso a arquivos comuns.
masquerade. Caso estiver criando um novo grupo com adduser, a
-n, --numeric identificação do novo grupo será [num].
Usa endereços numéricos ao invés de tentar --home [dir]
resolver nomes de hosts, usuários e portas. Usa o diretório [dir] para a criação do diretório
-c, --continuos home do usuário ao invés de usar o
Mostra a listagem a cada segundo até que a especificado no arquivo de
CTRL C seja pressionado. configuração /etc/adduser.conf .
Se não for especificada nenhuma opção, os detalhes
--ingroup [nome]
das conexões atuais serão mostrados.
Quando adicionar um novo usuário no sistema,
coloca o usuário no grupo [nome] ao invés de
❖ ADDUSER criar um novo grupo.
--quiet
ATENÇÃO: Adiciona um usuário ou grupo Não mostra mensagens durante a operação.
no sistema. Por padrão, quando um novo --system
usuário é adicionado, é criado um grupo com Cria um usuário de sistema ao invés de um
o mesmo nome do usuário. usuário normal.

Opcionalmente o adduser também pode ser usado para Os dados do usuário são colocados no
adicionar um usuário a um grupo (veja [#s-cmdc-incluir arquivo /etc/passwd após sua criação e os dados do
grupo Adicionando o usuário a um grupo extra, Seção grupo são colocados no arquivo /etc/group.
12.10]). Será criado um diretório home com o nome do
usuário (a não ser que o novo usuário criado seja um OBSERVAÇÃO: Caso esteja usando senhas ocultas
usuário do sistema) e este receberá uma identificação. (shadow passwords), as senhas dos usuários serão
colocadas no arquivo /etc/shadow e as senhas dos
A identificação do usuário (UID) escolhida será a grupos no arquivo /etc/gshadow. Isto aumenta mais a
primeira disponível no sistema especificada de acordo segurança do sistema porque somente o usuário root
com a faixa de UIDS de usuários permitidas no arquivo pode ter acesso a estes arquivos, ao contrário do
de configuração /etc/adduser.conf. Este é o arquivo que arquivo /etc/passwd que possui os dados de usuários e
contém os padrões para a criação de novos usuários no devem ser lidos por todos.
sistema.
❖ ADDGROUP
adduser [opções] [usuário/grupo]
Onde:
usuário/grupo ATENÇÃO: Adiciona um novo grupo de
Nome do novo usuário que será adicionado ao usuários no sistema.
sistema.
opções
-disable-passwd addgroup [usuário/grupo] [opções]
Não executa o programa passwd para escolher
a senha e somente permite o uso da conta após
❖ PASSWD
o usuário escolher uma senha.
--force-badname
Desativa a checagem de senhas ruins durante ATENÇÃO: Muda a senha do usuário ou
a adição do novo usuário. Por padrão grupo. Um usuário somente pode alterar a
o adduser checa se a senha pode ser senha de sua conta, mas o superusuário
(root) pode alterar a senha de qualquer conta
facilmente adivinhada.
de usuário, inclusive a data de validade da
--group conta, etc. Os donos de grupos também
Cria um novo grupo ao invés de um novo podem alterar a senha do grupo com este
usuário. A criação de grupos também pode ser comando.
feita pelo comando addgroup.
-uid [num] Os dados da conta do usuário como nome, endereço,
Cria um novo usuário com a identificação [num] telefone, também podem ser alterados com este
ao invés de procurar o próximo UID disponível. comando.
-gid [num]
Faz com que o usuário seja parte do grupo [gid] passwd [usuário/grupo] [opções]
ao invés de pertencer a um novo grupo que Onde:
será criado com seu nome. Isto é útil caso usuário

Página 26 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Nome do usuário/grupo que terá sua senha ❖ NEWGRP


alterada.
opções
ATENÇÃO: Altera a identificação de grupo
-g
do usuário. Para retornar a identificação
Se especificada, a senha do grupo será anterior, digite exit e tecle Enter.
alterada. Somente o root ou o administrador do
grupo pode alterar sua senha. A opção -r pode
ser usada com esta para remover a senha do newgrp - [grupo]
grupo. A opção -R pode ser usada para Onde:
restringir o acesso do grupo para outros -
usuários. Se usado, inicia um novo ambiente após o uso
-x [dias] do comando newgrp (semelhante a um novo
Especifica o número máximo de dias que a login no sistema), caso contrário, o ambiente
senha poderá ser usada. Após terminar o atual do usuário é mantido.
prazo, a senha deverá ser modificada. grupo
-i Nome do grupo ou número do grupo que será
Desativa a conta caso o usuário não tenha incluído.
alterado sua senha após o tempo especificado Quando este comando é usado, é pedida a senha do
por -x. grupo que deseja acessar. Caso a senha do grupo
-n [dias] esteja incorreta ou não exista senha definida, a
Especifica o número mínimo de dias para a execução do comando é negada.
senha ser alterada. O usuário não poderá ❖ USERDEL
mudar sua senha até que [dias] sejam atingidos
desde a última alteração de senha.
-w [num] ATENÇÃO: Apaga um usuário do sistema.
Número de dias antecedentes que o usuário Quando é usado, este comando apaga todos
os dados da conta especificado dos arquivos
receberá o alerta para mudar sua senha. O
de contas do sistema.
alerta ocorre [num] dias antes do limite da
opção -x, avisando ao usuários quantos dias userdel [-r] [usuário]
restam para a troca de sua senha. -r
-l [nome] Apaga também o diretório HOME do usuário.
Bloqueia a conta do usuário [nome]. Deve ser OBS: Note que uma conta de usuário não poderá ser
usada pelo root. O bloqueio da conta é feito removida caso ele estiver no sistema, pois os
acrescentando um caracter a senha para que programas podem precisar ter acesso aos dados dele
não confira com a senha original. (como UID, GID) no /etc/passwd.
-u [nome]
Desbloqueia a conta de um usuário bloqueada ❖ GROUPDEL
com a opção -l.
-S [nome] ATENÇÃO: Apaga um grupo do sistema.
Mostra o status da conta do usuário [nome]. A Quando é usado, este comando apaga todos
primeira parte é o nome do usuário seguido de os dados do grupo especificado dos arquivos
L(conta bloqueada), NP(sem senha), ou P (com de contas do sistema.
senha), a terceira parte é a data da última
groupdel [grupo]
modificação da senha, a quarta parte é a perí-
odo mínimo, máximo, alerta e o período de Tenha certeza que não existem arquivos/diretórios
inatividade para a senha. criados com o grupo apagado através do comando find.
OBS: Você não pode remover o grupo primário de um
Procure sempre combinar letras maiúsculas, usuário. Remova o usuário primeiro.
minúsculas, e números ao escolher suas senhas. Não
é recomendado escolher palavras normais como sua ❖ LASTLOG
senha pois podem ser vulneráveis a ataques de
dicionários cracker. Outra recomendação é ATENÇÃO: Mostra o último login dos
utilizar senhas ocultas em seu sistema (shadow usuários cadastrados no sistema. É
password). mostrado o nome usado no login, o terminal
onde ocorreu a conexão e a hora da última
Você deve ser o dono da conta para poder modificar a conexão. Estes dados são obtidos através
senhas. O usuário root pode modificar/apagar a senha da pesquisa e formatação do
arquivo /var/log/lastlog. Caso o usuário não
de qualquer usuário. tenha feito login, é mostrada a mensagem **
Exemplo: passwd root. Never logged in **

Página 27 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

caso existir. Você pode cria-lo com o comando "echo -


lastlog [opções] n &gt;/var/log/wtmp" ou touch /var/log/wtmp.
Onde:
opções last - Mostra a listagem geral
-t [dias] last -a - Mostra a listagem geral incluindo o nome da
Mostra somente os usuários que se máquina
conectaram ao sistema nos últimos [dias].
-u [nome] last pedro - Mostra somente atividades do usuário
Mostra somente detalhes sobre o usuário pedro
[nome]. last reboot - Mostra as reinicializações do sistema
A opção -t substitui a opção -u caso sejam usadas.
last tty1 - Mostra todas as atividades no tty1
❖ LAST
❖ SG
ATENÇÃO: Mostra uma listagem de
entrada e saída de usuários no sistema. São ATENÇÃO: Executa um comando com
mostrados os seguintes campos na outra identificação de grupo. A identificação
listagem: do grupo de usuário é modificada somente
durante a execução do comando.
• Nome do usuário
• Terminal onde ocorreu a conexão/desconexão sg [-] [grupo] [comando]
• O hostname (caso a conexão tenha ocorrido Onde:
remotamente) ou console (caso tenha ocorrido -
localmente). Se usado, inicia um novo ambiente durante o
uso do comando (semelhante a um novo login
• A data do login/logout, a hora do login/down se
e execução do comando), caso contrário, o
estiver fora do sistema/ still logged in se ainda
ambiente atual do usuário é mantido.
estiver usando o sistema
grupo
• Tempo (em Horas:Minutos) que esteve conectado
Nome do grupo que o comando será
ao sistema.
executado.
A listagem é mostrada em ordem inversa, ou seja, da
comando
data mais atual para a mais antiga. A listagem feita
Comando que será executado. O comando
pelo last é obtida de /var/log/wtmp.
será executado pelo bash.
last [opções]
Quando este comando é usado, é pedida a senha do
Onde:
grupo que deseja acessar. Caso a senha do grupo
opções esteja incorreta ou não exista senha definida, a
-n [num] execução do comando é negada.
Mostra [num] linhas. Caso não seja usada,
todas as linhas são mostradas. Exemplo: sg root ls /root
-R
Não mostra o campo HostName. ❖ CHFN
-a
Mostra o hostname na última coluna. Será
ATENÇÃO: Muda os dados usados pelo
muito útil se combinada com a opção -d.
comando.
-d
Usa o DNS para resolver o IP de sistemas
remotos para nomes DNS.
-x chfn [usuário] [opções]
Mostra as entradas de desligamento do Onde:
sistema e alterações do nível de execução do usuário
sistema. Nome do usuário.
opções
O comando last pode ser seguido de um argumento -f [nome]
que será pesquisado como uma expressão regular Muda o nome completo do usuário.
durante a listagem. -r [nome]
O comando last usa o arquivo /var/log/wtmp para gerar Muda o número da sala do usuário.
sua listagem, mas alguns sistemas podem não possuir -w [tel]
este arquivo. O arquivo /var/log/wtmpsomente é usado Muda o telefone de trabalho do usuário.

Página 28 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-h [tel] users
Muda o telefone residencial do usuário. Os nomes de usuários atualmente conectados ao
-o [outros] sistema são obtidos do arquivo /var/log/wtmp.
Muda outros dados do usuário.
❖ GROUPS
Caso o nome que acompanha as opções (como o nome
completo) contenha espaços, use "" para identifica-lo.
ATENÇÃO: Mostra os grupos que o
Exemplo: chfn -f "Nome do Usuário root" root
usuário pertence.

❖ ID

groups [usuário]
ATENÇÃO: Mostra a identificação atual do
usuário, grupo primário e outros grupos que Exemplo: groups, groups root
pertence.
❖ CHGRP
id [opções] [usuário]
ATENÇÃO: Muda o grupo de um
arquivo/diretório.
usuário
É o usuário que desejamos ver a identificação,
grupos primários e complementares.
opções chgrp [opções] [grupo] [arquivo/diretório]
-g, --group
Mostra somente a identificação do grupo grupo
primário. Novo grupo do arquivo/diretório.
-G, --groups arquivo/diretório
Mostra a identificação de outros grupos que Arquivo/diretório que terá o grupo alterado.
pertence. opções
-n, --name -c, --changes
Mostra o nome do usuário e grupo ao invés da Somente mostra os arquivos/grupos que forem
identificação numérica. alterados.
-u, --user -f, --silent
Mostra somente a identificação do usuário Não mostra mensagens de erro para
(user ID). arquivos/diretórios que não puderam ser
-r, --real alterados.
Mostra a identificação real de usuário e grupo, -v, --verbose
ao invés da efetiva. Esta opção deve ser usada Mostra todas as mensagens e arquivos sendo
junto com uma das opções: -u, -g, ou -G. modificados.
-R, --recursive
Caso não sejam especificadas opções, id mostrará Altera os grupos de arquivos/sub-diretórios do
todos os dados do usuário. diretório atual.
Exemplo: id, id -user, id -r -u.
❖ CHOWN
❖ LOGNAME
ATENÇÃO: Muda dono de um
ATENÇÃO: Mostra seu login (username). arquivo/diretório. Opcionalmente pode
também ser usado para mudar o grupo.

chown [opções] [dono.grupo] [diretório/arquivo]


logname
dono.grupo
❖ USERS Nome do dono.grupo que será atribuído
ao diretório/arquivo. O grupo é opcional.
ATENÇÃO: Mostra os nomes de usuários diretório/arquivo
usando atualmente o sistema. Os nomes de Diretório/arquivo que o dono.grupo será
usuários são mostrados através de espaços modificado.
sem detalhes adicionais, opções
-v, --verbose

Página 29 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Mostra os arquivos enquanto são alterados. A coluna Module indica o nome do módulo que está
-f, --supress carregado, a coluna Used mostra qual módulos está
Não mostra mensagens de erro durante a usando aquele recurso. O parâmetro (autoclean) no
execução do programa. final da coluna indica que o módulo foi carregado
-c, --changes manualmente (pelo insmod ou modprobe) ou através
Mostra somente arquivos que forem alterados. do kmod e será automaticamente removido da memória
-R, --recursive quando não for mais usado.
Altera dono e grupo de arquivos no diretório
atual e sub-diretórios. ❖ INSMOD
O dono.grupo pode ser especificado usando o nome de
ATENÇÃO: Carrega um módulo
grupo ou o código numérico correspondente ao grupo
manualmente. Para carregar módulos que
(GID). dependem de outros módulos para que
funcionem, você duas opções: Carregar os
Você deve ter permissões de gravação no módulos manualmente ou usar
diretório/arquivo para alterar seu dono/grupo. o modprobe que verifica e carrega as
dependências correspondentes.

• chown joao teste.txt - Muda o dono do sintaxe: insmod [módulo] [opções_módulo]


arquivo teste.txt para joao.
• chown joao.users teste.txt - Muda o dono do módulo
arquivo teste.txt para joao e seu grupo para users. É o nome do módulo que será carregado.
opções_módulo
• chown -R joao.users * - Muda o dono/grupo dos Opções que serão usadas pelo módulo. Variam
arquivos do diretório atual e sub-diretórios para de módulo para módulo, alguns precisam de
joao/users (desde que você tenha permissões de opções outros não, tente primeiro carregar sem
gravação no diretórios e sub-diretórios). opções, caso seja mostrada uma mensagem
de erro verifique as opções usadas por ele.
❖ KMOD Para detalhes sobre que opções são
suportadas por cada módulo, veja a sua
ATENÇÃO: Este é o programa usado para documentação no código fonte do kernel
carregar os módulos automaticamente em /usr/src/linux/Documentation
quando são requeridos pelo sistema.
Exemplo: insmod ne io=0x300 irq=10

Ele é um daemon que funciona constantemente ❖ RMMOD


fazendo a monitoração, quando verifica que algum
dispositivo ou programa está solicitando o suporte a
algum dispositivo, ele carrega o módulo ATENÇÃO: Remove módulos carregados
no kernel. Para ver os nomes dos módulos
correspondente.
atualmente carregados no kernel digite
lsmod e verifique na primeira coluna o nome
Ele pode ser desativado através da recompilação do do módulo. Caso um módulo tenha
kernel, dando um kill no processo ou através do dependências e você tentar remover suas
arquivo /etc/modules Caso seja desativado, é preciso dependências, uma mensagem de erro será
carregar manualmente os módulos através mostrada alertando que o módulo está em
do modprobe ou insmod. uso.
Exemplo: rmmod ne
❖ LSMOD
❖ MODPROBE
ATENÇÃO: Lista quais módulos estão
carregados atualmente pelo kernel. O nome
lsmod é uma contração de ls módulos - Listar
ATENÇÃO: Carrega um módulo e suas
Módulos. dependências manualmente. Este comando
permite carregar diversos módulos e
A listagem feita pelo lsmod é uma alternativa ao uso do dependências de uma só vez. O
comando cat /proc/modules. comportamento do modprobe é modificado
pelo arquivo /etc/modules.conf.
A saída deste comando tem a seguinte forma:
O programa deve ser rodado pela conta root.

Página 30 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

sintaxe: modprobe [módulo] [opções_módulo] As modificações feitas por este programa são gravadas
no diretório /etc/modutils em arquivos separados
módulo como /etc/modutils/alias - alias de
É o nome do módulo que será carregado. módulos, /etc/modutils/modconf - opções usadas por
módulos, /etc/modutils/paths - Caminho onde os
opções_módulo módulos do sistema são encontrados. Dentro
Opções que serão usadas pelo módulo. Variam de /etc/modutils é ainda encontrado um sub-diretório
de módulo para módulo, alguns precisam de chamado arch que contém opções específicas por
opções outros não, tente primeiro carregar sem arquiteturas.
opções, caso seja mostrada uma mensagem
de erro verifique as opções usadas por ele. A sincronização dos arquivos gerados
pelo modconf com o /etc/modules.confé feita através
Nem todos os módulos são carregados corretamente do utilitário update-modules. Ele é normalmente
pelo modprobe, o plip, por exemplo, mostra uma executado após modificações nos módulos feitas
mensagem sobre porta I/O inválida, mas não caso seja pelo modconf.
carregado pelo insmod.
❖ GZIP
❖ DEPMOD
ATENÇÃO: É praticamente o compactador
ATENÇÃO: Verifica a dependência de padrão do GNU/Linux, possui uma ótima
módulos. As dependências dos módulos são taxa de compactação e velocidade. A
verificadas pelos scripts em /etc/init.d usando o extensão dos arquivos compactados
comando depmod -a e o resultado gravado no pelo gzip é a .gz, na versão
arquivo /lib/modules/versao_do_kernel/module para DOS, Windows NT é usada a
s.dep. extensão .z.

Esta checagem serve para que todas as dependências gzip [opções] [arquivos]
de módulos estejam corretamente disponíveis na
inicialização do sistema. O comportamento arquivos
do depmodpode ser modificado através do Especifica quais arquivos serão compactados
arquivo /etc/modules.conf. É possível criar a pelo gzip. Caso seja usado um -, será
dependência de módulos imediatamente após a assumido a entrada padrão. Curingas podem
compilação do kernel digitando depmod -a ser usados para especificar vários arquivos de
[versão_do_kernel]. uma só vez.

Exemplo: depmod -a Opções


-d, --decompress [arquivo]
❖ MODCONF Descompacta um arquivo.
-f
Força a compactação, compactando até
ATENÇÃO: Este programa permite um mesmo links.
meio mais fácil de configurar a ativação de
-l [arquivo]
módulos e opções através de uma interface
através de menus. Lista o conteúdo de um arquivo compactado
pelo gzip.
Selecione a categoria de módulos através das setas -r
acima e abaixo e pressione enter para selecionar os Compacta diretórios e sub-diretórios.
módulos existentes. Serão pedidas as opções do -c [arquivo]
módulo (como DMA, IRQ, I/O) para que sua Descompacta o arquivo para a saída padrão.
inicialização seja possível, estes parâmetros são -t [arquivo]
específicos de cada módulo e devem ser vistos na Testa o arquivo compactado pelo gzip.
documentação do código fonte do kernel no -[num], --fast, --best
diretório /usr/src/linux/Documentation. Note que Ajustam a taxa de compactação/velocidade da
também existem módulos com auto-detecção mas isto compactação. Quanto melhor a taxa menor é a
deixa o sistema um pouco mais lento, porque ele fará velocidade de compactação e vice-versa. A
uma varredura na faixa de endereços especificados opção --fast permite uma compactação rápida
pelo módulo para achar o dispositivo. As opções são e tamanho do arquivo maior. A opção --best
desnecessárias em alguns tipos de módulos. permite uma melhor compactação e uma
velocidade menor.

Página 31 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

O uso da opção -[número] permite especificar uma acrescenta arquivos ao arquivo compactado.
compactação individualmente usando números entre 1 Deve ser executado no mesmo diretório onde o
(menor compactação) e 9 (melhor compactação). É útil programa zip foi executado anteriormente.
para buscar um bom equilibro entre taxa de -F
compactação/velocidade (especialmente em Repara um arquivo .zip danificado.
computadores muito lentos). -[NUM]
Ajusta a qualidade/velocidade da
Quando um arquivo é compactado pelo gzip, é compactação. Pode ser especificado um
automaticamente acrescentada a extensão .gz ao seu número de 1 a 9. O 1 permite mínima
nome. compactação e máxima velocidade, 9 permite
uma melhor compactação e menor velocidade.
O gzip também reconhece arquivos compactados pelos -i [arquivos]
programas zip, compress, compress -H e pack. As Compacta somente os [arquivos]
permissões de acesso dos arquivos são também especificados.
armazenadas no arquivo compactado. -j
Exemplos: Se especificado, não armazena caminhos de
diretórios.
• gzip -9 texto.txt - Compacta o -m
arquivo texto.txt usando a compactação Apaga os arquivos originais após a
máxima (compare o tamanho do arquivo compactação.
compactado usando o comando ls -la). -T [arquivo]
• gzip -d texto.txt.gz - Descompacta o Procura por erros em um arquivo .zip. Caso
arquivo texto.txt sejam detectados problemas, utilize a opção -F
• gzip -c texto.txt.gz - Descompacta o para corrigi-los.
arquivo texto.txt para a tela -y
• gzip -9 *.txt - Compacta todos os arquivos que Armazena links simbólicos no arquivo .zip. Por
terminam com .txt padrão, os links simbólicos são ignorados
• gzip -t texto.txt.gz - Verifica o durante a compactação.
arquivo texto.txt.gz. -k [arquivo]
Modifica o [arquivo] para ter compatibilidade
total com o pkzip do DOS.
❖ ZIP
-l
Converte saltos de linha UNIX (LF) para o
ATENÇÃO: Utilitário de compactação formato CR LF (usados pelo DOS). Use esta
compatível com pkzip (do DOS) e trabalha opção com arquivos Texto.
com arquivos de extensão .zip. Possui uma
-ll
ótima taxa de compactação e velocidade no
processamento dos arquivos compactados Converte saltos de linha DOS (CR LF) para o
(comparando-se ao gzip). formato UNIX (LF). Use esta opção com
arquivos texto.
zip [opções] [arquivo-destino] [arquivos-origem] -n [extensão]
Não compacta arquivos identificados por
arquivo-destino [extensão]. Ele é armazenado sem
Nome do arquivo compactado que será gerado. compactação no arquivo .zip, muito útil para
arquivos-origem uso com arquivos já compactados.
Arquivos/Diretórios que serão compactados.
Podem ser usados curingas para especificar Caso sejam especificados diversas extensões de
mais de um arquivo de uma só vez. arquivos, elas devem ser separadas por : - Por
exemplo, zip -n .zip:.tgz arquivo.zip *.txt.
opções
-r -q
Compacta arquivos e sub-diretórios. Não mostra mensagens durante a
-e compactação do arquivo.
Permite encriptar o conteúdo de um -u
arquivo .zip através de senha. A senha será Atualiza/adiciona arquivos ao arquivo .zip
pedida no momento da compactação. -X
-f Não armazena detalhes de permissões, UID,
Somente substitui um arquivo compactado GID e datas dos arquivos.
existente dentro do arquivo .zipsomente se a
versão é mais nova que a atual. Não

Página 32 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

-z Descompacta somente arquivos que existam


Permite incluir um comentário no arquivo .zip. no disco e mais novos que os atuais.
Caso o nome de arquivo de destino não termine -l
com .zip, esta extensão será automaticamente Lista os arquivos existentes dentro do
adicionada. Para a descompactação de arquivo .zip.
arquivos .zip no GNU/Linux, é necessário o uso do -M
utilitário unzip. Exemplos: Efetua uma pausa a cada tela de dados durante
o processamento (a mesma função do
zip textos.zip *.txt - Compacta todos os arquivos com a comando more).
extensão .txt para o arquivo textos.zip (compare o -n
tamanho do arquivo compactado digitando ls -la). Nunca substitui arquivos já existentes. Se um
arquivo existe ele é pulado.
zip -r textos.zip /usr/*.txt - Compacta todos os arquivos -o
com a extensão .txt do diretório /usr e sub-diretórios Substitui arquivos existentes sem perguntar.
para o arquivo textos.zip. Tem a função contrária a opção -n.
-P [SENHA]
zip -9 textos.zip * - Compacta todos os arquivos do Permite descompactar arquivos .zip usando a
diretório atual usando a compactação máxima para o [SENHA]. CUIDADO! qualquer usuário
arquivo textos.zip. conectado em seu sistema pode ver a senha
digitada na linha de comando digitada.
zip -T textos.zip - Verifica se o -p
arquivo textos.zip contém erros. Descompacta os arquivos para stdout (saída
padrão) ao invés de criar arquivos. Os nomes
❖ UNZIP dos arquivos não são mostrados (veja a opção
-c).
-q
ATENÇÃO: Descompacta
Não mostra mensagens.
arquivos .zip criados com o programa zip.
Este programa também é compatível com -t
arquivos compactados pelo pkzip do DOS. Verifica o arquivo .zip em busca de erros.
-u
unzip [opções] [arquivo.zip] [arquivos-extrair] [-d Idêntico a opção -f só que também cria arquivos
diretório] que não existem no diretório.
-v
arquivo.zip Mostra mais detalhes sobre o processamento
Nome do arquivo que deseja descompactar. do unzip.
Podem ser usados curingas para especificar -z
mais de um arquivo para ser descompactado. Mostra somente o comentário existente no
arquivo.
arquivos-extrair
Nome dos arquivos (separados por espaço) Por padrão o unzip também descompacta sub-
que serão descompactados do arquivo .zip. diretórios caso o arquivo .zip tenha sido gerado com zip
Caso não seja especificado, é assumido * -r.
(todos os arquivos serão descompactados).
Exemplos:
Se for usado -x arquivos, os arquivos especificados não
serão descompactados. O uso de curingas é permitido. unzip texto.zip - Descompacta o conteúdo do
arquivo texto.zip no diretório atual.
-d diretório
Diretório onde os arquivos serão unzip texto.zip carta.txt - Descompacta somente o
descompactados. Caso não for especificado, arquivo carta.txt do arquivo texto.zip.
os arquivos serão descompactados no diretório
atual. unzip texto.zip -d /tmp/texto - Descompacta o conteúdo
opções do arquivo texto.zip para o diretório /tmp/texto.
-c
Descompacta os arquivos para stdout (saída unzip -l texto.zip - Lista o conteúdo do arquivo texto.zip.
padrão) ao invés de criar arquivos. Os nomes
dos arquivos também são mostrados (veja a unzip -t texto.zip - Verifica o arquivo texto.zip.
opção -p).
-f

Página 33 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

❖ TAR Apaga os arquivos de origem após serem


processados pelo tar.
-R, --record-number
ATENÇÃO: Na verdade o tar não é um
Mostra o número de registros dentro de um
compactador e sim um "arquivador" (ele
junta vários arquivos em um só), mas pode arquivo tar em cada mensagem.
ser usado em conjunto com um compactar --totals
(como o gzip ou zip) para armazena-los Mostra o total de bytes gravados com a opção
compactados. O tar também é muito usado --create.
para cópias de arquivos especiais ou -v
dispositivos do sistema. Mostra os nomes dos arquivos enquanto são
processados.
É comum encontrar arquivos com a -V [NOME]
extensão .tar, .tar.gz, .tgz, .tar.bz2, .tar.Z, .tgZ, o Inclui um [NOME] no arquivo tar.
primeiro é um arquivo normal gerado pelo tar e todos os -W, --verify
outros são arquivos gerados através tar junto com um Tenta verificar o arquivo gerado pelo tarapós
programa de compactação (gzip (.gz), bzip2(.bz2) grava-lo.
e compress (.Z). x
Extrai arquivos gerados pelo tar
tar [opções] [arquivo-destino] [arquivos-origem] -X [ARQUIVO]
Tenta apagar o [ARQUIVO] dentro de um
arquivo-destino arquivo compactado .tar.
É o nome do arquivo de destino. Normalmente -Z
especificado com a extensão .tar caso seja Usa o programa compress durante o
usado somente o arquivamento processamento dos arquivos.
ou .tar.gz/.tgz caso seja usada a compactação -z
(usando a opção -z). Usa o programa gzip durante o
arquivos-origem
Especifica quais arquivos/diretórios serão processamento dos arquivos.
compactados. --use-compress-program [PROGRAMA]
opções Usa o [PROGRAMA] durante o processamento
-c, --create dos arquivos. Ele deve aceitar a opção -d.
Cria um novo arquivo .tar -[0-7][lmh]
-t, --list Especifica a unidade e sua densidade.
Lista o conteúdo de um arquivo .tar
-u, --update A extensão precisa ser especificada no arquivo de
Atualiza arquivos compactados no arquivo .tar destino para a identificação correta:
-f, --file [HOST
]F Arquivos gerados pelo tar precisam ter a extensão .tar
Usa o arquivo especificado para gravação ou o Caso seja usada a opção -j para compactação, a
dispositivo /dev/rmt0. extensão deverá ser .tar.bz2
-j, --bzip2 Caso seja usada a opção -z para compactação, a
Usa o programa bzip2 para processar os extensão deverá ser .tar.gz ou .tgz
arquivos do tar Caso seja usada a opção -Z para a compactação, a
-l, --one-file-system extensão deverá ser .tar.Z ou .tgZ
Não processa arquivos em um sistema de É importante saber qual qual o tipo de compactador
arquivos diferentes de onde o tar foi executado. usado durante a geração do arquivo .tar pois será
-M, --multi-volume necessário especificar a opção apropriada para
Cria/lista/descompacta arquivos em múltiplos descompacta-lo.
volumes. O uso de arquivos em múltiplos
volumes permite que uma grande cópia de Exemplos:
arquivos que não cabe em um disquete, por
exemplo, seja feita em mais de um disquete. tar -cf index.txt.tar index.txt - Cria um arquivo
-o chamado index.txt.tar que armazenará o
Grava o arquivo no formato VT7 ao invés do arquivo index.txt. Você pode notar digitando ls -la que o
ANSI. arquivo index.txt foi somente arquivado (sem
-O, --to-stdout compactação), isto é útil para juntar diversos arquivos
Descompacta arquivos para a saída padrão ao em um só.
invés de gravar em um arquivo.
--remove-files tar -xf index.txt.tar - Desarquiva o
arquivo index.txt criado pelo comando acima.

Página 34 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

tar -czf index.txt.tar.gz index.txt - O mesmo que o -d, --decompress [arquivo]


exemplo de arquivamento anterior, só que agora é Descompacta um arquivo.
usado a opção -z (compactação através do -f
programa gzip). Você agora pode notar digitando ls -la Força a compactação, compactando até
que o arquivo index.txt foi compactado e depois mesmo links.
arquivado no arquivo index.txt.tar.gz (você também -l [arquivo]
pode chama-lo de index.txt.tgz que também identifica Lista o conteúdo de um arquivo compactado
um arquivo .tarcompactado pelo gzip). pelo bzip2.
-r
tar -xzf index.txt.tar.gz - Descompacta e desarquiva o Compacta diretórios e sub-diretórios.
arquivo index.txt.tar.gz criado com o comando acima. -c [arquivo]
Descompacta o arquivo para a saída padrão.
gzip -dc index.tar.gz | tar -xf - - Faz o mesmo que o -t [arquivo]
comando acima só que de uma forma diferente: Testa o arquivo compactado pelo bzip2.
Primeiro descompacta o arquivo index.txt.tar.gz e envia -[num], --fast, --best
a saída do arquivo descompactado para o tar que Ajustam a taxa de compactação/velocidade da
desarquivará o arquivo index.txt. compactação. Quanto melhor a taxa menor é a
velocidade de compactação e vice-versa. A
tar -cjf index.txt.tar.bz2 index.txt - Arquiva o opção --fast permite uma compactação rápida
arquivo index.txt em index.txt.tar.bz2 compactando e tamanho do arquivo maior. A opção --best
através do bzip2 (opção -j). permite uma melhor compactação e uma
velocidade menor.
tar -xjf index.txt.tar.bz2 - Descompacta e desarquiva o
arquivo index.txt.tar.bz2 criado com o comando acima. O uso da opção -[número] permite especificar uma
compactação individualmente usando números entre 1
bzip2 -dc index.txt.tar.bz2 | tar -xf - - Faz o mesmo que (menor compactação) e 9 (melhor compactação). É útil
o comando acima só que de uma forma diferente: para buscar um bom equilibro entre taxa de
Primeiro descompacta o arquivo index.txt.tar.bz2 e compactação/velocidade (especialmente em
envia a saída do arquivo descompactado para o tarque computadores muito lentos). Quando um arquivo é
desarquivará o arquivo index.txt. compactado pelo bzip2, é automaticamente
acrescentada a extensão .bz2 ao seu nome. As
tar -t index.txt.tar - Lista o conteúdo de um arquivo .tar. permissões de acesso dos arquivos são também
tar -tz index.txt.tar.gz - Lista o conteúdo de um armazenadas no arquivo compactado.
arquivo .tar.gz.
Exemplos:
❖ BZIP2 bzip2 -9 texto.txt - Compacta o arquivo texto.txt usando
a compactação máxima (compare o tamanho do
ATENÇÃO: É um novo compactador que arquivo compactado usando o comando ls -la).
vem sendo cada vez mais usado porque
consegue atingir a melhor compactação em bzip2 -d texto.txt.bz2 - Descompacta o arquivo texto.txt
arquivos texto se comparado aos já
bzip2 -c texto.txt.bz2 - Descompacta o
existentes (em consequência sua velocidade
de compactação também é menor; quase arquivo texto.txt para a saída padrão (tela)
duas vezes mais lento que o gzip). bzip2 -9 *.txt - Compacta todos os arquivos que
terminam com .txt
Suas opções são praticamente as mesmas usadas
no gzip e você também pode usa-lo da mesma forma. bzip2 -t texto.txt.bz2 - Verifica o arquivo texto.txt.bz2.
A extensão dos arquivos compactados pelo bzip2 é
a .bz2 ❖ RAR

bzip2 [opções] [arquivos] ATENÇÃO: rar é um compactador


Trabalha com arquivos de extensão .rar e
arquivos permite armazenar arquivos compactados
Especifica quais arquivos serão compactados em vários disquetes (múltiplos volumes). Se
pelo bzip2 . Caso seja usado um -, será trata de um produto comercial, mas decidi
coloca-lo aqui porque possui boas versões
assumido a entrada padrão. Curingas podem Shareware e pode ser muito útil em algumas
ser usados para especificar vários arquivos de situações.
uma só vez.
Opções

Página 35 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

rar [ações] [opções] [arquivo-destino.rar] [arquivos- executar o arquivo e ele será automaticamente
origem] descompactado. Note que este processo
requer que o arquivo default.sfxesteja presente
arquivo-destino.rar no diretório home do usuário. Use o
É o nome do arquivo de destino comando find para localiza-lo em seu sistema.
y
arquivos-origem Assume sim para todas as perguntas
Arquivos que serão compactados. Podem ser r
usados curingas para especificar mais de um Inclui sub-diretórios no arquivo compactado
arquivo. x [ARQUIVO]
ações Processa tudo menos o [ARQUIVO]. Pode ser
a usados curingas
Compacta arquivos v[TAMANHO]
x Cria arquivos com um limite de tamanho. Por
Descompacta arquivos padrão, o tamanho é especificado em bytes,
d mas o número pode ser seguido de k (kilobytes)
Apaga arquivos especificados ou m(megabytes).
t Exemplo: rar a -v1440k ... ou rar a -v10m ...
Verifica o arquivo compactado em busca de p [SENHA]
erros. Inclui senha no arquivo. CUIDADO, pessoas
c conectadas em seu sistema podem capturar a
Inclui comentário no arquivo compactado linha de comando facilmente e descobrir sua
r senha.
Repara um arquivo .rar danificado m [0-5]
Ajusta a taxa de compactação/velocidade de
l compactação. 0 não faz compactação alguma
Lista arquivos armazenados no arquivo (mais rápido) somente armazena os arquivos,
compactado 5 é o nível que usa mais compactação (mais
u lento).
Atualiza arquivos existentes no arquivo ed
compactado. Não inclui diretórios vazios no arquivo
m isnd
Compacta e apaga os arquivos de origem Ativa emissão de sons de alerta pelo programa
(move). ierr
e Envia mensagens de erro para stderr
Descompacta arquivos para o diretório atual inul
p Desativa todas as mensagens
Mostra o conteúdo do arquivo na saída padrão ow
rr Salva o dono e grupo dos arquivos.
Adiciona um registro de verificação no arquivo ol
s Salva links simbólicos no arquivo ao invés do
Converte um arquivo .rar normal em arquivo arquivo físico que o link faz referência.
auto-extráctil. Arquivos auto-extrácteis são mm[f]
úteis para enviar arquivos a pessoas que não Usa um método especial de compactação para
tem o programa rar. Basta executar o arquivo e arquivos multimídia (sons, vídeos, etc). Caso
ele será automaticamente descompactado for usado mmf, força o uso do método multimí-
(usando o sistema operacional que foi criado). dia mesmo que o arquivo compactado não seja
Note que esta opção requer que o deste tipo.
arquivo default.sfx esteja presente no diretório
home do usuário. Use o comando find para Os arquivos gerados pelo rar do GNU/Linux podem ser
localiza-lo em seu sistema. usados em outros sistemas operacionais, basta ter
opções o rarinstalado. Quando é usada a opção -v para a
o criação de múltiplos volumes, a numeração dos
Substitui arquivos já existentes sem perguntar arquivos é feita na
o- forma: arquivo.rar, arquivo.r00, arquivo.r01, etc,
Não substitui arquivos existentes durante a descompactação os arquivos serão pedidos
sfx em ordem. Se você receber a mensagem cannot modify
Cria arquivos auto-extrácteis. Arquivos auto- volume durante a criação de um arquivo .rar,
extrácteis são úteis para enviar arquivos a
pessoas que não tem o programa rar. Basta

Página 36 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

provavelmente o arquivo já existe. Apague o arquivo de pacotes poderosa por qualquer pessoa e tem
existente e tente novamente. dezenas de opções que podem ser usadas em sua
execução ou configuradas no arquivo /etc/apt/apt.conf.
Exemplos: Explicarei aqui como fazer as ações básicas com o apt,
portanto se desejar maiores detalhes sobre suas
rar a texto.rar texto.txt - Compacta o opções, veja a página de manual apt-get.
arquivo texto.txt em um arquivo com o nome texto.rar
❖ DPKG
rar x texto.rar - Descompacta o arquivo texto.rar
ATENÇÃO: O dpkg (Debian Package) é o
rar a -m5 -v1400k textos.rar * - Compacta todos os
programa responsável pelo gerenciamento
arquivos do diretório atual, usando a compactação de pacotes em sistemas Debian.
máxima no arquivo textos.rar. Note que o tamanho
máximo de cada arquivo é 1440 para ser possível
grava-lo em partes para disquetes. Sua operação é feita em modo texto e funciona através
de comandos, assim caso deseje uma ferramenta mais
rar x -v -y textos.rar - Restaura os arquivos em múltiplos amigável para a seleção e instalação de pacotes,
volumes criados com o processo anterior. Todos os prefira o dselect (que é um front-end para o dpkg)
arquivos devem ter sido copiados dos disquetes para o
diretório atual antes de prosseguir. A opção -y é útil para Um nome de pacote tem a forma nome-
não precisar-mos responder yes a toda pergunta que versão_revisão.deb
o rarfizer.
Instalar pacotes
rar t textos.rar - Verifica se o arquivo textos.rar possui Use o comando: dpkg -i [NomedoPacote] (ou --install)
erros. para instalar um pacote em seu sistema.

rar r textos.rar - Repara um arquivo .rardanificado. Removendo pacotes do sistema


Use o comando: dpkg -r NomedoPacote (--remove)
❖ APT para remover um pacote do sistema completamente.

O comando dpkg -r não remove os arquivos de


ATENÇÃO: O apt é sistema de
gerenciamento de pacotes de programas configuração criados pelo programa.
que possui resolução automática de
dependências entre pacotes, método fácil de Removendo completamente um pacote
instalação de pacotes, facilidade de Use o comando: dpkg -P [NomedoPacote|-a] (--purge)
operação, permite atualizar facilmente sua para remover um pacote e todos os diretórios e arquivos
distribuição, etc. de configuração criados. Não é necessário especificar
a revisão do pacote. O comando dpkg --purge pode ser
Ele funciona através de linha de comando sendo usado após uma remoção normal do pacote (usando
bastante fácil de usar. Mesmo assim, existem interfaces dpkg -r).
gráficas para o apt como o synaptic (modo gráfico) e
o aptitude (modo texto) que permitem poderosas Note que o dpkg --purge somente remove arquivos de
manipulações de pacotes sugeridos, etc. configuração conhecidos pelo pacote. Em especial, os
arquivos de configuração criados para cada usuário do
O apt pode utilizar tanto com arquivos locais como sistema devem ser removidos manualmente.
remotos na instalação ou atualização, desta maneira é
possível atualizar toda a sua ❖ LOCATE
distribuição Debianvia ftp ou http com apenas 2
simples comandos!
ATENÇÃO: Localiza uma palavra na
estrutura de arquivos/diretórios do sistema.
É recomendável o uso do método apt no
É útil quando queremos localizar onde um
programa dselect pois ele permite a ordem correta de comando ou programa se encontra (para
instalação de pacotes e checagem e resolução de copia-lo, curiosidade, etc). A pesquisa é feita
dependências, etc. Devido a sua facilidade de em um banco de dados construído com o
operação, o apté o método preferido para os usuários comando updatedb sendo feita a partir do
manipularem pacotes da Debian. diretório raíz / e sub-diretórios. Para fazer
uma consulta com o locate usamos:
O apt é exclusivo da distribuição Debian e distribuições
baseadas nela e tem por objetivo tornar a manipulação locate [expressão]

Página 37 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

A expressão deve ser o nome de um arquivo diretório :* ugoa - Controla que nível de acesso será
ou ambos que serão procurados na estrutura de mudado. Especificam, em ordem, usuário (u),
diretórios do sistema. Como a consulta por um grupo (g), outros (o), todos (a).
programa costuma localizar também sua página de ▪ -= - coloca a permissão, - retira a permissão do
manual, é recomendável usar "pipes" para filtrar a saí- arquivo e = define a permissão exatamente
da do comando. como especificado.
▪ rwx - r permissão de leitura do
Por exemplo, para listar os diretórios que contém o arquivo. wpermissão de gravação. x permissão
nome "cp": locate cp. Agora mostrar somente arquivos de execução (ou acesso a diretórios).
binários, usamos: locate cp|grep bin/
chmod não muda permissões de links simbólicos, as
PERMISSÕES DE ACESSOS permissões devem ser mudadas no arquivo alvo do link.
Também podem ser usados códigos numéricos octais
O Linux é um sistema operacional muito seguro, pois o para a mudança das permissões de acesso a
sistema trabalha com um modo de permissão que arquivos/diretórios.
protege o sistema de arquivos (File System) do acesso
indevido de pessoas ou programas não autorizados. DICA: É possível copiar permissões de acesso do
arquivo/diretório, por exemplo, se o
Comandos utilizados para atribuir permissões de arquivo teste.txt tiver a permissão de acesso r-xr----- e
acesso aos arquivos/diretórios. você digitar chmod o=u, as permissões de acesso dos
outros usuários (o) serão idênticas ao do dono (u).
❖ chmod (modo literal) Então a nova permissão de acesso do
❖ chmod (modo octal) arquivo teste.txt será r-xr-r-x
❖ umask
Exemplos de permissões de acesso:
❖ CHMOD chmod g r *
Permite que todos os usuários que pertençam
ATENÇÃO: Muda a permissão de acesso ao grupo dos arquivos (g) tenham ( )
a um arquivo ou diretório. Com este permissões de leitura (r) em todos os arquivos
comando você pode escolher se usuário ou do diretório atual.
grupo terá permissões para ler, gravar,
executar um arquivo ou arquivos. Sempre chmod o-r teste.txt
que um arquivo é criado, seu dono é o Retira (-) a permissão de leitura (r) do
usuário que o criou e seu grupo é o grupo do
arquivo teste.txt para os outros usuários
usuário (exceto para diretórios configurados
com a permissão de grupo "s", será visto (usuários que não são donos e não pertencem
adiante). ao grupo do arquivo teste.txt).

chmod [opções] [permissões] [diretório/arquivo] chmod uo x teste.txt


Inclui ( ) a permissão de execução do
diretório/arquivo arquivo teste.txt para o dono e outros usuários
Diretório ou arquivo que terá sua permissão do arquivo.
mudada.
opções chmod a x teste.txt
-v, --verbose Inclui ( ) a permissão de execução do
Mostra todos os arquivos que estão sendo arquivo teste.txt para o dono, grupo e outros
processados. usuários.
-f, --silent
Não mostra a maior parte das mensagens de chmod a=rw teste.txt
erro. Define a permissão de todos os usuários
-c, --change exatamente (=) para leitura e gravação do
Semelhante a opção -v, mas só mostra os arquivo teste.txt.
arquivos que tiveram as permissões alteradas. ❖ UMASK
-R, --recursive
Muda permissões de acesso
do diretório/arquivo no diretório atual e sub- ATENÇÃO: A umask (user mask) são 3
diretórios. números que definem as permissões iniciais
do dono, grupo e outros usuários que o
ugoa -=rwxXst
arquivo/diretório receberá quando for criado
ou copiado.

Página 38 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Digite umask sem parâmetros para retornar o valor de ❖ x: Permissão para executar um arquivo, se for
sua umask atual. um arquivo binário ou um script; e se for um
diretório permitir acesso a ele através do
A umask tem efeitos diferentes caso o arquivo que comando cd <diretório>
estiver sendo criado for binário.
As permissões de Leitura, Escrita e Execução definem
o acesso a um arquivo ou diretório pelo usuário
--------------------------------------------- proprietário (dono), grupo e outros usuários do
| | ARQUIVO | DIRETÓRIO | sistema:
| UMASK |----------------------| |
| | Binário | Texto | | ❖ Usuário: É o (dono) ou usuário proprietário do
|------------------------------|------------| arquivo ou criador do arquivo.
| 0 | r-x | rw- | rwx | ❖ Grupo: Usuários que fazem parte do grupo do
| 1 | r-- | rw- | rw- | proprietário.
| 2 | r-x | r-- | r-x | ❖ Outros: Não são os proprietários e nem
| 3 | r-- | r-- | r-- | fazem parte do grupo.
| 4 | --x | -w- | -wx |
| 5 | --- | -w- | -w- | O próximo passo agora é aprender como definir
| 6 | --x | --- | --x | permissões de acesso a um arquivo ou diretório.
| 7 | --- | --- | --- |
--------------------------------------------- Usando o comando “chmod” (modo literal)

Um arquivo texto criado com o comando umask 012; Dar e negar acesso a um arquivo ao Dono, Grupo, e
touch texto.txt receberá as permissões -rw-rw-r--, pois a Outros usuários do sistema pelo modo literal é a
0 (dono) terá permissões rw-, 1 (grupo), terá maneira mais fácil de se entender, pois vamos usar
permissões rw- e 2 (outros usuários) terão permissões letras para identificar os tipos de permissões:
r--. Um arquivo binário copiado com o comando umask
012;cp /bin/ls /tmp/ls receberá as permissões -r-xr-r-x ❖ u: (User) Proprietário do arquivo;
(confira com a tabela acima). ❖ g: (Group) Usuários que fazem parte do
grupo do proprietário;
Por este motivo é preciso um pouco de atenção antes ❖ o: (Others) Outros usuário que não é o dono
de escolher a umask, um valor mal escolhido poderia e nem faz parte do grupo;
causar problemas de acesso a arquivos, diretórios ou ❖ a: (All) Todos, faz referência ao (User, group
programas não sendo executados. O valor padrão da e Others).
umask na maioria das distribuições atuais é 022. A
umask padrão no sistema Debian é a 022 . Vamos utilizar também os símbolos [+] , [-] e [=] para
atribuir uma permissão:
A umask é de grande utilidade para programas que
criam arquivos/diretórios temporários, desta forma ❖ +: Adicionar permissão
pode-se bloquear o acesso de outros usuários desde a ❖ -: Remover permissão
❖ =: Igualar permissão
criação do arquivo, evitando recorrer ao chmod .
Para atribuir a permissão ao arquivo vamos utilizar o
comando chmod:
Tipos de Permissões ❖ chmod [options] mode <arquivo>
No Linux existem três tipos de permissão para interagir Vamos pôr a mão na massa, abaixo vou descrever
os acessos a um arquivo/diretório com o usuário: alguns exemplos de como atribuir permissão pelo
modo literal, depois é só praticar.
ATENÇÃO: Essas permissões são
sempre muito cobradas em questões Linux
nas principais provas de concursos rwx ATENÇÃO: Os principais questionamentos
(read), (write) e (execute) Poder de leitura, sobre alterar as permissões de acesso estão
escrita e execução. em adicionar uma permissão como (u+w)
adicionando o poder de escrita ao usuário ou
❖ r: Permissão de leitura para um arquivo; e (g-r) removendo do grupo o poder de leitura.
permitir listar o conteúdo de um diretório
através do comando ls <diretório>. COMANDO DEFINIÇÃO
❖ w: Permissão de gravação e exclusão para um
arquivo/diretório.

Página 39 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

$ chmod u+w Dá permissão ao usuário Usando o comando “chmod” (modo octal).


arquivo.txt proprietário (u), de escrita
(+w), sobre o arquivo.txt.
Agora nós vamos trabalhar com as permissões de
$ chmod g-x Remove do grupo (g), a
acesso usando o (modo octal). Leonardo, o que danado
arquivo.txt permissão de execução (-
é o modo octal? Vamos lá!!! Inicialmente aparenta ser
x), sobre o arquivo.txt. muito complexo, mas quando você pegar o macete irá
$ chmod o+r Dá permissão aos outros se tornar muito mais fácil, não tenha dúvida disso.
arquivo.txt usuários (o), de leitura (+r),
sobre o arquivo.txt. No Linux é possível trabalhar as permissões de acesso
$ chmod u-w, o+r Remove a permissão do a um arquivo (-) ou diretório (d) através do modo octal.
arquivo.txt usuário proprietário (u), de O modo octal á dá permissão usando um sistema de
escrita (-w), e dá numeração conhecido como (Octal), assim como
permissão aos outros (o) existem os sistemas de numeração Decimal,
de leitura (+r), sobre o Hexadecimal e Binário, por exemplo o Octal é um
arquivo.txt ao mesmo sistema de numeração constituído de 8 caracteres
tempo. numéricos de (0 a 7) por isso Octal.
$ chmod g+r, o+x Dá permissão ao grupo (g),
arquivo.txt de leitura (+r), e dá Par trabalhar as permissões no modo octal não há
permissão aos outros (o) qualquer dificuldade, vou dar uma dica pra vocês, basta
de execução (+x), sobre o apenas lembrar dos valores que corresponde a cada
arquivo.txt ao mesmo permissão (r) leitura, (w) escrita, (x) execução e somar
tempo. os valores correspondentes para definir um tipo de
$ chmod u+w, g-x, Dá permissão ao usuário permissão:
o+r arquivo.txt proprietário (u), de escrita
(+w), remove a permissão
Agora vamos praticar e observar o quanto é tranquilo
do grupo (g) de execução
trabalhar dando permissões através do modo octal para
(-x) e dá permissão aos
arquivos e diretórios:
outros usuários (o), de
leitura (+r) sobre o
Os valores em octal que correspondem as permissões
arquivo.txt ao mesmo
(rwx) são:
tempo.
$ chmod a=rx Dá controle a todos (a)
arquivo.txt “all”, usuário, grupo e PERMISÕES VALORES EXEMPLO
outros, apenas de leitura EM OCTAL EM OCTAL
(r) e execução (x) sobre o
arquivo.txt ao mesmo ❖ r: leitura 4 chmod 777
tempo. arquivo.txt
$ chmod a+rwx Dá permissão total a todos ❖ w: escrita 2 chmod 761
arquivo.txt (a) “all” usuário, grupo e arquivo.txt
outros de leitura (r), escrita ❖ x: 1 chmod 640
(w) e execução (x) sobre o execução arquivo.txt
arquivo.txt ao mesmo
tempo.
Observe que os três valores sequenciais depois do
$ chmod g-rw Remove a permissão do
comando chmod (777) o primeiro valor corresponde ao
arquivo.txt grupo (g) de leitura (-r) e
usuário, segundo ao grupo e o terceiro valor aos outros
de escrita (-w) sobre o usuários, logo cada número corresponde a soma das
arquivo.txt ao mesmo permissões em octal. Quando o valor é 7 significa que
tempo.
é a soma de r+w+x em valores octais (4+2+1) = 7,
$ chmod o=--- Remove qualquer tipo de nesse caso com este valor o usuário terá controle total
arquivo.txt acesso aos outros usuários sobre o arquivo ou diretório.
que não são (dono) usuário
proprietário do arquivo e
nem fazem parte do grupo Exemplo da tabela: “chmod 777 arquivo.txt”
de usuários do proprietário
do arquivo. OBS1: Se cada número na sequência corresponde a
usuário, grupo e outros e os valores são (777)
lembrando que 7 é a soma dos valores em octal
Todos os exemplos acima foram aplicados em um correspondentes a (r,w,x) que seria (4+2+1) quer dizer
arquivo (arquivo.txt), como exemplo, mais é o mesmo
procedimento para um diretório.

Página 40 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

que todos, usuário, grupo e outros, terão controle que os outros usuários têm permissão apenas de leitura
absoluto sobre o arquivo ou diretório. também.
u g o A forma de se trabalhar com os valores em octal
Seria o mesmo que escrever: -rwx rwx rwx correspondente as permissões de acesso aos arquivos
7 7 7 e diretórios no ambiente Linux nunca foi tão fácil.
Vamos entender na prática!!
Veja por exemplo: Vamos alterar as permissões de
Vamos iniciar criando um arquivo com o nome acesso utilizando o modo octal, utilizando o comando
“arquivo.txt” no ambiente Linux para que possamos “chmod 777 arquivo.txt” como mostra a imagem
atribuir as permissões de acesso para ele. Com o abaixo.
comando “touch arquivo.txt” será criado um arquivo
de texto sem formatação como mostra a imagem
abaixo.

Com o comando “ls” podemos listar os arquivos e


diretórios do ambiente Linux, esse comando tem a
mesma função do comando “dir” no Prompt de Observe quais eram as permissões de acesso aos
Comando do Windows. “arquivo.txt”, e como ficará após utilização do
comando “chmod 777 arquivo.txt”.
Utilizando novamente o comando “ls -l” para listar os
arquivos com seus atributos de permissões
encontramos agora o nosso arquivo com “-
rwxrwxrwx”. Agora, usuário proprietário, grupo e
outros usuários possuem controle total sobre o
“arquivo.txt”

Observe na imagem acima que foi criado o nosso


arquivo “arquivo.txt” é necessário agora utilizar o
comando “ls -l” o parâmetro “-l” permite listar os
arquivos e diretórios com as suas permissões de
acesso, que são 10 caracteres que são exibidos no
canto esquerdo da tela como mostra a imagem abaixo.

Exemplo da tabela: “chmod 761 processsos.txt”

OBS2: Neste caso observe que o usuário tem o valor


(7) logo controle de permissão total que seria a soma
de (4+2+1). O grupo tem o valor (6) que seria (4+2) logo
o grupo teria permissão apenas de ler e escrever. Os
outros usuários têm o valor (1) que não seria a soma
das permissões e sim apenas a permissão de
Perceba que as permissões de acesso ao execução.
“arquivo.txt” são: “-rw-r--r--” iniciando com (-) se trata u g o
de um arquivo, (rw-) significa que o usuário proprietário Seria o mesmo que escrever: -rwx rw- --x
tem permissões de ler e escrever, (r--) significa que o 7 6 1
grupo tem permissão apenas de leitura, (r--) significa

Página 41 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Exemplo da tabela: “chmod 640 processsos.txt” Após entender a diferença entre diretório e arquivo,
vamos verificar qual a Umask está definida em nosso
OBS3: Neste caso observe que o usuário tem o valor sistema, veja um exemplo abaixo:
(6) logo, o controle de permissão será apenas de leitura
e escrita correspondente a soma de (4+2). O grupo tem
o valor (4) que seria apenas a permissão de leitura (4).
Os outros usuários têm o valor (0) mostrando que não
teriam permissão de acesso a nada.
u g o
Seria o mesmo que escrever: -rw- r-- ---
6 4 0
Observe que a máscara padrão definida no sistema é
Umask (Máscara Padrão de Usuários) 0022, sendo assim, vamos verificar quais as
permissões esta Umask atribuirá aos diretórios e
Umask pode ser definida como máscara de usuário. arquivos criados no sistema.
Esta função padroniza a criação de diretórios e
arquivos, ou seja, quando você criar um novo diretório Vamos criar um arquivo com o comando “touch
ou arquivo no Linux, ele herdará da Umask definida no arquivo.txt” para saber como ficará as permissões
sistema, suas devidas permissões. para este arquivo sabendo que a Umask padrão é 0022.

A Umask padrão, em quase todas as distribuições


do Linux, é 0022. Para conferir é só digitar o comando
umask sem nenhum parâmetro no terminal do Linux e
pressionar ENTER.

Vamos também criar um diretório com o comando


“mkdir diretorio1” para saber como ficará as
permissões para este diretório sabendo que a Umask
padrão é 0022.

Terminal de comandos (shell) do Ubuntu 18.04


Com o comando umask digitado no terminal no Linux
(interpretador de comandos do Ubuntu), acima observe
que o resultado foi 0022. O primeiro valor (0) Trabalha
com permissões especiais SUID, SGUID e Stick, não
precisamos entrar neste contexto nestas explicações.
Antes de tudo, precisamos entender como o Linux trata Agora sim! Com o comando “ls -l” podemos saber
diretórios e arquivos (porque de fato, existe uma quais os atributos de permissões foram concedidos
diferença entre eles). para o arquivo e para o diretório.
Para o Linux, a permissão máxima para a criação de Observe os atributos de permissões do “diretorio1” e
um diretório é: do “arquivo.txt”.
❖ 777 (rwx-rwx-rwx) (111-111-111)
Já para os arquivos, ele assume que a permissão
máxima para criação de um novo arquivo, é:
❖ 666 (rw-rw-rw-) (110-110-110)
O motivo de o Linux tratar os arquivos diferentemente
dos diretórios, é que a permissão de Execução (--x)
(001), quando aplicada a um arquivo, o torna
executável; sendo assim, o Linux deixa isso por conta
do administrador do sistema, para que esta permissão
apenas seja aplicada a script, ou programas. Já para
um diretório, a permissão (--x) (001), representa você
poder acessa-lo.

Página 42 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins


ISOLADA DE INFORMÁTICA
Assunto sobre a Aula
AULA Nº 10 | S.O. GNU Linux
Prof. Leonardo Martins

Observe, para o “diretorio1”, esta Umask definiu as O Linux vai subtrair a máscara da permissão total de
permissões: “-rwxr-xr-x” criação, veja:

❖ rwx: para o usuário proprietário do diretório ❖ 777 (111-111-111) : Permissão máxima para
(dono). criação de Diretório.
❖ r-x: para o grupo do diretório. ❖ 022 (000-010-010) : Umask Desejada.
❖ r-x: para os outros usuários. ❖ 755 (111-101-101) : Permissão para
diretórios.
❖ 644 (110-100-100) : Permissão para arquivos.

Veja como é simples, é só retirar a permissão de


execução em todos os grupos (dono, grupo e outros),
para obter a permissão padrão para criação de
arquivos.

Como eu sei que o Linux não irá inserir as permissões


de execução nos arquivos, eu subtraio esta
permissão.

Observe, para o “arquivo.txt”, esta Umask definiu as


permissões diferentes:
❖ -rw: para o usuário proprietário do arquivo
(dono).
❖ r--: para o grupo do arquivo.
❖ r--: para outros usuários.

Nesta parte, já fica mais fácil compreender o porquê.


O mesmo foi criado diferente do diretório. Para isto,
veja esta imagem:

PERMISSÕES DE ACESSO NO LINUX


OCTAL BINÁRIO LETRAS
0 000 ---
1 001 --x
2 010 --w
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx

Tomando como base para calcular a Umask, o campo


binário desta imagem. Vejamos como o Linux chegou a
este resultado, as permissões máximas para criação de
um diretório, são:
Lute com determinação, abrace a vida com paixão,
perca com classe e vença com ousadia, porque o
PERMISSÕES DE ACESSO NO LINUX mundo pertence a quem se atreve
Umask em Binário Letras e a vida é muito para ser insignificante.
Octal
Fiquem com Deus
Prof. Leonardo Martins
777 111-111-111 rwx rwx rwx
022 000-010-010 --- -w- -w-
Fiquem todos com Deus!
755 111-101-101 rwx r-x r-x Prof: Leonardo Martins
644 110-100-100 rw- r-- r--

Página 43 de 43 | prof. leonardomartins@hotmail.com | @prof.leonardomartins

Você também pode gostar