Você está na página 1de 109

Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.

com

Fernando Silva

LINUX
PARA QUEM
utiliza qualquer sistema
aprender de forma rápida.

GRÁFICOS INCRÍVEIS
comandos passo a passo
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SUMÁRIO

02 Apresentação/Introdução
07 Sistemas Operacionais
11 ... Licença de Software
12 ... Por que Servidores Preferem Linux ?
13 ... Por que Linux é Importante
15 ... Diferenças Entre Windows e Linux
16 ... Estrutura Diretórios
17 ... Arquitetura Linux
18 ... Distribuições e Derivados
21 ... Interfaces Gráficas
22 ... Como instalar o Debian na VM
30 ... Como Instalar o Kali na VM
32 ... Organização dos Arquivos

35 Sistemas Linux
36 ... Terminal, Usuários e Editor de Texto
38 ... Tipos de Arquivos
39 ... Permissões no Linux
41 ... O que é GRUB ?
42 ... Tabela de Montagem

43 Mão no Linux
44 ... Arquivos e Navegação
47 ... Análise do Sistema em Geral
51 ... Repositórios e Pacotes
54 ... Gerenciamento de Pacotes
56 ... Análise de Redes
64 ... Acesso Remoto SSH
67 ... Contas de Usuário e Grupos
02
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

70 ... Arquivos Compactados


73 ... Análise dos Processos
76 ... Gerenciamento de Serviços
79 ... Análise de Arquivos e Manipulação
83 ... Setores Defeituosos
86 ... Clonagem de Discos
88 ... Automatizando Tarefas e Rotinas

93 Resumindo o Básico
94 ... Precisa Aprender Muito Rapido ?
97 ... Considerações Finais

99 Perguntas/Questões
100 ... Seção 1
102 ... Seção 2
103 ... Seção 3
104 ... Seção 4
106 ... Seção 5
107 ... Respostas/Gabarito

02.1
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ENTENDA ISSO
LOGO NO INÍCIO
O gerenciamento do Linux é feito via conexão remota, ou em salas
especiais onde poucas pessoas tem acesso, muitos pensam que é só
instalar o MINT ou UBUNTU abrir o Firefox e navegar na internet que
já dominaram o Linux, não é bem assim, para gerenciar um servidor
Linux de alta performance a pessoa precisa mais do que isso, se
fosse fácil assim todos conseguiriam, servidores de alta performance
não possuem interfaces gráficas, você deve utilizar comandos. Espero
que você tenha entendido isso, pois muitos dizem que manja de Linux
só por terem instalado o Linux e navegado alguns minutinhos na
internet com o Linux.

Sistema da
empresa X
SSH
INTERNET

conexão e gerenciamento
via ssh
casa/trabalho
qualquer lugar, etc.

Servidor na AWS, AZURE, qualquer


outra plataforma ou local, online 24h
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

EMBARQUE NESSA
VIAJEM SÓ DE IDA
Te garanto que você vai aprender mais do que imagina, e se prepare para
conhecer o personagem que sabe tudo de Linux o JÃOZINHO, prazer em
fazer parte dessa etapa da sua vida.
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

QUEM SOU EU ?

Olá amigos, prazer sou o Fernando Silva tenho 30 anos,


moro em SP e sou empreendedor e hacker. A primeira vez
que utilizei o Linux foi em 2011(Ubuntu) desde então
venho estudando esse sistema incrível que proporciona
milhares de oportunidades no mercado de TI.

Hoje utilizo o perfil no instagram (@linux.gnu) para dar


dicas sobre o Linux e Hacking, hoje esse perfil conta com
mais de 50.000 seguidores, sendo um dos maiores se
tratando desse segmento.

PACOTE DE CURSOS
QUE EU RECOMENDO

05
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ATENÇÃO

ATENÇÃO! Este e-book é protegido por direitos autorais e qualquer forma


de distribuição ou revenda sem a autorização expressa do detentor
desses direitos é uma VIOLAÇÃO GRAVE DA LEI. Se você tentar
distribuir ou revender este e-book sem autorização, estará sujeito a
PESADAS SANÇÕES LEGAIS. Não arrisque sofrer as consequências
devastadoras de uma ação judicial.

Respeite os direitos autorais e a propriedade intelectual. Não tolere a


pirataria digital.

06
Os criadores, como funcionam e suas estruturas
OPERACIONAIS
SISTEMAS
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SISTEMAS OPERACIONAIS
UM POUCO DA HISTÓRIA.

O QUE É UNIX ?

É um sistema operacional (SO) multiusuário e multitarefa projetado para


flexibilidade e adaptabilidade. Desde seu lançamento em 1969, o sistema
operacional Unix e suas ramificações tiveram um efeito profundo na indústria
de computadores e eletrônicos, oferecendo portabilidade, estabilidade e
interoperabilidade em uma variedade infinita de dispositivos.

ESTRUTURA DOS
SISTEMAS OPERACIONAIS
EM GERAL.

O QUE O UNIX FAZ ?


No coração do sistema operacional Unix está o kernel, um programa de
controle mestre que fornece serviços para iniciar e encerrar programas. Ele
também lida com operações de baixo nível, como alocação de memória,
gerenciamento de arquivos, resposta a chamadas do sistema e agendamento
de tarefas ou seja ele gerencia os recursos de hardware e software do
sistema

08
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Sua disponibilidade e portabilidade fizeram com que fosse amplamente


adotado, copiado e modificado por instituições acadêmicas e negócios.
Seu design influenciou autores de outros sistemas.

O Unix se tornou o primeiro sistema operacional que poderia ser melhorado


ou aprimorado por qualquer pessoa, em parte porque foi escrito na
linguagem C e abraçou muitas ideias populares.

O QUE É MINIX

É um sistema operacional Unix-like (semelhante ao UNIX), escrito em C e


assembly, que foi desenvolvido por Andrew S. Tanenbaum em 1987 com
propósitos acadêmicos, para exemplificar os conceitos de seu livro: “Sistemas
Operacionais: projeto e implementação”.

O QUE É LINUX ?

É o KERNEL/Núcleo que é utilizado por diversos eletrônicos em seus sistemas.

É como um motor de um carro, por exemplo, um motor é desenvolvido para o


carro GOL, porém é possível aproveitar esse "tipo" de motor no carro POLO,
basta fazer alguns ajustes.

LANÇAMENTO DO LINUX.
Em 1991 um estudante finlandês de 21 anos chamado Linus Torvalds deu início
em um projeto pessoal com o intuito de criar um novo núcleo de sistema
operacional, ele se baseou no MINIX para criar o LINUX.

Ele escreveu um programa especificamente para o hardware que estava


usando e independente de um sistema operacional porque queria usar as
funções de seu novo computador com um processador 80386.

O surgimento do nome LINUX é uma mistura de Linus + UNIX.


Posteriormente o Kernel Linux Integrou o projeto GNU (1983) de
Richard M. Stallman isso resultou nos Linux de hoje em dia.
09
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

LINUX É UTILIZADO EM …
O kernel é embarcado em diversos dispositivos como roteadores, PABXs,
receptores de televisão, Smart TVs, DVRs, e dispositivos de armazenamento
em rede. Utilizam serviços providos pelo núcleo Linux para implementar as
suas funcionalidades.

10
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

LICENÇA DE SOFTWARE
GPL

LICENCIAMENTO

Ser open source pode ser a principal vantagem do Linux. O Linux está
disponível sob a Licença Pública Geral (GPL) GNU. Isso significa que qualquer
pessoa pode executar, estudar, compartilhar e modificar o software. O código
modificado também pode ser redistribuído e até mesmo vendido, mas isso deve
ser feito sob a mesma licença.

4 LIBERDADES

liberdade nº 0: A liberdade de executar o programa, para qualquer propósito

liberdade nº 1: A liberdade de estudar como o programa funciona e adaptá-lo às


suas necessidades. O acesso ao código-fonte é um pré-requisito para esta
liberdade.

liberdade nº 2: A liberdade de redistribuir cópias de modo que você possa


ajudar ao seu próximo.

liberdade nº 3: A liberdade de aperfeiçoar o programa e liberar os seus


aperfeiçoamentos, de modo que toda a comunidade beneficie deles . O acesso
ao código-fonte é um pré-requisito para esta liberdade.

Idealizada por Richard Matthew


Stallman em 1989

11
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

POR QUE SERVIDORES


PREFEREM LINUX ?

100% dos 500 supercomputadores do mundo.


Considerando 1 milhão dos maiores servidores do mundo, 96,3% rodam linux.
Os 25 principais sites do mundo usam linux.
90% de toda a infraestrutura de nuvem opera em linux.
39,89% dos desenvolvedores profissionais usaram linux em 2022

Estabilidade Eficiência Suporte Técnico e Custos


Não há necessidade de Alta performance em redes Um dos melhores suportes,
reiniciar o sistema em e servidores, consegue através de consultores
caso de atualizações e pode gerenciar facilmente um e distribuidores comerciais.
operar mesmo com falhas grande número de Não precisa pagar pela
de hardware. conexões dos usuários. licença do sistema.

Segurança Multitarefa Flexibilidade


Firewalls eficientes e Roda múltiplos programas Código fonte aberto, os
robustos, permissões simultaneamente. usuários conseguem
personalizadas facilmente, personalizá-lo.
muito pouco vírus.

12
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

VEJA O PORQUÊ É IMPORTANTE


O CONHECIMENTO EM LINUX

MERCADO DE TRABALHO

Profissionais Linux podem trabalhar desde o suporte ao usuário, até


administração de servidores, gerenciar backups, supervisionar instalações e
atualizações de aplicativos, sistemas operacionais, consultoria, e
desenvolvimento de software.

O Linux realmente está em demanda?

A resposta curta é sim! O 9º Relatório Anual de Empregos de Código Aberto da


Linux Foundation Research e da edX descobriu que as habilidades em Linux
eram as segundas mais procuradas, precedidas apenas pelas habilidades em
nuvem. Esta foi de fato a primeira vez nas nove iterações deste relatório que o
Linux não era a habilidade mais procurada, o que pode parecer implicar que ela
está se tornando menos importante.

No entanto, quando você considera que a esmagadora maioria das instâncias


da AWS, GCP e até mesmo do Azure estão executando Linux, fica claro que,
embora a nuvem seja o tópico atual, você não pode realmente entender os
fundamentos da tecnologia de nuvem sem conhecer o Linux. Qualquer pessoa
que trabalhe em desenvolvimento ou arquitetura em nuvem pode dizer que
precisa entrar na linha de comando do Linux com frequência, portanto,
entender como ela funciona é essencial.

