Este módulo cobre comandos essenciais do Linux para administração de processos e usuários.
Conceitos-chave: PID (Process ID), processos pais/filhos, sinais do sistema, foreground/background.
Script que imprime números de 1 a 60, com intervalo de 1 segundo. Use o comando tail -f saida.log
para ver a saída ao vivo.
O comando sleep
pausa a execução por um número especificado de segundos (ou minutos/horas com sufixos: 1m, 2h).
#!/bin/bash for i in {1..60} do echo "Contador: $i" >> saida.log sleep 1 done
Salve como contador.sh
e execute com:
chmod +x contador.sh ./contador.sh
Exemplo com time: Medindo o tempo de execução do script
time ./contador.sh
Saída esperada:
real 1m0.123s # Tempo total de execução user 0m0.010s # Tempo em modo usuário sys 0m0.005s # Tempo em modo kernel
Para manter o script executando após logout:
nohup ./contador.sh &
Por padrão, o nohup
redireciona saída para nohup.out
. Você pode especificar um arquivo diferente:
nohup ./script.sh > meu_arquivo.log 2>&1 &
Você pode sair da sessão (logout) e, ao retornar:
tail -f saida.log
O conteúdo continuará sendo atualizado, pois o nohup
ignora sinais de logout.
Atividade:
sleep 60
Durante a execução, pressione Ctrl+Z
para pausar.
bg # retoma em segundo plano jobs # verifica os jobs em segundo plano fg # traz de volta ao primeiro plano
Exemplo com múltiplos jobs:
sleep 100 & sleep 200 & jobs -l # lista com PIDs fg %1 # traz o job 1 para foreground
Execute com prioridade mais baixa:
nice -n 10 ./contador.sh &
Valores de nice: -20 (mais prioridade) a 19 (menos prioridade). Somente root pode definir valores negativos.
Encontre o PID e altere sua prioridade com:
ps aux | grep contador renice -n 5 -p PID
Espera-se que o processo receba mais prioridade na CPU, reduzindo sua espera em relação a outros.
pstree -p pstree -u usuário time ./tarefa.sh
Exemplo de saída do time
:
real 0m1.003s # tempo real decorrido user 0m0.002s # tempo em modo usuário sys 0m0.001s # tempo em modo kernel
Exemplo prático com time:
# Medindo tempo de ordenação de um arquivo grande time sort bigfile.txt > sorted.txt
lsof: Veja os arquivos abertos por um processo:
lsof -p PID
netstat: Veja conexões de rede:
netstat -tulnp
top: Monitoramento personalizado:
top -d 5 -p PID1,PID2 # atualiza a cada 5s e monitora apenas PIDs específicos
ls # Lista arquivos cd # Navega entre diretórios mkdir # Cria pasta rm # Remove arquivos cp # Copia arquivos mv # Move arquivos touch # Cria arquivo vazio chmod # Permissões pwd # Caminho atual cat # Conteúdo de arquivos sudo # Permissão administrativa find # Busca arquivos grep # Filtra conteúdo tar # Compactação df # Espaço em disco du # Uso de espaço
tail -f /var/log/syslog head -n 10 /etc/passwd
Exemplo avançado com tail
:
# Mostrar últimas 50 linhas e continuar acompanhando tail -n 50 -f /var/log/nginx/error.log # Mostrar linhas a partir da linha 100 tail -n +100 arquivo.log
ssh usuario@host ssh -X usuario@host xclock # Roda remotamente (com X11)
scp arquivo.txt usuario@host:/caminho/ scp -r pasta/ usuario@host:/destino/ scp usuario@host:/arquivo ./
Dica: Use chaves SSH para autenticação sem senha:
ssh-keygen -t rsa ssh-copy-id usuario@host
touch arquivo.txt sudo groupadd analistas sudo useradd -m usuario2 sudo chown usuario2:analistas arquivo.txt chmod 640 arquivo.txt
Agora, entre com outro usuário e tente abrir o arquivo:
su - usuario2 cat arquivo.txt
Adicione este usuário ao grupo analistas
e tente novamente:
sudo usermod -aG analistas usuario2
echo "Linha inicial" > arquivo.txt # cria e escreve echo "Outra linha" >> arquivo.txt # adiciona ao final cat arquivo.txt
O tcpdump
permite capturar e analisar pacotes de rede:
sudo tcpdump -i any
Exemplos:
sudo tcpdump -i eth0 port 80 # tráfego HTTP sudo tcpdump -n host 192.168.0.1 # IP específico sudo tcpdump -w captura.pcap # salvar para Wireshark sudo tcpdump -A port 21 # mostrar conteúdo ASCII
Responda as seguintes questões:
1. O que o comando nohup
faz?
2. Como verificar quais processos estão em segundo plano?
3. Para alterar a prioridade de um processo em execução usamos:
4. O que faz echo "abc" >> file.txt
?
5. Qual comando mostra conexões de rede?
6. Qual sinal é enviado com kill -9
?
7. Como listar processos em formato de árvore?
8. Qual comando mostra uso de I/O em tempo real?
9. O que faz o comando disown
?
10. Como matar todos os processos de um usuário?