Você está na página 1de 256

O comando 

less serve para mostrar arquivos texto. Possui


a capacidade de exibir o arquivo de maneira paginada.

O comando more permite fazer a paginação de arquivos.


O mesmo também permite a leitura de arquivos longos.

Alterar Proprietário E Grupo De Arquivos, comandos


Chown E Chgrp

Permissões De Acesso A Arquivos E Diretórios E Comando


Chmod
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) 
Modo literal (simbólico)

No modo literal usaremos abreviações (símbolos) para representar os níveis de


permissões e as permissões em si. Veja na tabela a seguir quais os códigos usados:
chmod (modo literal)

Dar e negar acesso a um arquivo ao Dono, Grupo, e a Outros


usuários do sistema pelo modo literal é a maneira mais fácil
de se entender, usa-se as letras :

u : (User) Proprietário do arquivo;


g : (group) Usuários que fazem parte do grupo do proprietário.
o : (Others) Outros usuários (não é o dono e nem faz parte do
grupo).
a : (All) Todos.
e, os símbolos :
+ : Adicionar permissão.
- : Remover permissão.
= : Igualar permissão.
chmod a+rwx arquivo.txt
Dá controle total (+rwx) sobre o arquivo para o
Dono, Grupo, e os outros usuários do sistema (a).

chmod g-rw arquivo.txt


Remove o acesso (-) à leitura e escrita (rw) aos
usuários do grupo (g).

chmod o-r teste.txt


Retira (-) a permissão de leitura (r) do arquivo
teste.txt para os outros usuários (o), que não são
donos e não pertencem ao grupo do arquivo
teste.txt.
chmod uo+x teste.txt
Inclui (+) a permissão de execução (x) do arquivo
teste.txt para o dono e outros usuários do
arquivo(uo).

chmod a+x teste.txt


Inclui (+) a permissão de execução (x) do arquivo
teste.txt para o dono, grupo e outros usuários (a).

chmod a=rw teste.txt


Define a permissão de todos os usuários
exatamente (=) para leitura e gravação (rw) do
arquivo teste.txt.
Permissões especiais.

1-SUID - com esta permissão, o usuário executa o arquivo ou


acessa o diretório como se fosse o dono.

2-SGID - com esta permissão, o usuário executa o arquivo ou


acessa o diretório como se fosse membro do grupo ao qual
pertence o arquivo/diretório.

3-sticky bit - o usuário pode criar/alterar/deletar (apenas) os seus


próprios arquivos no diretório que possui esta permissão, mesmo
que não seja o dono do diretório e nem membro do grupo ao qual
o diretório pertence. Quando o sticky bit é usado em um arquivo,
significa que este arquivo é compartilhado por vários usuários.
Maiores detalhes sobre essas permissões podem ser encontradas
nos links de consulta disponibilizados aqui no tópico.
As permissões literais (simbólicas) são mais úteis quando
queremos fazer alguma alteração simples, como adicionar ou
retirar uma permissão qualquer.

Já as permissões octais são mais úteis quando queremos


ajustar as permissões de modo geral a um arquivo, incluindo
as permissões de proprietário, grupo e outros de uma só vez.

Somente o proprietário do arquivo e o superusuário root


podem alterar permissões de um arquivo.
Administração de Redes
Operações avançadas
find
grep
head
tail
Pipe
Empacotamento, compactação e descompactação
de arquivos
Operações Avançadas
O comando “find”

O comando find pode ser utilizado para pesquisar


arquivos pelo nome, data de criação ou
modificação,
proprietário, tamanho do arquivo e até o tipo do
arquivo
A estrutura básica do comando

find [diretório inicial] [parâmetros] [ações]

Vejamos o que significam estes campos...


Operações Avançadas
find [diretório inicial] [parâmetros] [ações]

Diretório inicial – especifica o diretório onde a pesquisa


será iniciada
Os parâmetros – critérios da busca
As ações – especifica que ações serão executadas nos
arquivos encontrados na busca
Operações Avançadas
Exemplos:

find / -name passwd

find comando
/ significa que vai procurar em todo o diretório raíz, se você
não for root, ele ignorará os diretórios com permissão.
-name vai procurar exatamente esse nome, se um caracter
for diferente ou maiúsculo ou minúsculo, ele ignorará.
Passwd nome do arquivo
Operações Avançadas
Procura ignorando case sensitive

find /home/ -iname arquivo.txt

./arquivo.txt
./Arquivo.txt

/home/ só vai procurar nesse diretório recursivamente (sub-


diretórios)

iname com maiúsculo ou minúsculo


Operações Avançadas
Procura com coringas

find /home/ -name *rquivo*

./home/arquivo.txt
./home/Arquivo.txt
./home/Meus_Arquivo-NOVOS.txt
./home/arquivo.sh
Operações Avançadas
Procurando por tipo – Comando –type
f – arquivo normal
d – diretório ou pasta
l – link simbólico
c – dispositivos de caracteres
b – dispositivos bloqueados

Um exemplo simples de busca por tipo: find / -type d

Isto irá listar todos os diretórios presentes nos seus


arquivos do sistema, pois começamos a busca no
diretório raiz utilizando o sinal /
Operações Avançadas
find / -type f -name “meu-arquivo”

Assim irá procurar por arquivos com


o nome meu-arquivo, excluindo
diretórios ou links.
Operações Avançadas
Procura por permissão e encontra todos os arquivos
que possuem permissão 644

find / perm 644

Procura diferente de permissão encontra todos


arquivos que não possuem a permissão 644

find / -perm 644


Operações Avançadas

find /etc -size +10M


Operações Avançadas
Comando “grep”

Comando Grep é usado para verificar o conteúdo de um ou


mais arquivos na tentativa de encontrar a ocorrência de um
padrão de texto específico dentro dos arquivos.

Em geral, o padrão para o comando é:

grep [opções] <texto para pesquisa> <arquivos>


Operações Avançadas
Comando “grep”

Exemplos:

cat /var/log/dmesg | grep eth0

grep <seu usuário> /etc/passwd

cat /etc/passwd | grep <seu usuário>


Operações Avançadas
Comando “head”

Exibe as primeiras linhas de um arquivo


Por padrão, exibe as primeiras 10 linhas
Para especificar a quantidade de linhas, utilize o parâmetro –n
<número>

Ex:
head –n 5 /etc/passwd
Operações Avançadas
Se temos um comando para ver o início do arquivo???

O comando “tail” é utilizado para visualizar o final do arquivo


Assim como no comando head, utilize o parâmetro –n
<número> para exibir a quantidade de linhas desejadas

O tail tem um parâmetro especial para que possamos visualizar


o arquivo enquanto o mesmo é alterado.
Operações Avançadas
Exemplo:

Conecte-se a dois terminais (ALT+F1 e ALT+F2)

No primeiro digite o comando


echo texto >> teste1.txt
No segundo terminal, digite o comando
tail –f teste1.txt
No primeiro, execute
echo texto >> teste1.txt
Observe o que aconteceu no segundo terminal
Operações Avançadas
pipes ( | )

Utilizado como conexão de utilitários. É uma maneira de


redirecionar as entradas e saídas, de modo que a saída deum
comando torna-se a entrada do comando seguinte.

Pode-se usar vários dutos em uma mesma linha de comando, de


maneira que é possível combinar tantos comandos quantos forem
necessários.
Operações Avançadas
pipes ( | )

Exemplos
$ cat /etc/passwd | grep <seu usuario>
ls /etc | more
Operações Avançadas
Empacotamento, compactação e descompactação de
arquivos
O programa “tar” é utilizado para arquivamento
utilizado para agrupar e extrair arquivos de um
tarfile;
Pode ser considerado o comando mais utilizado
para realizar backups no sistema Linux (Tape
ARchives);
Possui uma série de parâmetros para a realização de suas
funções.
Operações Avançadas
-c : criar um arquivo
-v : lista detalhadamente os arquivos
processados
-f : especifica o arquivo ou dispositivo
a ser utilizado
-x : extrai arquivos de um pacote
Operações Avançadas
O comando “tar” – agrupando
arquivos
tar –cvf backupEtc.tar /etc
Operações Avançadas
O comando “tar” – agrupando arquivos

Observe que o arquivo backupEtc.tar foi criado.


Ele contêm todos os arquivos e subdiretórios do
diretório /etc.

Uma forma fácil de visualizar o conteúdo de um


arquivo tar é utilizando o comando “less”
less backupEtc.tar
Operações Avançadas
O comando “tar” – extraindo
arquivos
tar –xvf backupEtc.tar
Operações Avançadas
O comando “tar” – extraindo arquivos

Observe que um diretório “etc” foi criado no diretório


atual.
Caso você queira extrair o conteúdo de um tarfile em um
outro local, basta passar o “–C <destino>” como
parâmetro:
tar –xvf backupEtc.tar –C /tmp
Operações Avançadas
Observe que, apesar de agrupados, os arquivos de um
tarfile não são compactados.
Para fazer a compactação, é necessário a utilização de
um parâmetro adicional:

-z : compacta utilizando o gzip


Exemplo:

tar –zcvf backupEtc.tar.gz /etc


Exercício 1
Crie um tarfile do diretório /var

