Piolinux

Comandos Essenciais do Terminal Linux - PioLinux

⌨️ Dominando o Terminal: Comandos Essenciais do Linux

O terminal do Linux, também chamado de linha de comando, pode até parecer coisa de hacker à primeira vista — cheio de letras, símbolos e uma tela preta. Mas não se assuste! Na verdade, o terminal é uma das ferramentas mais poderosas e eficientes que você pode ter no seu computador.

Com alguns comandos simples, você consegue navegar pelas pastas, instalar programas, mudar configurações, automatizar tarefas e muito mais, tudo de forma rápida e precisa. Dominar o terminal é uma habilidade que transforma a sua forma de usar o Linux, dando-lhe controle total do sistema e a capacidade de resolver problemas com agilidade. Se você é iniciante ou já usa o Linux há um tempo, este é o momento perfeito para se aprofundar nos comandos e descobrir como o terminal pode ser seu melhor parceiro.

O Que é o Terminal e Por Que Usá-lo?

Diferente de uma interface gráfica (GUI), o terminal é leve, rápido e possibilita criar automações avançadas com scripts. Por isso, muitos administradores de sistema, desenvolvedores e usuários experientes preferem usar o terminal, pois ele oferece mais controle, precisão e agilidade.

Dica rápida: Para abrir o terminal na maioria das distribuições, use o atalho **Ctrl+Alt+T**. Você também pode encontrá-lo buscando por "Terminal" no menu de aplicativos.

Comandos Básicos para Iniciantes

Comece por aqui! Estes comandos são a base da navegação e interação no terminal.

  • pwd (Print Working Directory)

    Mostra o caminho completo do diretório atual em que você está.

    pwd
  • ls (List)

    Lista o conteúdo do diretório atual. Use opções para mais detalhes:

    • ls -l: Lista em formato longo (permissões, proprietário, tamanho, data).
    • ls -a: Mostra arquivos e diretórios ocultos (que começam com '.').
    • ls -lh: Formato longo e tamanho legível (KB, MB, GB).
    ls
    ls -l
    ls -laH
  • cd (Change Directory)

    Navega entre os diretórios do sistema.

    • cd <nome_da_pasta>: Entra em uma subpasta.
    • cd ..: Volta um nível no diretório.
    • cd ~ ou cd: Vai para o seu diretório pessoal (home).
    • cd /: Vai para o diretório raiz.
    • cd -: Volta para o diretório visitado anteriormente.
    cd Documentos
    cd ../..
    cd ~
  • man (Manual)

    Exibe o manual de qualquer comando. Pressione q para sair.

    man ls
    man cd
  • clear (Clear Screen)

    Limpa a tela do terminal. O atalho Ctrl+L faz o mesmo.

    clear
  • history

    Mostra uma lista dos comandos executados anteriormente.

    history
    history | grep apt
  • echo

    Exibe texto ou variáveis no terminal.

    echo "Olá, PioLinux!"
    echo $HOME
  • sudo (Superuser Do)

    Executa um comando com privilégios de superusuário (root). Use com cautela.

    sudo apt update
    sudo reboot

Gerenciamento de Arquivos e Diretórios

Comandos essenciais para criar, copiar, mover e remover arquivos e pastas.

  • mkdir (Make Directory)

    Cria um novo diretório (pasta).

    • mkdir <nome_da_pasta>
    • mkdir -p pasta/subpasta/subsubpasta: Cria diretórios aninhados.
    mkdir Projetos
    mkdir -p Backup/2025/julho
  • rmdir (Remove Directory)

    Remove um diretório vazio.

    rmdir MinhaPastaVazia
  • touch

    Cria um novo arquivo vazio ou atualiza a data de modificação de um arquivo existente.

    touch novo_arquivo.txt
  • cp (Copy)

    Copia arquivos e diretórios.

    • cp <origem> <destino>: Copia um arquivo.
    • cp -r <origem_dir> <destino_dir>: Copia um diretório e seu conteúdo recursivamente.
    cp documento.txt documento_copia.txt
    cp -r MinhaPasta NovaPasta
  • mv (Move)

    Move ou renomeia arquivos e diretórios.

    • mv <origem> <destino>: Move um arquivo/diretório.
    • mv <nome_antigo> <nome_novo>: Renomeia um arquivo/diretório.
    mv arquivo.txt Documentos/
    mv oldname.txt newname.txt
  • rm (Remove)

    Remove arquivos e diretórios. **Atenção: A remoção é permanente, e o item não vai para a lixeira.**

    • rm <arquivo>: Remove um arquivo.
    • rm -r <diretorio>: Remove um diretório e seu conteúdo recursivamente.
    • rm -f <arquivo>: Força a remoção sem pedir confirmação.
    • rm -rf <diretorio>: Força a remoção recursiva. **Extremamente perigoso! Use com máxima cautela.**
    rm lixo.txt
    rm -r PastaVazia
  • cat (Concatenate)

    Exibe o conteúdo de arquivos e pode concatenar múltiplos arquivos.

    cat meu_documento.txt
  • less

    Visualiza o conteúdo de arquivos grandes, permitindo rolagem. Pressione q para sair.

    less /var/log/syslog
  • head e tail

    head mostra as primeiras linhas de um arquivo, e tail mostra as últimas. Use -n <numero> para especificar a quantidade de linhas.

    • tail -f <arquivo>: Monitora um arquivo em tempo real (ótimo para logs).
    head -n 5 arquivo.log
    tail -f /var/log/auth.log
  • ln (Link)

    Cria links (atalhos) para arquivos. Use -s para criar um link simbólico (o tipo mais comum).

    ln -s /caminho/do/arquivo_original /caminho/do/link

