Vous êtes sur la page 1sur 31

Administração em Linux

FUNDAMENTOS DE ADMINISTRAÇÃO DE SISTEMAS LINUX

ENTRANDO E SAINDO DO SISTEMA


# echo “informe o seu login/usuário, a seguir digite sua senha”
# logout
# exit

DESLIGANDO O SISTEMA
# shutdown -h now ( desliga o sistema imediatamente )
# shutdown -h -t 30 5 “O sistema será desligado em 5 minutos” ( desliga enviando
mensagem)
# shutdown -h +60 (desliga daqui a 60 minutos)
# shutdown -h +18:30 (desliga as 18 horas e 30 minutos)
# halt ( idem shutdown -h now)
# init 0

REINICIANDO O SISTEMA
# shutdown -r now ( reinicia imediatamente )
# shutdown -r -t 30 5 “O sistema será reinicializado em 5 minutos”( desliga enviando
mensagem)
# reboot ( idem shutdown -r now)
# init 6

ALTERNANDO ENTRE TERMINAIS VIRTUAIS


# chvt 7 ou chvt 1 ( vai para o ambiente gráfico ou vai para o shell em tty1 )

MOSTRAR VARIÁVEIS DE AMBIENTE SHELL


# set
# setenv

CRIAR VARIÁVEIS
# ANDRE=UNIPLAC

VER CONTEÚDO DA VARIÁVEL


# echo $ANDRE

EXPORTAR VARIÁVEL
# export ANDRE
# export ANDRE=123

ARQUIVOS DE INICIALIZAÇÃO DE SESSÃO

/etc/profile: primeiro arquivo de configuração a ser interpretado quando o usuário se


loga no sistema, este arquivo é responsável pela configuração global do ambiente
utilizado pelos usuários do sistema.

.bash_profile: configuração pessoal do ambiente do usuário e pela execução automática


de programas na abertura da sessão

.bashrc: são encontrados nele definições de alias e de funções ( cada usuário pode
individualmente ter as suas definições ).

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

Exemplo do arquivo .bashrc

.bash_logout: este arquivo é interpretado toda vez que uma sessão de login é finalizada.

GERENCIMENTO DE ARQUIVOS E DIRETÓRIOS

LISTANDO ARQUIVOS – exibe o conteúdo dos diretórios


# ls -i teste.txt ( mostra o inode – identificador do arquivo )
# ls -l teste.txt ( formato longo )
# ls -a teste.txt ( lista todos os arquivos incluindo ocultos )
# ls -F teste.txt (coloca um símbolo no fim do arquivo indicando seu tipo )
# ls -R ( recursivo todos os diretórios )
# ls -l –full-time ( data completa da modificação )
# ls -l –sort=size ( ordena por tamanho )
# ls !(*.gz) (visualiza os arquivos de um diretório, excluindo todos com extensão .gz)

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

CRIANDO E REMOVENDO DIRETÓRIOS

CRIANDO DIRETÓRIOS

# mkdir teste ( cria o diretório teste )


# mkdir -p meu_dir/meu_sub_dir/sub_sub_dir ( cria uma árvore de diretórios )
# mkdir dir_1 dir_2 dir_3 ( cria os diretórios dentro do diretório atual )
# mkdir -m 600 teste1.txt

REMOVENDO DIRETÓRIOS

# rmdir teste ( remove o diretório teste )


# rmdir -p temp/sub_dir/sub_dir2 ( remove a árvore de diretórios )

Porém o comando remove diretórios vazios, se existir um arquivo dentro do diretório


este não será removido. Para conseguir remover diretórios deve-se utilizar o comando
rm.

COPIANDO ARQUIVOS

# cp /doc.origem /doc.destino
# cp -bi /doc.origem /doc.destino
# cp -r /doc.origem /doc.destino

MOVER OU RENOMEAR

# mv arquivo destino
# mv teste.txt /home/aluno ( move o arquivo teste.txt para o diretório /home/aluno )
# mv teste.txt /home/aluno/teste2 ( renomeia o arquivo durante a movimentação )

REMOVENDO ARQUIVOS

# rm teste.txt
# rm -i teste.txt ( remove solicitando confirmação )
# rm -rf teste.txt ( remove tudo do local atual )

LINKS
ln - cria links para arquivos/diretórios. Cria tanto links simbólicos (soft links) como
diretos (hard links)

# ln -s arquivo link
# ls -s origem destino
# ln -s /home/andre/desligado /sbin/desli
# ln /exercicios/temp/arquivo1.doc link1.doc
# ln –s /exercicios/temp/arquivo1.doc link1.doc

touch – atualiza a última data de acesso ao arquivo. Caso o arquivo não exista, será
criado vazio por padrão.
# touch andre1.txt

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
ESTRUTURA DE DIRETÓRIOS

/home : é o diretório onde estão contidos os diretórios de trabalho dos usuários do


sistema.

/root : é o diretório de trabalho do administrador do sistema.

/boot : contém o kernel e tudo que é necessário ao processo de boot, exceto os arquivos
de configuração.

/bin : contém aplicativos e utilitários usados durante a inicialização do sistema e que


são necessários quando nenhum outro sistema de arquivos está montado. Seu conteúdo
pode ser utilizado tanto pelo root como os usuários. Comandos essenciais do sistema.

/sbin : contém ferramentas de configuração e manutenção do sistema ( apenas o root


tem acesso ). Comandos essenciais de adminstração do sistema.

/lib : contém as bibliotecas compartilhadas necessárias para inicializar o sistema e para


executar os comandos existentes no sistema de arquivos raiz e além de módulos do
kernel.

/dev : estão localizados os arquivos de dispositivos. Arquivos de dispositivos de


hardware.

/etc : contém arquivos de configuração e diretórios que são específicos à máquina. Não
deve conter nenhum binário. Arquivos de configuração do sistema.

/tmp : deve estar disponível para programas que requerem arquivos temporários.

/mnt : podem ser montados os discos flexíveis e os CD-ROMs.

/proc : contém informações sobre os processos em execução, assim como informações


de configuração do sistema, como IRQs e portas de entrada e saída utilizadas entre
outras informações.

/usr : é a segunda maior seção do sistema de arquivos. Praticamente todo o sistema


Linux encontra-se sob ele, incluindo programas de usuários e de administração, o
sistema de janelas X, jogos e bibliotecas compartilhadas.

/var : contém arquivos de dados de variáveis. Isto inclui arquivos e diretórios de spool,
dados de adminstração e login e arquivos transitórios.

/opt : devem ser instalados aqui pacotes adicionais, desenvolvidos por terceiros

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

Estrutura de diretórios do fedora core 2.0

UTILIZANDO A DOCUMENTAÇÃO DO LINUX

COMANDOS DE AJUDA

São utilizados para obter informações sobre outros comandos ou componentes do Linux

man - Consulta os manuais on-line do sistema


$ man ls

info – Exibe informações de um comando do sistema


$ info
$ info ls

whatis – Consulta manuais on-line do sistema a partir de um banco de dados. Esse


banco de dados deve ser atualizado periodicamente com o comando makewhatis-w
(executado pelo root)
$ whatis find

apropos – Exibe informações sobre um assunto a partir de um banco de dados. Esse


comando utiliza o mesmo banco de dados do comando whatis.
$ apropos apache

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
PERMISSÕES DE ARQUIVOS