Crie um diretório temporário e descompacte


o arquivo compactado neste diretório.
Lembre-se do parâmetro “–C”.
Editor de texto VI

O vi é sigla de “Visual Interface”


Quando ao vi foi criado (começo da década de 80), os textos
digitados não podiam ser vistos!
Em 1992 foi criado o vim (vi imitator), um clone do vi,
porém com muitas outras funcionalidades
Após um tempo, o vim passou a ser chamado de vi
improved (vi melhorado)
Atualmente, é um dos editores mais utilizados no mundo
Unix
Editor de texto VI
O vim é um editor de textos extremamente poderoso;

Ele pode abrir vários arquivos ao mesmo tempo;

Possui sistema de autocorreção;

Recursos de seleção visual, macros, expressões


regulares, etc...
Dica para quem gostar do vim: ele não é exclusivo da
plataforma Unix. Funciona nas plataformas MacOS, Linux,
Windows.
Editor de texto VI
Operações básicas do vi

vi -> abre o vi vazio, sem nenhum arquivo;


vi <arquivo> –> abre o arquivo para edição
vi <arquivo> + -> abre o arquivo com o cursor no final do
mesmo
vi <arquivo> +10 -> abre o arquivo com o cursor na linha 10
vi <arquivo> +/iso9660 -> abre o arquivo com o cursor na
primeira ocorrência da palavra iso9660
Editor de texto VI
Operações básicas do vim

Ao iniciar o vim executa o modo de comando


Para iniciar o modo de edição pressione “i” no
seu teclado;
Desta forma o vim entra em modo de
inserção (observe
a marcação -- INSERT -- no rodapé).
Editor de texto VI
Comandos para salvar o arquivo
:w => Salva o arquivo que está sendo
editado no momento.
:wq => Salva e sai.
:w! => Salva forçado.
:wq! => Salva e sai forçado.
:q – sai sem salvar
:q! – sai sem salvar forçado
Editor de texto VI
vi -> abre o vi vazio, sem nenhum arquivo;
Editor de texto VIM
Modos edição:

“i” - entra em modo de inserção


Tecla “ESC” sai do modo de inserção e retorna ao modo de
Comando

Comandos para sair sem salvar

Caso você não queira salvar as alterações no arquivo,


utilize:
q! => sai sem salvar.
Criar e salvar arquivo no Vim

Se quiséssemos, por exemplo, criar um arquivo de texto


chamado informatize.txt, cujo conteúdo seria a frase "Teste
do Vim", seguiríamos os seguintes passos:

1 - No terminal, executar o comando vi informatize.txt;


2 - Dentro do Vim, pressione a tecla i para passar do Modo de
Comandos para o Modo de Inserção;
3 - Digite a frase "Teste do Vim";
4 - Voltaríamos ao modo de comandos com a tecla ESC;
5 - Digitaríamos :wq, pressionando Enter logo em seguida.
Esse comando (:wq) é utilizado para salvar (write) o arquivo e
sair (quit) do Vim.
6 – Ls –l depois cat informatize.txt
Abrir, salvar e outras operações de arquivos

Abrir um arquivo de textos com o Vi é simples. Basta informar


o caminho e nome do arquivo como parâmetro ao
comando vi, quando for executá-lo.
Exemplo: Abrir o arquivo /etc/passwd

1 – Executar  vi /etc/passwd no terminal.


Para sair do editor de textos, digite :q. Se quiser forçar a
operação de sair, sem se preocupar com a possibilidade de
salvar o arquivo que estava sendo editado, pressione :q!. Para
salvar o arquivo no qual você está trabalhando, use o
comando :w, enquanto que, para salvar e sair, com já visto
acima, usamos :wq.
Movimentando-se no arquivo

Com isso em mente, podemos começar a movimentar o


cursor do Vim entre as linhas e letras de um arquivo de texto.
Para isso, pressione ESC (para sair do modo de inserção, caso
esteja nele) e, em seguida, use as teclas h, j, k e l para mover
o cursor para esquerda, para baixo, para cima e para a direita,
respectivamente. As setas direcionais também podem ser
usadas para esse fim, mas podem não funcionar em qualquer
distribuição ou mapa de teclado.
Se quiser se mover para o início do arquivo, digite gg e,
quando quiser ir ao final, pressione G (maiúsculo). Também é
possível pular de palavra em palavra com teclas w e b, além
de ir diretamente para uma linha em específico. Se quiser
acessar a 36ª linha do texto, por exemplo, digite 36G.
Mudar de modos

Como já mencionamos, pressionar a tecla i faz com que o Vim


passe para o Modo de Inserção, enquanto que ESC retorna
para o Modo de Comandos. Porém, é possível fazer um uso
mais preciso dessa operação. A tecla i, na verdade, inicia a
inserção de texto à esquerda da localização atual do cursor.
Se quiser começar a digitar à direita do cursor, pressione a.
Da mesma forma, caso deseje entrar no modo de inserção
uma linha antes do cursor, pressione O, e, se preferir, o para
uma linha após o cursor.
Editor de texto VI

Copiando e colando textos

Posicione o cursor na linha a ser copiada;


Alterne para o modo de comando (ESC);
Pressione a tecla “y” duas vezes
Posicione o cursor onde deseja colar a linha copiada
Pressione a tecla “p”
Cole quantas vezes for necessário digitando a letra “p”
Copiar, recortar e colar

Copiar e cortar uma linha toda pode ser feito por


meio dos comandos Y e S, respectivamente. Já a
cópia ou o recorte da palavra na qual se encontra o
cursor deve ser realizada com yw ou dw.
Se preferir selecionar um trecho, pressione, antes,
a tecla V, para linhas, ou v, para caracteres. Em
seguida, use os atalhos de movimentação do cursor
para definir o limite da seleção. Depois de
selecionado, pressione y para copiar ou d para
recortar. Na hora de colar, o comando não muda:
basta digitar p.
Editor de texto VI

Deletando linhas inteiras

Posicione o cursor na linha a ser removida


Entre em modo de comando
Pressione a tecla “d” duas vezes
Pesquisas e comandos avançados

Apesar da simplicidade aparente do Vim, o editor permite


realizar ações mais complexas.

Para começar, você pode desfazer a última ação


pressionando a tecla u. Caso queira refazer ou repetir um
comando, use Ctrl+r.

Se quiser procurar por um termo ou frase no arquivo de


texto, digite / seguido da expressão, sem espaço. Para buscar
a palavra teste, por exemplo, use /teste. Para procurar pela
ocorrência seguinte da palavra, após ter realizado a pesquisa,
basta pressionar n. Se quiser voltar uma ocorrência,
pressione N.
O Vi também pode procurar e substituir um termo por outro
em todo o texto. Digamos, por exemplo, que um redator
incauto digitou informatize, sem a inicial maiúscula, em um
artigo todo. Para corrigir o erro no Vim, bastaria executar o
comando :%s/informatizeh/Informatize/g

Bacana, não?

:%s/informatize/Informatize/g
Colocar numeração no texto 

:set number 

e as linhas aparecerão na lateral esquerda, indicando o


número de cada linha.

Navegar nas linhas

:44

Caso queira voltar ao modo normal (sem as linhas), digite: 

:set nonumber 
Editor de texto VI
Para saber mais sobre o vim

man vi
Comandos De Rede
Mudou tudo no CentOS/RHEL 7 – ifconfig,
eth0 , eth1.. onde estão ?
Comandos De Rede
Considerações iniciais
 
Se você trabalha com Linux e é acostumado com sistemas Debian-
Comandos De Rede
Like deve ter estranhado o fato de que no Centos/RHEL 7 algumas
coisas são diferentes no que diz respeito a configuração de redes.
 
“Problemas” que você irá encontrar:
 
•Não encontrar os tradicionais comandos ifconfig, netstat, route,
mii-tool, arp, iptunnel pois eles fazem parte do pacote net-tools que
não está presente de forma padrão na instalação.

•As placas tiveram as suas nomenclaturas mudadas, ao invés de


nomes como eth0, eth1 e etc temos nomes como enp0s3, ens33.
Passaremos como argumento para o parâmetro IPADDR o endereço de
IP que queremos colocar na nossa placa e no NETMASK nosso
endereço de sub-rede. 

Para definir o nome do host, que por padrão vem definido como
localhost, precisamos editar o arquivo /etc/hostname: 

# vi /etc/hostname 

As configurações de host e domínio do CentOS e do Red Hat vem no


padrão hostname.dominio. 

No nosso caso irei configurar somente o hostname, alterando o


parâmetro localhost.localdomain para servidorteste.localdomain.

 
Então como resolver estes pseudos problemas?
 
Primeiro vamos nos acostumar com o ambiente para que possamos resolver esses nosso
“problemas”, vamos começar verificarmos como o seu CentOS/RHEL 7  renomeou as suas
placas de rede, para isso iremos um dos comando abaixo :

nmcli d
CONFIGURANDO INTERFACE DE REDE EM
SERVIDORES RED HAT E CENTOS 7
Comandos De Rede
Primeiramente vamos verificar a interface de rede que
iremos configurar:

# ip addr
# ip addr show

