Guia Linux Essentials: Domine os Comandos Essenciais

Se você está iniciando sua jornada no Linux ou já administra servidores e quer revisar sua base, este guia é para você. Dominar comandos básicos não só acelera sua rotina, como também dá mais confiança para resolver problemas, automatizar tarefas e entender melhor o que acontece por baixo dos panos.

Neste artigo vamos explorar os comandos essenciais do Linux de forma prática e didática sem jogar um monte de instruções soltas. Cada comando terá contexto, exemplos reais, cenários de uso, e mini tutoriais práticos para você experimentar direto no terminal.

📂 Explorando Arquivos e Pastas com ls

O ls é o comando mais usado para listar arquivos e diretórios. Parece simples, mas com alguns parâmetros ele se torna poderoso.

				
					# Listar arquivos e pastas
ls


# Listar em formato detalhado (permissões, dono, tamanho, data)
ls -l


# Incluir arquivos ocultos (aqueles que começam com .)
ls -la


# Ordenar por data de modificação (mais recentes no fim)
ls -lt
				
			

💡 Dica extra: combine ls -lh para ver tamanhos legíveis (KB, MB, GB).

Mini tutorial:

				
					cd ~ # Vá para sua pasta pessoal
mkdir teste # Crie uma pasta chamada teste
cd teste # Acesse a pasta criada
ls -la # Liste os arquivos e confirme que está vazia
				
			
[imagem de referência: terminal exibindo ls -l com colunas de permissões, usuários e datas]
Linux • Comando

Comparativo rápido: ls com diferentes parâmetros

Abra os itens para ver descrição e saída típica.

ls — listagem simples

Lista arquivos e diretórios no diretório atual.

$ ls
arquivo1.txt  notas.md  pasta1/  script.sh
ls -l — modo longo

Mostra permissões, links, proprietário, grupo, tamanho e data.

$ ls -l
-rw-r--r-- 1 user user  1240 Jan 21 10:15 script.sh
drwxr-xr-x 3 user user  4096 Jan 20 09:02 pasta1
-rw-r--r-- 1 user user  2789 Jan 18 18:40 notas.md
ls -a — inclui “dotfiles”

Inclui arquivos e pastas que começam com . (ocultos).

$ ls -a
.  ..  .gitignore  .env  arquivo1.txt  pasta1  script.sh
ls -lh — tamanhos legíveis

Combina com -l para mostrar KB/MB/GB.

$ ls -lh
-rw-r--r-- 1 user user 12K Jan 21 10:15 script.sh
-rw-r--r-- 1 user user 2.7K Jan 18 18:40 notas.md
ls -R — recursivo

Lista subdiretórios recursivamente.

$ ls -R
.:
arquivo1.txt  pasta1

./pasta1:
subpasta  dados.csv

./pasta1/subpasta:
notas.md
-t, -S, -r — ordenação
  • -t: ordena por data (recentes primeiro).
  • -S: ordena por tamanho (maiores primeiro).
  • -r: inverte a ordem (ex.: mais antigos primeiro).
$ ls -lt
-rw-r--r-- 1 user user 2.7K Jan 22 09:10 changelog.md
-rw-r--r-- 1 user user  12K Jan 21 10:15 script.sh
ls -lah e outros atalhos

Combinações frequentes:

  • ls -lah — longo + ocultos + legível.
  • ls -ltr — longo + por data ascendente (antigos por último).
  • ls -lS — longo + por tamanho.
