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
CRIAR VARIÁVEIS
# ANDRE=UNIPLAC
EXPORTAR VARIÁVEL
# export ANDRE
# export ANDRE=123
.bashrc: são encontrados nele definições de alias e de funções ( cada usuário pode
individualmente ter as suas definições ).
.bash_logout: este arquivo é interpretado toda vez que uma sessão de login é finalizada.
CRIANDO DIRETÓRIOS
REMOVENDO DIRETÓRIOS
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
/boot : contém o kernel e tudo que é necessário ao processo de boot, exceto os arquivos
de configuração.
/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.
/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
COMANDOS DE AJUDA
São utilizados para obter informações sobre outros comandos ou componentes do Linux
UTILIZANDO O CHMOD
Notação Simbólica:
g = grupo do arquivo
o = outros usuários que não são nem os donos, nem estão no mesmo grupo
especificados
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
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.
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
COMANDOS DE PAGINAÇÃO
# 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.
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:
REDIRECIONAMENTO DE ENTRADA
< = avisa que a entrada não será o teclado, mas sim o arquivo especificado.
# cat > texto << fim (digite o texto e finalize digitando fim)
# vi +350 /etc/httpd/conf/http.conf
# vi +/php3 /etc/httpd/conf/http.conf
O comando tac: (ironicamente cat de traz para frente) lista o arquivo de forma inversa
# tac /etc/passwd
# expand teste.txt
# expand -i teste.txt ( no início das linhas )
# expand -t2 teste.txt ( substitui por 2 caracteres em branco )
EXPRESSÕES REGULARES
LOCALIZAÇÃO DE ARQUIVOS
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 )
# 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 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
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)
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 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.
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]
O COMANDO mkfs
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 )
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 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 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 )
• nice
• renice
MENSAGENS DO SISTEMA:
Seletor ação
Seletor
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.
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.
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.
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:
O daemon crond
● 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.
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.
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
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
/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.
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.
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:
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:
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.
Instalando/Atualizando
Os pacotes RPM têm nomes de arquivos com o seguinte formato:
Kernel-source-2.4.18-2cl.i386.rpm
A instalação é feita através de uma única linha de comando, como por exemplo:
O processo de instalação foi desenvolvido para ser o mais simples possível, porém
eventualmente alguns erros podem ocorrer, dentre eles:
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
Caso se deseje ignorar este erro, pode-se usar o parâmetro --replacefiles na linha de
comando.
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.
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:
Desinstalando
Para desinstalar um pacote utilize o comando:
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:
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)
• apt-get
• apt-cdrom
• apt-cache
Comandos do APT
apt-get
Utilitário para manipulação de pacotes.
# apt-get [opções] <comando> [pacote]
Comando Descrição
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:
Exemplo:
# apt-cdrom add
Apt-cache
È utilizado para pesquisar nas listas de pacotes dos servidores que o apt utiliza.
Exemplo:
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.
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:
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:
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:
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