UTILIZANDO O CHMOD

Este comando permite que se altere as permissões de um ou mais arquivos. Existem


duas notações para se aplicar esse comando: o modo símbolico e o modo octal. Somente
o root ou o dono do arquivo pode executar esta operação.

Notação Simbólica:

u = usuário, ou dono do arquivo

g = grupo do arquivo

o = outros usuários que não são nem os donos, nem estão no mesmo grupo
especificados

a = afeta todos os anteriores ( u,g,o )

Características dos operadores do chmod

+ concede permissão (ões) especificada (s)


- remove permissões
= atribui somente estas permissões ao arquivo, retirando as que não se encontrm
explícitas

PERMISSÕES SIMBÓLICAS DO CHMOD

r = concede ou remove permissão de leitura

w = concede ou remove permissão de escrita

x = concede ou remove permissão de execução

PERMISSÕES OCTAIS

1 = leitura ( read )

2 = escrita ( write )

3 = execução ( execute )

PERMISSÕES ESPECIAIS

Suid bit ( chmod u+s, octal 4 ) : quando estiver ligado, o programa executará com as
permissões do dono ao invés das permissões do usuário que o lançou. Por exemplo: O
programa prog tem como dono root e como grupo root. Quando o usuário aluno
executar prog este executará com as permissões de root.

Sgid bit ( chmod g+s, octal 2 ) : qualquer arquivo criado dentro do diretório terá o
mesmo grupo do diretórios

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Sticky bit ( chmod o+t , octal 1 ) : se um diretório tiver o sticky bit ligado e permissão
de rwx para todos os usuários, somente o dono do arquivo que estiver situado nesse
diretório poderá removê-lo. Por exemplo: o diretório /tmp tem o sticky bit ligado e
permissões 777. Caso o usuário Jose crie o arquivo teste.txt, somente ele poderá
remove-lo.

BIT IMUTÁVEL *

Se estiver com o bit imutável habilitado somente o usuário que criou o arquivo ou
diretório poderá removê-lo, nem mesmo o root pode removê-lo. Mas somente o root
poderá entrar com o comando chattr.

# lsattr texte.txt ( lista os atributos especiais )


# chattr +i texte.txt ( para adicionar )
# chattr -i teste.txt ( para remover )

PERMISSÕES PADRÃO

O comando umask define as permissões padrão dos arquivos quando são criados pelo
usuário.

# umask -S
# umask

UTILIZANDO CHOWN

O comando chown permite ao root a alteração do dono e do grupo relacionado ao


arquivo, ou arquivos, selecionados. Em casos especiais o usuário pode alterar o grupo
caso ele pertença tanto ao grupo de origem como ao grupo de destino.

# chown andre:andre /etc/passwd ( altera o dono e o grupo do arquivo /etc/passwd para


andre )

Para alterar o grupo de um arquivo pode ser feito da seguinte maneira:

# chgrp -R root /home/andre/uniplac ( altera o grupo do arquivo uniplac para o grupo


do root )

COMANDOS DE PAGINAÇÃO

more – exibe arquivos texto


# more /etc/passwd
# more +100 /usr/local/apache/conf/httpd.conf

less - exibe arquivos texto


# less /etc/passwd
# less –p php /usr/local/apache/conf/httpd.conf
# less arquivo ( o comando less não finaliza automaticamente quando o fim do arquivo
de texto é encontrado )

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

PIPE E REDIRECIONAMENTO DE FLUXO

O conceito de se trabalhar com pipes ( “|” ) é: a saída de um comando, em vez de ser


enviada para a saída padrão, é redirecionada ( através do pipe) para o comando
subseqüente, tornando-se sua entrada.

# who | wc -l
# cat /etc/passwd | cut -d: -f1
# cat cidades.txt | head -25 | tail -5

UTILIZANDO O TEE

O comando tee recebe a saída de outro comando e envia tanto para a saída padrão como
para o próximo comando do fluxo. Este comando é análogo a uma conexão em “T” em
uma tubulação.

# cat cidades.txt | sort | tee cidades.ordenada | wc -l

A maioria dos comandos tem uma entrada, uma saída e pode gerar erros. Esta entrada é
chamada entrada padrão ou stdin e o default é o teclado. A saída do comando é
chamada saída padrão ou stdout e o default é a tela do terminal. Para a tela as
mensagens de erros ou stderr.

REDIRECIONAMENTO DE SAÍDA

> = redireciona a saída de um comando para um arquivo especificado, se ele não existir
será criado, caso exista será sobrescrito:

# ls -l /etc/passwd > usuario ( redireciona a saída do comando para o arquivo usuario )

>> = redireciona a saída de um comando para um arquivo especificado, anexando-o ao


seu fim, não sobrescreve

# ls -l /etc/passwd >> usuario

2 > = redirecionam os erros gerados por um comando para o arquivo especificado.


Mesmo que não ocorra erro na execução, o arquivo será criado.

# find / -name exemplo.txt 2> erros.log

1 > = redireciona só os resultados corretos

REDIRECIONAMENTO DE ENTRADA

< = avisa que a entrada não será o teclado, mas sim o arquivo especificado.

# cat < exemplo.txt > exemplo_copia.txt

<< = cria o arquivo e fecha quando encontrar a palavra inicio

# cat > texto << fim (digite o texto e finalize digitando fim)

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
DICAS DO VI

Para abrir um arquivo numa linha especifica:

# vi +350 /etc/httpd/conf/http.conf

Para abrir um arquivo numa linha com string especifica

# vi +/php3 /etc/httpd/conf/http.conf

COMANDOS ÚTEIS DE USO GERAL

O comando cat: grava na saída padrão o conteúdo de determinado arquivo.


# cat /etc/passwd
# cat -b /etc/passwd
# cat -n /etc/passwd
# cat -evt /etc/passwd ( para descobrir espaços e caracteres especiais indesejados )
# cat –nb arquivo (numera as linhas de um arquivo especificado)

Também é possível criar arquivos com este comando:


# cat > documento.txt
Digite o texto que
você quer e depois
aperte control+d

# cat > documento.txt << fim


Digite o texto que quiser
quando pressionar a ultima palavra
desta linha de comando arquivo finaliza
fim

O comando tac: (ironicamente cat de traz para frente) lista o arquivo de forma inversa
# tac /etc/passwd

O comando sort: classifica as linhas dos arquivos especificados segundo as opções


selecionadas. Ordena os dados recebidos da entrada padrao ou de um arquivo,
escrevendo-os na saida padrao.
# sort /etc/passwd
# sort -o telefone.txt telefone.txt

O comando wc: faz a contagem de palavras/linhas/caracteres de determinado arquivo.


Se for informado mais que um arquivo será apresentado um resultado que é a somatória
dos resultados de contagem de todos eles.
# wc -l /etc/passwd ( conta as linhas do arquivo )
# wc -c /etc/passwd ( conta os caracteres do arquivo )
# wc -w /etc/passwd ( conta as palavras do arquivo )

O comando head: envia para a saída padrão as primeiras linhas de um arquivo.

# head /etc/passwd ( mostra as primeiras 10 linhas do arquivo especificado )


# head -5 /etc/passwd ( mostra as 5 primeiras linhas do arquivo especificado )
# head -5 -v /etc/passwd ( mostra no cabeçalho o nome do arquivo )

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