O Open Source Jobs Report também descobriu que 88% dos profissionais de
tecnologia estão usando práticas de DevOps. Embora o DevOps seja um
conjunto de princípios e práticas e, portanto, não exija explicitamente o
conhecimento do Linux, o objetivo principal de usar o DevOps é criar e executar
coisas como aplicativos que exigem um sistema operacional, e o Linux é o
sistema operacional mais popular para aplicativos corporativos.

13
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Existem inúmeros outros exemplos de como tecnologias como redes, sistemas


embarcados, IoT, IA, telefones celulares, automóveis e muito mais dependem
do Linux, mas o importante a ser lembrado é que se você espera construir uma
carreira em tecnologia moderna, você terá necessidade de possuir algum
conhecimento de Linux. Então, sim, ele realmente está em alta demanda.

CERTIFICAÇÕES

O órgão responsável pelas certificações Linux é o LPI (Linux Professional


Institute) e existem 4 níveis de certificações:

Linux Essentials
LPIC-1: Linux Server Professional Certification
LPIC-2: Linux Network Professional Certification
LPIC-3: Linux Enterprise Professional Certification

Os profissionais que têm certificação


são mais valorizados .

14
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

DIFERENÇAS ENTRE
WINDOWS E LINUX

WINDOWS

A estrutura já muito conhecida do windows funciona da seguinte maneira, as


pastas são armazenadas dentro do famoso disco C:
Quando você instala um software é criada uma pasta dentro do disco C: com o
nome do software instalado.

LINUX

A estrutura do Linux é bem diferente, os arquivos de um software instalado são


"separados" digamos que cada parte do software fica em um diretório diferente.
Cada diretório tem sua especificidade.

15
16
ESTRUTURA DOS
DIRETÓRIOS
ROOT
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
17
ARQUITETURA
DO LINUX
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

DISTRIBUIÇÕES E
DERIVADOS

DISTROS

Uma distro é um sistema operacional, por exemplo Windows 10. No mundo


Linux é chamado de distro (distribuição), e existem diversas distros, cada
empresa pode criar a sua própria distribuição, como é o caso da redhat,
ubuntu, open suse, etc. E ganhar dinheiro vendendo o sistema, suporte técnico,
treinamento e produtos.

Uma distribuição derivada é baseada no trabalho feito em outra


DISTRIBUIÇÃO, mas que tem seus próprios objetivos, identidade e audiência, e
que foi criada por uma entidade independente. As distribuições derivadas
modificam a "ORIGINAL" para atingir seus próprios objetivos.

18
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

DERIVADOS

Criados para atender uma necessidade específica, uma distribuição derivada já


vem com ferramentas específicas para atender um determinado objetivo.

Por exemplo, o KALI LINUX já vem com diversas ferramentas hacking, assim o
profissional de cibersegurança não perde tempo instalando essas ferramentas
uma a uma. Todo o sistema já vem personalizado e preparado para cumprir as
necessidades de um profissional de cibersegurança.

Muitas distribuições usam o Debian como base, pois o Debian está


consolidado há muito tempo.

19
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

LINHA DO TEMPO

Algumas das distribuições Linux mais conhecidas e influentes.

1991
Linux 0.01: a primeira versão do kernel
do Linux, criada por Linus Torvalds.

1992
Slackware: Uma das primeiras
distribuições Linux e mais conhecida.
1993
Debian: Conhecida pela estabilidade e por
ser a base de outras distribuições
1993 populares.
Red Hat: uma distribuição Linux focada
em servidores e sistemas corporativos.
1994
SUSE: uma distribuição Linux alemã
conhecida por sua facilidade de uso e
suporte empresarial.
1996
Mandrake: atualmente Mandriva fusão
entre a Mandrake e Conectiva.

2003
Fedora: distribuição patrocinada pela Red
Hat e destinada a usuários finais e DEVs.
2004
Ubuntu: foco na usabilidade e facilidade
de instalação Baseada no Debian.
2005
CentOS: baseada no RHEL, fornece uma
alternativa gratuita para sistemas
empresariais.
2011
Mint: conhecida por sua interface
de usuário amigável e facilidade.
2013
Kali: é voltado principalmente para
auditoria e segurança de computadores em
geral.
2019
PopOS: desenvolvido pela própria
fabricante de hardware System76.

20
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

INTERFACES
GRÁFICAS

INTERFACES

No Linux você pode optar por diferentes interfaces gráficas, cada uma com
seu próprio estilo. Algumas podem ser mais leves, isso é útil quando você tem
um hardware muito antigo ou “fraco”. Abaixo as interfaces mais conhecidas e
seus nomes.

21
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

COMO INSTALAR
O DEBIAN NA VM

PASSO 1

Faça o download e instale o VirtualBox;


Faça o download da ISO do Debian;

Nesse site abaixo, você consegue executar comandos do Linux sem a


necessidade de ter instalado, porém é limitado.

https://bellard.org/jslinux/vm.html?
cpu=riscv64&url=https://bellard.org/jslinux/buildroot-riscv64.cfg&mem=256

https://www.virtualbox.org/wiki/Downloads

https://cdimage.debian.org/debian-
cd/current/i386/iso-cd/

22
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

PASSO 2

Preparando a VM;

Será mostrado o passo a passo da preparação da VM, sem muita profundidade,


pois o FOCO aqui não é Virtual Box. Caso você já saiba pode pular essa etapa.

23
24
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
25
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
26
Instalação do Debian.
PASSO 3
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
27
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
28
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

PRONTO

Repare que na PARTE 15 você poderia tem escolhido instalar uma interface
gráfica, entre elas o GNOME, Xfce, KDE, Cinnamon, MATE, LXDE.

29
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

COMO INSTALAR
KALI NA VM

PARTE 1 PARTE 2
Baixe essa imagem, basta digitar Escolha essa opção
no google kali linux download se for 64 bits e virtualbox

PARTE 3 PARTE 4
Você terá esse arquivo salvo Selecione a opção importar
em seu computador dentro do virtualbox.

30
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

PARTE 5 PARTE 6
Selecione o arquivo OVA Iniciar
que você baixou e importe.

PRONTO
LOGIN: kali
SENHA: kali

31
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ORGANIZAÇÃO
DOS ARQUIVOS

TIPOS DE SISTEMAS

O sistema de arquivos é como os arquivos são organizados e recuperados no


disco. Uma partição é um pedaço do disco (HD).

Por que usar sistemas de arquivos diferentes ?


Cada um possui as suas próprias características, como limitações, qualidade,
velocidade, gerenciamento de espaço, entre outras. Isso faz diferença, por
exemplo quando você gerencia um servidor com 100 Terabytes de dados
armazenados.

1. Sistema de arquivos Ext, Ext2, Ext3 e Ext4


O sistema de arquivos Ext significa Extended File System . Foi desenvolvido
principalmente para o MINIX OS . O sistema de arquivos Ext é uma versão mais
antiga e não é mais usado devido a algumas limitações.

Ext2 é o primeiro sistema de arquivos Linux que permite gerenciar dois


terabytes de dados. O Ext3 é desenvolvido através do Ext2; é uma versão
atualizada do Ext2 e contém compatibilidade com versões anteriores. A
principal desvantagem do Ext3 é que ele não suporta servidores porque esse
sistema de arquivos não suporta recuperação de arquivos e instantâneo de
disco.

O sistema de arquivos Ext4 é o sistema de arquivos mais rápido entre todos os


sistemas de arquivos Ext, ext4 é o padrão. É uma opção muito compatível para
os discos SSD (solid-state drive), e é o sistema de arquivos padrão na
distribuição Linux.
32
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

2. Sistema de arquivos JFS


JFS significa Journaled File System e é desenvolvido pela IBM para AIX Unix.
É uma alternativa ao sistema de arquivos Ext. Também pode ser usado no lugar
do Ext4, onde a estabilidade é necessária com poucos recursos. É um sistema de
arquivos útil quando a potência da CPU é limitada.

3. Sistema de Arquivos ReiserFS


ReiserFS é uma alternativa ao sistema de arquivos Ext3. Melhorou o
desempenho e recursos avançados. Anteriormente, o ReiserFS era usado como
o sistema de arquivos padrão no SUSE Linux, mas depois mudou algumas
políticas, então o SUSE retornou ao Ext3.

4. Sistema de arquivos XFS


O sistema de arquivos XFS (Silicon Graphics 1994) foi considerado como JFS de
alta velocidade, desenvolvido para processamento paralelo de E/S. A NASA
ainda usa esse sistema de arquivos com seu servidor de armazenamento alto
(servidor de 300+ Terabytes).

5. Sistema de Arquivos Btrfs


É um sistema de arquivos baseado no princípio cópia em gravação (copy-on-
write). Criado pela oracle em 2007 - 2013 para torna o Linux muito mais
escalável, projetado para solucionar problemas como falta de agrupamento de
discos ou volumes, snapshots e checksums.

6. Swap (Memória Virtual)


É uma partição criada dentro do disco(HD) que trabalha como memória ram
quando necessário.

33
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

1994 2008
Sistema padrão IRIX da SGI.
Desenvolvido para Desenvolvido para Linux
processamento paralelo de E/S e ser o sucessor do ext3.

XFS EXT4

REISER
JFS FS
BTRFS

1991 2001 2013


Desenvolvido pela IBM e Foi o primeiro sistema de Para se tornar o Linux
principal sistema de arquivos arquivos com suporte a muito mais escalável. Cópia em
do AIX (sistema da IBM “journaling” incluído no gravação (copy-on-write)
baseado em UNIX). núcleo Linux 2.4

journaling ou jornal é um sistema que grava


as operações que serão feitas no disco em
uma outra área.
Caso aconteça alguma anormalidade
durante as gravações no hd, o sistema
consegue voltar ao estado anterior de
forma rápida.
O journaling é uma solução que reduz
muito os riscos de falhas e indisponibilidade
de todo o sistema.

34
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SISTEMAS
LINUX
O terminal, as permissões e arquivos de
inicialização do sistema.
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

TERMINAL, USUÁRIOS E
EDITOR DE TEXTO

TERMINAL

É um interpretador de comandos, o terminal permite que você instrua o


computador a efetuar as operações que você deseja (como copiar um arquivo,
ou iniciar a execução de um programa). Cada comando é, em geral, dado em
uma linha digitada no terminal.

No Linux você tem basicamente dois tipos de usuários, o usuário comum que
você criar e o usuário su (administrador/root) que já vem no sistema.