O "ip addr" é o sucessor do antigo ifconfig, que por


padrão não vem mais nas distribuições ramificadas da Red
Hat, e no meu caso retornou as seguintes informações:
Também podemos usar o comando cat
/proc/net/dev

Em ambos os comandos você pode observar que as placas de redes têm os nomes enp0s3 e
enp0s8.
A placa física que normalmente se chamaria eth0 ou eth1 está
nomeada como enp0s3 ou ens33. É ela que vou configurar com os
padrões da rede do meu lab. 

Primeiramente edite o arquivo /etc/sysconfig/network-scripts/ifcfg-


nomedaplaca: 

# vi /etcnetwork-scripts/ifcfg-
ens33/sysconfig/
Resolvendo o “problema”
CONFIGURANDO A PLACA COM UM ENDEREÇO ESTÁTICO

Para configurar a placa com um IP estático, primeiro vamos editar o


arquivo /etc/sysconfig/network-scripts/ifcfg-placa e colocar as
seguintes configurações adicionais no arquivo: 
Agora vamos editar o arquivo /etc/sysconfig/network: 

# vi /etc/sysconfig/network 

# Created by anaconda
NETWORKING=yes
HOSTNAME=servidordeteste
GATEWAY=192.168.0.13

Caso não existam, crie as linhas acima de forma que o HOSTNAME seja o nome da sua
máquina e o GATEWAY o IP do seu Gateway e/ou roteado
Agora que identificamos as placas de rede vamos verificar se temos internet com o comando
ping vamos “pingar” o ip 8.8.8.8 válido.
Se o ping não responder temos que configurar a placa de rede para ter acesso a Internet, e
como não temos o ifconfig  AINDA ,vamos usar o comando ip para isso.

echo “nameserver 192.168.0.10” >/etc/resolv.conf

Vi /etc/resolv.conf
•O primeiro comando configura ip e máscara na interface enp0s3
•O Segundo ip configura o gateway
•O terceiro configura o servidor DNS
 
Caso a sua rede tem um servidor DHCP configure os parâmetros acima como o comando :

dhclient -v ens33
Agora vamos reiniciar o serviço de rede:

# /etc/init.d/network restart (stop, start )

Se tudo ocorrer bem, a mensagem de Ok será


apresentada. Se não, revise as configurações
colocadas em busca de erros de sintaxe e suas
configurações de rede.

# /etc/init.d/network restart
Restarting network (via systemctl): [ OK ]
Agora vamos consultar as configurações da interface para ver se ela puxou o
endereço estático que colocamos:

# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN


link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP qlen 1000
link/ether 08:00:27:97:08:f5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.66/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe97:8f5/64 scope link
valid_lft forever preferred_lft forever
CONFIGURANDO A PLACA EM DHCP (DYNAMIC
HOST CONFIGURATION PROTOCOL)

Para configurar a placa em modo DHCP para que a mesma


obtenha um endereço dinâmico automaticamente basta deixar
as configurações semelhantes ao bloco a seguir: 
Configuração através do comando NMTUI
(Network Manager Text User Interface)
 
Gerenciador
de Pacotes

Aprenda tudo sobre o gerenciador de pacotes


oficial das distribuições Linux RadHat,
CentOS, Suse e muitas outras!
Bom agora que temos Internet vamos então
instalar o pacote net-tools com o comando:
 

yum install net-tools


Ao final da instalação, todos os comandos de rede que são usados comumente, já estão
prontos pra utilização.  Tais como : ifconfig, netstat, route, arp, etc.
 
CentOS: Esqueceu-se de instalar o ambiente gráfico ?
Como instalar o GNOME Desktop?

Antes de instalar o GNOME Desktop certifique-se que a sua máquina tem ligação à Internet. Em caso
afirmativo, vamos usar recorrer à ferramenta yum, executando o seguinte comando:

yum grouplist
Depois de apresentada a lista dos “grupos de software”, devem proceder à instalação do
grupo GNOME Desktop, usando para isso o seguinte comando:

sudo yum groups install "GNOME Desktop"


Depois é só aguardar uns bons minutos até que todos os pacotes
necessários sejam instalados no sistema.

(Opcional) Depois de instalado podem executar o seguinte comando,


para que o sistema arranque direto para o ambiente gráfico.

systemctl set-default graphical.target


Caso pretendam arrancar de imediato com o sistema gráfico devem
usar o seguinte comando:

systemctl start graphical.target


Numa primeira inicialização do sistema devem aceitar a licença,
configurar a rede (caso seja necessário).
Configuração das interfaces de rede em ambiente gráfico
GNOME
Introdução
Logo que o sistema operacional Linux foi inventado, em 1992, todos os programas eram distribuídos
na forma de có digo fonte aberto, livre e gratuito. Para instalar um programa é necessá rio saber em
qual linguagem de programaçã o ele foi escrito, quais sã o parâmetros ideais para o sistema onde está
sendo instalado e fazer os ajustes de configuraçã o antes de compilar. O pró prio fato de conseguir
instalar um determinado programa podia ser encarado como um desafio a ser vencido! Apesar desse
formato ser o preferido por entusiastas da Tecnologia da Informação por oferecer a liberdade de
modificar os programas distribuídos, ele também acabou afastando usuários iniciantes por ser
complexo e difícil de usar. Além disso, o suporte técnico ao programa fica muito mais complexo, uma
vez que nenhum ambiente de instalaçã o é igual a outro.

Para resolver esse problema em suas distribuiçõ es, a RedHat desenvolveu o RPM –
RedHat Package Manager. O RPM permite a distribuiçã o de programas compilados em
pacotes fechados, prontos para o uso de acordo com a versã o do sistema operacional e
arquitetura. Por exemplo, o CentOS 6.5 32 bits possui os pró prios arquivos RPMs de
programas, que sã o diferentes dos arquivos RPMs para os mesmos programas para o
CentOS 6.5 64 bits. Isso facilita muito a instalaçã o de programas, uma vez que todos os
sistemas CentOS 6.5 64 bits sã o iguais. No entanto, esse formato criou uma nova
dificuldade, que é a interdependência entre os pacotes. Digamos que o programa A
depende do programa B, que depende dos programas C e D, que dependem do programa
E. Ainda que todos os programas estejam disponíveis, a instalaçã o pode se tornar uma
chata resoluçã o de problemas de dependências.
Solucionando de vez todos esses problemas, o Departamento de Física da Universidade de
Duke criou o yum. O yum é um programa que gerencia a interdependência entre os
pacotes RPM, além de baixar os arquivos pela internet de repositó rios oficiais e seguros. O
uso do yum torna a experiência de uso de distribuiçõ es da RedHat muito mais agradável,
tornando fácil e descomplicada a operaçã o de instalar novos programas.

A sintaxe de uso do yum é dividida entre opções, comandos e


nome(s) do(s) pacote(s). Enquanto que algumas opções são
exclusivas de alguns comandos, outras são de uso geral com
todos os comandos. Já os comandos são obrigatórios toda vez
que executamos o yum. Sem nenhum comando, o yum irá
apresentar a sua tela de ajuda. Alguns comandos não exigem
que sejam informados um ou mais nomes de pacotes.

Os comandos do yum podem ser divididos em três categorias: comandos de


pesquisa, comandos de instalaçã o/remoçã o e comandos de manutençã o do
pró prio yum. Nas pró ximas pá ginas veremos todos os comandos do yum e suas
principais opçõ es.
Comandos de Pesquisa
Os comandos de pesquisa sã o os mais importantes do yum, pois sã o através desses comandos
que podemos planejar e verificar quais sã o as melhores opçõ es de novos pacotes para o nosso
sistema operacional Linux.

Os comandos de pesquisa sã o:

• check-update: Lista os pacotes disponíveis para atualizaçã o. Esse comando nã o


precisa de mais opçõ es ou nomes de pacotes.
• deplist: Mostra todas as dependências de um dado pacote.
• groupinfo: Mostra as informaçõ es de um dado grupo de pacotes.
• grouplist: Lista todos os grupos de pacotes disponíveis.
• info: Mostra as informaçõ es de um dado pacote.
• list: Lista todos os pacotes disponíveis.
• provides: Mostra os pacotes que disponibilizam um determinado arquivo ou
programa.
• repolist: Lista os repositó rios cadastrados.
• search: Pesquisa por um pacote ou expressã o na descriçã o do pacote.
yum check-update
O comando yum check-update irá listar todos os pacotes disponíveis para atualizaçã o
no sistema Linux. A listagem apresenta o nome do pacote, a versã o disponível e qual
repositó rio ele está disponibilizando o arquivo.
yum deplist

O comando yum deplist <NOME_DOS_PACOTES> irá listar todas as dependências de um


ou mais pacotes. Esse comando lista também as dependências de pacotes que já estã o
instalados no Linux e que nã o serã o, necessariamente, instaladas quando o pacote em
questã o for instalado.