O comando tail: envia para a saída padrão as últimas linhas de um arquivo.


# tail -10 /var/log/messages ( mostras as últimas 10 linhas do arquivo especificado)
# echo $PATH | tail -c10 ( exibe os últimos caracteres da variável PATH
# tail -f /var/log/messages ( continua indefinidamente tentando ler caracteres )

O comando cut: corta colunas ou campos de arquivos text


-c : especifica as posições de colunas a serem cortadas
-d : especifica o caracter que será usado como delimitador
-f : seleciona os campos a serem cortados

# cut -d: -f1-3,5 /etc/passwd


# cut -c1,4,8 /etc/passwd

O comando tr: altera o arquivo_original conforme as opções e cria um arquivo_novo


com as alterações.
# tr -d : < cidades.txt > cidades.novo ( elimina o caracter “ : “ e grava o resultdo em
cidades.novo )
# ls -l /etc/passwd | tr a-z A-Z ( altera as letras de minúsculas para maiúsculas )

Paste exibe lado o conteudo de arquivos


# paste -d, arquivo.txt arquivo2.txt

diff exibe na tela as diferenças entre dois arquivos-texto


# diff -f /exercicios/temp1/arquivo1.doc /exercicios/temp2/arquvivo2.doc

O comando expand: substitui ocorrências de tabulações por caracteres em branco.

# expand teste.txt
# expand -i teste.txt ( no início das linhas )
# expand -t2 teste.txt ( substitui por 2 caracteres em branco )

O comando fmt: faz a formatação de arquivos de texto conforme especificado nas


opções
# fmt texte.txt

O comando pr: Formata um arquivo para impressão


# pr teste.txt

EXPRESSÕES REGULARES

Utilizando o grep ( Global Regular Expression Print ): procura strings ou expressões


regulares, que contém caracteres normais misturados com metacaracteres, dentro de um
ou mais arquivos.
# grep -i “01” /etc/passwd ( ignora distinção entre minúsculas e maiúsculas )
# grep -l andre /etc/passwd ( lista os nomes dos arquivos em vez de linhas
individualizadas)

Existem + 2 irmão do grep


= egrep : é mais lento e mais poderoso ( extend )
= fgrep: é mais rápido e sem ER ( fast )

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Utilizando o sed: o comando sed é na verdade um editor de fluxo ( stream-oriented
editor) ele edita um ou mais arquivos sem a interação do usuário.
# sed s/C\ .E\ .P/ cep/g cidades.txt > cidades2.txt
# sed /curitiba/d cidades.txt

LOCALIZAÇÃO DE ARQUIVOS

O comando find executa uma busca na árvore de diretórios seguindo as condições e


critérios especificados.

Opções:
-atime +n / -n / n : procura arquivos que foram acessados a menos do que n, menos do
que n, ou a exatamente n dias: Exemplo:
# find /home -atime -2 ( Procura arquivos que foram acessados nos ultimos dois dias )

-ctime +n / -n / n : procura arquivos que foram alterados há menos do que n, há mais do


que n, ou há exatamente n dias: Exemplo:

# find /home -ctime -2 ( Procura arquivos que foram alterados nos ultimos dois dias )

-exec comando {} \ ; : executa comando para cada arquivo achado pelo find.
-name padrão: procura arquivos que possuam um nome que satisfaça o padrão
especificado. Exs:
# find /home -name documento.txt
# find /usr -atime -2 -exec ls -l {} \ ;

Para encontrar todos os arquivos com SUID e SGID no seu sistema


# find / type f \ ( -perm -4000 -0 -perm -2000\)
# find / -xdev -perm -4000 -exec ls -l {} \ ;

O comando updatedb: Para efetuar mais rapidamente a localização de arquivos o root


pode criar uma base de dados que contém uma lista de arquivos existentes no sistema,
utilizando o comando updatedb:
# updatedb&

Para consultar a base de dados pode ser usado o comando locate. O comando locate
localiza todas as ocorrências de critério nos sistemas de arquivos e caminhos de rede,
previamente rastreados pelo comando updatedb.
# locate documento.txt

O comando which: busca recursivamente pelo comando através dos diretórios


especificados na variável PATH, exibindo o caminho completo da primeira ocorrência
encontrada.
# which ps
/sbin/ps

O comando whereis: localiza o arquivo binário, o código fonte e a pagina do manual


para um comando.
# whereis rpm
# whereis –b rpm
# whereis –s rpm
# whereis –m rpm

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Strings – procura texto em arquivos binários
# strings /usr/games/sdoom | grep DOOM

COMANDOS DE NAVEGAÇÃO
cd – Muda o diretório de trabalho
# cd –
# cd ~
# cd /home/aluno
# cd ../andre
# cd /etc/httpd/
# (cd /etc/squid/; ls -la)

pwd – Exibe o diretório corrente


# cd /home/alunosis/
# pwd
/home/alunosis

tree – exibe a árvore de diretórios


# tree /var/lib

COMANDOS DE MANIPULAÇÃO DE TERMINAL

Clear – limpa a tela do terminal


# clear

Echo – envia uma mensagem para o terminal


# echo ‘Alo Pessoal’

Write – envia uma mensagem a um terminal


# write alunosis@192.168.1.100 tty2

Talk – permite conversar com outro usuário


# talk alunosis@192.168.1.100 tty1

Wall – envia uma mensagem a todos os usuários logados no sistema


# wall ‘Bem vindo ao Linux’

Mesg – controla o recebimento de mensagens pelo terminal. Sem argumentos, mostra o


estado atual
# mesg
# mesg y
# mesg n

COMANDOS DE HORA, DATA, CALENDÁRIO E VERSÃO DO SISTEMA

Date – exibe a data e a hora atuais ou define novas data e hora


# date
# date 092516082004
# clock -w

Cal – exibe o calendário do mês correspondente à data atual do sistema ou de um mês e


ano especificados.
# cal 09 2004

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Uname – exibe informações sobre o sistema operacional e o hardware. Sem parametros
será exibido o nome do sistema operacional.
# uname –a
# uname –r
# uname –n
# uname -s

GERENCIAMENTO DE CONTAS DE USUÁRIOS

O comando useradd permite que se crie usuários conforme especificado em opções.


Somente o root poderá utilizar este comando. Ele altera os seguintes arquivos:

/etc/passwd – informações de contas dos usuários.


/etc/shadow – informações de contas dos usuários e senhas criptografadas.
/etc/group – informações de grupos

O comando useradd se utiliza , mas sem alterar, os seguintes arquivos:

/etc/default/useradd – informações padrão de usuários


/etc/login.defs – definições de login para o sistema.
/etc/skel – diretório contendo arquivos de padrões ( modelos )

Exs:
# useradd -d /home/peao andre1 ( cria o usuário andre1 e designa o diretório home )
# useradd -g root -d /home/peao andre1
# usermod -g root -d /home/peao -s /bin/bash andre1

O comando adduser é um link para o comando useradd.


O comando passwd permite que se troque a senha de determinado usuário. O root pode
alterar qualquer senha do sistema. O usuário comum pode apenas trocas a sua senha.
# passwd andre1

O comando userdel permite que se eliminar usuários do sistema. Somente o root poderá
utilizar este comando.
# userdel andre1
# userdel -r andre1 ( elimina a conta do usuario andre1 e todo conteúdo do diretório
pessoal deste.