su: É o usuário root do sistema e possui todos privilégios, acesso total ao


sistema, pode acessar, alterar ou deletar qualquer arquivo. Se você é iniciante só
utilize esse usuário em máquinas virtuais para estudos, caso você delete algo
não haverá prejuízo real.

comum: Limitado, sem privilégios.

Você precisa configurar uma senha para o usuário su (root/adm) do sistema,


pode fazer isso com o comando abaixo.

sudo passwd: Sudo é uma permissão de administrador dada a um usuário


comum para executa somente aquele comando, isso evita que administradores
fiquem logados como su em máquinas reais, onde pode haver riscos.

$: usuário comum (sem privilégios)


#: super usuários (root/administrador)

36
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Os símbolos $ e #
identifica os usuários.

NANO

Em Linux se utilza muito editores, porque tudo é um arquivo e as configurações


são editadas nesses arquivos.

Para utilizar esse editor basta digita


nano + nome do arquivo

nano teste.txt: O arquivo teste.txt será aberto para você editar.


nano novo.txt: Cria um novo arquivo chamando novo.txt

CTRL + O : Para salvar

CTRL + X: Para sair

37
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

TIPOS DE ARQUIVOS
NO LINUX

ARQUIVOS

No Linux tudo é arquivo, até os diretórios são tipos de arquivos. Um arquivo


pode ser comum ou especial, na tabela abaixo mostra os tipos de arquivos e suas
identificações.

- Arquivo comum Os mais importantes para quem não


d diretório não possui conhecimento avançado

l link simbólico: Aponta para outro arquivo.


c dispositivo de caracteres: As operações de E/S são feitas de forma sequencial.
b dispositivo de blocos: Operações de E/S são feitas usando blocos de caracteres.
p pipe: Utilizado para comunicação entre processos.
s socket: Utilizado para comunicação entre processos.

O linux não enxerga o


arquivo como txt
porém utilizamos como
forma didática.

No linux não faz


diferença ter ou não a
extensão .txt

veja
Arquivo comum (-)
Diretório (d)
38
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

PERMISSÕES
NO LINUX

PROPRIEDADES

Cada arquivo e diretório no sistema Linux é atribuído a 3 tipos de grupos e


permissões.

Um usuário é o proprietário do arquivo.


Por padrão, a pessoa que criou um arquivo se torna seu proprietário. Portanto,
um usuário às vezes também é chamado de proprietário.

Um grupo de usuários pode conter vários usuários.


Todos os usuários pertencentes a um grupo terão as mesmas permissões de
grupo do Linux para acessar o arquivo.

Qualquer outro usuário que tenha acesso a um arquivo.


Essa pessoa não criou o arquivo nem pertence a um grupo de usuários que
poderia ser o proprietário do arquivo.

COMANDOS

chown fernando logs.txt: Altera o proprietário do arquivo para fernando.


chown fernando:grupo2 logs.txt: Altera o proprietário e o grupo.

chmod 777 teste.txt: Todas as permissões para todos os grupos.


chmod 760 teste.txt: Todas permissões para o dono do arquivo, leitura e
escrita para quem está no grupo, e nenhuma permissão para outros usuários.

39
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

r: read (permissão de leitura) 4 7 é a soma de todos,


w: write (permissão de escrita) 2 dando assim todas
x: execute (permissão de execução) 1 permissões

1 2 3
dono grupo outros permissões do arquivo dividido em
- rwx rwx rwx 3 grupos (comando ls-l)

- tipo de arquivo (comum)


Grupo1 rwx: permissões do dono Todos os grupos
Grupo2 rwx: permissões para usuários do grupo tem todas permissões
Grupo3 rwx: permissões para outros usuários (qualquer um)

Permissões em valores decimais

0: --- (nenhuma permissão)


1: --x (somente execução)
2: -w- (somente escrita)
3: -wx (escrita e execução)
4: r-- (somente leitura)
5: r-x (leitura e execução)
6: rw- (leitura e escrita)
7: rwx (leitura, escrita e execução)

40
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

O QUE É O
GRUB ?

ARQUIVO

cat /boot/grub/grub.cfg ou cat /boot/grub2/grub.cfg

O GRUB é um gerenciador de boot, que pode carregar uma ampla variedade


de sistemas operacionais.

Como o GRUB funciona?


Quando um computador é inicializado, a BIOS transfere o controle para o
primeiro dispositivo de inicialização, que pode ser um HD, Pen drive ou qualquer
outro dispositivo reconhecido pela BIOS.

O primeiro setor em um disco é chamado de Master Boot Record (MBR). Esse


setor tem apenas 512 bytes de comprimento e contém um pequeno pedaço de
código chamado carregador de inicialização.

Por padrão, o código MBR procura a partição marcada como ativa e carrega seu
setor de inicialização na memória e passa o controle para ela.

O GRUB substitui o MBR padrão por seu próprio código.

Ordem da inicialização
BIOS => MBR => GRUB => KERNEL => Sistema Operacional
41
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

TABELA DE
MONTAGEM

ARQUIVO

cat /etc/fstab
É uma tabela (arquivo) que contém as instruções da montagem do próprio
sistema.

O sistema vai ler essa tabela na inicialização, ela contém informações como:
Dispositivo de boot (/dev/sda1)
Ponto de montagem ( / )
Tipo do sistema de arquivos (ext4)

Opções: ro, rw, auto, noauto, user, nouser, exec, noexec, sync, async
Dump: backup ativo 1 backup não ativo 0
Pass: Ordem em qual o FSCK (Programa que verifica e repara) verifica as
partições em busca de possíveis erros e correções. 1 É o dispositivo raiz 2
após o primeiro e 0 para desabilitar.

A leitura dessa tabela não é algo tão fácil, não se preocupe com isso agora.
No momento você só precisa saber que ela existe e que é lida na inicialização.

42
Entendendo e operando comandos e arquivos.
MÃO NO
LINUX
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ARQUIVOS E
NAVEGAÇÃO

COMANDOS

EXIBIÇÃO
ls: Lista os arquivos e diretórios.
ls -l: Lista os arquivos de forma detalhada.
ls -la: Lista todos os arquivos, incluindo os ocultos.

NAVEGAÇÃO
cd /home/Pasta1: Navega entre os diretórios.
cd .. : Um diretório anterior.
cd ~ : Vai para o diretório home do usuário.
pwd: Exibe na tela o diretório atual.

DIRETÓRIOS
mkdir Pasta1: Criar o diretório Pasta1

rm -r Pasta1: Deleta o diretório Pasta1 de forma recursiva.


rm -rf Pasta1: Deleta o diretório de forma recursiva e forçada.

ARQUIVOS
touch teste.txt: Cria um arquivo chamado teste.txt

rm teste.txt: Deleta o arquivo teste.txt


rm -f teste.txt: Força para que o arquivo seja deletado.

cp teste.txt teste.bkp.txt: Cria uma cópia do teste.txt com o nome de


teste.bkp.txt

mv descricao.txt relatorio.txt: Renomeia de descricao.txt para relatorio.txt


mv teste.txt Pasta1/arquivo.txt: Move o arquivo para outro diretório e
renomeia ao mesmo tempo.

44
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, foi contratado por uma pequena


empresa para auxiliar na organização e
gerenciamento de seus arquivos digitais. A
empresa estava com dificuldades para encontrar
documentos importantes em meio a uma bagunça
virtual.

Ao assumir sua função, Jãozinho percebeu que a primeira tarefa era organizar
a pasta principal que continha diversos subdiretórios e arquivos. Empolgado e
motivado, ele decidiu utilizar alguns comandos básicos do Linux para realizar
essa tarefa de forma eficiente.

Utilizando o comando ls, Jãozinho visualizou o conteúdo da pasta principal


e identificou quais subdiretórios precisavam ser criados e quais arquivos estavam
presentes.

Com o comando cd, Jãozinho navegou para o diretório onde os


subdiretórios seriam criados. Ele queria organizar os arquivos por tipo e
departamento, então criou subdiretórios como "Financeiro", "Marketing",
"Recursos Humanos" e assim por diante.

Para garantir que estava no diretório correto, ele usou o comando pwd para
imprimir o diretório de trabalho atual na tela.

Em seguida, utilizando o comando mkdir, Jãozinho criou o


subdiretórios necessários dentro do diretório principal. Por exempo:

45
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Além disso, Jãozinho precisou criar novos arquivos para registrar


informações importantes sobre cada departamento. Para isso, ele utilizou o
comando touch. Por exemplo:

Ao finalizar essa etapa, Jãozinho sentiu uma sensação de autoridade e


satisfação ao ver a estrutura de pastas organizada e os arquivos devidamente
criados. Ele sabia que sua ação tornaria o acesso aos documentos mais fácil e
ágil, contribuindo para a eficiência do trabalho na empresa.

A história de Jãozinho destaca a importância de dominar comandos básicos do


Linux, como ls, cd, pwd, mkdir e touch, pois essas ferramentas simples podem
ser poderosas aliadas na administração de sistemas e na organização de
arquivos, facilitando a vida dos profissionais de T.I e melhorando o fluxo de
trabalho em uma empresa.

46
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ANÁLISE DO
SISTEMA EM GERAL

COMANDOS

Comandos que exibem informações gerais do sistema.

ESPAÇO E PARTIÇÕES
df: Mostra o espaço livre/ocupado de cada partição.
df -h: Tamanho dos arquivos e diretórios em GB.
df -hT /home: Específico.
df -T: Tipo de sistemas de arquivos.

MEMÓRIA RAM
free: Mostra detalhes sobre a utilização da memória RAM do sistema.
free -m: Mostra o resultado em Mbytes.
free -t: Mostra uma linha contendo o total

BARRAMENTOS
lspci: Exibe o que está conectado no barramento PCI.
lsusb: Exibe o que está conectado nas saídas USB.

SISTEMA
uname -s: Exibe informações do Linux.
uname -m: Exibe informações sobre a plataforma (x56_64).
uname -a: Exibe informações do kernel e todas outras.
compgen -c: Exibe todos os comandos do seu sistema.
uptime: Há quanto tempo o sistema está ligado.
date: Data e hora do sistema.
cal: Exibe o calendário.
w: Quais usuários estão logados no sistema.
reboot: Reinicia a máquina.
halt: Desliga a máquina.

47
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, estava trabalhando em uma empresa de


tecnologia que mantinha uma infraestrutura
complexa e crítica. Um dos servidores começou a
apresentar problemas de desempenho, e os
serviços hospedados estavam ficando lentos para
os usuários.