O comando exige pelo menos um nome de pacote para a pesquisa, sendo que é possível
passar mais de um argumento ou utilizar caracteres curinga para listar as dependências
todos os pacotes que combinem com a pesquisa.
yum groupinfo
O comando yum groupinfo<GRUPO_DE_PACOTES> mostra os pacotes que fazem parte de
um grupo de pacotes. Os grupos de pacotes sã o compostos por pacotes mandató rios e
pacotes opcionais. Um grupo de pacotes é considerado instalado quando todos os pacotes
do grupo estã o instalados.
A maior parte dos pacotes possuem nome composto. Nesse caso, é necessá rio colocar o
nome do pacote entre aspas duplas.
yum grouplist

O comando yum grouplist lista todos os grupos de pacotes disponíveis no


sistema, separando em grupos instalados, grupos disponíveis para instalaçã o
e grupos de pacotes de línguas.
yum info

O comando yum info <NOME_DOS_PACOTES> mostra as informaçõ es dos pacotes


informados, como a versã o disponível no repositó rio, arquitetura e descriçã o.

O comando exige pelo menos um nome de pacote para a pesquisa, sendo que é
possível passar mais de um argumento ou utilizar caracteres curinga para listar as
dependências todos os pacotes que combinem com a pesquisa.
yum list

O comando yum list lista todos os pacotes disponíveis no


sistema, separando em pacotes instalados e pacotes disponíveis
para instalaçã o.
yum provides
O comando yum provides <NOME_DO_ARQUIVO> mostra todos os pacotes que
fornecem um determinado arquivo. O nome do arquivo deve ser completo,
inclusive com o caminho (path). Para melhores resultados da pesquisa,
substitua o path por um asterisco, mas mantenha a ú ltima barra.
O comando exige pelo menos um nome de arquivo para a pesquisa, sendo que
é possível passar mais de um argumento.
yum repolist

O comando yum repolist mostra os repositó rios instalados no sistema Linux, juntamente
com o nú mero de pacotes disponibilizados pelo repositó rio.

É importante notar que repositó rios desativados nã o sã o listados. OS arquivos de


configuraçã o dos repositó rios estã o localizados no caminho /etc/ yum.repos.d/.
yum search
O comando yum search <EXPRESSÃO> pesquisa por pacotes que contenham a expressã o
pesquisada no nome ou no sumá rio (descrição resumida) do pacote. Para melhores
resultados, utilize aspas duplas quando for utilizada uma expressã o com mais de uma
palavra.

Já o comando yum search all <EXPRESSÃO> faz a pesquisa também nos campos de URL e
descriçã o.
Comandos de Instalação
Se os comandos de pesquisa permitem o planejamento de novas instalaçõ es, os comandos de
instalaçã o sã o o coraçã o e a razã o de existir do yum! Os comandos de instalaçã o tornam fácil de
processo de gerenciar pacotes no Linux.

Os comandos de instalaçã o sã o:

• distro-sync: Sincroniza o sistema local com o repositó rio


oficial.
• erase: Apaga um pacote instalado.
• groupinstall: Instala todos os pacotes de um grupo.
• groupremove: Apaga todos os pacotes de um grupo.
• install: Instala um novo pacote.
• reinstall: Reinstala um pacote.
• update: Atualiza um pacote ou todo o sistema Linux.
• load-transaction: Carrega e executa uma transaçã o
pendente.
Antes de Começar

Antes de começar, precisamos entender um pouco sobre o funcionamento do


processo de instalaçã o de pacotes do yum.

O yum utiliza o conceito de transaçõ es durante todos os procedimentos de instalaçã o.


Transação é uma operaçã o que tem um início, meio e fim. A transaçã o é considerada
completa se toda a operaçã o for completada sem nenhum erro ou falha. Se, por
qualquer motivo, uma transaçã o do yum nã o for completada - seja porque a
instalaçã o falhou, seja porque o usuá rio cancelou a instalaçã o – essa transaçã o ficará
gravada no sistema operacional e pode ser retomada a qualquer tempo. A pró pria
base do yum, que sã o os arquivos RPM, também utilizam transaçõ es para realizar a
instalaçã o dos programas. Ao final, podemos dizer que o yum utiliza uma transação
de transaçõ es para fazer a instalação dos programas!

Outro ponto importante do yum é a utilizaçã o de chaves de assinatura eletrô nica para
garantir a autenticidade dos pacotes instalados. Caso algum pacote a ser instalado
contenha uma assinatura desconhecida, uma mensagem de aviso será apresentada
perguntando se o usuário realmente deseja instalar o pacote. Desse jeito, é
importante ficar atento à s mensagens de aviso que aparecem durante o uso do yum.
Antes de Começar
Todos os comandos de instalaçã o do yum podem ser utilizados
com a opçã o -y. A opçã o -y determina que todos os
questionamentos de confirmaçã o do yum sejam suprimidos,
automatizando sem interrupçõ es a instalaçã o dos pacotes.
Apesar de ser uma comodidade na instalaçã o dos pacotes, essa
opçã o pode trazer furos de segurança por instalar
automaticamente chaves de assinatura eletrô nica e até
desinstalar pacotes.

A seguir veremos os comandos de instalaçã o de pacotes e como


utilizar o controle de transaçõ es para retomar ou desfazer uma
instalaçã o de pacotes no Linux.
yum distro-sync

O comando yum distro-sync <NOME_DOS_PACOTES> sincroniza os pacotes informados com


exatamente as mesmas versõ es disponibilizadas pelos repositó rios.

Se nenhum nome de pacote for informado, todo o sistema operacional Linux será
sincronizado com as versõ es dos pacotes disponíveis nos repositó rios.

Esse comando é pouco utilizado, sendo que os comandos


yum update e yum upgrade sã o muito mais utilizados.

Muito cuidado ao utilizar esse


comando! Se o seu sistema
Linux tiver algum pacote com
uma versã o mais nova que os
pacotes oferecidos pelos
repositó rios, o pacote sofrerá
um downgrade para a versã o
mais antiga disponível no
repositó rio.
yum erase

O comando yum erase <NOME_DOS_PACOTES> remove


completamente um pacote instalado no sistema
operacional Linux.

Os arquivos de configuraçã o ou de dados que tenham sido


modificados apó s a instalaçã o do pacote nã o serã o excluídos, mas
poderão ser renomeados. No exemplo abaixo, o arquivo de
configuraçã o do servidor de FTP foi renomeado e mantido para
consulta futura. Porém, se o pacote for reinstalado, o arquivo de
configuraçã o salvo terá que renomeado de volta manualmente.

Esse comando tambêm pode ser


utilizado como yum remove
<NOME_ DO_PACOTE>.
yum groupinstall
O comando yum groupinstall <NOME_DO_GRUPO> instala todos os pacotes do
grupo informado.
A maior parte dos pacotes possuem nome composto. Nesse caso, é necessá rio
colocar o nome do pacote entre aspas duplas.
yum install
O comando yum install <NOME_DOS_PACOTES> instala um novo pacote no sistema
operacional Linux.
yum reinstall
O comando yum reinstall <NOME_DOS_PACOTES> reinstala os arquivos biná rios
de um pacote no sistema operacional Linux.

Os arquivos de configuração ou de dados que sã o criados durante a instalaçã o


do pacote nã o serã o reinstalados com esse comando.
yum groupremove

O comando yum groupinstall <NOME_DO_GRUPO> remove todos os pacotes do grupo


informado.
A maior parte dos pacotes possuem nome composto. Nesse caso, é necessá rio colocar o
nome do pacote entre aspas duplas.
yum update
O comando yum update <NOME_DOS_PACOTES> atualiza os
pacotes informados com a versã o mais recente disponível.

Se nenhum nome de pacote for informado, todo o sistema


operacional Linux será atualizado com as versõ es mais
recentes dos pacotes disponíveis. Desde a versã o 6 do
Ao contrário do comando yum distro-sync, esse comando nã o faz o
CentOS/RHEL, esse
downgrade de eventuais pacotes que tenham uma versã o instala comando possui a mesma
mais recente que as disponíveis no repositó rio. funcionalidade do
comando yum upgrade
<NOME_ DO_PACOTE>,
atualizando também os
pacotes considerados
obsoletos.
yum load-transaction
O comando yum load-transaction <NOME_DO_ARQUIVO> deve ser utilizado para carregar uma
transaçã o que ficou pendente anteriormente. exemplo, a remoçã o do pacote mysql-server nã o foi
concluída e ficou pendente. O pró prio yum indica em qual arquivo foi gravada a transação.

As transaçõ es podem ficar pendentes por diversos motivos, seja porque o usuá rio cancelou o
comando, seja porque o comando falhou de alguma forma.
yum load-transaction

Para completar a transaçã o pendente, execute o comando yum load-transaction


<NOME_DO_ARQUIVO> apontando para o arquivo onde foi gravada a transaçã o.
Comandos de Manutenção
Os comandos de manutençã o sã o utilizados para gerenciar e corrigir a base de dados de
pacotes e arquivos disponibilizados pelos repositó rios do yum. Com exceçã o do comando
history, nenhum comando de manutençã o precisa de parâmetros para ser executado.

Os comandos de manutenção sã o:

• check: Verifica o estado da base de dados do yum.