Gerenciamento de Processos e Sistema

Comandos para ver o que está rodando, monitorar recursos e controlar o sistema.

  • ps (Process Status)

    Lista os processos em execução no sistema.

    • ps aux: Mostra todos os processos de todos os usuários.
    ps aux | grep firefox
  • top

    Monitora processos em tempo real, mostrando o uso de CPU, memória, etc. Pressione q para sair.

    top
  • htop

    Uma versão mais interativa e colorida do top. (Pode precisar ser instalado: sudo apt install htop).

    htop
  • kill

    Encerra um processo usando seu ID (PID).

    kill 12345
  • pkill

    Encerra processos usando seu nome.

    pkill firefox
  • df (Disk Free)

    Exibe informações sobre o espaço em disco de sistemas de arquivos montados.

    • df -h: Mostra o espaço em formato legível (GB, MB).
    df -h
  • du (Disk Usage)

    Estima o espaço em disco usado por arquivos e diretórios.

    • du -sh <diretorio>: Mostra o tamanho total de um diretório em formato legível.
    du -sh *
  • free

    Exibe a quantidade de memória livre e usada no sistema.

    • free -h: Mostra a memória em formato legível.
    free -h
  • uname (Unix Name)

    Exibe informações sobre o sistema e o kernel.

    • uname -a: Mostra todas as informações.
    uname -a
  • uptime

    Mostra há quanto tempo o sistema está ligado e a média de carga.

    uptime
  • reboot e shutdown

    Reinicia ou desliga o sistema.

    • sudo reboot: Reinicia imediatamente.
    • sudo shutdown -h now: Desliga imediatamente.
    • sudo shutdown -r +5: Reinicia em 5 minutos.
    sudo reboot
  • systemctl (System Control)

    Comando para controlar o **systemd**, o gerenciador de sistema e serviços. (Moderno, substitui `service` e `chkconfig`).

    • systemctl status <serviço>: Verifica o status de um serviço (ex: `apache2`, `nginx`).
    • systemctl start <serviço>: Inicia um serviço.
    • systemctl stop <serviço>: Para um serviço.
    • systemctl enable <serviço>: Habilita um serviço para iniciar com o sistema.
    • systemctl disable <serviço>: Desabilita um serviço para não iniciar com o sistema.
    systemctl status apache2
    sudo systemctl restart ssh

Comandos de Rede e Segurança

Ferramentas para diagnosticar problemas de rede, verificar conexões e gerenciar o firewall.

  • ping

    Testa a conectividade com um host na rede ou internet.

    ping google.com
  • ip (IP Address)

    Ferramenta moderna para gerenciar interfaces de rede e rotas (substitui `ifconfig`).

    • ip a ou ip addr: Mostra endereços IP de todas as interfaces.
    • ip r ou ip route: Mostra a tabela de roteamento.
    ip a
    ip r
  • ss (Socket Statistics)

    Exibe estatísticas de socket, similar ao `netstat`, mas mais rápido e moderno.

    • ss -tulpn: Lista todas as portas TCP/UDP abertas e os programas que as utilizam (necessita de privilégios de root).
    sudo ss -tulpn
  • curl

    Ferramenta para transferir dados de ou para um servidor, usada frequentemente para testar APIs ou baixar conteúdo da web.

    curl ifconfig.me # Descobre seu IP público
    curl -O https://example.com/file.zip # Baixa um arquivo
  • wget (Web Get)

    Baixa arquivos da web, suporta downloads recursivos.

    wget https://example.com/image.jpg
  • ssh (Secure Shell)

    Permite conectar-se a servidores remotos de forma segura.

    ssh usuario@endereco_ip_do_servidor
  • scp (Secure Copy)

    Copia arquivos de ou para servidores remotos de forma segura via SSH.

    scp local_file.txt usuario@servidor_remoto:/caminho/destino/
  • dig (Domain Information Groper)

    Realiza consultas DNS, útil para diagnosticar problemas de resolução de nomes.

    dig example.com
  • traceroute

    Exibe o caminho que os pacotes percorrem para chegar a um destino, mostrando cada "salto" (hop).

    traceroute google.com
  • ufw (Uncomplicated Firewall)

    Interface simplificada para gerenciar o firewall `iptables` no Linux (comum em Debian/Ubuntu).

    • sudo ufw enable: Ativa o firewall.
    • sudo ufw status: Verifica o status.
    • sudo ufw allow ssh: Permite conexões SSH.
    sudo ufw enable
    sudo ufw status verbose