Indeciso sobre a causa do problema, Jãozinho sabia que precisava investigar a


situação rapidamente para evitar possíveis interrupções no funcionamento dos
serviços. Ele decidiu utilizar alguns comandos essenciais para obter
informações detalhadas sobre o sistema e identificar possíveis gargalos.

Primeiro, Jãozinho utilizou o comando df para verificar o espaço em disco


disponível no servidor. Ele queria se certificar de que não havia problemas de
falta de espaço em disco que poderiam estar afetando o desempenho dos
serviços.

A saída mostrou que a partição raiz estava quase cheia devido a logs
excessivos que não foram rotacionados adequadamente. Jãozinho
imediatamente removeu os logs antigos e liberou espaço suficiente para que o
sistema operasse normalmente.

Em seguida, ele utilizou o comando free para verificar o uso de memória do


servidor. Ele queria entender se a lentidão poderia estar relacionada à falta de
memória disponível.

48
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

A saída mostrou que a memória estava quase totalmente utilizada, e a


quantidade de memória livre era muito baixa. Jãozinho identificou um
processo mal otimizado que estava consumindo muita memória RAM e
reiniciou o serviço responsável.

Agora para investigar possíveis problemas de hardware, Jãozinho utilizou os


comandos lspci e lsusb para listar os dispositivos PCI e USB conectados ao
servidor, respectivamente. Nesse caso o servidor tinha algo conectado na saída
USB, o que não deveria, mas para que possamos estudar, tinha um pen drive.

Ao verificar as saídas desses comandos, Jãozinho percebeu que um


dispositivo USB estava apresentando problemas de conexão intermitente, o
que poderia estar causando instabilidade no sistema. Ele desconectou e
reconectou o dispositivo e verificou que o problema foi resolvido.

Para obter informações gerais sobre o sistema, Jãozinho utilizou o comando


uname, que fornece detalhes sobre o kernel e a arquitetura do sistema.
Saída do comando uname -a:

Essas informações eram importantes para garantir que os pacotes e


atualizações aplicados ao servidor fossem compatíveis com a arquitetura do
hardware.

49
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Para verificar há quanto tempo o sistema estava online e sua carga média,
Jãozinho utilizou o comando uptime.

A saída mostrou que o servidor estava ligado há vários dias e a carga média
estava relativamente alta, o que indicava que o servidor estava enfrentando
uma demanda significativa de recursos e talvez precisaria de mais recursos.

A utilização habilidosa dos comandos df, free, lspci, lsusb, uname, uptime e
reboot permitiu que Jãozinho identificasse e resolvesse rapidamente os
problemas de desempenho no servidor.

Sua capacidade de usar essas ferramentas essenciais o tornou um


administrador de sistemas altamente valorizado e confiável na empresa. Com
suas habilidades e conhecimentos, Jãozinho continuou a garantir o bom
funcionamento da infraestrutura da empresa e o sucesso contínuo de seus
serviços críticos.

50
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

REPOSITÓRIOS
E PACOTES

REPOSITÓRIOS

São servidores que armazenam os pacotes, existe alguns tipos de servidores.

PACOTES

São programas, bibliotecas, papéis de parede, ícones, um pacote pode conter


várias coisas. Os pacotes ficam dentro dos repositórios.

Você precisa de ferramentas para gerenciar esses pacotes (software), a que


vamos utilizar agora é o APT (Advanced Packaging Tool).

O arquivo source.list contém uma lista de endereços dos


servidores, que é de onde os pacotes (softwares) vêm.

Esse arquivo ficar em /etc/apt/sources.list

Esse comando exibe o que tem dentro do arquivo.


cat /etc/apt/sources.list

51
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

O arquivo terá esse formato:

deb http://deb.debian.org/debian bullseye main contrib


deb-src http://deb.debian.org/debian bullseye main

deb: Repositório que guarda pacotes binários. (pré compilados).


deb-src: Repositório que guarda pacotes fonte, que são os código
fontes originais do programa.

http://deb.debian.org/debian: Protocolo de acesso (http).


bullseye: Nome da distribuição
main e contrib: Tipos de servidores (repositórios).

Ex 2
Debian strech

Tipos de repositórios
Existem alguns tipos de repositórios que são específicos, e você pode precisar
deles, caso queira um software que não esteja no servidor oficial, isso acontece
por exemplos, em casos de drivers específicos.

52
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

MAIN: Contém todos os pacotes que estão completamente de acordo


com o Debian Free Software Guilines, é o repositório oficial do
Debian.

CONTRIB: Software livre que segue DFSG (Debian Free Software


Guidelines) mas depende de software em non-free.

NON-FREE: Contém programas proprietários de código fechado.


Todo tipo de software não livre que não segue o DFSG (Debian Free
Software Guidelines)

UPDATES: Esse repositório recebe as atualizações de pacotes, com


correções e melhorias.

BACKPORTS: O repositório backports oferece “pacotes backports”. O termo


refere-se a um pacote de algum software recente, que foi recompilado para uma
distribuição mais velha, geralmente para Stable.

SECURITY: As atualizações de segurança não são hospedadas na rede habitual


de espelhos do Debian, mas em security.debian.org.

PROPOSED-UPDATES: depois de publicada, a distribuição stable é atualizada


em aproximadamente de dois em dois meses. o repositório atualizações-
propostas é onde as atualizações esperadas são preparadas (sob a supervisão
dos gerentes de versão estável).

DEBIAN MULTIMEDIA: Fornece pacotes para fins de edição de vídeo, imagem


e codecs, entre outros.

Vamos supor que você precise adicionar um novo servidor(repositório) poi


esse outro repositório tem outros tipos de softwares que você precisa.

Então após você editar o arquivo sources.list é necessário atualizar a lista, com o
comando apt update.

53
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

GERENCIAMENTO
DE PACOTES

COMANDOS APT

O apt (Advanced Packaging Tool) é uma ferramenta para gerenciar pacotes.

apt update: Atualiza a lista de pacotes disponíveis.


apt upgrade: Atualiza todos os pacotes/softwares do seu sistema.
apt dist-upgrade: Atualiza a distro (sistema operacional)

apt install vim: Instalar um software chamado vim (editor).


apt remove vim: Remove o pacote.

apt: autoclean: Remove os pacotes que não existem mais, e deixam “rastros”.
apt autoremove: Apaga pacotes abandonados.

54
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

COMANDOS DPKG

Gerenciando pacotes com DPKG

O dpkg é o comando básico para lidar com pacotes Debian no sistema. Se você
tem pacotes .deb, é com o dpkg que você instala ou analisa seu conteúdo. Mas
este programa tem apenas uma visão parcial do universo, ele sabe o que está
instalado no sistema, e o que for dado na linha de comando, mas não sabe nada
dos outros pacotes disponíveis.

Assim, ele vai falhar se uma dependência não for satisfeita, um software pode
depender de outro pacote para seu funcionamento completo.

Ferramentas como o apt, ao contrário, criará uma lista de dependências para


instalar tudo o mais automaticamente possível.

dpkg deve ser vista como uma ferramenta de sistema (nos bastidores),e apt
como uma ferramenta mais próxima do usuário, que supera as limitações das
antigas.

Estas ferramentas trabalham juntas, cada uma com suas particularidades,


adequadas para tarefas específicas.

dpkg -i NomePacote.deb: Instalar um Pacote já baixado na máquina.


dpkg -P NomePacote.deb: Para remover completamente um pacote

dpkg -S Arquivo: Qual pacote instalou o arquivo.


dpkg -L Pacote.deb: Lista os arquivos instalados pelo pacote.

dpkg --contens Pacote.deb: Exibe o conteúdo do pacote


dpkg -l Pacote.deb: Estado do Pacote (Instalação/Problemas).

55
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ANÁLISE DE
REDES

SERVIDOR EM REDE

Imagine que você implementou um servidor na entrada da rede da empresa,


esse servidor está rodando um Linux com firewall, e esse servidor possui uma
placa de rede com 4 entradas de redes, conhecidas com interface de redes,
cada uma tem uma identificação própria, por exemplo eth0, eth1 ou enp0s3,
etc.

Interface eth0
Interface eth1
Interface eth2
Interface eth3

eth3
eth2

Ex: Servidor faz a


filtragem dos dados e
permissões de acessos.

56
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ARQUIVOS
ANÁLISEpessoais,
Dentro do linux, seja em servidores ou computadores DE estou dizendo o
REDES
linux com um todo, o sistema linux possui alguns arquivos "principais" de
configuração de redes, eu vou te mostrar eles agora, você se lembra de como é
a estrutura do linux e seus diretórios, não muito né ? Sem problemas vou deixar
um lembrete aqui para você não voltar lá no início.

Lembrou ?
Então é dentro do diretório /etc onde estão localizados esses arquivos de
configuração de redes do linux, isso vale para quase todos os sistema linux, é
um padrão você encontrar esses arquivos dentro desse diretório, não "importa"
a distro que você esteja utilizando.

Recomendo que utilize o comando cat em todos esses arquivos e visualize


você mesmo, isso vai te ajudar a compreender toda a estrutura muito mais
rápido.

Por exemplo
/etc/network/interfaces

57
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

/etc/hosts: Mapeia nomes de host para endereços IP. É usado para


resolver nomes de host localmente antes de consultar um servidor DNS.

/etc/hostname: Armazena o nome do host do sistema.

/etc/resolv.conf: Define os servidores DNS que o sistema usará para


resolver nomes de domínio em endereços IP.

/etc/network/interfaces (ou /etc/sysconfig/network-scripts/ifcfg


<interface> em algumas distribuições): Configura as interfaces de rede,
incluindo endereços IP, máscaras de sub-rede, gateways e outras configurações.

/etc/hosts.allow e /etc/hosts.deny: Controlam o acesso a serviços de rede


com base nos endereços IP ou nomes de host dos clientes.

/etc/services: Lista os serviços e portas de rede associadas a eles, usados


para fazer a correspondência de nomes de serviços a números de porta.

/etc/ssh/sshd_config: Configuração do servidor SSH, controlando as


opções de autenticação, permissões de usuários e outras configurações
relacionadas ao SSH.

/proc/net: Diretório virtual que contém informações sobre o estado da rede,


conexões, estatísticas e outras informações do kernel relacionadas à rede.

Dentre desses vamos focar no /etc/network/interfaces que é onde se faz a