O comando groupadd: Para facilitar a administração do sistema, pode-se usar o


conceito de grupos de usuarios com perfis semelhantes. Por exemplo, definir grupos
conforme os departamentos de uma empresa.
# groupadd -f brasil ( força a criação do grupo brasil mesmo se ele já existir )

O comando gpasswd é utilizado para administrar o arquivo /etc/group e o arquivo


/etc/gshadow, caso seja compilado com shadowgrp. Todos os grupos podem ter
administradores, membros e uma senha, a seguir algumas opções:
# gpasswd grupo
# gpasswd -a usuario grupo ( adiciona )
# gpasswd -d usuario grupo ( deleta )
# gpasswd -R grupo ( remove o gerente )
# gpasswd -r grupo ( remove o acesso ao gerenciamento do grupo )
# gpasswd -A usuario grupo

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
VERIFICANDO INFORMAÇÕES DO USUÁRIO

Uma vez criado os usuarios e grupos no sistema utilizamos o comando id para verificar
informações sobre os usuarios do sistema. Ele nos fornece dados como a indentificação
do usuário no sistema (UID) e os grupos aos quais o usuario está associado (GID).
# id ( retorna os dados do usuario corrente )
# id root
# id -un ( nome do usuario )
# id -gn ( grupo do usuario )

SISTEMAS DE ARQUIVOS

O FDISK
O fdisk é um editor da tabela de partições do linux. Veja a página de manual
# fdisk [opções] [dispositivo]

A partição swap é necessária para que o linux reconheça como um adicional de


memória, evitando assim posteriores erros de instalação ou na execução de programas
que excedam a memória real ( RAM)

O COMANDO mkfs

O mkfs constrói um sistema de arquivos em um dispositivo, por exemplo numa partição


de disco rígido.
# mkfs -t ext2 /dev/fd0
# mkfs.ext2 /dev/fd0

INTEGRIDADE DO SISTEMA DE ARQUIVOS

O comando fsck: Tem a função de verificar e reparar a integridade de um sistema de


arquivos do linux. Deve-se utilizar o fsck em partições desmontadas no modo “somente
leitura” para garantir a integridade do sistema.

O comando du ( disk user ) por diretório

O comando du informa quanto foi utilizado do disco em determinados diretórios. Este


comando é recursivo, ou seja, verifica toda árvore de diretórios que estiver abaixo do
diretório onde ele foi executado.
# du -k /home
# du -m /home
# du -h /home
# du -h /home | tail -1

O comando df ( disk free ) por partição. O comando df mostra o espaço livre e utilizado
pelos sistemas de arquivos montados.
# df
# df -k
# df -h ( melhor, legível por humanos )

GERENCIAMENTO DE PROCESSOS – CRIAR, MONITORAR E ELIMINAR


PROCESSOS

Um processo é um programa em execução.

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
O comando ps: mostra os processos ativos do sistema:
# ps -a ( mostra todos os processos )
# ps -f ( mostra os processos em formato de árvore )
# ps -u ( inclui usuario e hora do inicio do processo )
# ps -x ( inclui processos não associados a um terminal
# ps -au -t tty1
# ps -au -t pts/0
# ps -aef | grep root ( ver os processos gerados pelo root )
# ps -fax

O comando pstree: exibe informações sobre os processos ativos em forma de árvore.


# pstree -c
# pstree -l
# pstree –s

O comando pidof: exibe o PID do processo informado


# pidof sshd

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
O comando free: exibe a quantidade de memória livre e usada no sistema.
# free -m
# free -s 10

O comando vmstat: exibe estatística de utilização de memória virtual.


# vmstat -m
# vmstat

O comando kill: permite que o superusuário ou os donos dos processos possam eliminar
processos ativos. Finaliza um processo pelo pid. Exemplos:
# kill -l ( mostra os sinais que se pode enviar para um processo)
# kill -9 1723 ( mata o processo de número específicado )

O comando killall: finaliza um processo pelo nome.


# killall -9 xeyes

O comando nohup: Continua a execução de um comando mesmo que o usuário que o


iniciou saia do sistema.
# nohup find / -name xinitrc &

O comando top: mostra uma lista ( atualizada periodicamente) dos processos ativos no
sistema. Esta lista é ordenada por consumo de recursos da cpu.
# top -dn -i ( exibe lista dos processos, exceto os ociosos ou “zombies”, e atualiza a
cada n segundos )
# top -d3 -i ( atualiza a cada 3 segundos )

O comando jobs: exibe os processos parados ou em execução que se encontram em


segundo plano.
# jobs -l

O comando bg: Como você deve saber pode-se parar um processo digitando ctrl-z. Para
reativar este processo e o colocar em segundo plano use o comando bg.
# bg %3 ( coloca em segundo plano o terceiro job apresentado na lista que o comando
jobs fornece )

O comando fg: Ao contrário do bg, o fg ( foreground) coloca o job em primeiro plano


# fg %3

Mudar Prioridade de Execução de Processos

• nice
• renice

O comando nice: só pode ser utilizado no momento da execução do processo. Para


alterar a prioridade de processos que já estão sendo executados deve-se usar o
comando renice. Inicialmente quando um processo é criado, ele tem uma
determinada prioridade. Esta prioridade pode ser ajustada , sendo que pode variar
entre -20 ( alta prioridade ) e 19 ( baixa prioridade ) . Usuários comuns somente
podem usar valores positivos, ou seja deixar o processo com menos prioridade.

nice [-ajuste] comando [argumentos]

nice -4 find / name xinitrc

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

O comando renice: Modifica a prioridade de um processo em execução. Pode ser


aplicado a um processo, usuário ou grupo de usuários. Altera a prioridade de
processos que já estão sendo executados. O ajuste de prioridade pode variar entre -20
(alta prioridade) e 19 (baixa prioridade) através do comando nice. Usuários comuns
(peão) somente podem usar valores positivos, ou seja, deixar o processo com menos
prioridade. Enquanto o superusuário pode aumentar a prioridade usando valores
negativos.
# renice +15 10570
# renice -1 -p 26786
# renice +4 -u rubem
# renice -2 -g laboratorio

MENSAGENS DO SISTEMA E AUTOMAÇÃO DE TAREFAS


REPETITIVAS

A gerência de um sistema operacional Unix/Linux é muito mais do que instalar


programas e criar ou remover usuários. O sistema operacional possui recursos para
mostrar o que os usuários estão fazendo, quanto tempo eles estão logados no sistema,
que programas eles estão executando, que arquivos eles estão acessando. O sistema
operacional também pode gerar relatórios sobre o andamento das atividades do
sistema, o que está funcionando, o que está parado e também realizar
automaticamente tarefas rotineiras.

MENSAGENS DO SISTEMA:

O comando dmesg: O buffer de mensagens do kernel (kernel ring buffer) coleciona


mensagens emitidas pelo sistema, geralmente relativas à instalação e retirada dos
módulos. O comando dmesg nos permite trabalhar com o kernel ring buffer.

# dmesg | grep hda

Registro do sistema – syslog

O Kernel do sistema, bem como a maioria dos programas e aplicativos para


