Comandos de leitura
São comandos que apenas mostram informações, como arquivos, memória, disco, rede e processos.
pwd
ls
free -h
df -h
hostname -I
Material de referência para alunos iniciantes: navegação, arquivos, leitura de logs, rede, pacotes, serviços, usuários, permissões e um mini servidor web para prática.
O terminal funciona como uma conversa direta com o sistema. Cada comando é uma ordem: alguns comandos apenas mostram informações, outros alteram arquivos, serviços, permissões ou o próprio funcionamento do servidor.
São comandos que apenas mostram informações, como arquivos, memória, disco, rede e processos.
pwd
ls
free -h
df -h
hostname -I
Alteram arquivos, pacotes, permissões, usuários ou serviços. Use com atenção, principalmente com sudo.
sudo apt install nginx
chmod +x script.sh
sudo systemctl restart ssh
sudo, entenda o que ele muda. sudo é como pegar a chave da sala do servidor: você consegue resolver problemas, mas também consegue quebrar coisas importantes.
Comandos para abrir arquivos de texto, ler partes específicas e acompanhar arquivos sendo atualizados em tempo real.
catMostra o conteúdo inteiro de um arquivo no terminal.
cat /etc/os-releaselessAbre um arquivo para leitura com rolagem. Use q para sair.
less /etc/os-releaselessDentro do less, use barra para pesquisar texto.
/erro
qheadMostra o começo de um arquivo.
head /etc/os-release
head -n 20 /etc/os-releasetailMostra o final de um arquivo.
tail /etc/os-release
tail -n 20 /etc/os-releasetail -fAcompanha um arquivo em tempo real. Para logs do sistema, prefira journalctl -f.
journalctl -f/var/log/syslog
Algumas instalações do Ubuntu Server podem não ter o arquivo /var/log/syslog. Para aula, journalctl costuma ser mais confiável.
Comandos para descobrir informações do servidor: kernel, nome da máquina, tempo ligado, usuário atual, memória, disco, processador e rede.
| Comando | Função | Exemplo |
|---|---|---|
uname |
Mostra informações do kernel do Linux. | uname -a |
hostname |
Mostra o nome da máquina. | hostname |
hostnamectl |
Mostra informações do nome da máquina e do sistema. | hostnamectl |
uptime |
Mostra há quanto tempo o servidor está ligado. | uptime |
whoami |
Mostra qual usuário está usando o terminal. | whoami |
id |
Mostra UID, GID e grupos do usuário atual. | id |
date |
Mostra data e hora. | date |
timedatectl |
Mostra data, hora, fuso horário e sincronização de tempo. | timedatectl |
free |
Mostra uso de memória RAM. | free -h |
df |
Mostra espaço usado em discos e partições montadas. | df -h |
du |
Mostra o tamanho de arquivos e pastas. | du -sh /home |
lsblk |
Lista discos, partições e pontos de montagem. | lsblk |
lscpu |
Mostra informações do processador. | lscpu |
ip |
Mostra interfaces de rede, endereços IP e rotas. | ip a |
Processos são programas em execução. Esses comandos ajudam a visualizar, filtrar e encerrar processos.
topMostra processos em tempo real.
tophtopVersão mais visual e prática do top. Pode não vir instalada por padrão.
sudo apt install htop
htoppsLista processos em execução.
ps auxgrepFiltra texto. Com processos, ajuda a encontrar um programa específico.
ps aux | grep '[s]sh'pgrepProcura processos pelo nome e mostra o PID.
pgrep -a sshkillEncerra um processo pelo PID. kill -9 força o encerramento.
kill 1234
kill -9 1234kill -9
Encerrar normalmente é como desligar um aparelho pelo botão. Usar kill -9 é como puxar o cabo da tomada.
Comandos para testar conexão, ver IP, acessar páginas pelo terminal, baixar arquivos, consultar DNS, rotas e portas abertas.
pingTesta conexão com outro endereço. Use -c para limitar a quantidade de testes.
ping -c 4 google.com
ping -c 4 8.8.8.8curlAcessa URLs pelo terminal e mostra a resposta.
curl ifconfig.me
curl https://example.comwgetBaixa arquivos a partir de uma URL.
wget https://example.com/arquivo.zipssMostra portas abertas e conexões. Com sudo, exibe mais detalhes dos processos.
sudo ss -tulnpdigConsulta DNS, ou seja, traduz nomes de sites para endereços IP.
sudo apt install dnsutils
dig google.comtracerouteMostra o caminho aproximado dos pacotes até um servidor.
sudo apt install traceroute
traceroute google.comsshAcessa outro servidor remotamente.
ssh usuario@ip-do-servidor
ssh aluno@192.168.0.25hostname -IMostra rapidamente o IP da máquina na rede.
hostname -I
No Ubuntu Server, o apt é usado para atualizar a lista de programas, instalar, remover e consultar pacotes.
apt updateAtualiza a lista de pacotes disponíveis nos repositórios.
sudo apt updateapt upgradeAtualiza os pacotes instalados no sistema.
sudo apt upgradeapt installInstala programas e ferramentas.
sudo apt install nginxapt removeRemove programas instalados.
sudo apt remove nginxapt searchPesquisa pacotes disponíveis.
apt search apacheapt showMostra informações detalhadas sobre um pacote.
apt show nginxsudo apt update
sudo apt install tree htop curl wget dnsutils traceroute zip unzip fastfetchServiços são programas que ficam rodando em segundo plano, como SSH, Nginx, banco de dados ou firewall.
systemctl statusMostra o estado de um serviço.
systemctl status ssh
systemctl status nginxsystemctl startInicia um serviço.
sudo systemctl start sshsystemctl stopPara um serviço.
sudo systemctl stop sshsystemctl restartReinicia um serviço.
sudo systemctl restart sshsystemctl enableFaz o serviço iniciar automaticamente junto com o sistema.
sudo systemctl enable sshsystemctl disableRemove o início automático do serviço.
sudo systemctl disable sshsystemctl status ssh não encontrar o serviço, instale o servidor SSH:
sudo apt install openssh-server
systemctl status sshLogs são registros do que aconteceu no sistema. Eles ajudam a encontrar erros, acessos, falhas e eventos importantes.
journalctlMostra logs do sistema registrados pelo systemd.
journalctljournalctl -xeMostra logs recentes com detalhes extras de erro e contexto.
journalctl -xejournalctl -uMostra logs de um serviço específico.
journalctl -u ssh
journalctl -u nginxjournalctl -fAcompanha logs em tempo real.
journalctl -f
journalctl -u ssh -fdmesgMostra mensagens do kernel, úteis para entender boot, hardware, drivers e erros de dispositivo.
dmesg
dmesg | lessAcompanha acessos ao servidor Nginx em tempo real.
sudo tail -f /var/log/nginx/access.logComandos para criar usuários, trocar senha, consultar grupos, alterar permissões e alterar dono de arquivos.
adduserCria um novo usuário no sistema.
sudo adduser alunopasswdAltera a senha de um usuário.
sudo passwd alunousermodAltera dados do usuário. Exemplo: adicionar o usuário ao grupo sudo.
sudo usermod -aG sudo alunogroupsMostra os grupos de um usuário.
groups alunochmodAltera permissões de leitura, escrita e execução.
chmod +x script.sh
chmod 755 script.shchownAltera o dono e o grupo de um arquivo ou pasta.
sudo chown aluno:aluno arquivo.txtsudo -iuEntra como outro usuário usando permissão administrativa.
sudo -iu aluno
whoami
pwdchmod define quem pode abrir, escrever ou executar. chown define quem é o dono.
Comandos para compactar e extrair arquivos nos formatos comuns em Linux e em ambientes compartilhados.
zipCompacta arquivos no formato ZIP.
sudo apt install zip unzip
zip arquivos.zip aula.txt resumo.txtunzipExtrai arquivos ZIP.
unzip arquivos.ziptar criando arquivoCompacta uma pasta no formato .tar.gz.
tar -czvf backup.tar.gz projetos/tar extraindo arquivoExtrai um arquivo .tar.gz.
tar -xzvf backup.tar.gztar vendo conteúdoLista o conteúdo de um arquivo compactado sem extrair.
tar -tzf backup.tar.gzPequenas práticas que mostram organização de projeto, servidor web, rede, logs e automação com script.
Mostra organização básica de pastas em um projeto HTML, CSS e JavaScript.
mkdir -p site/{css,js,img}
touch site/index.html site/css/style.css site/js/script.js
tree siteCria uma página simples e publica a pasta atual na porta 8000.
mkdir servidor-aula
cd servidor-aula
echo "<h1>Servidor funcionando</h1>" > index.html
python3 -m http.server 8000Descubra o IP do servidor e acesse pela porta 8000.
hostname -Ihttp://IP-DO-SERVIDOR:8000Mostra serviços escutando conexões no servidor.
sudo ss -tulnpInstala um servidor web real e testa localmente.
sudo apt update
sudo apt install nginx
systemctl status nginx
curl localhostUse o IP do servidor no navegador de outra máquina da mesma rede.
hostname -Ihttp://IP-DO-SERVIDORsudo ufw status
sudo ufw allow 'Nginx HTTP'Enquanto alguém acessa o servidor, o log aparece em tempo real.
sudo tail -f /var/log/nginx/access.logCria o usuário e entra nele usando permissão administrativa.
sudo adduser aluno
sudo -iu aluno
whoami
pwdScript para mostrar usuário atual, nome da máquina, tempo ligado, memória e disco.
nano status.sh#!/bin/bash
echo "Usuário atual: $(whoami)"
echo "Nome da máquina: $(hostname)"
echo "Tempo ligado:"
uptime
echo "Memória:"
free -h
echo "Disco:"
df -hchmod +x status.sh
./status.shFiltra linhas que contêm uma palavra específica.
grep "erro" arquivo.txt
grep -i "error" arquivo.txtBom para mostrar processamento de texto pelo terminal.
wc aula.txt
wc -l aula.txtComandos simples para deixar a aula mais visual. Eles não são essenciais para administração do servidor, mas ajudam a chamar atenção.
cmatrixMostra um efeito visual estilo Matrix no terminal.
sudo apt install cmatrix
cmatrixslMostra um trem passando no terminal. É uma brincadeira com quem digita sl em vez de ls.
sudo apt install sl
slfigletCria textos grandes em ASCII.
sudo apt install figlet
figlet Ubuntu ServertoiletParecido com figlet, com estilos diferentes.
sudo apt install toilet
toilet LinuxfastfetchMostra informações do sistema com visual organizado.
sudo apt install fastfetch
fastfetchEsta parte deve ser explicada teoricamente. Não é recomendado entregar comandos destrutivos prontos para copiar.
Comandos recursivos com rm e sudo podem apagar arquivos essenciais.
Versões modernas têm algumas proteções, mas variações continuam perigosas.
Exemplo conceitual: remover tudo a partir da raiz do sistemaComando malicioso que cria processos infinitos até travar a máquina. É como uma impressora fazendo cópias de si mesma sem parar.
Exemplo conceitual: processo que se multiplica infinitamenteDar permissão total recursiva para todos pode destruir a segurança do sistema e quebrar serviços.
Exemplo conceitual: chmod recursivo na raiz do sistemaMudar o dono de arquivos críticos pode impedir serviços, login, atualizações e inicialização correta.
Exemplo conceitual: chown recursivo na raiz do sistema
Comandos como mkfs criam um novo sistema de arquivos e podem apagar dados permanentemente.
Exemplo conceitual: mkfs em uma partição ou disco realAtividade sugerida: montar e monitorar um mini servidor web no Ubuntu Server.
hostname
hostname -I
uptime
free -h
df -hmkdir servidor-aula
cd servidor-aula
echo "<h1>Aula de Ubuntu Server</h1>" > index.htmlpython3 -m http.server 8000http://IP-DO-SERVIDOR:8000sudo ss -tulnpCtrl + CPontos importantes para evitar erro em laboratório e em máquina real.
Evite executar comandos com sudo, rm -rf, chmod -R, chown -R e mkfs sem entender exatamente o alvo.
Use pwd, ls e tree com frequência. O caminho da pasta funciona como o endereço de uma casa dentro do sistema.
Verifique IP, firewall, porta usada e se as máquinas estão na mesma rede.
Ferramentas como tree, htop, figlet, cmatrix, dig, traceroute, zip e fastfetch podem não vir instaladas por padrão.
Comandos que analisam muitos arquivos, como du em pastas grandes ou leitura de logs enormes, podem ficar lentos em servidores fracos.
Antes de alterar algo, use comandos que apenas mostram informações. É como olhar o painel do carro antes de mexer no motor.