configuração das interfaces de redes, como por exemplo adicionar um IP fixo
ou em modo DHCP (IP automático e "aleatório"). Para isso basta acrescentar as
linhas da página abaixo no arquivo, Modo estático e/ou Modo DHCP.

58
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Você poderá editar o arquivo (nano /etc/network/interfaces) para


realizar as configurações de redes nas interfaces específicas.
Modo estático Modo DHCP
static dhcp
iface eth2 inet static auto eth2
address 192.168.1.10 iface eth2 inet dhcp
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

COMANDOS

BÁSICO
ping 192.168.1.10: Verificar se um host está ativo.
hostname: Exibe qual é o nome da sua máquina na rede.
arp -a: Exibe a tabela ARP (É uma tabela que armazena os IPs e MACs de
computadores que entram em contato com você).

IFCONFIG (Pacote Net-Tools) - ANTIGO PORÉM MUITO UTILIZADO


ifconfig: Exibe o seu endereço IP e outras informações da interface de rede.
ifconfig eth0: Status da interface de rede.
ifconfig eth0 down: Desabilitando interface de rede.
ifconfig eth0 up: Habilitando a interface de rede.
ifconfig eth0 192.168.1.15 netmask 255.255.255.0: Altera o IP da interface
de rede.

IP (Pacote iproute2) - SUBSTITUTO DO IFCONFIG


ip link show: Exibe todas as interfaces de rede.
ip link set up eth1: Habilita interface de rede.
ip link set down eth1: Desabilita interface de rede.
ip route show: Exibe a tabela de roteamento.

ip a show eth0: informações de uma interface de rede específica.


ip -s link show: Mostrar informações detalhadas de todas as interfaces de rede.
ip -4 a: Mostrar apenas os endereços IPv4 .
ip a show up: informações de interfaces que estão atualmente ativas.
ip a show down: informações de interfaces que estão atualmente inativas.
59
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

TRACEROUTE - RASTREIA A ROTA DE PACOTES


traceroute www.google.com: Rastreando a rota para um site específico.
traceroute -T www.example.com: Rastreando a rota usando pacotes TCP SYN.
traceroute -n www.example.com: Exibindo os endereços IP numericamente.
traceroute -I www.google.com: Rastreando a rota usando pacotes ICMP
(padrão) em vez de pacotes UDP.

WI-FI
iw dev: informações sobre todas as interfaces sem fio disponíveis.
iw dev wlan0 info: informações detalhadas sobre uma interface específica.
iw dev wlan0 station dump: Clientes conectados a um ponto de acesso.
iw dev wlan0 scan: Mostra os pontos de acesso (SSIDs) disponíveis.

USUÁRIOS
who: Mostra quem está atualmente conectado no computador.
who -b: Mostra o horário do último boot do sistema.
who -q: Mostra o total de usuários conectados aos terminais.

BÁSICO 2
route: Exibe a tabela de roteamento.
host www.google.com: Descobre o endereço IP de um site.
wget --recursive www.NomeSite.com: Baixa um site inteiro.

JÃOZINHO NINJA

jãozinho, recebeu um chamado urgente para


resolver um problema de conectividade em uma
empresa de grande porte. Os funcionários
relataram dificuldades em acessar a internet e os
recursos da rede local. Jãozinho, motivado a
resolver a situação rapidamente, correu para a sala
de servidores para investigar o que estava
acontecendo.
60
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Ao chegar lá, Jãozinho começou sua análise usando o comando ping para
testar a conectividade com a internet. Ele enviou pacotes ICMP para um
servidor externo e recebeu respostas. Isso significava que a conexão com a
internet estava ativa, mas o problema poderia estar em outros lugares.

Em seguida, ele usou o comando hostname para verificar o nome do servidor


e confirmou que estava correto, sem nenhum problema na resolução de
nomes.

Desconfiando que poderia ser um problema com a tabela ARP, Jãozinho usou
o comando arp -a para visualizar a tabela de resolução de endereços IP para
endereços MAC. Ele notou que havia algumas entradas suspeitas e resolveu
limpar a tabela ARP usando arp -d.

61
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Jãozinho, então, utilizou o comando ifconfig para verificar o estado das


interfaces de rede do servidor. Ele notou que havia uma interface com erros
de colisão e descobriu que um cabo de rede estava danificado. Ele
rapidamente substituiu o cabo e resolveu o problema na interface.

Com o comando traceroute para rastrear a rota até um servidor externo e


identificou um ponto intermediário com alta latência. Ele entrou em contato
com o provedor de internet para investigar o problema e conseguiu resolvê-lo

Para garantir que a rede estava estável, Jãozinho usou o comando iw dev para
verificar a configuração das interfaces sem fio.

62
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Ele também usou o comando who para verificar quais usuários estavam
conectados ao servidor e se havia alguma sessão aberta suspeita.

Por fim, Jãozinho usou o comando route para verificar as tabelas de


roteamento e garantir que as rotas estavam configuradas corretamente para
direcionar o tráfego de rede de forma eficiente.

Com suas habilidades e conhecimentos em diversos comandos, Jãozinho


conseguiu resolver o problema de conectividade da empresa e restabelecer a
estabilidade da rede. Seu desempenho habilidoso e eficiente o tornou uma
autoridade na equipe de T.I, ganhando o respeito e admiração de seus
colegas.

63
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ACESSO REMOTO
SSH

SSH

Com o ssh você consegue fazer uma conexão remotamente e gerenciar os


servidores remotamente.

É extremamente importante você aprender os comandos do Linux, em


ambientes corporativos os servidores não possuem interface gráficas, teclados,
mouses e monitores, tudo é feito remotamente. Porém caso queira você até
consegue rodar uma interface gráfica remotamente.

Um servidor tem que ter somente o necessário para executar seu objetivo com
segurança.

COMANDOS

apt install openssh-client: Instalação no client.


apt install openss-server: Instalação no servidor.
ssh user@192.168.0.1: Nome do usuário e endereço IP do servidor.
ssh -l root@IP-Servidor: Conectar como usuário root.
/etc/ssh/sshd_config: Arquivo de configuração do ssh (importante).

site
SSH sistema
INTERNET
etc.
conexão e gerenciamento
via ssh
casa/trabalho
qualquer lugar, etc.

64
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SSHD_CONFIG

Arquivo de configuração do SSH localizado no diretório /etc. O caminho