linux, geram mensagens de inicialização, status ou erro de operação, e é importante
que o administrador e o usuário possam Ter acesso a estas mensagens.
Isto se dá através do armazenamento destas mensagens em arquivos que podem
variar, dependendo do nível de importância das mesmas, como, por exemplo, para
um gerente de rede: as mensagens geradas pelo Kernel podem ser mais importantes
do que as geradas por um operação de impressão.
O syslogd é um daemon inicializado na carga do sistema operacional e é
utilizado para classificar informações, avisos e alertas e outros tipos de mensagens
que vem do Kernel e dos outros daemons do sistema. Uma das vantagens do syslogd
é que ele pode ser acessado pela rede, de modo que é possível enviar essas
informações, avisos e alertas e outras mensagens para outro computador (como por
exemplo, um servidor de logs) diferente daquele onde estão sendo executados os
daemons.
O arquivo de configuração do syslog é o /etc/syslog.conf, este indica para onde
as mensagens são repassadas, e é lido quando na inicialização do daemon ou do
recebimento por este de um sinal HUP.

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Configurando o syslog
O arquivo de configuração do syslog (/etc/syslog.conf) segue a sintaxe apresentada
abaixo.

Seletor ação

Seletor

O campo seletor é formado por dois subcampos separados por um ponto


<recurso>.<prioridade>

O subcampo recurso (facility) indica que tipos de mensagens serão tratadas. Os tipos
de recursos podem ser:

Recurso Descrição
Auth Mensagens dos eventos de segurança
Authpriv Mensagens dos eventos de controle de acesso. Por exemplo, conexões
estabelecidas no servidor FTP, WWW etc.
Kern Mensagens do kernel
cron Mensagens do servidor crond
daemon Mensagens de todos os servidores
user Mensagens dos usuários
news Mensagens do servidor de notícias
syslog Mensagens do servidor syslogd
mail Mensagens do servidor de e-mail
local0 Mensagens locais
local7 Mensagens de boot
lpr O sistema de spooling de impressão: lpr, lpc. lpd, etc.

O subcampo prioridade (level) indica a prioridade que será submetida à


facilidade. Os tipos de prioridade em ordem crescente de urgência podem ser:

Prioridade Descrição
debug Mensagens das atividades de debug
info Mensagens de informação
notice Mensagens de advertência
err Mensagens de erro
crit Mensagens críticas
alert Mensagens de alerta
emerg Mensagens de emergência
warning Mensagens de aviso

Ação
Já o parâmetro ação indica para onde repassar a mensagem. Seus valores podem
ter uma das quatro formas apresentadas abaixo:

● Nome de arquivo: indica que as mensagens devem ser adicionadas neste arquivo.
Este nome deve ser precedido pelo caracter barra (“/”).
● Nome de um host remoto: indica que a mensagem dever ser repassada para o syslogd
daquele host. Este campo deve iniciar com o caracter arroba (“@”).
● Lista de usuários: indica a mensagem deve ser escrita na tela desses usuários, caso
estejam logados.

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
● Asterisco (“*”): inidica que a mensagem deve ser escrita na tela de todos os usuários
logados

Segue abaixo um exemplo do /etc/syslogconf

AUTOMAÇÃO DE TAREFAS REPETITIVAS


O daemon atd

O atd é um daemon do sistema, cuja função é executar em horário determinado


um fila de tarefas. Possui dois diretórios: /var/spool/at, cuja função é armazenar a fila de
tarefas,, e /var/spool/at/spool, cuja função é armazer o resultado da execução da fila de
tarefas.

Os comandos at (at, atq, atrm, batch)

at
Permite a execução de uma tarefa com hora marcada. A permissão para usar os
comandos at é determinada pelos arquivos /etc/at.allow e /etc/at.deny. Se o arquivo
/etc/at.allow existir, somente aos usuários mencionados neste será permitido usar os
comandos at. Se o arquivo /etc/at.allow não existir, será verificada a existência do
arquivo /etc/at.deny e todos os usuários não mencionados neste receberão permissão
para usar os comandos at. Um arquivo /etc/at.deny vazio significa que todos os usuários
tem permissão para usar os comandos at, sendo esta a configuração-padrão.

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

Exemplo do comando at

Para agendar uma tarefa para ser executada mais tarde, deve-se especificar o
tempo para o início da tarefa. O comando at permite especificações de tempo (hora da
execução) aceitos na forma HHMM ou HH:MM, para a execução de uma tarefa em um
momento específico do dia. Porém, se esta hora já passou, é assumido o dia seguinte.
Pode-se especificar também os parâmetros midnigth (meia noite), noon (meio-
dia) ou teatime (ou hora do chá, ou seja, quatro da tarde), e pode-se colocar o sufixo
AM ou PM para executar antes ou após o meio-dia, respectivamente.
É possível também especificar em que dia a tarefa será executada, informando
uma data na forma:

nome_do_mes dia [ano] , onde ano é opcional

Outros parâmetros que também podem ser informados sâo:

● now unidades_tempo: indica que o comando pode ser executado dentro de


unidades_tempo, sendo que este parâmetro pode ser em minutos (minutes), horas
(hours), dias (days) ou semanas (weeks), contados a partir do instante em que é
iniciado (now ou agora). Se now é executado sem medidas de tempo, a tarefa é
executada no exato momento.
● today: instrui o at para executar a tarefa no dia corrente. Possui os mesmos
parâmetros da opção now.
● tomorrow: instrui o at para executar a tarefa no dia seguinte. Possui os mesmos
parâmetros da opção now.
Opções do comando at:

-m Envia e-mail avisando que o comando foi executado


-l Lista os trabalhos pendentes na fila do at.
-f <script> Lê os comandos do arquivos script a serem executados
-d Equivalente ao comando atrm, que exclui tarefas do usuário

Obs: Primeiramente deve-se executar o servidor at (at daemon)


[root@estudo init.d] # ./atd start
Iniciando o servidor at: [ OK ]

# at -f backup 16:30 10/05/04

O comando atq: Mostra a fila de execução do at. Equivale ao comando at -l.


# atq

O comando atrm: Remove um trabalho da fila de execução.


# atrm 2

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
O comando batch: Executa uma tarefa quando o sistema permitir. O utilitário batch
executa a mesma função que o at, mas, em vez de executá-lo no horário agendado, ele
esperará até que a carga do sistema esteja bastante baixa. Ex: O seguinte comando será
executado no primeiro momento depois das 4:00 em que a carga do computador caia
abaixo de 0,8.
# batch -f fimdodia 04:00

O daemon crond

O crond é um daemon do sistema cuja função é executar comandos e programas


em datas e horários determinados. Possui um arquivo de configuração, /etc/crontab,
onde são especificados os comandos ou programas a serem executados. Possui também
um diretório, /var/spool/cron, onde se encontram os arquivos crontab dos usuários. A
sintaxe do arquivo /etc/crontab é:

<minutos> <horas> <dia_do_mês> <mês> <dia_da_semana> <usuário> <comando>


Os campos de hora e data são descritos da seguinte forma:
campo valores permitidos
----- -------------
minuto 0 - 59
hora 0 – 23
dia do mês 0 – 31
mês 0 – 12 (ou nomes, veja abaixo)
dia da semana 0 – 7 (0 ou 7 é domingo, ou use nomes)