$ ls -lah
drwxr-xr-x  6 user user 4.0K Jan 22 09:10 .
drwxr-xr-x 18 user user 4.0K Jan 20 08:00 ..
-rw-r--r--  1 user user 2.7K Jan 18 18:40 .env
-rw-r--r--  1 user user  12K Jan 21 10:15 script.sh
Dicas, aliases e pegadinhas
  • Muitas distros já têm alias: alias ls='ls --color=auto'.
  • ls não soma tamanho de diretórios (use du -sh ou ls -ld para o próprio diretório).
  • Para nomes com espaços, use aspas: ls "Minha Pasta".
  • Globs: ls *.log, ls **/*.md (se globstar estiver ativo).

🔒 Permissões com chmod

No Linux, cada arquivo e diretório tem permissões de leitura, escrita e execução para usuário, grupo e outros.

				
					# Dar permissão de execução a um script
chmod +x script.sh


# Definir permissões numéricas (r=4, w=2, x=1)
chmod 755 script.sh
				
			
  • 755 → dono pode tudo; grupo e outros só podem ler e executar.

  • 644 → dono pode ler e escrever; grupo e outros apenas ler.

Mini tutorial:

				
					touch meu_script.sh # Crie um arquivo vazio
ls -l meu_script.sh # Veja as permissões atuais
chmod +x meu_script.sh # Adicione permissão de execução
ls -l meu_script.sh # Confira a mudança
				
			
[imagem de referência: terminal com exemplo de permissões rwx]
Linux • Permissões e Metadados

Entendendo cada número e permissão do ls -l

Abra os itens para ver descrições, exemplos e dicas.

Formato básico de uma linha do ls -l
$ ls -l
-rw-r--r-- 1 alice dev 2789 Jan 18 18:40 notas.md
^ ^^^^^^^^^ ^ ^^^^^ ^^^^ ^^^ ^^ ^^ ^^^^^^^
| |         | |     |    |   |  |  └─── Nome (+ "→ alvo" se link)
| |         | |     |    |   └────── Data/Hora
| |         | |     |    └────────── Tamanho (bytes; use -h p/ KB/MB)
| |         | |     └─────────────── Grupo
| |         | └────────────────────── Dono (usuário)
| |         └──────────────────────── Nº de links (hard links / dirs)
| └────────────────────────────────── Permissões (rwx para U/G/O)
└──────────────────────────────────── Tipo de arquivo (-, d, l, c, b, p, s)
Coluna 1 — tipo de arquivo
  • - arquivo regular
  • d diretório
  • l link simbólico
  • c dispositivo de caractere • b dispositivo de bloco
  • p pipe nomeado (FIFO) • s socket
Colunas 2–10 — rwxrwxrwx

Três trincas: donogrupooutros. Cada letra:

  • r (read): ler arquivo / listar conteúdo do diretório
  • w (write): escrever arquivo / criar, renomear e excluir dentro do diretório
  • x (execute): executar arquivo / entrar no diretório
-rw-r--r--  → dono: rw-, grupo: r--, outros: r--
setuid, setgid e sticky bit
  • setuid (s/S na posição de x do dono): executa com UID do dono.
    -rwsr-xr-x (minúsculo = tem x + setuid) • -rwSr-xr-x (maiúsculo = sem x).
  • setgid (s/S na posição de x do grupo): herda grupo em novos arquivos; em diretórios, novos itens recebem o mesmo grupo.
  • sticky (t/T na posição de x de “outros” em diretórios): só o dono pode remover dentro do diretório (ex.: /tmpdrwxrwxrwt).
chmod u+s arquivo   # setuid
chmod g+s pasta     # setgid
chmod +t  pasta     # sticky
Número de links (hard links / diretórios)

Arquivos: quantidade de hard links apontando para o mesmo inode. Diretórios: pelo menos 2 (. e ..) + 1 por subdiretório.

$ ln arquivo a2 && ls -l arquivo a2
-rw-r--r-- 2 alice dev 0 Jan 21 10:00 a2
-rw-r--r-- 2 alice dev 0 Jan 21 10:00 arquivo  # “2” = dois nomes p/ o mesmo inode
Dono (usuário) e Grupo

Controlam quem recebe a primeira e a segunda trinca de permissões.

$ chown alice:dev arquivo   # muda dono e grupo
$ chgrp dev arquivo         # muda só o grupo
Tamanho (bytes) e variações
  • Use -h para tamanhos legíveis (12K, 5.3M).
  • Em links simbólicos, o tamanho é o comprimento do caminho alvo.
  • Para dispositivos (c/b), a coluna mostra major:minor em vez de bytes.
$ ls -lh /dev/null
crw-rw-rw- 1 root root 1, 3 Jan  1 12:00 /dev/null   # major,minor
Data/Hora exibidas
  • Por padrão, mostra mtime (modificação do conteúdo).
  • Arquivos mais antigos podem exibir o ano em vez da hora.
  • Use --time=atime|ctime|birth (se suportado) para alternar o campo.
Nome do item e links simbólicos

Se for link simbólico, aparece nome → destino.

$ ln -s /etc/hosts hosts-link && ls -l hosts-link
lrwxrwxrwx 1 alice dev 10 Jan 21 10:20 hosts-link → /etc/hosts
Como ler os números (ex.: 755, 644)

Cada trinca é um número: r=4, w=2, x=1. Some os valores:

7 = rwx (4+2+1)
6 = rw- (4+2)
5 = r-x (4+1)
4 = r-- (4)
0 = ---
# Exemplos
chmod 644 arquivo   # -rw-r--r--
chmod 755 script.sh # -rwxr-xr-x
chmod 770 pasta     # rwx para dono e grupo; outros sem acesso
ACLs (+) e atributos estendidos
  • Um + após as permissões indica ACL extra: -rw-r--r--+. Veja com getfacl arquivo.
  • Em algumas distros/sistemas, @ indica atributos estendidos (ex.: macOS).
  • Para atributos em ext*, use lsattr / chattr (ex.: imutável i).

⚙️ Gerenciando Processos com ps e kill

Todo processo em execução no Linux tem um PID (Process ID). Para encontrar e encerrar processos, usamos ps e kill.

				
					# Listar processos do usuário atual
ps


# Listar todos os processos
ps aux


# Procurar por um processo específico (exemplo: nginx)
ps aux | grep nginx


# Encerrar processo pelo PID
kill 1234


# Encerrar processo à força
kill -9 1234
				
			

💡 Boa prática: antes de usar kill -9, tente encerrar normalmente. O sinal -9 força a finalização e pode causar problemas se o processo estiver manipulando arquivos.

Mini tutorial:

				
					sleep 1000 & # Crie um processo de teste em background
ps aux | grep sleep # Encontre o PID
kill <PID> # Encerre o processo
				
			
[imagem de referência: captura de terminal mostrando saída de ps aux]
Linux • Processos

Etapas: encontrar e encerrar processos

Use com cuidado ⚠️ encerrar processos críticos pode travar o sistema.

  1. 1
    Listar processos em execução
    $ ps aux        # visão geral
    $ top           # monitor interativo
    $ htop          # versão avançada (se instalado)
  2. 2
    Localizar pelo nome
    $ pidof firefox        # retorna PID
    $ pgrep -l nginx       # lista PIDs + nomes
    $ ps aux | grep python # filtra manualmente
  3. 3
    Encerrar pelo PID
    $ kill 1234       # encerra com SIGTERM (educado)
    $ kill -9 1234    # encerra forçado (SIGKILL)
  4. 4
    Encerrar pelo nome
    $ killall firefox   # encerra todos os processos firefox
    $ pkill -f script.py # encerra por padrão ou comando
  5. 5
    Confirmar se o processo parou
    $ pgrep firefox  # nada retornado → sucesso
    $ ps aux | grep nome

🔄 Controlando Serviços com systemctl

O systemctl é usado para gerenciar serviços em distribuições Linux modernas que utilizam o systemd como sistema de inicialização (como Ubuntu, Debian e CentOS). Ele é a ferramenta padrão para controlar e monitorar serviços do sistema.

				
					# Iniciar um serviço
sudo systemctl start nginx


# Parar um serviço
sudo systemctl stop nginx


# Reiniciar um serviço
sudo systemctl restart nginx


# Verificar status
sudo systemctl status nginx


# Habilitar para iniciar automaticamente no boot
sudo systemctl enable nginx
				
			

Mini tutorial:

				
					sudo systemctl status ssh # Veja se o SSH está rodando
sudo systemctl stop ssh # Pare o serviço
sudo systemctl start ssh # Inicie novamente
				
			
[imagem de referência: terminal exibindo status detalhado de um serviço com systemctl status]

🌐 Configuração de Rede com ifconfig e ip

Historicamente, usávamos ifconfig. Hoje o recomendado é o comando ip.

				
					# Ver interfaces de rede
ifconfig


# Alternativa moderna
ip addr show


# Exibir rotas
ip route


# Subir ou derrubar interface de rede
sudo ip link set eth0 up
sudo ip link set eth0 down
				
			

Mini tutorial:

				
					ip addr show # Veja suas interfaces
ping 8.8.8.8 # Teste conectividade com Google DNS
				
			

💡 Dica extra: ip é mais completo e suportado em sistemas modernos. Use-o sempre que possível.

[imagem de referência: saída de ip addr show com interfaces de rede listadas]

🌐 ifconfig × ip

O comando ifconfig está obsoleto na maioria das distros. O ip é a alternativa moderna e mais poderosa.

🕹️ ifconfig (antigo)
  • ifconfig → listar interfaces
  • ifconfig eth0 up → ativar interface
  • ifconfig eth0 192.168.1.10 → atribuir IP
⚡ ip (moderno)
  • ip addr → listar interfaces
  • ip link set eth0 up → ativar interface
  • ip addr add 192.168.1.10/24 dev eth0 → atribuir IP

💡 Dica: use sempre ip para maior compatibilidade e funcionalidades extras (ip route, ip neigh, etc.).

📡 Monitorando Conexões com netstat e ss

O netstat é clássico, mas assim como ifconfig, vem sendo substituído por ss.

				
					# Mostrar conexões ativas
netstat -tulnp


# Usando ss (mais rápido e moderno)
ss -tulnp


# Ver portas abertas
ss -ltn
				
			
  • -t → conexões TCP

  • -u → conexões UDP

  • -l → serviços em escuta

  • -n → mostrar IPs/portas numéricas

  • -p → mostrar processo associado

Mini tutorial:

				
					ss -ltn # Veja portas abertas
ss -tulnp # Veja processos associados
				
			
[imagem de referência: terminal mostrando saída do ss -tulnp]

🔗 netstat × ss

O netstat está obsoleto em várias distribuições. Use ss como alternativa mais rápida e moderna.

📜 Ação 🕹️ netstat ⚡ ss
Listar todas conexões netstat -a ss -a
Listar conexões TCP netstat -at ss -t -a
Listar conexões UDP netstat -au ss -u -a
Mostrar estatísticas netstat -s ss -s
Listar processos e PIDs netstat -p ss -p
Listar portas em escuta netstat -lntp ss -lntp

💡 ss é mais eficiente em sistemas modernos e pode substituir praticamente todos os usos de netstat.

✍️ Criando e Editando Arquivos

Além de gerenciar processos e redes, você vai precisar manipular arquivos no dia a dia. Aqui entram alguns comandos fundamentais:

				
					# Criar um arquivo vazio
touch exemplo.txt


# Adicionar conteúdo com echo
echo "Olá Linux!" > exemplo.txt


# Visualizar conteúdo com cat
cat exemplo.txt


# Editar com nano
nano exemplo.txt


# Editar com vim
vim exemplo.txt


# Renomear arquivo
mv exemplo.txt novo_nome.txt


# Apagar arquivo
rm novo_nome.txt
				
			

Mini tutorial:

				
					cd ~
mkdir projeto
cd projeto
touch notas.txt
nano notas.txt # Escreva algo e salve (CTRL+O, ENTER, CTRL+X)
cat notas.txt # Veja o conteúdo
mv notas.txt ideia.txt
rm ideia.txt
				
			
[imagem de referência: Exemplo do tutorial apresentado]
🎯 Dicas Extras para o Dia a Dia

Atalhos prontos para copiar e colar

Use man <comando> para ajuda • combine pipes | para filtros poderosos • crie aliases para agilizar.

📂 Básicos do ls
# Listagem detalhada + ocultos + tamanhos legíveis
alias ll='ls -lah'
# Listagem leve com colunas
alias l='ls -CF'
# Apenas ocultos inclusos (sem . e ..)
alias la='ls -A'
# Ordenar por tempo (mais recentes no fim) e tamanhos legíveis
alias lt='ls -lht'
💡 Dica: adicione em ~/.bashrc ou ~/.zshrc e rode source.
🧭 Navegação rápida
# Subir diretórios rápido
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# Voltar ao diretório anterior
alias -- -='cd -'
# Criar pasta e entrar
mkcd(){ mkdir -p "$1" && cd "$1"; }
🔁 Use mkcd projeto para criar e já entrar na pasta.
🌱 Git essenciais
# Status curto + branch/graph
alias gs='git status -sb'
# Add tudo e commit rápido
alias ga='git add -A'
alias gc='git commit -m'
# Push/pull diretos
alias gp='git push'
alias gpl='git pull --rebase'
# Log compacto
alias gl='git log --oneline --graph --decorate --all'
✅ Combine: gagc "msg"gp.
🌐 Rede & IP
# Meu IP público
alias myip='curl -s https://ifconfig.me'
# Interfaces e endereços
alias ipa='ip -brief addr'
# Portas em escuta (TCP)
alias listen='ss -lnt'
# Rotas rápidas
alias routes='ip route show'
⚡ Prefira ip/ss em vez de utilitários legados.
🧵 Processos
# Buscar processo por nome (case-insensitive)
psg(){ ps aux | grep -i --color=auto "$1"; }
# Encerrar com SIGKILL rapidamente
alias k9='kill -9'
# Top simplificado (se instalado)
alias htop5='htop -d 10'
⚠️ Use k9 com cuidado; tente kill sem -9 antes.
💾 Disco & utilidades
# Uso de disco por FS (legível + tipo)
alias dfh='df -hT'
# Espaço por pasta (ordem crescente)
alias duh='du -sh -- * | sort -h'
# Repetir último comando com sudo
please(){ sudo $(fc -ln -1); }
📝 please reaplica o último comando com sudo.
⚙️ Mini tutorial
echo "alias ll='ls -la'" >> ~/.bashrc
# Dica: cole também outros aliases acima no mesmo arquivo
source ~/.bashrc
ll  # Agora você pode usar ll no lugar de ls -la
📦 Bash: ~/.bashrc • Zsh: ~/.zshrc.

🚀 Conclusão

Dominar comandos essenciais no Linux é como aprender a dirigir: no começo parece muita coisa, mas logo se torna natural. Cada comando apresentado aqui do simples ls até o poderoso systemctl, é uma ferramenta que vai tornar você mais produtivo e seguro no uso do sistema.

👉 Agora é sua vez: abra um terminal e siga os mini tutoriais deste artigo. Teste criar arquivos, editar com nano, matar processos, e verificar portas abertas. Quanto mais você praticar, mais natural será seu domínio do Linux.

E se quiser aprofundar seus conhecimentos em Linux, automação e DevOps, continue acompanhando o blog da Forcoder. 😉

Por favor nos siga e compartilhe:

Veja nossos artigos relacionados:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

O que você tem em mente e

quer mostrar para o mundo?