completo desse arquivo de configuração é /etc/ssh/sshd_config veja o print
abaixo, remova o comentário (#) da seguinte linha e faça a alteração para
apagando prohibit-password e colocando yes ou escreva uma nova linha
baixo ...

# PermitRootLogin prohibit-password
PermitRootLogin yes

nano /etc/ssh/sshd_config

# Hashtag significa que a linha


toda está como comentário

Após a alteração do arquivo, reinicie o serviço com o seguinte comando:


# systemctl restart sshd

Essa alteração permite que você faça conexão via ssh com o usuário root do
sistema, ou seja o usuário mestre.

ip servidor

Agora utilizando o PuTTY no


Windows você consegue acesso
como usuário root no seu servidor.

65
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, trabalhava em uma empresa de


tecnologia que possuía um servidor de alta
performance essencial para a execução de suas
aplicações críticas. Esse servidor era localizado em
um data center distante e configurado para ser
SSH acessado remotamente usando o protocolo SSH.

Certo dia, a equipe de desenvolvimento notou um aumento no tráfego do


servidor e relatou alguns problemas de desempenho. Eles suspeitavam que
um processo mal configurado estava sobrecarregando o servidor.

O sentimento de motivação e responsabilidade tomou conta de Jãozinho


enquanto ele assumia a missão de investigar e resolver o problema.

Para acessar o servidor de alta performance remotamente, Jãozinho utilizou o


comando SSH a partir de seu próprio computador, estabelecendo uma conexão
segura através da rede. Ele digitou o seguinte comando no terminal:

Ao fazer isso, o servidor solicitou sua senha para autenticação. Jãozinho


digitou sua senha com segurança e, após a autenticação bem-sucedida, ele
obteve acesso à linha de comando do servidor remoto.

Agora com acesso total ao servidor de alta performance, Jãozinho começou a


investigar a situação. Ele utilizou comandos como top e htop para verificar os
processos em execução e seus respectivos consumos de recursos.

Analisando as informações fornecidas por esses comandos, Jãozinho identificou


um processo que estava consumindo uma quantidade excessiva de recursos da
CPU e tomou as devidas providências. Essa história ilustra como a conexão via
SSH é extremamente importante para realizar diagnósticos, manutenções em
servidores de alta performance e garantir a disponibilidade de serviços.
66
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

CONTAS DE USUÁRIOS
E GRUPOS

ARQUIVOS

cat /etc/passwd: Exibir todos usuários do sistema.


cat /etc/group: Exibe os grupos.

COMANDOS

USUÁRIOS
useradd fernando: Cria um novo usuário chamando fernando.
userdel fernando: Deleta uma conta de usuário.
passwd fernando: Define senha para o usuário.

SENHAS
passwd NomeUsuário: Muda a senha.
passwd -i NomeUsuárioMínimo de dias para a senha ser alterada.
passwd -l NomeUsuário: Bloqueia a conta do usuário.
passwd -u NomeUsuário: Desbloqueia a conta de um usuário.
passwd -x NomeUsuário: Número de dias que a senha poderá ser utilizada.

GRUPOS
groupadd alunos: Cria um novo grupo chamado alunos.
groupdell alunos: Deleta o grupo.
groupmod -n alunos sala1: Renomeia o grupo de alunos para sala1.

67
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, é um administrador de sistemas, e foi


designado a configurar uma nova estação de
trabalho em uma empresa de tecnologia. A
empresa estava crescendo rapidamente, e um
novo funcionário precisava ser adicionado ao
sistema.

Sentindo-se motivado a fazer um ótimo trabalho, Jãozinho sabia que teria


que utilizar comandos importantes para adicionar o novo usuário ao
sistema e configurar suas permissões corretamente.

Primeiro, Jãozinho usou o comando groupadd para criar um novo


grupo chamado "engenharia". O novo funcionário faria parte do
departamento de engenharia, e Jãozinho queria garantir que ele tivesse
acesso apenas aos recursos relevantes.

Em seguida, ele utilizou o comando useradd para criar o novo usuário,


atribuindo-o ao grupo "engenharia" que acabara de criar. Por exemplo:

O parâmetro -m criou o diretório home para o novo usuário, e o -g


especificou o grupo primário do usuário.

68
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Com o usuário criado, Jãozinho precisava definir a senha para o novo


funcionário. Para isso, usou o comando passwd, permitindo que o
funcionário configurasse sua senha de acesso.

No entanto, após alguns dias, Jãozinho recebeu uma solicitação da


gerência para modificar as permissões do grupo "engenharia". Eles
precisavam conceder acesso a um diretório específico que continha
arquivos compartilhados.

Utilizando o comando groupmod, Jãozinho adicionou o novo grupo


"engenharia" à lista de grupos que tinham acesso ao diretório
compartilhado:

O parâmetro -A adicionou o grupo "engenharia" à lista existente de grupos


com acesso.

Durante todo o processo, Jãozinho também foi cuidadoso em verificar os


arquivos /etc/passwd e /etc/group, que contêm informações dos usuários
e grupos do sistema, garantindo que tudo estivesse corretamente
configurado.

No final, graças à habilidade e conhecimento de Jãozinho na utilização dos


comandos useradd, passwd, groupadd, groupmod, e da edição dos
arquivos /etc/passwd e /etc/group, o novo funcionário foi adicionado ao
sistema com segurança e com as permissões de acesso corretamente
configuradas. O trabalho cuidadoso de Jãozinho contribuiu para a eficiência
e segurança do ambiente de trabalho na empresa de tecnologia.

69
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ARQUIVOS
COMPACTADOS

COMANDOS

O comando tar compactar e descompacta arquivos e diretórios, isso é útil para


backups ou quando você precisa transferir arquivos e diretórios via ssh e precisa
diminuir o tamanho do arquivo.

tar -cvzf Arquivos.tar.gz /home: Compressão do diretório home com gz


tar -cvjf Arquivos.tar.bz2 /home: Compressão do diretório home com bz2

tar -xvf Arquivos.tar.gz: Descompactado .gz


tar -xvf Arquivos.tar.bz2: Descompactado .bz2

tar -tvf Arquivos.tar.gz: Listar conteúdos do arquivo compactado .gz


tar -tvf Arquivos.tar.bz2: Listar conteúdos do arquivo compactado .bz2

OPÇÕES

c: Cria novo arquivo


z: Compressão .gzip + Rápido compressão menor
j: Compressão .bz2 + Demorado compressão maior

v: Exibe o processo
f: Nome do arquivo
x: Extrair

70
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, recebeu a tarefa de fazer backup de


uma grande quantidade de arquivos em um
servidor de produção. Os arquivos continham
dados críticos da empresa, e era essencial garantir a
integridade e segurança dessas informações.

Para realizar o backup, Jãozinho decidiu usar o comando tar com a opção gz,
que permite compactar os arquivos em um único arquivo tar e, em seguida,
comprimir o arquivo tar usando o algoritmo de compressão gzip.

Primeiro, Jãozinho navegou (comando cd) até o diretório que continha os


arquivos que precisavam ser copiados e fez uma listagem dos arquivos
(comando ls) para confirmar o conteúdo que seria incluído no backup.

Em seguida, Jãozinho usou o comando tar com a opção czvf para criar um
arquivo tar e comprimi-lo usando gzip. Ele redirecionou a saída para um
arquivo chamado "backup.tar.gz" para que pudesse ser facilmente identificado
como o arquivo de backup.

O processo de compactação levou alguns minutos, mas ao final, o arquivo


"backup.tar.gz" foi criado com sucesso no diretório atual. Esse arquivo continha
todos os arquivos e pastas que Jãozinho selecionou e estava pronto para ser
transferido para um local seguro para armazenamento.
71
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

O comando tar com a opção gz foi uma solução eficiente para fazer o backup
dos arquivos críticos da empresa. A utilização do gzip permitiu reduzir o
tamanho do arquivo de backup, economizando espaço de armazenamento e
facilitando a transferência para dispositivos externos ou servidores remotos.

Jãozinho tinha agora a tranquilidade de que os dados importantes da empresa


estavam seguros em um arquivo compactado e pronto para serem
restaurados, caso fosse necessário. Sua habilidade em utilizar comandos
como tar com a opção gz demonstrou sua competência como administrador
de sistemas e sua capacidade de garantir a segurança e a integridade dos
dados críticos da empresa.

72
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ANÁLISE DOS
PROCESSOS

COMANDOS

Processos é uma instância de um programa, em alguns casos um processo


trava e você precisa matar ele ou descobrir quanto de CPU ela está consumindo.

Daemon: Um processo/programa que roda em segundo plano.

Processo zombie: Processo que terminou a execução,


porém ainda se encontra na tabela de processos.

ps: Processo ativos no momento.


ps aux: Processos ativos de forma detalhada.

kill pid: Mata o processo pid (ID do processo).


killall proc: Mata todo os processos com o nome proc.

ps -u fernando: Processo de um usuário específico.


ps -aef -r: Processos que mais consomem CPU em ordem.
ps -aef -m: Processos que mais consomem memória em ordem.
pstree: Lista os processos em formato de árvore e relacionamento entre
dependências.

top: Praticamente a mesma coisa que o comando ps.


top -T: Ordena processos de acordo com o tempo de execução.

73
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, foi chamado para resolver um problema


em um servidor de produção de uma empresa de
e-commerce. Os usuários estavam relatando que o
sistema estava lento e algumas páginas estavam
ficando inacessíveis.

Ao verificar o servidor, Jãozinho percebeu que alguns processos estavam


consumindo uma quantidade anormal de recursos da CPU e da memória. Ele
decidiu usar os comandos ps, kill pid e top para investigar e resolver o problema.

Primeiro, Jãozinho usou o comando ps para listar os processos em execução no


servidor.

Ao analisar a saída, Jãozinho percebeu que o processo com PID 1234,


relacionado ao interpretador PHP, estava consumindo 90% da CPU e uma
quantidade significativa de memória.

Como esse processo estava causando um gargalo no servidor, Jãozinho decidiu


interrompê-lo usando o comando kill e o PID do processo.

74
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Após interromper o processo, Jãozinho monitorou novamente os processos


em execução usando o comando top para garantir que o processo foi
efetivamente encerrado e que o consumo de recursos voltou ao normal.

Com o processo mal otimizado interrompido, o servidor voltou a operar


normalmente, e os serviços ficaram mais responsivos. Os usuários relataram
que a lentidão havia sido resolvida.

A habilidade de Jãozinho em usar os comandos ps, kill pid e top foi essencial
para diagnosticar e resolver o problema rapidamente, evitando impactos
significativos no funcionamento do sistema e garantindo a satisfação dos
usuários da empresa.

Sua experiência como administrador de sistemas e sua capacidade de usar


efetivamente essas ferramentas o tornaram um profissional altamente
valorizado e confiável na empresa.

75
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

GERENCIAMENTO
DOS SERVIÇOS

SERVIÇOS

Serviços são programas que rodam em segundo plano e que executam tarefas
específicas, como por exemplo o APACHE, que "transforma" a máquina em um
servidor WEB, outro exemplo o SAMBA4 que "transforma" a máquina em um
servidor de arquivos.

Um profissional em Linux deve usar esses serviços e comandos para gerenciar e


manter servidores e sistemas e execução no dia a dia.

O servidor WEB está com problemas (OFF), o profissional em Linux então vai
fazer uma inspeção para verificar e resolver o problema, como ?

Ele vai usar os comandos abaixo para descobrir os status dos serviços, para ativar,
desativar, etc.

COMANDOS

systemctl start apache2: Inicia um serviço.


systemctl stop apache2: Para um serviço.
systemctl restart apache2: Reiniciar o serviço.

systemctl status apache2: Estado de um serviço, ativou ou não.


systemctl enable apache2: Inicia o serviço no Boot.
systemctl disable apache2: Remove o serviço do Boot.
systemctl list-units --type=service: Lista todos os serviços em execução.

76
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, foi designado para realizar a manutenção


em um servidor de produção crítico de uma
empresa de hospedagem de sites. Esse servidor
hospedava dezenas de sites importantes, e
qualquer interrupção poderia causar prejuízos
significativos aos clientes da empresa.

Ao verificar o servidor, Jãozinho percebeu que alguns serviços estavam


apresentando problemas e precisavam ser reiniciados. Ele decidiu usar o
comando systemctl para gerenciar esses serviços de forma eficiente e segura.

Primeiro, Jãozinho usou o comando systemctl list-units --type=service para


listar todos os serviços em execução no servidor.

Ao analisar a saída, Jãozinho identificou que o serviço do Apache, responsável


pelo servidor web, estava ativo e em execução normalmente. No entanto, o
serviço de e-mail não estava em estado ativo.

Para reiniciar o serviço de e-mail, Jãozinho usou o comando systemctl restart


seguido do nome do serviço.

77
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

O comando não retornou nenhuma mensagem, o que indicou que o reinício


do serviço foi bem-sucedido.

Em seguida, Jãozinho precisou verificar o status do serviço de banco de


dados MySQL para garantir que ele estivesse funcionando corretamente,
então utilizou o comando systemctl status mysql.service.

A saída mostrou que o serviço do MySQL estava em execução normal e


funcionando corretamente.

Por fim, Jãozinho precisou ativar o serviço de backup agendado que estava
desativado para garantir a proteção dos dados dos clientes.

O comando não retornou nenhuma mensagem, o que indicou que o serviço de


backup foi ativado com sucesso.

A habilidade de Jãozinho em usar o comando systemctl para gerenciar os


serviços do servidor permitiu que ele solucionasse rapidamente os
problemas e mantivesse o servidor em pleno funcionamento. Sua experiência
como administrador de sistemas e sua capacidade de usar efetivamente o
systemctl o tornaram um profissional altamente confiável e valorizado na
empresa de hospedagem de sites.
78
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ANÁLISE DE ARQUIVOS
E MANIPULAÇÃO DE "TEXTO"

COMANDOS

cat sources.list: Visualiza o conteúdo de um arquivo.

cat sources.list | grep kali: Procura a palavra chave ‘kali’ no arquivo. É muito
importante você saber utilizar esse filtro, no linux lidamos com arquivos
diariamente, fazendo configurações editando os arquivos, exemplo, vamos
supor que você está em um arquivo de 3.000 caracteres como você encontra
um determinado "argumento" porta ou IP ? com o grep !

INÍCIO >
cat teste1.txt > teste2.txt: Lê o conteúdo do teste1.txt e insere os dados
no início do arquivo teste2.txt

FIM >>
cat teste1.txt >> teste2.txt: Lê o conteúdo do arquivo teste1.txt e insere
os dados no fim do arquivo teste2.txt

head -10 texto.txt: Exibe somente as 10 primeiras linhas do arquivo.


tail -10 texto.txt: Exibe somente as 10 últimas linhas.
wc texto.txt: Conta o número de linhas, palavras e bytes que o arquivo possui.

cat texto.txt | more: Quando o arquivo é muito grande pode-se utilizar o more.
O more efetua uma pausa e permite que você pressione Enter ou espaço para
continuar avançando (rolando) no arquivo sendo visualizado.
Para sair do more pressione q.

79
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, estava trabalhando em um projeto para


analisar dados de um arquivo de log de um
servidor web. Esse arquivo continha informações
detalhadas sobre as solicitações de acesso ao site, e
ele precisava extrair algumas informações
específicas para sua análise.

Primeiro, Jãozinho usou o comando cat acesse.log (arquivo de texto) para


visualizar o conteúdo do arquivo de log e entender sua estrutura.

Após analisar o arquivo, Jãozinho identificou que precisava extrair o número de


solicitações de acesso bem-sucedidas (código de status 200) e o número de
solicitações malsucedidas (código de status 404).

Para fazer isso, ele usou o comando grep para filtrar as linhas do arquivo de
log que continham os códigos de status desejados.

Saída do comando grep "HTTP/1.1\" 200" access.log

80
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Em seguida, Jãozinho usou o comando wc -l para contar o número de linhas


que continham o código de status 200, representando as solicitações
bem-sucedidas.

Saída do comando grep "HTTP/1.1\" 200" access.log | wc -l

O resultado mostrou que houve 25 solicitações de acesso bem-sucedidas no


arquivo de log.

Da mesma forma, Jãozinho usou o grep para filtrar as linhas com o código de
status 404, representando as solicitações malsucedidas.

Saída do comando grep "HTTP/1.1\" 404" access.log

Usando o wc -l novamente, ele contou o número de linhas que continham o


código de status 404.

81
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Jãozinho tinha agora a quantidade de solicitações de acesso bem-sucedidas


e malsucedidas, mas ele queria criar um arquivo de resumo com essas
informações.

Para fazer isso, ele usou o comando echo para criar um cabeçalho no arquivo
de resumo, e o > para redirecionar a saída para um novo arquivo chamado
"summary.txt".

Em seguida, Jãozinho usou o >> para adicionar as informações de solicitações


bem-sucedidas e malsucedidas ao arquivo de resumo.

O arquivo "summary.txt" ficou assim

Com o uso inteligente dos comandos cat, >, >>, grep e wc, Jãozinho conseguiu
extrair e resumir as informações importantes do arquivo de log do servidor web.

Sua habilidade em trabalhar com esses comandos no terminal foi fundamental


para a conclusão bem-sucedida do projeto, e ele pôde continuar aperfeiçoando
suas habilidades em ciência da computação e administração de sistemas.

82
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SETORES
DEFEITUOSOS

BAD BLOCKS

São setores do HD que estão com algum defeito, quando um sistema começa
apresentar lentidão ou muitos travamentos pode ser bad blocks.

Software: Problemas causados provavelmente por outros programas, vírus


ou desligamento incorreto, bem mais chances de recuperar.

Hardware: Batida, poeira, etc. Complexo e poucas chances de recuperar.

COMANDOS

fdisk -l: Visualizar as partições, a partição (disco) deve estar desmontada para
verificação e correção do sistema de arquivos.

badblocks -vs /dev/sda1 > badblock.txt: Identifica os setores ruins e cria um


arquivo como essas identificações.

e2fsck -l badblock.txt /dev/sda1: Tenta corrigir os setores ruins em sitemas ext2,


ext3 e ext4

83
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, foi chamado para resolver um problema


crítico em um servidor que estava apresentando
falhas no sistema de arquivos. Os clientes que
utilizavam esse servidor relataram dificuldades para
acessar seus dados e sites hospedados.

Ao investigar o problema, Jãozinho percebeu que o disco rígido do servidor


estava com problemas em sua estrutura de partições e o sistema de arquivos
estava corrompido. Ele decidiu usar os comandos fdisk e e2fsck para resolver o
problema.

Primeiro, Jãozinho usou o comando fdisk -l para listar as partições do disco


rígido e verificar sua estrutura.

Ele identificou que a partição /dev/sda2 era a partição que continha o sistema
de arquivos corrompido.

Em seguida, Jãozinho usou o comando e2fsck para verificar e corrigir erros no


sistema de arquivos da partição /dev/sda2.

84
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Após a conclusão do comando, Jãozinho verificou que o sistema de arquivos da


partição /dev/sda2 foi corrigido.

Com o uso hábil dos comandos fdisk e e2fsck, Jãozinho conseguiu corrigir com
sucesso os problemas de estrutura de partições e corrupção do sistema de
arquivos no servidor.

Os clientes da empresa voltaram a ter acesso aos seus dados e sites


hospedados, e o servidor ficou estável novamente. Sua expertise em
administrar sistemas e sua habilidade em usar comandos de gerenciamento
de disco e sistema de arquivos foram fundamentais para restaurar a operação
normal do servidor e garantir a satisfação dos clientes da empresa de
hospedagem de servidores.

85
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

CLONAGEM
DE DISCOS

COMANDO

dd if=/dev/sda of/dev/sdc bs=1m conv=noerror: Fazendo uma clonagem de


HDs com o programa dd.

O comando dd é uma ferramenta de linha. Seu objetivo principal é converter e


copiar arquivos. Por outro lado, existem diversas opções interessantes para esse
comando, como:

• Fazer backup e restauração de todo o disco rígido ou partição;


• Fazer backup da MBR (Master Boot Record);
• Criar arquivos para fazer imagens de inicialização. Pendrive bootável, por
exemplo;

• Recuperar dados de um disco defeituoso para uma imagem ou outra mídia de


armazenamento;

🔴 A opção ‘noerror’ permite que a ferramenta continue copiando os dados


mesmo que encontre erros.

86
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, estava trabalhando em uma empresa


que precisava substituir o disco rígido de um
servidor antigo por um novo. No entanto, o
servidor continha um sistema operacional e vários
dados essenciais que não podiam ser perdidos.

Para realizar a substituição do disco sem perder nenhum dado, Jãozinho decidiu
usar o comando dd para clonar o disco antigo para o novo.

Primeiro, ele conectou o novo disco rígido ao servidor e verificou o nome dos
dispositivos usando o comando lsblk

Ele identificou que o disco antigo era o /dev/sda e o novo disco era o /dev/sdb.

Após isso ele usou o comando ilustrado acima.


dd if=/dev/sda of/dev/sdc bs=1m conv=noerror

Após a conclusão do processo de clonagem, Jãozinho removeu o disco antigo


do servidor e verificou se o novo disco estava funcionando corretamente. O
novo disco tinha uma cópia exata do sistema operacional e dos dados do disco
antigo, Jãozinho conseguiu novamente, Jãozinho merece um super salário, o
cara resolve todos os problemas.

87
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

AUTOMATIZANDO
TAREFA E ROTINAS

AT

É possível você agendar tarefas (at) e rotinas (cron), por exemplo um


administrador precisa criar um backup toda sexta-feira às 2h através de scripts
utilizando esses comandos é facilmente possível.

apt install at: Instala o at.


at now +2 min: Executa os comandos listados em 2 minutos.
at > comando 1
at > comando 2
at> comando 3

at -f comandos.txt 8:00 PM tomorrow: Agendamento para rodar os comandos


dentro do arquivo comandos.txt amanhã às 8h da noite (Somente uma vez).

at -l: Verifica as tarefas agendadas.


at -r 11: Cancela a tarefa com ID 11

JÃOZINHO NINJA

Jãozinho, precisava executar uma tarefa


importante em um servidor Linux, mas sabia que
estaria ocupado em outras atividades no momento
em que a tarefa deveria ser realizada. Para não
esquecer e garantir que a tarefa fosse executada
no horário certo, Jãozinho decidiu usar o comando
at para agendar a tarefa.

88
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

A tarefa que ele precisava realizar era fazer uma atualização crítica de
segurança em um serviço de banco de dados no servidor. Essa atualização
era necessária para corrigir uma vulnerabilidade que havia sido
recentemente descoberta e era essencial para proteger os dados dos
clientes da empresa.

Primeiro, Jãozinho preparou o script com os comandos necessários para a


atualização do banco de dados. Ele salvou o script em um arquivo chamado
"update_db.sh".

Conteúdo do arquivo "update_db.sh"

Em seguida, Jãozinho usou o comando at para agendar a execução do


script em um horário específico, por exemplo, às 3 da tarde.

Jãozinho pôde ficar tranquilo sabendo que a tarefa de atualização seria


executada no horário agendado, mesmo que ele estivesse ocupado em outras
atividades no momento. Isso permitiu que ele se concentrasse em outras
tarefas importantes, sabendo que a atualização do serviço de banco de dados
estava garantida.

O uso inteligente do comando at permitiu que Jãozinho agendasse a tarefa de


atualização para o momento mais adequado e garantisse que ela fosse
executada sem problemas, demonstrando sua habilidade como administrador
de sistemas e sua capacidade de otimizar o gerenciamento de tarefas em um
ambiente de TI.

89
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

CRON

É uma ferramenta/tabela que permite programar a execução de comandos,


diferente do at, no cron você configura somente uma vez.

O cron é um serviço do Linux que é carregado durante o processo de boot do


sistema, e fica em execução em segundo plano.

O cron executa os comandos nas datas e horários especificados. Por exemplo,


você poderia usar o cron para que o arquivo de log de um cliente fosse
disponibilizado todos os dias às 21h.

Formato do arquivo cron


[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]

Minutos: Informe números de 0 a 59


Horas: Informe números de 0 a 23
Dias do mês: Informe números de 0 a 31
Mês: Informe números de 1 a 12
Dias da semana: Informe números de 0 a 7
* Todos (todo momento)

Usuário: É o usuário que vai executar o comando (não é necessário especificá-lo


se o arquivo do próprio usuário for usado)

Comando: Comando/Script que deve ser executado.

90
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

Exemplos:
[minutos] [horas] [dias do mês] [mês] [dias da semana] [comandos/script]

0 6,18 * * * /bin/sh backup.sh


No agendamento acima ele vai rodar um script que vai fazer um backup de
banco de dados duas vezes por dia (às 6 da manhã e às 18h da tarde).
O script já está criado, "é outra coisa"

0 0 * * 2 * /bin/sh backup.sh
Backup de banco de dados à meia noite de toda terça-feira.

crontab -e: Serve para editar o arquivo atual do crontab (/etc/crontab),


criando assim rotinas, veja que o arquivo abaixo não contém nenhuma
rotina configurada.

crontab -l: Este comando mostra o conteúdo atual do crontab.


crontab -r: Remove o arquivo atual do crontab.

91
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

JÃOZINHO NINJA

Jãozinho, precisava realizar algumas tarefas


diárias no servidor, como limpar arquivos
temporários, atualizar dados de produtos e gerar
relatórios de vendas. Para não se esquecer dessas
tarefas e garantir que elas fossem executadas no
horário certo, Jãozinho usou o comando cron, que
permite agendar tarefas no Linux.

Ele adicionou as tarefas de limpeza, atualização e geração de relatórios no cron,


para serem executadas todos os dias à meia-noite.

Dessa forma, as rotinas diárias eram realizadas automaticamente, sem que


Jãozinho precisasse se preocupar com elas. Isso permitiu que ele se
concentrasse em outras atividades importantes, sabendo que as tarefas
agendadas seriam executadas no momento certo, garantindo a eficiência e
estabilidade do sistema da empresa.

Sua habilidade em usar o comando cron demonstrou sua expertise em


administrar sistemas e otimizar as operações de TI na empresa de comércio
eletrônico.

92
Aquele resumão para salvar todo iniciante.
RESUMINDO
O BÁSICO
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

PRECISA APRENDER O BÁSICO


MUITO RÁPIDO ?

O BÁSICO

Um resumo dos principais comandos do Linux, isso serve para você que precisa
aprender pelo menos os comandos básicos de forma rápida. Pode imprimir.

$: usuário comum (sem privilégios)


#: super usuários (root/administrador)

ls: listar
ls -l: listar detalhes

cd: navega entre os diretórios


cd ~ : ir para diretório /home
cd .. : voltar para uma diretório acima

touch: criar arquivo


> : criar arquivo
cat: exibe o conteúdo de um arquivo

mkdir: criar pastas


rm -f: força excluir
rm: excluir (diretórios/arquivos)
rm -rf: força excluir pastas
rmdir: excluir diretórios vazios

mv: mover ou renomear


cp: copiar arquivos ou diretórios
94
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

pwd: onde estou? diretório atual


clear: limpa tela do terminal

df: espaço em disco


df -h: espaço em disco com leitura legível para humanos

free: espaço de memória


free -h: espaço de memória de forma mais legível

apt-get install nomedopacote


apt-get remove nomedopacote
apt-get update: atualizar repositórios
apt-get upgrade: atualizar sistema

dpkg -i: nomedopacote.deb


dpkg -l: listar pacotes instalados

uname -a: informações do Kernel


uptime: há quanto tempo o sistema está ativo
who: quem está conectado na máquina

adduser: cria usuários ou grupos (-group) no sistema


userdel: remove usuário
groupdel: remove um grupo

passwd: mudar senha do usuário atual


passwd username: mudar a senha do usuário especificado

95
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

ifconfig: seu endereço IP e informações de rede


route: tabela de rotas IP
iwlist scan: exibe as redes sem fio

lspci: o que está conectado no barramento PCI


lsusb: o que está conectados nas saídas USB

tar -cvzf Arquivos.tar.gz: Compressão gz z: Tipo gz


tar -cvjf Arquivos.tar.bz2: Compressão bz2 j: Tipo bz2

tar -xvf Arquivos.tar.gz: Descompactado .gz


x: Extrai
tar -xvf Arquivos.tar.bz2: Descompactado .bz2

ps: visualizar processos atuais do usuário


ps aux: exibe todos os processos de todos os usuários

halt: desligar o computador


reboot: reiniciar o computador

systemctl start httpd.service: Inicia um serviço


systemctl stop httpd.service: Para um serviço
systemctl restart httpd.service: Reinicia um serviço

systemctl status httpd.service: Estado de um serviço


systemctl enable httpd.service: Inicia o serviço no Boot
systemctl disable httpd.service: Remove o serviço do Boot

96
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

CONSIDERAÇÕES
FINAIS

FIM ;(

Acredito que esse e-book tenha te ajudado a entender como o linux funciona e
seus comandos de uma forma diferente dos materiais que tem por ai, espero
que tenha gostado dos exemplos e do personagem Jãozinho e como abordei a
escrita nesse e-book, tentei ser o mais direto possível e didático, para que você
que necessita ou deseja aprender rápido não perca tempo com detalhes que
muitas vezes não é utilizado em ambientes de trabalho ou em provas.

Foi uma prazer te ajudar nessa etapa da sua vida, fique a vontade para me enviar
feedbacks positivos ou negativos via WhatsApp ou comentar sua experiência
quando ver meus anúncios no facebook ou instagram.

Até breve !
Nunca é um adeus ;)

97
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

O MELHOR PACOTE
DE CURSOS DO BRASIL

Cursos como o HACKER ÉTICO, INFRAESTRUTURA E PYTHON estão


inclusos no PACOTE FULLSTACK MASTER, esse são cursos que podem
mudar completamente a sua vida.

Clique agora na imagem ou aqui e garanta sua vaga agora mesmo, com
desconto.

Novidade 2023, Curso de Apps de próxima geração usando IA 🤖


Empresas do mundo todo utilizam IA

98
Para você que curti testar seus conhecimentos
PERGUNTAS
após um estudo.
29
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

EXERCÍCIOS
29 PERGUNTAS

SEÇÃO 1:
ARQUITETURA DO SISTEMA

1) Qual é o papel do Kernel no sistema operacional Linux?