Utilidades e Manipulação de Texto

Comandos poderosos para buscar, filtrar e manipular dados em arquivos de texto.

  • grep (Global Regular Expression Print)

    Procura padrões de texto em arquivos. Uma das ferramentas mais usadas no terminal.

    • grep "erro" log.txt: Procura a palavra "erro" em `log.txt`.
    • grep -i "alerta" log.txt: Ignora maiúsculas/minúsculas.
    • grep -r "termo" /var/log/: Busca recursivamente em todos os arquivos de um diretório.
    grep "Failed password" /var/log/auth.log
    grep -r "ERROR" .
  • find

    Procura arquivos e diretórios com base em vários critérios (nome, tipo, tamanho, data).

    • find . -name "*.log": Procura todos os arquivos `.log` no diretório atual e subdiretórios.
    • find /home -type d -name "Projetos": Procura diretórios chamados "Projetos" dentro de `/home`.
    find / -type f -name "config.conf"
    find . -size +1G
  • awk

    Linguagem de processamento de texto poderosa, ideal para extrair e formatar dados de arquivos ou saídas de comandos.

    cat /etc/passwd | awk -F':' '{print $1}' # Lista nomes de usuários
    df -h | awk 'NR>1 {print $1, $5}' # Mostra a partição e % de uso
  • sed (Stream Editor)

    Editor de texto de fluxo, usado para transformar texto em pipelines ou arquivos. Ótimo para substituições.

    echo "Este é um texto de exemplo" | sed 's/exemplo/teste/' # Substitui "exemplo" por "teste"
    sed -i 's/old_text/new_text/g' my_file.txt # Substitui globalmente em um arquivo
  • xargs

    Recebe a saída padrão de um comando e a usa como argumento para outro comando.

    find . -name "*.bak" | xargs rm # Remove todos os arquivos .bak encontrados
  • cut

    Extrai seções de cada linha de arquivos (colunas).

    cat /etc/passwd | cut -d':' -f1,5 # Mostra o usuário e o nome completo (colunas 1 e 5, delimitador ':')
  • sort

    Ordena as linhas de um arquivo de texto.

    cat nomes.txt | sort
    cat numeros.txt | sort -n # Ordena numericamente
  • uniq (Unique)

    Remove linhas duplicadas (funciona melhor com a saída já ordenada).

    cat log.txt | sort | uniq -c # Conta as ocorrências de cada linha única

Gerenciamento de Pacotes (Exemplos)

Os comandos de gerenciamento de pacotes variam por distribuição. Aqui estão os mais comuns.

  • Debian/Ubuntu (apt)

    • sudo apt update: Atualiza a lista de pacotes.
    • sudo apt upgrade: Atualiza os pacotes instalados.
    • sudo apt install <pacote>: Instala um pacote.
    • sudo apt remove <pacote>: Remove um pacote.
    • apt search <termo>: Busca por pacotes.
    • sudo apt autoremove: Remove dependências não utilizadas.
    sudo apt update && sudo apt upgrade -y
    sudo apt install vlc
  • Fedora/RHEL (dnf)

    • sudo dnf update: Atualiza o sistema.
    • sudo dnf install <pacote>: Instala um pacote.
    • sudo dnf remove <pacote>: Remove um pacote.
    • dnf search <termo>: Busca por pacotes.
    sudo dnf install git
    sudo dnf update
  • Arch Linux (pacman)

    • sudo pacman -Syu: Sincroniza e atualiza o sistema.
    • sudo pacman -S <pacote>: Instala um pacote.
    • sudo pacman -R <pacote>: Remove um pacote.
    • pacman -Ss <termo>: Busca por pacotes.
    sudo pacman -Syu
    sudo pacman -S neofetch

Este guia é um ponto de partida. O terminal Linux é um universo a ser explorado, e a melhor forma de aprender é praticando. Use a tecla **Tab** para autocompletar, **Ctrl+R** para buscar no histórico de comandos e, sempre que tiver dúvidas, consulte o manual com **man <comando>**. Boa jornada na linha de comando!