● Um asterisco “*” pode ser utilizado para indicar qualquer valor permitido a qualquer
campo.
● Pode-se usar intervalos de números. Um intervalo é um par de números separados
por um hífen. O intervalo especificado é inclusivo. Por exemplo, 8-11 em uma
entrada “horas” especifica execução às 8,9, 10 e 11 horas.
● Pode-se usar listas. Uma lista é um conjunto de números ou intervalos separados por
vírgulas. Exemplos: “1,2,5,9”, “0-4,8-12”.
● Nomes ( em inglês ) também podem ser usados nos campos “mês” e “dia da
semana”. Use as primeiras três letras do dia ou mês desejado (em maiúsculas ou
minúsculas, nao importa). Intervalos ou listas de nomes não são permitidos.
● O sexto campo ( o resto da linha ) especifica o comando a ser executado.
● */5 significa de cinco em cinco minutos.

Exemplo de entrada do arquvio /etc/crontab:

45 8 * 3-11 1-5 root /usr/games/banner -w 30 alo

Esta entrada solicita ao daemon crond que execute o programa banner para
mostrar a palavra “alô” na tela, como superusuário (root), de segunda à sexta-feira, de
março a novembro, às 8:45 da manhã:
Eventuais mensagens de erro são enviadas para o e-mail do usuário root.

Exemplo real do arquivo /etc/crontab

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

Estas entradas solicitam ao daemon crond que execute o programa run-parts em


datas e horários determinados. Esse programa executa os scripts de shell, comandos e
programas existentes nos diretórios a seguir:

Diretório Descrição
/etc/cron.hourly A aplicação será executada toda hora
/etc/cron.daily A aplicação será executada todo dia
/etc/cron.weekly A aplicação será executada uma vez por semana
/etc/cron.monthly A aplicação será executada uma vez por mês.

Simplesmente coloque uma tarefa (um arquivo executável) para ser executada,
dentro do diretório especifico.

O comando crontab
É possível criar arquivos crontab individuais para que cada usuário possa definir
sua próprias tarefas rotineiras, que são executadas automaticamente. Esses arquivos
crontab estão localizados no diretório /var/spool/cron e nao podem ser editados
diretamente, sendo esta função realizada pelo comando crontab.

crontab: Instala, lista ou remove o arquivo crontab de usuário. A permissão para usar o
comando crontab é determinada pelos arquivos /etc/cron.allow e /etc/cron.deny. Se o
arquivo /etc/cron.allow existir, somento os usuários mencionados neste será pemitido
usar o comando crontab. Se o arquivo /etc/cron.allow não existir, é verificada a
existência do arquivo /etc/cron.deny e todos os usuários não mencionados no mesmo
receberão permissão para usar o comando crontab. Se nenhum destes existir, somente o
superusuário terá permissão para usar o comando crontab. Um arquivo /etc/cron.vazio
significa que todos os usuários têm permissão para usar o comando crontab, sendo esta
a configuração padrão.
# crontab [opções] [arquivo]

Opção Descrição
-u <usuário> Nome do usuário cujo arquivo crontab será utilizado
-l Exibe o arquivo crontab atual do usuário
-r Remove o arquivo crontab atual do usuário
-e Edita o arquivo crontab atual do usuário
arquivo Indica um arquivo de crontab a ser posto em atividade. O formato
deste arquivo é similar ao /etc/crontab

Exemplo:
$ crontab -e
30 13 * * * /home/alunosis/programa
$ crontab -r

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
O formato do crontab do usuário é :
<minutos> <horas> <dia_do_mês> <mês> <dia_da_semana> <comando>

Exemplo de aplicação executada pelo daemon crond: logrotate

O programa logrotate é utilizado para gerenciar o crescimento dos arquivos de


log. O logrotate deve ser executado periodicamente (1 vez por dia) pelo daemon crond.
Ele automaticamente rotaciona, comprime, remove e envia por e-mail arquivos de log.
Seu arquivo de configuração é /etc/logrotate.conf. O logrotate também permite que cada
programa que possua arquivos de log, tenha um script logrotate para gerenciar o
tamanho deles. Esses scripts logrotate são colocados em um diretório definido no
arquivo /etc/logrotate.conf, normalmente /etc/logrotate.d.

Para que o logrotate seja executado diariamente pelo comando crond, editamos o
arquivo /etc/cron.daily/logrotate da seguinte forma:
#!/bin/bash
/usr/sbin/logrotate /etc/logrotate.conf

Torne esse arquivo executável da seguinte forma:


# chmod 755 /etc/cron.daily/logrotate

Edite o arquivo /etc/logrotate.conf da seguinte forma:


# /etc/logrotate.conf
weekly # rotaciona os arquivos de log uma vez por semana.
rotate 3 # rotaciona o arquivo de log 3 vezes.
create # cria novos arquivos de log vazios depois de rotacionar os antigos.

# compress # comprime os arquivos de log.


Include /etc/logrotate.d # diretório dos scripts logrotate.

/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}

Como definido nesse arquivo, os arquivos são rotacionados três vezes, isto
significa que no primeiro rotacionamento, um arquivo de log qualquer denominado
arqlog é renomeado para arqlog.1 e criado um novo arquivo arqlog vazio; no segundo
rotacionamento, o arqlog.1 é renomeado para arqlog.2, o arquivo arqlog é renomeado
para arqlog.1.

Veja o manual do programa logrotate para maiores informações sobre as opções


usadas no arquivo de configuração.

COMPACTAÇÃO E TAR

Compactadores de arquivos
O linux tem diversos aplicativos para compressão de arquivos, sendo que cada
um deles utiliza um algoritmo de compressão diferente. Serão abordados os aplicativos
mais usados.

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
gzip
O comando gzip é usado para a compactação/descompactação de arquivos. O arquivo
original é substituído por um arquivo compactado com a extensão .gz, mantendo o
dono, permissões e datas de modificação. Caso nenhum arquivo seja especificado, ou se
o nome do arquivo for “-”, a entrada padrão será compactada na saída padrão. O gzip
somente tentará compactar arquivos normais; em particular, ele ignora links simbólicos.
O formato básico deste comando é mostrado a seguir:

# gzip [opções] arquivos


# gunzip [opções] arquivos

bzip2
O comando bzip2 é usado para a compactação/descompactação de arquivos. O arquivo
original é substituído por um arquivo compactado com a extensão .bz2, mantendo o
dono, permissões e datas de modificação. Caso nenhum arquivo seja especificado, ou se
o nome do arquivo for “-” , a entrada padrão será compactada na saída padrão. O
formato básico deste comando é indicado a seguir:

# bzip2 arquivo (o arquivo será compactado)


# bunzip2 arquivo.bz2

Compress
O comando compress é usado para a compactação/descompactação de arquivos. O
arquivo original será substituído por um arquivo compactado com a extensão.Z,
mantendo o dono, permissões e datas de modificação. Caso nenhum arquivo seja
especificado, ou se o nome do arquivo for “-” , a entrada padrão será compactada na
saída padrão. O comando compress somente tentará compactar arquivos normais; em
particular, ele ignora links simbólicos. O formato básico deste comando é indicado a
seguir:
# compress arquivo
# uncompress arquivo

zip
O comando zip é usado para a compactação e empacotamento de arquivos. Ele é
compatível com o pkzip e similares. O programa é útil para empacotamento de uma
série de arquivos para distribuição, para arquivamento e para economizar espaço em
disco temporariamente, compactando arquivos e diretórios sem uso. Veja a seguir a
sintaxe do comando:
# zip arquivo *
# unzip arquivo