a) Gerenciar os recursos de hardware e software do sistema


b) Executar aplicativos em segundo plano
c) Intermediar a comunicação entre o usuário e o sistema operacional
d) Todos os anteriores

2) Pode se dizer que Kernel é o coração do sistema ?

a) Verdadeiro
b) Falso

3) Uma distribuição Linux é ?

a) Comando
b) Servidor
c) Sistema operacional
d) Nenhuma das anteriores

4) Uma distro derivada é um sistema operacional específico ?

a) Verdadeiro
b) Falso

100
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

5) No sistema operacional Linux você pode optar pela interface


gráfica que vai utilizar ?

a) Verdadeiro
b) Falso

6) Qual é o sistema de arquivos padrão do Linux ?

a) NTFS
b) FAT32
c) EXT4
d) HFS+

7) Qual é a finalidade do GRUB ?

a) Gerenciar as configurações de rede do sistema


b) Inicializar o sistema operacional
c) Proteger o sistema contra malware
d) Configurar o ambiente de trabalho do usuário

8) O arquivo não tem fstab tem as instruções de montagem do sistema ?

a) Verdadeiro
b) Falso

101
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SEÇÃO 2:
COMANDOS GNU E UNIX

9) O terminal é um interpretador de comandos ?

a) Verdadeiro
b) Falso