• clean: Limpa a base de dados do yum.
• history: Lista o histó rico de transaçõ es.
• makecache: Recria a base de dados do yum.
• shell: Executa um shell interativo de comandos do
yum.
• version: Exibe a versã o do yum.
yum history
O comando yum history, sem nenhum parâ metro, lista todas as transaçõ es já
realizadas pelo yum.
yum history summary
O comando yum history summary mostra um resumo por data das transaçõ es
realizadas pelo yum, mostrando quais tipos de operaçõ es foram realizadas e quantos
pacotes foram alterados.
yum history info
O comando yum history info <NÚMERO_DA_TRANSAÇÃO> mostra os
detalhes da transação realizada, como o tipo de operaçã o realizada e quais
pacotes foram alterados.
Comandos de Downgrade
O yum oferece opçõ es de comandos para downgrade da versã o
dos pacotes, porém é altamente nã o recomandado utilizá -los. O
pacote RPM, além de conter os arquivos que serã o instalados,
também contém scripts (comandos diversos que sã o
executados no sistema operacional) de instalaçã o ou
atualizaçã o. Esses scripts, no entanto, nã o sã o executados
durante o downgrade.
Um exemplo real é o banco de dados MySQL. Durante uma
atualizaçã o da versã o 5.3 para 5.5, diversos arquivos sã o
atualizados e é executado um script de alteraçã o da estrutura
da base de dados. No entanto, essas alteraçõ es nã o podem ser
desfeitas durante o downgrade.
Comando para checar qual o pacote está instalado e a versão:

# yum history

Plugins carregados: fastestmirror, presto

ID | Usuário de login | Data e hora | Ação(ões) | Alterad

——————————————————————————-
27 |  User <centos> | 2015-0X-XX 17:00 | Update | 6
26 |  User <centos> | 2015-0X-XX 16:58 | Install | 2
25 |  User <centos> | 2015-0X-XX 13:59 | Install | 9

Esse comando mostra as últimas execuções que foram feitas com o comando yum.
E eu literalmente uso (quase) esse mesmo comando, para desfazer a atualização de
pacotes:

# yum history undo 27

Com este comando acima, listo os últimos yum’s que rodaram e peço para desfazer
a execução do ID 27 (que é a referente ao update).

# rpm -qa | grep package - RedHat


Comandos De Rede
Alguns comandos uteis com o ifconfig

# ifconfig
lista as interfaces de rede ativas

# ifconfig -a
lista todas as interfaces de rede ativas e inativas

# ifconfig <nome da interface>


lista definições de rede de uma interface
especifica
# ifconfig <nome da interface> up
ativa a interface de rede

# ifup <nome da interface>


o mesmo que a opção anterior

# ifconfig <nome da interface> down


desativa a interface de rede

# ifdown <nome da interface>


o mesmo que a opção anterior

# ifconfig <nome da interface> <IP>


atribui um endereço IP à interface de rede

# ifconfig <nome da interface> IP netmask <máscara de


rede>
atribui IP e uma máscara à interface de rede
# ifconfig <nome da interface> up
ativa a interface de rede

# ifup <nome da interface>


o mesmo que a opção anterior

# ifconfig <nome da interface> down


desativa a interface de rede

# ifdown <nome da interface>


o mesmo que a opção anterior

# ifconfig <nome da interface> <IP>


atribui um endereço IP à interface de rede

# ifconfig <nome da interface> netmask <máscara de rede>


atribui uma máscara à interface de rede
O COMANDO PING
O COMANDO PING
NETSTAT

Com esse comando podemos ver as estatísticas das interfaces. 

Digite: netstat 

Para ver as rotas: 

# netstat -r 

Para ver as portas abertas no computador: 

# netstat -a 

Para ver todas as conexões TCP conectadas do seu computador: 


# netstat -nt 
TRACEROUTE

Podemos ver em tempo real todo o caminho que o pacote percorre até o destino. Cada
linha que aparece é chamada de pulo. 

# traceroute www.clicrbs.com.br 

NSLOOKUP
Esse comando resolve o nome de um host para um IP. 

# nslookup clicrbs.com.br 

DIG
Esse comando já fornece informações mais detalhadas
relacionadas ao DNS. 
# dig terra.com.br 
A Estrutura De Diretórios Do Linux
/ – O diretório Root (Raiz)

Tudo o que há no seu sistema Linux fica localizado dentro


do diretório raiz, representado por /. É como se fosse um
“C:\” do Windows, porém outras partições e discos também
se localizam sob o diretório raiz no Linux, enquanto no
Windows cada partição teria sua própria letra de unidade
separada.

Também vale lembrar que o único usuário do sistema capaz


de criar ou mover arquivos do diretório raiz é o root, ou
seja, o usuário-administrador. Isso evita que usuários
comuns cometam erros e acabem comprometendo a
integridade de todo o sistema de arquivos.
Binários executáveis: /bin

No diretório /bin estão localizados os binários


executáveis que podem ser utilizados por qualquer
usuário do sistema. São comandos essenciais,
usados para trabalhar com arquivos, textos e alguns
recursos básicos de rede, como o cp, mv, ping e grep
Binários do sistema: /sbin

Assim como o /bin, este diretório armazena executáveis, mas


com um diferencial: são aplicativos utilizados por
administradores de sistema com o propósito de realizar
funções de manutenção e outras tarefas semelhantes. Entre
os comandos disponíveis estão o ifconfig, para configurar e
controlar interfaces de rede TCP/IP, e o fdisk, que permite
particionar discos rígidos, por exemplo.
Programas diversos: /usr

Se você não encontrar um comando no diretório /bin


ou /sbin, ele certamente está aqui. O /usr reúne
executáveis, bibliotecas e até documentação de
softwares usados pelos usuários ou administradores
do sistema. Além disso, sempre que você compilar e
instalar um programa a partir do código-fonte, ele
será instalado nesse diretório.
Configurações do sistema: /etc

No diretório /etc ficam arquivos de configuração


que podem ser usados por todos os softwares,
além de scripts especiais para iniciar ou
interromper módulos e programas diversos. É
no /etc que se encontra, por exemplo, o
arquivo resolv.conf, com uma relação de
servidores DNS que podem ser acessados pelo
sistema, com os parâmetros necessários para
isso.
Bibliotecas: /lib

Neste ponto do sistema de arquivos ficam localizadas as bibliotecas usadas


pelos comandos presentes em /bin e /sbin. Normalmente, os arquivos de
bibliotecas começam com os prefixos ld ou lib e possuem "extensão" so.
Opcionais: /opt

Aplicativos adicionais, que não são essenciais para o


sistema, terminam neste diretório.

Inicialização: /boot

Arquivos relacionados à inicialização do sistema, ou seja, o


processo de boot do Linux, quando o computador é ligado,
ficam em /boot.

Serviços: /srv
Dados de servidores e serviços em execução no
computador ficam armazenados dentro desse diretório.
Aquivos pessoais: /home

No diretório /home ficam os arquivos pessoais, como documentos e


fotografias, sempre dentro de pastas que levam o nome de cada
usuário. Vale notar que o diretório pessoal do administrador não fica
no mesmo local, e sim em /root.
Volumes e mídias: /mnt e /media

Para acessar os arquivos de um CD, pendrive ou disco rígido presente


em outra máquina da rede, é necessário "montar" esse conteúdo no
sistema de arquivos local, isso é, torná-lo acessível como se fosse
apenas mais um diretório no sistema.
Em /media ficam montadas todas as mídias removíveis, como
dispositivos USB e DVDs de dados. Já o diretório /mnt fica reservado
aos administradores que precisam montar temporariamente um
sistema de arquivos externo.
/dev – Arquivos de Dispositivos

No Linux os dispositivos (hardware e software) são representados


como arquivos, e esse diretório contém uma grande quantidade de
arquivos especiais que representam esses dispositivos.

Ao plugar um pendrive no computador, por exemplo, um arquivo será


criado dentro do diretório /dev e ele servirá como interface para
acessar ou gerenciar o drive USB. Nesse diretório, você encontra
caminhos semelhantes para acessar terminais e qualquer dispositivo
conectado ao computador, como o mouse e até modems.
Arquivos variáveis: /var

Todo arquivo que aumenta de tamanho ao longo do tempo


está no diretório de arquivos variáveis. Um bom exemplo são
os logs do sistema, ou seja, registros em forma de texto de
atividades realizadas no Linux, como os logins feitos ao longo
dos meses.

Processos do sistema: /proc

Lembra da história de que tudo funciona como um arquivo no


Linux? Pois o /proc é a prova disso. Nesse diretório são
encontrados arquivos que revelam informações sobre os
recursos e processos em execução no sistema. Quer um
exemplo? Para saber há quanto tempo o Linux está sendo
usado desde a última vez em que foi iniciado, basta ler o
arquivo /proc/uptime.
Arquivos temporários: /tmp

Arquivos e diretórios criados temporariamente


tanto pelo sistema quanto pelos usuários
devem ficar nesse diretório. Boa parte deles é
apagada sempre que o computador é
reiniciado.
Comandos De Disco
EXT2

O sistema de arquivos ext2 é conhecido como "Second Extended


FileSystem". Foi desenvolvido para ser mais "eficiente" que o
sistema de arquivos "Minix", seu antecessor. 

O Minix era muito utilizado nas primeiras versões do Linux, e foi


