🐧 Linha de Comando Linux
Comandos básicos e avançados para navegação, ficheiros, processos, redes, monitorização, pacotes e automação. Adequado para fluxos de trabalho DevOps.
🔹 Comandos básicos
| Comando | Exemplo | Descrição | 
|---|---|---|
| cat | Mostrar o conteúdo de um ficheiro ou concatenar vários ficheiros | |
| cat file.txt | Ver o conteúdo de um ficheiro | |
| cat file1 file2 | Concatenar e mostrar dois ficheiros | |
| cat file1 file2 > merged.txt | Concatenar ficheiros e guardar num novo ficheiro | |
| cd | Mudar o diretório de trabalho atual | |
| cd /etc | Ir para o caminho absoluto  | |
| cd ~ | Ir para o diretório pessoal | |
| cd .. | Subir um nível | |
| cd - | Voltar ao diretório anterior | |
| clear | Limpar o ecrã do terminal | |
| cp | Copiar ficheiros e diretórios | |
| cp file1.txt file2.txt | Copiar um ficheiro com um novo nome | |
| cp -r dir1 dir2 | Copiar recursivamente um diretório | |
| cp -i file.txt /tmp/ | Copiar com confirmação antes de substituir | |
| echo | Imprimir uma string ou variável de ambiente | |
| echo "Hello, World!" | Imprimir uma string simples | |
| echo $HOME | Mostrar o caminho do diretório pessoal | |
| echo -e "1\t2\n3" | Interpretar sequências de escape ( ) | |
| history | Mostrar o histórico de comandos | |
| id | Mostrar UID, GID e grupos do utilizador atual | |
| ls | Listar ficheiros e diretórios | |
| ls -l | Listagem detalhada com permissões e donos | |
| ls -a | Mostrar ficheiros ocultos | |
| ls -lh | Tamanhos legíveis por humanos | |
| mkdir | Criar diretórios | |
| mkdir folder | Criar um único diretório | |
| mkdir -p a/b/c | Criar diretórios aninhados | |
| mkdir dir{1,2,3} | Criar múltiplos diretórios de uma vez | |
| mv | Mover ou renomear ficheiros/diretórios | |
| mv oldname.txt newname.txt | Renomear um ficheiro | |
| mv file.txt /path/to/dir/ | Mover um ficheiro para outro diretório | |
| mv *.txt archive/ | Mover todos os ficheiros  | |
| pwd | Mostrar o diretório de trabalho atual | |
| pwd -P | Mostrar o caminho físico (sem symlinks) | |
| cd /tmp && pwd | Mostrar o caminho depois de mudar para  | |
| rm | Remover ficheiros ou diretórios | |
| rm file.txt | Apagar um ficheiro | |
| rm -i file.txt | Apagar um ficheiro com confirmação | |
| rm -r folder/ | Apagar recursivamente um diretório | |
| rm -rf folder/ | Forçar remoção sem confirmação | |
| rmdir | Remover um diretório vazio | |
| rmdir emptydir | Remover o diretório  | |
| touch | Criar ficheiros vazios ou atualizar o tempo de modificação | |
| touch newfile.txt | Criar um novo ficheiro vazio se não existir | |
| touch a b c | Criar múltiplos ficheiros de uma vez | |
| touch -c file.txt | Atualizar o tempo sem criar ficheiro se não existir | |
| whereis | Localizar o binário, código-fonte e manuais de um comando | |
| whereis ls | Encontrar localizações para  | |
| whereis bash | Mostrar caminhos para o binário e documentação do Bash | |
| whereis -b bash | Procurar apenas pelo binário | |
| which | Mostrar o caminho do executável de um comando | |
| which python3 | Caminho para  | |
| which grep | Caminho para  | |
| which --skip-alias ls | Ignorar aliases durante a procura | |
| whoami | Mostrar o nome do utilizador efetivo | 
🔸 Nível intermédio
| Comando | Exemplo | Descrição | 
|---|---|---|
| chmod | Alterar permissões de ficheiro ou diretório | |
| chmod 755 file | Definir permissões com notação octal (ex: 755) | |
| chmod +x script.sh | Adicionar permissão de execução a um script | |
| chmod -R 644 dir/ | Definir permissões recursivamente num diretório | |
| chown | Alterar dono e grupo de ficheiro | |
| chown user file | Alterar o dono de um ficheiro | |
| chown user:group file | Alterar dono e grupo | |
| chown -R user:group dir/ | Alterar recursivamente dono e grupo | |
| curl | Transferir dados de/para um servidor (HTTP, HTTPS, etc.) | |
| curl -I https://example.com | Enviar um pedido HEAD (apenas cabeçalhos) | |
| curl -O https://example.com/file.txt | Descarregar um ficheiro mantendo o nome | |
| curl -d "a=1&b=2" -X POST URL | Enviar um POST com dados de formulário | |
| df | Mostrar uso de espaço em disco do sistema de ficheiros | |
| df -h | Tamanhos legíveis por humanos | |
| df /home | Uso de um ponto de montagem específico | |
| df -T | Mostrar tipos de sistemas de ficheiros | |
| diff | Comparar ficheiros ou diretórios | |
| diff file1 file2 | Comparar dois ficheiros | |
| diff -u old.c new.c | Diff unificado (estilo patch) | |
| diff -r dir1 dir2 | Comparação recursiva de diretórios | |
| du | Estimar uso de espaço de ficheiros e diretórios | |
| du -sh * | Mostrar tamanho de itens no diretório atual | |
| du -h file.txt | Mostrar tamanho de um único ficheiro | |
| du -sh --max-depth=1 /var | Resumir tamanhos de subdiretórios de topo | |
| find | Procurar ficheiros/diretórios por nome, tamanho, tempo, etc. | |
| find . -name "*.log" | Encontrar todos os ficheiros  | |
| find / -type f -size +100M | Encontrar ficheiros maiores que 100 MB | |
| find . -mtime -1 | Ficheiros modificados no último dia | |
| free | Mostrar quantidade de memória livre e usada | |
| free -h | Unidades de memória legíveis por humanos | |
| free -m | Mostrar valores em MB | |
| watch -n 2 free -h | Atualizar saída a cada 2 segundos | |
| grep | Procurar texto usando padrões (expressões regulares) | |
| grep "error" logfile | Encontrar linhas que contenham  | |
| grep -r "error" /var/log | Pesquisa recursiva num diretório | |
| grep -i "fail" file | Pesquisa sem diferenciar maiúsculas/minúsculas | |
| head | Mostrar as primeiras linhas de um ficheiro | |
| head -n 10 file | Primeiras 10 linhas | |
| head -n 20 file.txt | Primeiras 20 linhas | |
| head -c 100 file | Primeiros 100 bytes | |
| hostname | Mostrar ou definir o nome de anfitrião do sistema | |
| hostname newname | Definir temporariamente o nome de anfitrião até reiniciar | |
| hostname -I | Mostrar endereços IP | |
| kill | Enviar sinais a processos | |
| kill -9 1234 | Forçar terminar um processo pelo PID | |
| kill -TERM 1234 | Terminar graciosamente com SIGTERM | |
| pkill -f python | Matar processos que correspondam a um padrão | |
| ping | Verificar conectividade de rede com pedidos ICMP | |
| ping 8.8.8.8 | Ping a um endereço | |
| ping -c 4 ya.ru | Enviar 4 pacotes | |
| ping -i 2 1.1.1.1 | Definir intervalo de 2 segundos | |
| ps | Mostrar estado de processos | |
| ps aux | Listar todos os processos | |
| ps -ef | grep nginx | Filtrar por nome usando  | |
| ps -u $USER | Processos do utilizador atual | |
| rsync | Transferência incremental rápida de ficheiros | |
| rsync -av src/ dst/ | Sincronizar diretórios localmente | |
| rsync -avz user@host:/src /dst | Sincronizar com anfitrião remoto via SSH | |
| rsync --delete src/ dst/ | Apagar ficheiros em destino ausentes na origem | |
| scp | Cópia segura (programa de cópia remota) | |
| scp file user@host:/path | Copiar um ficheiro para um anfitrião remoto | |
| scp user@host:/file.txt . | Copiar um ficheiro de um anfitrião remoto | |
| scp -r dir user@host:/path | Copiar recursivamente um diretório | |
| sort | Ordenar linhas de texto | |
| sort file.txt | Ordenação alfabética | |
| sort -r file.txt | Ordem inversa | |
| sort -n numbers.txt | Ordenação numérica | |
| tail | Mostrar a parte final de ficheiros; seguir alterações | |
| tail -f logfile.log | Seguir log em tempo real | |
| tail -n 20 file.txt | Mostrar as últimas 20 linhas | |
| tail -c 100 file.txt | Mostrar os últimos 100 bytes | |
| tar | Criar, listar ou extrair arquivos tar | |
| tar -czf archive.tgz dir/ | Criar um arquivo  | |
| tar -xzf archive.tgz | Extrair um arquivo  | |
| tar -tf archive.tgz | Listar conteúdo do arquivo | |
| tee | Ler de stdin e escrever em stdout e ficheiros | |
| echo "test" | tee out.txt | Escrever saída em  | |
| ls | tee list.txt | Guardar saída de  | |
| command | tee -a log.txt | Acrescentar saída ao fim de  | |
| top | Mostrar tarefas do Linux (visualizador de processos interativo) | |
| top | Iniciar top | |
| htop | Visualizador alternativo (htop) | |
| top -o %MEM | Ordenar por uso de memória | |
| uptime | Mostrar há quanto tempo o sistema está ativo | |
| uptime -p | Tempo de atividade em formato amigável | |
| uptime -s | Hora de arranque do sistema | |
| wget | Downloader de rede não interativo | |
| wget https://site.com/file.zip | Descarregar ficheiro por URL | |
| wget -c file.zip | Retomar download interrompido | |
| wget -O saved.txt URL | Guardar com nome diferente | |
| wc | Mostrar contagem de linhas, palavras e bytes de ficheiros | |
| wc -l file | Contar linhas | |
| wc -w file | Contar palavras | |
| wc -m file | Contar caracteres | |
| uniq | Relatar ou remover linhas repetidas (duplicados adjacentes) | |
| uniq file.txt | Remover duplicados adjacentes | |
| sort file | uniq | Remover duplicados após ordenação | |
| sort file | uniq -c | Contar ocorrências de cada linha | |
| yes | Repetidamente imprimir uma string até ser interrompido; útil em scripts | |
| yes "y" | command | Responder sempre “y” a prompts | |
| yes | rm -i * | Auto-confirmar eliminações interativas | |
| yes no | command | Responder “no” a prompts | 
🔧 Comandos avançados
| Comando | Exemplo | Descrição | 
|---|---|---|
| at | Agendar um comando único para executar numa hora definida | |
| at now + 1 minute | Executar um comando daqui a um minuto | |
| atq | Listar tarefas pendentes | |
| atrm | Remover uma tarefa pendente | |
| awk | Linguagem de análise e processamento de padrões | |
| awk '{print $1}' file | Imprimir a primeira coluna | |
| ps aux | awk '$3 > 50' | Filtrar processos por uso de CPU | |
| cat file.txt | awk '{print $2}' | Imprimir o segundo campo de cada linha | |
| awk '/error/ {print $0}' logfile | Imprimir linhas que correspondam a um padrão | |
| crontab | Instalar, listar ou remover tarefas cron por utilizador | |
| crontab -e | Editar crontab do utilizador atual | |
| crontab -l | Listar tarefas cron | |
| crontab -r | Remover crontab do utilizador atual | |
| cut | Remover ou selecionar secções de cada linha de ficheiros | |
| cut -d':' -f1 /etc/passwd | Imprimir nomes de utilizador de  | |
| echo "a:b:c" | cut -d':' -f2 | Cortar o segundo campo usando ‘:’ como delimitador | |
| cut -c1-5 filename | Selecionar caracteres por posição | |
| df | Mostrar uso de espaço em disco | |
| df -h | Tamanhos legíveis por humanos | |
| df -T | Mostrar tipos de sistemas de ficheiros | |
| df /home | Uso do diretório pessoal | |
| env | Executar um comando num ambiente modificado ou mostrar env | |
| env | grep PATH | Mostrar entradas do PATH | |
| env -i bash | Iniciar shell limpa com ambiente vazio | |
| export | Definir variáveis de ambiente para a shell/sessão atual | |
| export VAR=value | Definir uma variável nesta shell | |
| export PATH=$PATH:/new/path | Acrescentar um diretório ao PATH | |
| export -p | Listar variáveis exportadas | |
| free | Mostrar uso de memória | |
| free -m | Mostrar em MB | |
| free -h | Unidades legíveis por humanos | |
| free -s 5 | Amostragem a cada 5 segundos | |
| hostnamectl | Consultar e alterar nome de anfitrião e definições relacionadas | |
| hostnamectl status | Mostrar estado do nome de anfitrião | |
| hostnamectl set-hostname newname | Definir novo nome de anfitrião estático | |
| ifconfig/ip | Ferramentas IP para ver/gerir interfaces e endereços | |
| ifconfig | Mostrar interfaces de rede (legado) | |
| ip a | Mostrar endereços com  | |
| ip link set eth0 up | Ativar uma interface | |
| iostat | Mostrar estatísticas de CPU e I/O | |
| iostat -x 2 | Estatísticas detalhadas a cada 2 segundos | |
| iostat -d 5 3 | Estatísticas de dispositivos (intervalo 5s, 3 relatórios) | |
| iptables | Ferramenta de administração de filtragem de pacotes IPv4 e NAT | |
| iptables -L | Listar regras atuais | |
| iptables -A INPUT -p tcp --dport 22 -j ACCEPT | Permitir SSH na porta 22 | |
| iptables -F | Limpar todas as regras | |
| journalctl | Consultar o journal do systemd | |
| journalctl -xe | Mostrar erros recentes com contexto | |
| journalctl -u nginx.service | Mostrar logs de um serviço | |
| journalctl --since "2 hours ago" | Mostrar logs desde tempo relativo | |
| ln | Criar ligações entre ficheiros | |
| ln -s target link | Criar um link simbólico | |
| ln file.txt backup.txt | Criar um link físico | |
| ln -sf target link | Forçar recriação de link simbólico | |
| sed | Editor de fluxos para filtrar e transformar texto | |
| sed 's/old/new/g' file | Substituir uma string globalmente | |
| sed -n '1,5p' file | Imprimir apenas intervalo de linhas | |
| sed '/pattern/d' file | Apagar linhas correspondentes a padrão | |
| systemctl | Controlar o systemd e serviços | |
| systemctl status nginx | Mostrar estado de serviço | |
| systemctl start nginx | Iniciar um serviço | |
| systemctl enable nginx | Ativar serviço no arranque | |
| tr | Traduzir ou apagar caracteres | |
| tr a-z A-Z | Converter minúsculas em maiúsculas | |
| echo "hello" | tr 'h' 'H' | Substituir um carácter | |
| echo "abc123" | tr -d '0-9' | Apagar dígitos | |
| type | Descrever como um nome seria interpretado na shell | |
| type ls | Mostrar como  | |
| type cd | Mostrar como  | |
| type python3 | Mostrar como  | |
| ulimit | Obter ou definir limites de recursos de processo do utilizador | |
| ulimit -n | Mostrar máximo de ficheiros abertos | |
| ulimit -c unlimited | Ativar core dumps | |
| ulimit -u 4096 | Limitar número de processos de utilizador | |
| uptime | Mostrar tempo de atividade e carga média | |
| uptime -p | Tempo de atividade em formato amigável | |
| uptime -s | Mostrar hora de arranque | |
| xargs | Construir e executar comandos a partir da entrada padrão | |
| xargs -n 1 echo | Mostrar cada argumento numa linha separada | |
| echo "a b c" | xargs -n 1 | Dividir palavras em argumentos separados | |
| find . -name '*.txt' | xargs rm | Encontrar ficheiros e removê-los com xargs | 
🌐 Comandos de rede
| Comando | Exemplo | Descrição | 
|---|---|---|
| curl | Transferir dados de/para servidores | |
| curl -X POST -d "a=1" URL | Pedido POST com dados de formulário | |
| curl -I URL | Obter apenas cabeçalhos | |
| curl -o file.html URL | Descarregar e guardar num ficheiro | |
| dig | Utilitário de pesquisa DNS | |
| dig openai.com | Consultar registos A | |
| dig +short openai.com | Resposta curta | |
| dig @8.8.8.8 openai.com | Usar um servidor DNS específico | |
| ftp | Cliente do Protocolo de Transferência de Ficheiros | |
| ftp host | Ligar a um servidor FTP | |
| ftp -n host | Ligar sem auto-login | |
| ftp> get file.txt | Descarregar um ficheiro numa sessão FTP | |
| ip address | Mostrar/manipular endereços IP | |
| ip addr show eth0 | Mostrar informações de endereço para  | |
| ip addr | Listar todos os endereços | |
| ip link | Mostrar/manipular dispositivos de rede | |
| ip link show | Mostrar ligações de rede | |
| ip link set eth0 up | Ativar uma interface | |
| ip route | Mostrar/manipular a tabela de encaminhamento IP | |
| ip route list | Listar tabela de rotas | |
| ip route add default via 192.168.1.1 | Adicionar rota por defeito | |
| nc | Conexões e escutas TCP/UDP arbitrárias | |
| nc -zv host 22 | Scan de portas de um host | |
| nc -l 1234 | Escutar numa porta TCP | |
| nc host 1234 < file | Enviar um ficheiro para uma porta remota | |
| nmap | Ferramenta de exploração de rede e scanner de segurança/portas | |
| nmap -sP 192.168.1.0/24 | Scan de ping a uma sub-rede | |
| nmap -sV 192.168.1.1 | Deteção de serviços/versões | |
| nmap -O 192.168.1.1 | Deteção de sistema operativo | |
| nslookup | Consultar servidores de nomes de domínio da Internet | |
| nslookup google.com | Consultar um nome de domínio | |
| nslookup 8.8.8.8 | Pesquisa inversa para um IP | |
| ssh | Cliente de login remoto OpenSSH | |
| ssh user@host | Ligar a um host | |
| ssh -p 2222 user@host | Ligar usando uma porta não padrão | |
| ssh -i ~/.ssh/id_rsa user@host | Login com uma chave privada específica | |
| ss | Utilitário para investigar sockets | |
| ss -tuln | Listar portas TCP/UDP em escuta | |
| ss -s | Estatísticas sumárias | |
| ss -l | Listar sockets em escuta | |
| telnet | Interface de utilizador para o protocolo TELNET | |
| telnet host 80 | Ligar a um host na porta 80 | |
| telnet example.com 443 | Ligar à porta 443 | |
| telnet localhost 25 | Ligar ao SMTP local | |
| traceroute | Traçar a rota até um host de rede | |
| traceroute 8.8.8.8 | Traçar caminho até um IP | |
| traceroute -m 15 8.8.8.8 | Limitar saltos máximos | |
| wget | Obter ficheiros da web | |
| wget -O file.txt URL | Guardar saída num ficheiro | |
| wget URL | Descarregar para o diretório atual | |
| wget -c URL | Continuar um download parcial | 
🔍 Pesquisa e gestão de ficheiros
| Comando | Exemplo | Descrição | 
|---|---|---|
| basename | Remover diretório e sufixo de nomes de ficheiros | |
| basename /path/to/file | Imprimir o nome do ficheiro a partir de um caminho | |
| basename /path/to/file .txt | Remover um sufixo do nome | |
| dirname | Remover o último componente de um caminho | |
| dirname /path/to/file | Mostrar parte do diretório do caminho | |
| dirname /etc/passwd | Mostrar pai de  | |
| du | Estimar uso de espaço em disco | |
| du -sh folder/ | Mostrar tamanho de um diretório | |
| du -h * | Mostrar tamanho de itens no diretório atual | |
| du -c folder1 folder2 | Tamanho cumulativo de múltiplos diretórios | |
| file | Determinar tipo de ficheiro | |
| file some.bin | Detetar tipo de ficheiro | |
| file * | Detetar tipos para todos os ficheiros no diretório | |
| file -i file.txt | Mostrar tipo MIME | |
| find | Procurar ficheiros | |
| find /path -type f -name "*.sh" | Procurar scripts shell por nome | |
| find . -size +10M | Procurar ficheiros maiores que 10 MB | |
| find /tmp -mtime -1 | Procurar ficheiros modificados no último dia | |
| locate | Procurar ficheiros por nome usando base de dados | |
| locate filename | Localizar um nome de ficheiro | |
| locate *.conf | Pesquisa com wildcard | |
| locate -i README | Pesquisa sem diferenciar maiúsculas/minúsculas | |
| realpath | Mostrar o caminho absoluto resolvido | |
| realpath file | Resolver caminho de um ficheiro | |
| realpath ../relative/path | Resolver um caminho relativo | |
| stat | Mostrar estado de ficheiro ou sistema de ficheiros | |
| stat file | Mostrar estado detalhado de um ficheiro | |
| stat -c %s file | Imprimir apenas tamanho do ficheiro | |
| stat -f file | Mostrar estado do sistema de ficheiros | |
| tree | Listar conteúdos de diretórios em formato de árvore | |
| tree | Imprimir árvore de diretórios | |
| tree -L 2 | Limitar profundidade de exibição | |
| tree -a | Incluir ficheiros ocultos | 
📊 Monitorização do sistema
| Comando | Exemplo | Descrição | 
|---|---|---|
| dmesg | Imprimir ou controlar o buffer de mensagens do kernel | |
| dmesg | tail | Mostrar últimas mensagens do kernel | |
| dmesg | grep usb | Filtrar mensagens USB | |
| free | Mostrar uso de memória | |
| free -h | Unidades legíveis por humanos | |
| free -m | Mostrar em MB | |
| htop | Visualizador interativo de processos | |
| htop | Executar  | |
| iotop | Mostrar uso de I/O por processos | |
| iotop | Executar  | |
| iotop -o | Mostrar apenas processos que fazem I/O | |
| lsof | Listar ficheiros abertos | |
| lsof -i :80 | Mostrar processos a usar a porta 80 | |
| lsof -u username | Mostrar ficheiros abertos por um utilizador | |
| uptime | Mostrar tempo de atividade do sistema e carga média | |
| vmstat | Mostrar estatísticas de memória virtual | |
| vmstat 1 | Atualizar a cada 1 segundo | |
| vmstat 5 3 | Intervalo de 5 segundos, 3 relatórios | |
| watch | Executar periodicamente um programa, mostrando saída | |
| watch -n 1 df -h | Monitorizar uso de disco | |
| watch -d free -h | Destacar diferenças e monitorizar memória | 
📦 Gestão de pacotes
| Comando | Exemplo | Descrição | 
|---|---|---|
| apt | Gestor de pacotes APT (Debian/Ubuntu) | |
| apt install curl | Instalar um pacote | |
| apt remove curl | Remover um pacote | |
| apt update && apt upgrade | Atualizar listas e atualizar pacotes | |
| dnf | Dandified YUM (família Fedora/RHEL) | |
| dnf install curl | Instalar um pacote | |
| dnf upgrade | Atualizar pacotes | |
| rpm | Gestor de pacotes RPM | |
| rpm -ivh package.rpm | Instalar um pacote RPM | |
| rpm -e package | Apagar (desinstalar) um pacote | |
| snap | Gestor de pacotes Snappy | |
| snap install app | Instalar um snap | |
| snap remove app | Remover um snap | |
| yum | Yellowdog Updater Modified (RHEL/CentOS) | |
| yum install curl | Instalar um pacote | |
| yum remove curl | Remover um pacote | 
💽 Sistemas de ficheiros
| Comando | Exemplo | Descrição | 
|---|---|---|
| blkid | Localizar/imprimir atributos de dispositivos de bloco | |
| blkid | Listar dispositivos de bloco e atributos | |
| df | Mostrar uso de espaço em disco do sistema de ficheiros | |
| df -Th | Tamanhos legíveis por humanos por tipo | |
| fsck | Verificar e reparar um sistema de ficheiros Linux | |
| fsck /dev/sda1 | Verificar um dispositivo | |
| lsblk | Listar informações sobre dispositivos de bloco | |
| lsblk | Listar dispositivos em árvore | |
| mkfs | Criar um sistema de ficheiros Linux | |
| mkfs.ext4 /dev/sdb1 | Criar sistema de ficheiros ext4 | |
| mount | Montar um sistema de ficheiros | |
| mount /dev/sdb1 /mnt | Montar um dispositivo em  | |
| mount | grep /mnt | Mostrar sistemas montados filtrados por caminho | |
| parted | Programa de manipulação de partições | |
| parted /dev/sdb | Abrir um disco para particionamento | |
| umount | Desmontar sistemas de ficheiros | |
| umount /mnt | Desmontar um ponto de montagem | 
🤖 Scripts e automação
| Comando | Exemplo | Descrição | 
|---|---|---|
| alias | Definir ou mostrar aliases de shell | |
| alias ll='ls -la' | Criar um alias útil | |
| alias | Listar aliases definidos | |
| bash/sh | Executar scripts de shell | |
| bash script.sh | Executar um script com Bash | |
| sh script.sh | Executar um script com  | |
| crontab | Tabelas cron por utilizador | |
| crontab -e | Editar crontab do utilizador atual | |
| read | Pedir input do utilizador em scripts shell | |
| read name | Ler para uma variável | |
| set | Definir opções/argumentos posicionais do shell | |
| set -e | Sair no primeiro erro | |
| source | Ler e executar comandos de um ficheiro no shell atual | |
| source ~/.bashrc | Recarregar configuração do shell | |
| trap | Capturar sinais e executar comandos | |
| trap "echo 'exit'" EXIT | Executar um comando ao sair do shell | 
🛠 Desenvolvimento e depuração
| Comando | Exemplo | Descrição | 
|---|---|---|
| gcc | Compilador GNU C | |
| gcc main.c -o app | Compilar um ficheiro fonte C | |
| gdb | Depurador GNU | |
| gdb ./app | Depurar um binário compilado | |
| git | Sistema de controlo de versões distribuído | |
| git status | Mostrar estado da árvore de trabalho | |
| git commit -m "msg" | Fazer commit com mensagem | |
| ltrace | Tracer de chamadas de biblioteca | |
| ltrace ./app | Rastrear chamadas de biblioteca de um binário | |
| make | Utilitário para manter grupos de programas | |
| make | Compilar de acordo com Makefile | |
| shellcheck | Análise estática para scripts shell | |
| shellcheck script.sh | Lint de um script shell | |
| strace | Rastrear chamadas de sistema e sinais | |
| strace ./app | Rastrear syscalls de um programa | |
| valgrind | Framework de instrumentação para ferramentas de análise dinâmica | |
| valgrind ./app | Executar um programa com Valgrind | |
| vim/nano | Editores de texto na linha de comando | |
| vim file.sh | Editar com Vim | |
| nano file.sh | Editar com Nano | 
📌 Diversos
| Comando | Exemplo | Descrição | 
|---|---|---|
| cal | Mostrar um calendário | |
| cal 2025 | Mostrar calendário de um ano | |
| cal 08 2025 | Mostrar um mês específico | |
| date | Mostrar ou definir data e hora do sistema | |
| date +%T | Imprimir hora atual (HH:MM:SS) | |
| date -d "next friday" | Imprimir data de um dia relativo | |
| factor | Fatorizar inteiros | |
| factor 100 | Fatorizar um número | |
| man | Formatar e mostrar páginas de manual online | |
| man tar | Abrir uma página man | |
| man -k copy | Pesquisar manuais por palavra-chave | |
| man 5 passwd | Abrir uma secção específica do manual | |
| seq | Imprimir sequências de números | |
| seq 1 5 | Contar de 1 a 5 | |
| seq 1 2 9 | Contar com passo | |
| seq -s ',' 1 5 | Juntar números com separador personalizado | |
| yes | Imprimir uma string repetidamente até ser interrompido | |
| yes | rm -r dir | Confirmar automaticamente uma remoção recursiva | 
📚 Recursos adicionais
📘 man pages - manuais detalhados para comandos:
man ls
man rm📙 TLDR - exemplos concisos de uso de comandos populares:
🧠 Dica: Instale tldr para ajuda em estilo de guia rápido:
sudo apt install tldr   # ou: npm install -g tldr
tldr tar                # exemplo de um breve resumo do comando tar🌐 Links úteis
Linux man pages online — páginas de manual oficiais, pesquisáveis por comando:
https://man7.org/linux/man-pages/
Man pages simplificadas e da comunidade — páginas de ajuda com exemplos práticos:
https://tldr.sh/