Este guia reúne comandos frequentemente utilizados em ambientes de trabalho com sistemas baseados em Ubuntu, abrangendo gerenciamento de usuários, configurações de sistema, armazenamento, rede e serviços.
Gerenciamento de Usuários
Criar um novo usuário com diretório home e shell padrão:
sudo useradd -d /home/nomeDoUsuario -m -s /bin/bash nomeDoUsuario
sudo passwd nomeDoUsuario
Conceder permissões de superusuário editando o arquivo de sudoers:
sudo visudo
# Adicione a seguinte linha abaixo da entrada do root:
nomeDoUsuario ALL=(ALL:ALL) ALL
Remover um usuário e seu diretório home:
sudo userdel -r nomeDoUsuario
Configurar autenticação por chave SSH:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Memória Swap
Verificar o uso atual de memória:
free -h
Criar e ativar um arquivo de swap:
sudo fallocate -l 4G /var/swapfile
sudo chmod 600 /var/swapfile
sudo mkswap /var/swapfile
sudo swapon /var/swapfile
Permanecer como root:
sudo -i
Configurar o swap para iniciar automaticamente:
echo '/var/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Remoção de Software
Listar pacotes instalados correspondentes a um termo:
dpkg -l | grep nomeDoPrograma
Desinstalar um pacote com seus arquivos de configuração:
sudo apt-get purge nomeDoPrograma
Desinstalar mantendo as configurações:
sudo apt-get remove nomeDoPrograma
Localização de Arquivos
Encontrar executáveis no PATH:
which nome
Localizar binários, manuais e arquivos de código fonte:
whereis nome
Buscar por nome de arquivo no banco de dados local:
locate nome
Busca detalhada no sistema de arquivos (com custo de I/O):
sudo find / -type f -name "*.conf" 2>/dev/null
Montagem de Discos
Listar dispositivos de bloco e partições:
sudo lsblk
Criar um sistema de arquivos ext4:
sudo mkfs.ext4 /dev/sdb1
Criar ponto de montagem e montar a partição:
sudo mkdir /mnt/dados
sudo mount /dev/sdb1 /mnt/dados
Expandir um sistema de arquivos após redimensionar o disco:
sudo resize2fs /dev/sdb1
Limites de Arquivos Abertos
Aumentar o limite de file descriptors no Ubuntu 18.04+:
sudo sh -c 'cat >> /etc/security/limits.conf <<EOF
* soft nofile 65535
* hard nofile 65535
EOF'
echo "fs.file-max = 2097152" | sudo tee /etc/sysctl.d/99-file-max.conf
sudo sysctl --system
Firewall (UFW)
Gerenciar regras do firewall Uncomplicated:
# Status
sudo ufw status verbose
# Ativação/Desativação
sudo ufw enable
sudo ufw disable
# Liberar uma porta TCP
sudo ufw allow 8080/tcp
# Revogar uma regra
sudo ufw delete allow 8080/tcp
# Listar todas as regras numeradas
sudo ufw status numbered
Serviços Systemd
Criar e gerenciar um serviço:
# Criar arquivo de unidade
sudo nano /etc/systemd/system/meu-servico.service
# Comandos de gerenciamento
sudo systemctl start meu-servico
sudo systemctl stop meu-servico
sudo systemctl status meu-servico
sudo systemctl enable meu-servico
# Consultar logs
sudo journalctl -u meu-servico -f
Exemplo de arquivo de serviço:
[Unit]
Description=Minha Aplicação
After=network.target
[Service]
Type=simple
User=www-data
ExecStart=/usr/bin/python3 /opt/app/main.py
Restart=on-failure
RestartSec=5
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
Docker
Instalação e configuração básica:
sudo apt update
sudo apt install docker.io
sudo usermod -aG docker $USER
newgrp docker
Alterar o diretório de armazenamento do Docker:
sudo systemctl stop docker.socket docker.service
sudo mv /var/lib/docker /novo/caminho/docker
sudo ln -s /novo/caminho/docker /var/lib/docker
sudo systemctl start docker.socket docker.service
Limpeza de Logs e Espaço
Analisar consumo de espaço em disco:
sudo du -sh /* | sort -hr | head -n 10
Gerenciar logs do systemd-journald:
# Manter apenas 50MB de logs
sudo journalctl --vacuum-size=50M
# Limpar logs com mais de 7 dias
sudo journalctl --vacuum-time=7d
# Zerar um arquivo de log específico
sudo truncate -s 0 /var/log/syslog
Limpar recursos não utilizados do Docker:
docker system prune -af --volumes
Transferência de Arquivos
Usando o protocolo ZMODEM com lrzsz:
sudo apt install lrzsz
# Upload (do cliente para o servidor)
rz
# Download (do servidor para o cliente)
sz nomeDoArquivo
Sessões Persistentes com Screen
# Criar uma sessão nomeada
screen -S trabalho
# Destacar da sessão: Ctrl+A, depois D
# Listar sessões
screen -ls
# Reanexar a uma sessão
screen -r trabalho
# Encerrar uma sessão
screen -S trabalho -X quit
Acesso SSH do macOS
Gerar um par de chaves RSA:
ssh-keygen -t rsa -b 4096 -C "seu-email@exemplo.com"
Configurar acesso simplificado via arquivo config:
cat >> ~/.ssh/config <<EOF
Host servidor-prod
HostName 192.168.1.100
User operador
Port 22
IdentityFile ~/.ssh/chave_prod
EOF
ssh servidor-prod
Diversos
Executar um comando em background com log:
nohup python3 aplicacao.py > app.log 2>&1 &
Analisar tamanho de diretórios:
du -h --max-depth=1 | sort -hr
Expandir o histórico de comandos:
echo 'HISTSIZE=1000000' >> ~/.bashrc
echo 'HISTFILESIZE=2000000' >> ~/.bashrc
echo 'HISTCONTROL=ignoreboth:erasedups' >> ~/.bashrc
Converter arquivos de formato DOS para Unix:
dos2unix nomeDoArquivo
# Ou com sed
sed -i 's/\r$//' nomeDoArquivo
Criar links simbólicos:
ln -s /caminho/do/arquivo/original /caminho/do/atalho
Acelerar vídeos no navegador (via console):
document.querySelector('video').playbackRate = 2.0