utilizado por muitos anos. 

O sistema de arquivos ext2 não possui journaling e foi substituído


pelo ext3. 

Um sistema de arquivos com journaling é aquele que mantém um


log (journal), normalmente circular, de todas as mudanças no
sistema de arquivos antes de escrever os dados no disco.
EXT3

O sistema de arquivos ext3 é uma versão do ext2 com suporte a journaling.


Portanto, o ext3 tem as mesmas características do ext2, mas com suporte
journaling. 
Essa característica foi uma evolução e tornou o ext3 um sistema de arquivos muito
estável e robusto. 
Como no ext3 só foi adicionado o suporte a journaling, podemos converter um
sistema de arquivos ext2 para ext3, adicionado suporte a journaling, e também
podemos converter um sistema de arquivos ext3 para ext2, removendo o suporte a
journaling. 

REISERFS

O sistema de arquivos ReiserFS foi criado recentemente. Mas atualmente quase


todas as distribuições Linux o suportam.

Sua performance é muito boa, principalmente para um número muito grande de


arquivos pequenos. 

ReiserFS também possui suporte a journaling. 


XFS

O sistema de arquivos XFS também possui suporte a journaling. Foi


desenvolvido originalmente pela Silicon Graphics e posteriormente
disponibilizado o código fonte. O XFS é considerado um dos
melhores sistemas de arquivos para banco de dados, pois é muito
rápido na gravação. 

XFS utiliza muitos recursos de cache com memória RAM, e para


utilizar XFS é recomendado utilizar sistemas que possuem
redundância de energia. 
Partição swap
Este tipo de partição é usado para oferecer o suporte
a memória virtual ao GNU/Linux em adição a memória
RAM instalada no sistema.
Ao se executar um programa e a memória RAM
começar a encher, o GNU/Linux move automaticamente
os dados que não estão sendo usados para a partição
Swap e libera a memória RAM para a continuar
carregando os dados necessários.
Quando os dados movidos para a partição Swap são
solicitados, o GNU/Linux move os dados da partição
Swap para a Memória. Por este motivo a partição Swap
também é chamada de Troca ou memória virtual.
Partição swap
O uso da partição swap é sempre recomendada, pois
permite que o sistema disponha de uma área adicional
para situações em que precisa de uma quantidade muito
grande de memória RAM, como (por exemplo) ao editar
vídeos.

A memória swap pode ser usada também para mover


arquivos e bibliotecas que não estão em uso, liberando
mais memória RAM para uso dos programas e do cache
de disco.
VFAT

O sistema de arquivos VFAT é também conhecido como FAT32 (M$ Windows). 

O sistema de arquivos VFAT não possui suporte a journaling. É utilizado


normalmente para transferir dados entre sistemas M$ Windows e o Linux
instalados no mesmo disco, pois pode ser lido e escrito por ambos os sistemas
operacionais. 

O sistema de arquivos VFAT está longe de ser um sistema de arquivos utilizado


para Sistemas Linux, exceto para compartilhamento/compatibilidade entre o M$
Windows e Linux. 

Se você utilizar VFAT no Linux, esteja certo de perder alguns atributos, tais como:
permissão de execução, links simbólicos, entre outras coisas. 

Ambos os sistemas de arquivos ext3 e ReiserFS são maduros o bastante para


serem utilizados como padrão no Linux. Esses dois são os mais utilizados pelas
distribuições Linux. 
As partições no Linux

Temos duas interfaces IDE na placa-mãe, onde cada uma permite a


conexão de dois HDs, configurados como master ou slave. O
primeiro HD, conectado à interface IDE primária e configurado como
master, é reconhecido pelo Linux como hda, o segundo HD, slave da
IDE primária é reconhecido como hdb, enquanto os dois HDs
conectados à IDE secundária são reconhecidos como hdc e hdd.
Caso você esteja usando um HD Serial ATA, então ele será visto
como sda. Caso sejam dois, um será o sda e o outro sdb. O mesmo
acontece ao usar HDs SCSI.
Ao mesmo tempo, cada HD pode ser dividido em várias partições.
Podemos ter um total de 4 partições primárias ou três partições
primárias e mais uma partição extendida, que pode englobar até
255 partições lógicas. É justamente a partição lógica que permite a
nós dividir o HD em mais de 4 partições.
Esta limitação das 4 partições primárias, é uma limitação que existe
desde o primeiro PC, lançado em 1981. Os projetistas que
escreveram o BIOS para ele, precisavam economizar memória e
chegaram à conclusão que 2 bits (4 combinações) para o endereço
das partições seriam suficientes, pois na época os HDs mais
vendidos tinham apenas 5 MB e só existia um sistema operacional
para PCs, o PC-DOS, de forma que era raro alguém precisar criar
mais de uma partição. As coisas mudaram um pouco de lá pra cá,
mas infelizmente esta limitação continua até os dias de hoje.
Para amenizar o problema, foi criado o recurso da partição
estendida e das partições lógicas. A partição estendida contém uma
área extra de endereçamento, que permite endereçar as 255
partições lógicas. É possível criar até 4 partições extendidas, de
forma que (em teoria) é possível dividir o HD em até 1020
partições :).
As partições no Linux

A primeira partição primária, do primeiro HD (hda) é chamada de hda1. Caso o


HD seja dividido em várias partições, as demais partições primárias são chamadas
de hda2, hda3 e hda4. Porém, o mais comum ao dividir o HD em várias partições
é criar apenas uma partição primária e criar as demais partições dentro de uma
partição extendida. É isso que o particionador faz por default.
As partições extendidas recebem números de 5 em diante (hda5, hda6, hda7,
etc.) mesmo que as partições hda2 e hda3 não existam:
Neste mapa temos a partição primária, montada no diretório raiz (/) e uma
partição extendida, que engloba tanto a partição swap quanto a partição
montada em /home.
Este é o esquema de particionamento mais usado no Linux: três partições, sendo
uma a partição raiz, onde o sistema fica instalado, a partição swap e uma terceira
partição (opcional), montada no diretório /home.

A idéia é a mesma de dividir o HD em C:\ e D:\ no Windows: simplesmente


manter seus arquivos pessoais numa partição diferente da dos arquivos do
sistema, para melhorar a segurança e permitir que você possa tranqüilamente
reformatar a partição do sistema quando precisar reinstalá-lo, sem correr o risco
de perder junto seus arquivos pessoais.
Os comandos exibem quais partições existem em cada disco, além de outros detalhes
como o tamanho total, o espaço utilizado, o sistema de arquivos etc.
Particionamento De Discos
Os discos rígidos (HDs) podem ser divididos em uma ou mais áreas lógicas chamadas de partições.
Essa divisão é gravada em uma tabela chamada de Tabela de Partições, que fica gravada no próprio
disco rígido. É necessário que haja no mínimo uma partição em um disco para que possamos instalar
e rodar um sistema operacional. Mais partições podem ser criadas para organizar melhor os discos e
trazer performance, estabilidade e segurança.

No Linux, os discos são identificados por siglas como sda, sdb, sdc, etc, indicando o tipo de disco (sd =
SATA, hd = IDE) e o número do disco (a = primeiro disco, b = segundo disco, c = terceiro disco, etc).
Não há letras de unidade (C:, D:, etc) como no Windows.
E as partições são representadas por números após a sigla do disco:
sda1 = primeira partição do primeiro disco rígido SATA
sdb2 = segunda partição do segundo disco rígido
sdc8 = oitava partição do terceiro disco rígido
E assim por diante.

Esses dispositivos são acessados por meio de arquivos de dispositivos, que se localizam no
diretório /dev do sistema. Por exemplo, temos um arquivo chamado /dev/sda que representa o
primeiro disco rígido do sistema, e outro arquivo chamado /dev/sda2, que representa a segunda
partição desse mesmo disco.
Acesse o conteúdo do
diretório /dev, e repare
nos arquivos de
dispositivos que
representam os discos e
partições sda e sdb:
Temos duas partições no disco sda:

/dev/sda1 - Marcada como boot (inicializável), é onde está instalado


nosso Linux. Esta partição, em nosso caso, se inicia no setor 2048 do
disco e termina no setor 34125823, possuindo 17061888 blocos. Veja
que a partição possui um Id, que é um código mostrando o tipo de
partição criada, no caso “Linux”

/dev/sda2 - Iniciando-se no bloco 34127870 e terminando no bloco


37746687, possui Id 5, que significa que se trata de uma partição
estendida do disco (contêiner para partições lógicas).
Agora, veja que para o disco /dev/sdb não temos essas informações
sobre as partições, pois o disco acabou de ser adicionado e,
portanto, ainda não foi particionado.
Vamos criar então duas partições neste disco. Digite o comando a
seguir para entrarmos no fdisk e configurar o disco de forma
interativa:

Fdisk /dev/sdb
Tecle P
Temos o disco sdb que será usado em nossos testes. Ele possui uma partição
primária e duas unidades lógicas que serão formatadas.

Podemos ver o sistema de arquivos atual em uma partição emitindo o comando


file -Ls no terminal:

# file -Ls /dev/sda1


# file -Ls /dev/sdb1