10) Qual é o comando para exibir o diretório atual ?

a) cp
b) ls
c) cd
d) pwd

11) Qual é o comando para criar um diretório no Linux ?

a) rm
b) mkdir
c) touch
d) mv

12) Qual é o comando para exibir o conteúdo de um arquivo de texto ?

a) free
b) grep
c) cat
d) head

13) Qual comando exibe o espaço do disco ?

a) mount
b) free -m
c) tail
d) df-h
102
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SEÇÃO 3:
DISPOSITIVOS, SISTEMAS DE ARQUIVOS E
GERENCIAMENTO DEARMAZENAMENTO

14) Sistemas de arquivos é a forma como os arquivos são organizados


no disco ?

a) Verdadeiro
b) Falso

15) Cada sistema de arquivos possui suas próprias características ?

a) Verdadeiro
b) Falso

16) Qual é o comando para listar as partições do disco rígido no Linux ?

a) format
b) fdisk
c) chkdsk
d) diskpart

17) Qual é o comando para montar uma partição do disco rígido no Linux ?

a) mount
b) umount
c) format
d) fdisk

103
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SEÇÃO 4:
ADMINISTRAÇÃO DE SISTEMA

18) Qual é o comando para listar os processos em execução no Linux ?

a) all
b) top
c) kill
d) ps

19) Qual é o comando para listar as interfaces de rede em um sistema


Linux ?

a) ipconfig
b) ifconfig
c) netstat
d) ping

20) Qual é o arquivo de configuração das interfaces de rede ?

a) /etc/fstab
b) /etc/passwd
c) /etc/network/interfaces
d) /etc/iptables

21) Qual comando exibe as redes wi-fi ?

a) who
b) iwconfig
c) iwlist scan
d) route

104
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

22) No ssh faz conexão remota e gerencia servidores remotamente ?

a) Verdadeiro
b) Falso

23) O cron não permite programar tarefas repetitivas e rotineiras ?

a) Verdadeiro
b) Falso

24) O que são badblocks ?

a) Setores do disco bons


b) Software de verificação de disco
c) Setores do disco ruins
d) Arquivos do disco

25) Qual comando posso usar para clonar discos inteiros ?

a) ifconfig
b) mount
c) df -f
d) dd

105
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

SEÇÃO 5:
SEGURANÇA

26) Qual é o comando para alterar a senha de um usuário no Linux ?

a) chpasswd
b) su
c) passwd
d) usermod

27) Qual é o comando para verificar o status do serviço SSH em um


sistema Linux ?

a) service ssh status


b) systemctl status ssh
c) netstat -an | grep 22
d) Todos os anteriores

28) Qual o caractere é utilizado para mostrar que você está logado como
root ?

a) $
b) %
c) *
d) #

29) O usuário root possui quais permissões ?

a) Edição
b) Visualização mas não edição
c) Nenhuma permissão
d) Todas as permissões possível, acesso total

106
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

RESPOSTAS
GABARITO

1) a
2) a
3) c
4) a
5) a
6) c
7) b
8) b
9) a
10) d

11) b
12) c
13) d
14) a
15) a
16) b
17) a
18) d
19) b
20) c

21) c
22) a
23) b
24) c
25) d
26) c
27) d
28) d
29) d

107
Licenciado para - Wesley Batista - 22813980803 - Protegido por Eduzz.com

O MELHOR PACOTE
DE CURSOS DO BRASIL

Cursos como o HACKER ÉTICO, INFRAESTRUTURA E PYTHON estão


inclusos no PACOTE FULLSTACK MASTER, esse são cursos que podem
mudar completamente a sua vida.

Clique agora na imagem ou aqui e garanta sua vaga agora mesmo, com
desconto.

Novidade 2023, Curso de Apps de próxima geração usando IA 🤖


Empresas do mundo todo utilizam IA

108

Você também pode gostar