Backup do Sistema
O Linux possui o comando de backup tar, o qual será detalhado a seguir:

O comando tar:
Permite copiar arquivos e depois restaurá-los, para efeito de backup de segurança e/ou
transporte de dados através um meio físico. Pode ser utilizado em máquinas diferentes,
pois é padrão no ambiente UNIX. Também permite realizar cópias multivolume.
O comando tar permite que se crie, atualize ou recupere backups do sistema
segunda as opções. As tabelas a seguir mostram as principais opções do comando tar:

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
grupo1
Opção Descrição
-c Cria um novo arquivo tar.
-r Acrescenta novos arquivos no arquivo tar.
-x Extrai conteúdo de um arquivo tar. Se for especificado um diretório,
o comando extrai todos os arquivos contidos nesse diretório. Se não
for especificado arquivo ou diretório, o comando extrai todo o
conteúdo.
-t Gera uma lista dos arquivos.

grupo2
Opção Descrição
-p Restaura os arquivos no seu modo de permssão original, ignorando
a máscara (umask) presente
-m Usa a hora de extração do arquivo como a hora da última alteração
-v Modo detalhado. Lista o nome dos arquivos à medida que são
processados
-T “arquivo-lista” Obtém o nome dos arquivos a incluir ou extrair a partir de “arquivo-
lista”.

grupo3
Opção Descrição

-f arquivo Especifica o arquivo a ser usado com entrada ou saída. Pode ser um
arquivo normal ou um arquivo de dispositivo.
-C diretório Extrai os arquivos para o diretório especificado

grupo4
Opção Descrição
-z Compacta/descompacta os arquivos através do programa gzip.
-j Compacta/descompacta os arquivos através do programa bzip.

Estas opções podem ser usadas conjuntamente, porém somente uma opção do Grupo1 e
uma do Grupo4 poderão ser utilizadas. Alguns exemplos são mostrados a seguir.

# tar cvf /dev/fd0 /home (grava os arquivos do diretório /home para um disquete)
# tar tvf /dev/st0 (lista o conteúdo de uma fita gravada pelo comando tar )
# tar czvf /tmp/servidorlinux_backup.tar.gz /etc (faz um backup do /etc/ e salva no
arquivo especificado)

Instalação de programas
No universo Linux, há diversas formas de instalar programas. Se sua distribuição
possuir algum programa de instalação (package managers) de programas já compilados
(códigos binários), dê preferência a ele, uma vez que é mais simples de usar e menos
sujeito a erros do que compilar os programas-fonte e terminar a instalação.

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Gerenciadores de pacotes (package managers)
As distribuições Red Hat, Debian e Slackware possuem gerenciadores de pacotes
(package managers) para a instalação de programas. Neste material será dada maior
ênfase ao RPM (Red Hat Package Manager – Gerenciador de Pacotes Red Hat) que
utiliza pacotes .rpm é o gerenciador de pacotes mais utilizado nas distribuições Linux.

Gerenciamento de pacotes rpm


Conceitos básicos: o RPM utiliza uma série de implementações que facilitam a
manutenção do sistema. A instalação, desinstalação e atualização de um programa que
esteja no formato de um pacote RPM podem ser feitas através de um único comando,
sendo que o gerenciador cuidará de todos os detalhes necessários ao processo. Para
desenvolvedores, o RPM permite manter fontes e binários e suas atualizações
separadamente, empacotando-os de forma configurável para os usuários. O gerenciador
mantém uma base de dados com os pacotes instalados e seus arquivos, o que permite
executar pesquisas complexas e verificações de maneira ágil e segura. Durante
atualizações de programas, ele administra, por exemplo, arquivos de configuração,
mantendo as configurações já realizadas no sistema.
Ele possui cinco modos básicos de operação, excluindo-se o modo de confecção
de pacotes: instalação, desinstalação, atualização, pesquisa e verificação.

Instalando/Atualizando
Os pacotes RPM têm nomes de arquivos com o seguinte formato:

Kernel-source-2.4.18-2cl.i386.rpm

Nome do pacote versão release plataforma tipo

A instalação é feita através de uma única linha de comando, como por exemplo:

[root @estudo /root] # rpm –ivh kernel-source-2.4.18-2cl.i386.rpm


Preparing … #################################### [100%]
1. kernel-source #################################### [100%]

O processo de instalação foi desenvolvido para ser o mais simples possível, porém
eventualmente alguns erros podem ocorrer, dentre eles:

• Pacotes já instalados: se o pacote já tiver sido instalado anteriormente, será


apresentada a seguinte mensagem:

Preparing … #################################### [100%]


Package kernel-source-2.4.18-2cl.i386.rpm já está instalado

Caso se deseje ignorar o erro, pode-se usar o parâmetro --force na linha de comando,
fazendo com que o RPM ignore o erro.
André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)
Administração em Linux

• Arquivos com conflitos: se o arquivo contém um arquivo já instalado por outro


pacote, será apresentada a seguinte mensagem:

Foo /usr/bin/foo conflicts with file from bar-1.0-1


Error: foo-1.0-1.i386.rpm não pode ser instalado.

Caso se deseje ignorar este erro, pode-se usar o parâmetro --replacefiles na linha de
comando.

• Dependências não resolvidas: os pacotes RPM podem depender da instalação


previa de outros pacotes, o que significa que eles necessitam daqueles para
poderem ser executados adequadamente. Caso se deseje instalar um pacote que
dependa de outro não localizado, será apresentada a seguinte mensagem:

falha nas dependências


foo é necessário para bar-1.0.1

Para corrigir este erro será necessário instalar o pacote solicitado. Caso se deseje que a
instalação ocorra de qualquer forma, pode-se utilizar o parâmetro --nodeps na linha de
comando. Entretanto, provavelmente o pacote não funcionará ou o fará de forma
incorreta.

• Para atualizar um pacote utilize o comando:


[root @estudo /root] # rpm –Uvh kernel-source-2.4.18-2cl.i386.rpm
Preparing … #################################### [100%]
1. kernel-source #################################### [100%]

Qualquer versão anterior do pacote será desinstalada e será feita um nova instalação
guardando as configurações anteriores do programa para um possível uso caso o
formato dos arquivos de configuração não tenha sido alterado.

OBS: sugere-se utilizar a opção –U na hora da instalação, uma vez que ela funciona
perfeitamente, mesmo quando não há uma versão anterior do pacote
Como o processo de atualização é uma combinação de processos de desinstalação e
instalação, algumas mensagens de erro podem surgir, como por exemplo, ao tentar
atualizar um pacote com uma versão anterior à versão corrente, será apresentada a
seguinte mensagem:

[root @estudo /root] # rpm –Uvh kernel-source-2.4.18-2cl.i386.rpm


Preparing … #################################### [100%]
O pacote kernel-source-2.5.3 (o qual é mais novo que o kernel-source 2.4.18) já está
instalado

Para forçar a atualização, deve-se usar o parâmetro --oldpackpage na linha de comando.

Desinstalando
Para desinstalar um pacote utilize o comando:

[root @estudo /root] # rpm –e kernel-source

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Onde kernel-source é o nome do pacote e não do arquivo utilizado na instalação.Pode
ser encontrado um erro de dependência durante o processo de desinstalação de um
pacote (outro pacote necessita da sua existência para poder funcionar corretamente).
Neste caso será apresentada a seguinte mensagem:

Erro : a remoção destes pacotes quebraria dependências:


Kernel-source é necessário para kernel-readers-1.0-1

Para ignorar esta mensagem de erro e desinstalar o pacote, deve ser utilizado o
parâmetro --nodeps na linha de comando.

Consultando/Verificando
Para consultar a base de dados de pacotes instalados utilize o comando:

[root @estudo /root] # rpm –q nome_do_pacote

Com sua utilização são apresentados o nome do pacote, versão e release.


Em vez de especificar o nome do pacote, pode-se utilizar as seguintes opções após o
parâmetro q:

• a: consulta todos os pacotes instalados.


• f arquivo: consulta o pacote do qual o arquivo faz parte.
• p arquivo_pacote: consulta um arquivo de pacote (não instalado) de nome
arquivo_pacote.

Há diversas formas de especificar quais informações devem ser apresentadas pelas


consultas. Algumas opções de seleção:

• i: apresenta informações do pacote.


• l: apresenta a lista de arquivos pertencentes ao pacote.
• s: apresenta o status dos arquivos do pacote. Há dois status possíveis: normal ou
missing (não encontrado).
• d: apresenta uma lista dos arquivos de documentação (páginas de manual,
página info, README. etc).
• c: apresenta uma lista dos arquivos de configuração. Estes arquivos podem ser
alterados após a instalação para personalização.

A verificação de um pacote provoca a comparação dos arquivos instalados de um pacote


com as informações localizadas na base de dados RPM. Entre outras coisas a
verificação compara o tamanho, MD5 sum, permissões, tipo, dono e grupo de cada
arquivo.

Para verificar um pacote utilize o comando:

[root @estudo /root] # rpm –V nome_do_pacote

Para verificar todos os pacotes instalados:

[root @estudo /root] # rpm –Va

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Para verificar um pacote que tenha um arquivo em especial:
[root @estudo /root] # rpm –Vf /bin/vi

A opção de verificação pode ser útil caso haja alguma suspeita de que a base de dados
RPM esteja corrompida. Se não houver nenhuma discrepância não haverá resposta do
sistema, caso contrario será apresentada na forma de uma string com 8 caracteres, com
um c significando arquivo de configuração e após o nome do arquivo. Cada um dos 8
caracteres significa um dos atributos do arquivo, comparado com aqueles definidos no
pacote RPM, onde um ponto significa que o atributo está ok. Os atributos são mostrados
na tabela:

Código Significado
5 MD5 checksum
S Tamanho do arquivo
L Link simbólico
T Modificação do arquivo
D Device
U Usuário
G Grupo
M Modo (inclui permissões e tipo de arquivo)

Conceitos básicos sobre o Apt


O apt é um conjunto de ferramentas utilizadas para gerenciar os pacotes de sua
distribuição de uma forma automatizada, de maneira que, quando o usuário solicita
a instalação de um pacote (aplicativo), o sistema também instala (ou atualiza) todos
os pacotes necessários para o funcionamento deste aplicativo. O apt é composto por
vários programas, entre os quais serão estudados os seguintes:

• apt-get
• apt-cdrom
• apt-cache

Configurando a localização dos repositórios Apt


O arquivo source.list, encontrado no diretório /etc/apt, descreve as fontes que o apt
usará para saber onde buscar por informações do pacote. Este é o arquivo que deve ser
alterado para incluir/retirar os repositórios nos quais o apt irá buscar pacotes

O funcionamento do diretório arquives


Quando o APT é utilizado para instalar algum pacote ou efetuar a atualização de algum
pacote já instalado, ele fará download dos pacotes necessários para o diretório
/var/cache/apt/archives/partial e após verificar seus hashes e tamanhos de MD5,
moverá esses pacotes para o diretório /var/cache/apt/archives.

Comandos do APT
apt-get
Utilitário para manipulação de pacotes.
# apt-get [opções] <comando> [pacote]

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux
Opção Descrição

-d Faz download dos pacotes, mas não os instala.


-f Repara um sistema com dependências quebradas.
-h Exibe uma mensagem de ajuda.
-v Exibe a versão do comando.

Comando Descrição

update Atualiza o banco de dados local do apt-get com os arquivos


pkglist do servidor. Verifica a integridade do seu sistema.
install <pacote> Instala um novo pacote.
source <pacote> Faz o download do pacote rpm fonte para o diretório corrente.
remove <pacote> Remove um pacote.
upgrade <pacote> Procura por pacotes desatualizados no sistema e os atualiza
automaticamente.
dist-upgrade <pacote> Semelhante a upgrade, mas instala novos pacotes se necessário.
clean Remove arquivos encontrados no diretório /var/cache/apt/archives

Exemplo:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# apt-get install tree
# apt-get source tree
# apt-get remove tree

Apt-cdrom
Utilitário para o gerenciamento de CD-ROM.

Apt-cdrom <comando>

Comando:

Add : adiciona o CD-ROM ao arquivo /etc/apt/sources.list

Exemplo:

# apt-cdrom add

Apt-cache
È utilizado para pesquisar nas listas de pacotes dos servidores que o apt utiliza.

Exemplo:

# apt-cache search xgalaga


# apt-cache search xgalaga --full

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)


Administração em Linux

Tutorial X Window
Qualquer imagem exibida na tela pode ser salva em disco ou enviada
diretamente para a impressora. O utilitário xwd captura as imagens e as grava no disco.

Enviando uma janela para o disco

O utilitário xwd pode enviar para o disco uma única janela, ou pode enviar a tela
inteira, com todas as suas janelas. Provavelmente, o mais simples a ser feito é selecionar
a janela com o mouse, entrando com o seguinte comando:

# xwd -out andrefile.xwd

O cursor será alterado para um formato parecido com uma mira de revólver.
Use-o para selecionar a janela que você quer enviar e, quando clicar com o botão
esquerdo do mouse, a janela selecionada será gravada no arquivo. Você pode ver o
arquivo usando o utilitário xwud , como mostrado a seguir:

# xwud -in andrefile.xwd

Há diversas opções que podem ser usadas como o xwd para enviar imagens para
o disco. Por exemplo: o seguinte comando enviará uma única imagem contendo tudo o
que está na tela – a janela-base e todas as suas janelas secundárias:

# xwd -root -out andrefile2.xwd

Eis um pequeno truque que inserirá um retardo no envio de uma tela. Digamos,
por exemplo, que você tem um aplicativo em execução e quer uma imagem da tela de
um dos seus menus. Normalmente, o xwd assume o controle do mouse, portanto, não há
como fazer surgir um menu e ao mesmo tempo selecionar uma janela para enviar para o
disco. O pequeno scrip a segur, de duas linhas, resolverá esse problema:

# vi captura

sleep 5
xwd -out andrefile3.xwd

Quando o script começa a ser executado, ele entra imediatamente em um período


de inatividade de cinco segundos. Esse tempo deve ser suficiente para fazer surgir
qualquer coisa que você queira capturar. Passados os cinco segundos, o cursor mudará a
forma de mira e você poderá selecionar o menu, ou a janela contendo o menu, a ser
enviado para o disco.

André Miranda andre@uniplac.br 61 8401-2405 (UNIPLAC & Instrutor EIBNET)