Veja que a partição /dev/sda1 possui o sistema de arquivos xfs, enquanto a


partição /dev/sdb1 no segundo disco não possui nenhum sistema de arquivos,
pois só foi retornada a palavra “data” como resultado do comando.
Podemos também usar o comando blkid para descobrir o sistema de arquivos em uma
partição. Esse comando também retorna o UUID do disco, que é um código de identificação
da partição (falaremos sobre isso em outro artigo):

# blkid /dev/sda1

Vamos então formatar as partições do disco sdb, usando


três sistemas de arquivos distintos: o padrão ext4 e ext3.
Formatar um drive no Linux, com mkfs

 O mkfs torna fácil formatar drives de vários tipos, no Linux, tais como pendrives, cartões
de memória, HDs, SSDs etc.

O aplicativo permite várias opções e parâmetros de uso, que lhe conferem grande
versatilidade para realizar a tarefa.

O mkfs pode criar uma variedade de sistemas de arquivos em um dispositivo —


usualmente (mas não exclusivamente) um disco rígido.
Formatando a unidade com ext4

mkfs.ext4 /dev/sdb1
Rode novamente o comando blkid /dev/sdb1
Rode novamente o comando blkdid /dev/sdb5
Bem, agora que as partições foram
formatadas, será que já podemos utilizá-las
para gravar nossos arquivos?

A resposta é “não”.
Ainda precisamos executar um terceiro
processo para tornar as partições formatadas
disponíveis para uso: a montagem dos
sistemas de arquivos.
Montando partições:
O sistema nunca acessa os dados dentro
da partição diretamente. Ao invés disso, ele
permite que você "monte" a partição em
uma determinada pasta e acesse os arquivos
dentro da partição através dela.
A montagem do volume físico é uma
abstração do sistema operacional que nos
permite visualizar o volume em uma forma
lógica e mais compreensível.
Montando partições: mount

O comando "mount“ é responsável por


criar a abstração de um sistema de arquivos
lógicos a partir de um volume físico.

A sintaxe básica inclui o dispositivo e a


pasta onde ele será acessado, como em:

# mount /dev/sdb1 /mnt/sdb1


Montando partições: mount

Ao desmontar a partição, pode-se


especificar tanto o dispositivo, quando a
pasta onde ele foi montado, como em:

# umount /mnt/sdb1

OU

# umount /dev/sdb1
Montando partições: mount
O comando mount é utilizado para montar um dispositivo na
hierarquia do sistema de arquivos do Linux. 
As opções mais usadas são:
-a - Monta todos os dispositivos especificados no arquivo
/etc/fstab que não têm a opção noauto selecionada.
-r  - Monta o sistema de arquivos do dispositivo como somente
leitura.
-w - Monta o sistema de arquivos do dispositivo como leitura e
gravação.
-o  - Especifica as opções de montagem.
-t   - Especifica o tipo do sistema de arquivos do dispositivo.
Montando partições: mount
Alguns tipos de sistemas de arquivos:
ext2 - Partições Linux.
ext3 - Partições Linux.
reiserfs - Para partições reiserfs.
vfat - Para partições Windows Fat.
ntfs - Para partições Windows NTFS.
Iso9660 – Para cd-rom
Exemplos:
# mount /dev/hdb1 /mnt/windows -t vfat
# mount /dev/fd0 /mnt/floppy -t vfat
# mount /dev/cdrom /mnt/cdrom -t iso9660
Vejamos as partições existentes em nosso sistema
com o comando fdisk -l:

# fdisk -l
Montar uma partição, basicamente,  é torná-la disponível para uso após a formatação,
anexando-a ao sistema de arquivos do Linux. Podemos fazer isso “conectando” a partição
formatada a um diretório criado especialmente para esse fim.

Podemos verificar quais partições estão montadas no momento no sistema executando o


comando df -h:

$ df –h
Além dos sistemas de arquivos temporários e especiais, note que sistema tenho a partição
/dev/sda1 montada no diretório raiz do sistema (/).

$ sudo fdisk -l
Temos o disco /dev/sdb, com quatro partições:

- /dev/sdb1, primária;
- /dev/sdb2, estendida;
- /dev/sdb5, unidade lógica dentro da partição estendida

Dessas três, iremos montar as partições primária e unidades lógicas. Vejamos se já estão
formatadas e os sistemas de arquivos usado em caso positivo:

$ sudo blkid

Essa  informação é importante para que possamos montar corretamente as partições


no sistema de arquivos do Linux.
Montando as partições

Nosso primeiro passo será criar os pontos de montagem, que nada mais são do que
diretórios que serão usados como “pontos de entrada” para acesso às partições / discos.

Vamos criar então dois diretórios para montar as duas partições do disco sdb:
/ext4 para a partição /dev/sdb1
/ext3 para a partição /dev/sdb5

Note que podemos usar quaisquer nomes para as  partições; usarei nomes que reflitam
cada sistema de arquivos apenas para fins didáticos.

Criemos então os dois diretórios:


$ mkdir  /ext4  /btrfs  /ntfs
$ ls /
Para montar as partições usaremos o comando
mount. Sua sintaxe é:
# mount [opções] dispositivo ponto_montagem

Usaremos a opção -t tipo_fs para determinar o


sistema de arquivos usado em cada partição.

Montemos então a primeira partição:


$ sudo mount -t ext4  /dev/sdb1  /ext4

Depois a segunda:
$ sudo mount -t ext3  /dev/sdb5  /ext3
Vamos verificar agora as partições montadas com o comando df -h:
Excelente! estão todas montadas em seus respectivos
pontos de montagem!
Agora todo arquivo que for gravado nestes diretórios será,
na verdade, armazenado na partição correspondente deste
disco rígido.

Caso seja necessário desmontar uma das partições


(desconectá-la do sistema de arquivos), execute o comando
umount seguido do ponto de montagem que queremos
liberar.

E a partição será desmontada (não estará mais acessível).


1 - Qual o ponto de montagem do dispositivo
/dev/hda4?

2 - Qual o sistema de arquivos do dispositivo


/dev/hda1?

3 - Qual o dispositivo que contem a partição swap?


1 - Exercício Montagem De Pendrive No Portal

2 - Qual o comando para se montar um disco


Cd-rom em um diretório de nome
/mnt/cdrom?

Não esqueça - O tipo indica o sistema de


arquivos utilizados na partição. Partições fat e
fa32 são identificados como vfat.
Respostas

1 - Exercício Montagem De Pendrive No Portal


No Portal

2 - Qual o comando para se montar um disco


Cd-rom em um diretório de nome
/mnt/cdrom?

No caso de CD-ROM, o tipo deve ser


especificado como iso9660. Por exemplo:
mount -t iso9660 /dev/hdb /mnt/cdrom.
No caso do CD-ROM, podemos citar apenas o dispositivo, sem incluir a partição (já
que, diferente de um HD, um CD-ROM não pode ser particionado). Podemos usar
usar o dispositivo correto, como "/dev/hdc" ou "/dev/hdd", quanto usar o
"/dev/cdrom", um link que é criado pelo sistema apontando para a localização
correta:

# mount /dev/cdrom /mnt/cdrom

ou

Crie uma pasta dentro de /media

mkdir /media/cdrom

Agora monte a média

mount /dev/cdrom /media/cdrom


O que é o shell

O shell é o "prompt" da linha de comando do Unix e Linux, é o servo que


recebe os comandos digitados pelo usuário e os executa.
O shell é aquele que aparece logo após digitar-se a senha do usuário e
entrar na tela preta. Ou na interface gráfica, ao clicar no ícone Terminal
ou Console.

localhost login: root


Password:
Last login: Fri Apr 16 01:57:28 on tty5
[root@localhost root]# _

Ali está o shell, esperando ansiosamente por algum comando para ele
poder executar.
Essa é a sua função: esperar e executar. Cada comando digitado é lido,
verificado,
interpretado e enviado ao sistema operacional para ser de fato
executado.
Funcionando como uma ponte, o shell é a ligação entre o usuário e o kernel. O
kernel é quem acessa os equipamentos (hardware) da máquina, como disco
rígido, placa de vídeo e modem. Por exemplo, para o usuário ler um arquivo
qualquer, toda esta hierarquia é seguida:

USUÁRIO --> SHELL --> KERNEL --> DISCO RÍGIDO

Para os usuários do Windows, é fácil pensar no shell como um MSDOS melhorado.


Ao invés do C:\> aparece um [root@localhost root]#, mas o funcionamento é
similar. Basta digitar um comando, suas opções e apertar a ENTER que ele será
executado. O comando
deve estar no PATH, mensagens de aviso são mandadas para a tela e Ctrl+C
interrompe o funcionamento. Isso tudo é igual em ambos.
Mas o shell é muito mais poderoso que seu primo distante. Além dos comandos
básicos para navegar entre diretórios e manipular arquivos, ele também possui
todas as estruturas de uma linguagem de programação, como IF, FOR, WHILE,
variáveis e funções. Com isso, também é possível usar o shell para fazer scripts e
automatizar tarefas
Passos para criar um shell script

1. Escolher um nome para o script

Exemplo: sistema.sh

OBS: Use apenas letras minúsculas e evite acentos, símbolos e espaço em branco

2. Escolher o diretório onde colocar o script

Deixe-o dentro de seu diretório pessoal ($HOME).

3. Criar o arquivo e colocar nele os comandos

Use o VI ou outro editor de textos.

4. Colocar a chamada do shell na primeira linha

A primeira linha do script deve ser:


#!/bin/bash
Para que ao ser executado, o sistema saiba que é o shell quem irá interpretar estes comandos.

5. Tornar o script um arquivo executável

Use o seguinte comando para que seu script seja reconhecido pelo sistema como um
comando executável:
chmod +x sistema.sh
Comandos mais conhecidos

São os comandos que estamos acostumados a usar no


terminal e podemos usá-los também no script, se você não
os conhece, vá aprendendo de acordo com a necessidade,
pesquise na internet e consulte a tabela resumida abaixo
sempre que preciso.
Variáveis
Variáveis
Comando If e else
Capturar Valores do Teclado

• É possível que você precise que o usuário defina uma


variável durante a execução do comando.

• O comando read, dá uma pausa no script até que o


usuário digite um valor e teclar enter.

#!/bin/bash

echo "Digite o valor da variavel: "


read VARIAVEL
echo “A variavel e $VARIAVEL"
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Nosso primeiro script

Onde escrever os scripts

Para que esta funcao seja ativada e necessario colocar no comeco do


script #!/bin/bash ou #!/bin/sh

Passos a passo de como fazer o script, antes do exercicio:

- Abra o editor de texto escolhido


- Escreva na primeira linha #!/bin/bash
- Tem pessoas que colocam a extensao .sh no nome do arquivo (tanto
faz)
- Para nao termos problemas futuros, ja vamos dar permissao de
execucao (chmod +x script)
- Agora ja podemos escrever o script
- Quando o script estiver pronto entre no diretorio em questao e de o
comando ./nome_do_script para executa-lo
Vi meuprimeiroshell

#!/bin/bash
w
whoami
uname –r

Salve o arquivo

chmod +x meuprimeiroshell

Após dar a permissão para o arquivo, execute-o:

./meuprimeiroshell
#!/bin/bash

# mostra os usuários logados no sistema (este é um


comentário de meia linha)
w

whoami
#mostra com qual usuário estou logado (isso é um
comentário de linha inteira)

uname -r

# mostra qual a versão do kernel que estou utilizando


#!/bin/bash

echo ” Olá mundo estou vivo!!”

Salve o arquivo.

Agora é preciso dar permissão

$ chmod +x meusegundoshell

Pronto!! Agora é só executar!

$ ./meusegundoshell

Viu o resultado? :)
O primeiro shell script (melhorado)

Melhorar a saída na tela

Executar os três comandos seguidos resulta em um bolo de texto na tela,


misturando as informações e dificultando o entendimento. É preciso
trabalhar um pouco a saída do script, tornando-a mais legível.

O comando "echo" serve para mostrar mensagens na tela. Que tal anunciar
cada comando antes de executá-lo?

Para usar o echo, basta colocar o texto entre "aspas". Se nenhum texto for
colocado, uma
linha em branco é mostrada.
#!/bin/bash
echo "Data e Horário:"
date
echo
echo "Uso do disco:"
df
echo
echo "Usuários Conectados:"
W
#!/bin/bash
echo "Vou buscar os dados do sistema. Posso
continuar? [sn] "
read RESPOSTA
test "$RESPOSTA" = "n" && exit
echo "Data e Horário:"
date
echo
echo "Uso do disco:"
df
echo
echo "Usuários conectados:"
w
Interagir com o usuário

Para o script ficar mais completo, vamos colocar uma interação


mínima com o usuário, pedindo uma confirmação antes de executar
os comandos.

O comando "read" leu o que o usuário digitou e guardou na variável


RESPOSTA. Logo em
seguida, o comando "test" verificou se o conteúdo dessa variável
era "n". Se afirmativo, ocomando "exit" foi chamado e o script foi
finalizado. Nessa linha há vários detalhes importantes:
· O conteúdo da variável é acessado colocando-se um cifrão "$" na
frente
· O comando test é útil para fazer vários tipos de verificações em
textos e arquivos
O operador lógico "&&", só executa o segundo comando caso o
primeiro tenha sido
OK. O operador inverso é o "||"
Fazer um Script para 'processar' 5
comandos quaisquer do Linux (tais como Ls,
Cat, top, etc) e armazenar tais informações
no arquivo....

Ls.log
Cat.log
Top.log
Resolução

#!/bin/bash

#data do sistema
date >> data.txt

#listar
ls >> listar.txt

...

exit
Como Usar o Systemctl para Gerenciar Serviços do
Systemd
Gestão de Serviços

O objetivo fundamental de um sistema de inicialização é inicializar os


componentes que devem ser iniciados após o kernel Linux ser inicializado. O
sistema de inicialização também é usado para gerenciar serviços para o
servidor a qualquer momento enquanto o sistema está em execução.

No systemd, o alvo da maioria das ações são “units” (unidades), que são
recursos que Systemd sabe gerir. As unidades são classificadas pelo tipo de
recurso que representam e são definidas com arquivos conhecidos como
arquivos de unidade. O tipo de cada unidade pode ser inferida a partir do
sufixo no fim do ficheiro.

Para tarefas de gerenciamento de serviços, a unidade de destino será


unidades de serviços, que têm arquivos de unidades com um sufixo
de .service. No entanto, na a maioria dos comandos de gerenciamento de
serviços, você pode realmente deixar de fora o sufixo .service, pois
o systemd é inteligente o suficiente para saber que você provavelmente vai
querer operar em um serviço ao usar comandos de gerenciamento de
serviços.
Para tarefas de gerenciamento de serviços, a unidade de
destino será unidades de serviços, que têm arquivos de
unidades com um sufixo de .service. No entanto, na a
maioria dos comandos de gerenciamento de serviços, você
pode realmente deixar de fora o sufixo .service, pois
o systemd é inteligente o suficiente para saber que você
provavelmente vai querer operar em um serviço ao usar
comandos de gerenciamento de serviços.
SYSTEMCTL - FERRAMENTA PARA GERENCIAR SERVIÇOS

O systemctl é uma ferramenta para gerenciar serviços

Para listar todos os serviços em execução:

# systemctl -t service

Para parar um serviço em execução no sistema:

# systemctl stop iptables.service

Para iniciar um serviço no sistema:

# systemctl start httpd.service


Para desativar um serviço no sistema:

# systemctl disable sendmail.service

Para ativar um serviço no sistema:

# systemctl enable crond.service


Listagem Unidades Atuais

Para ver uma lista de todas as unidades ativas que o


Systemd conhece, podemos usar o comando list-units:

Systemctl list-units
Listagem Unidades Atuais com o Systemctl
Listando Todos os Arquivos da Unidade com o
Systemctl
Systemctl list-unit-files
A saída possui as seguintes colunas:

UNIT: O nome da unidade do systemd


LOAD: Se a configuração da unidade foi analisada pelo systemd. A
configuração das unidades carregadas são mantida na memória.
ACTIVE: Um resumo do estado se a unidade estiver ativa. Isso
geralmente é uma maneira bastante básica para mostrar se a
unidade foi iniciado com êxito ou não.
SUB: Este é um estado de nível inferior que indica informações mais
detalhadas sobre a unidade. Isso muitas vezes varia por tipo de
unidade, estado, e o método real em que a unidade funciona.
DESCRIPTION: Uma breve descrição textual do que a unidade é/faz.
Systemctl disable tpm.mount
System enable tpm.mount
Reiniciando e Recarregando com o systemctl

Para reiniciar um serviço em execução, você pode usar o comando restart:

systemctl restart nomedoserviço

Se a aplicação em questão é capaz de recarregar seus arquivos de configuração (sem


reiniciar), você pode usar o comando reload comando para iniciar esse processo:

sudo systemctl reload nomedoserviço

Se você não tem certeza se o serviço tem a funcionalidade para recarregar sua
configuração, você pode usar o comando reload-or-restart. Isto irá recarregar a
configuração no local, se disponível. Caso contrário, ele irá reiniciar o serviço para
que a nova configuração tome efeito:

sudo systemctl reload-or-restart nomedoserviço


Verificando o Status de Serviços com o Systemctl

Para verificar o status de um serviço em seu sistema, você


pode usar o comando status:

systemctl status nomedoserviço

Isto irá fornecer-lhe com o estado do serviço, a hierarquia


cgroup, e as primeiras linhas de log.
Para parar o sistema, você pode usar o comando halt:

sudo systemctl halt

Para iniciar um desligamento completo, você pode usar o comando poweroff:

sudo systemctl poweroff

Uma reinicialização pode ser iniciada com o comando reboot:

sudo systemctl reboot

Todos estes comandos alertam os usuários logados que o evento está ocorrendo,
algo que simplesmente executando ou isolando o target não iria fazer. Note que na
maioria das máquinas que usam systemd, os comandos mais curtos, são abreviações
dos comandos do systemd, para estas operações e funcionam corretamente
também.
Por exemplo, para reiniciar o sistema,
normalmente você pode digitar:

reboot

Você também pode gostar