Pular para o conteúdo
Rizzygo Ako
Voltar para o tópico Linux básico

Linux básico, na prática

Como o Linux organiza pastas, usuários e permissões, como instalar programas e como ver o que está rodando. É a base para trabalhar com servidores, nuvem e segurança.

Cerca de 2 horasExemplos no Ubuntu 24.04Material gratuito em português

1. O que é o Linux

Linux é o nome do kernel, a parte do sistema que conversa com o hardware: processador, memória, disco e rede. Em volta dele, cada distribuição junta programas, um jeito de instalar pacotes e, às vezes, uma interface gráfica. Ubuntu, Debian, Fedora e Linux Mint são distribuições.

A maioria dos servidores da internet e das máquinas na nuvem roda Linux, quase sempre sem interface gráfica: tudo é feito pelo terminal. Por isso esta lição usa só o terminal. Se você ainda não se sente confortável com ele, faça antes a lição Linha de comando para iniciantes.

Os exemplos usam o Ubuntu, a distribuição mais comum para quem está começando. Em outras distribuições, quase tudo é igual. A maior diferença está na instalação de programas, que você vê na parte 6.

2. Onde praticar sem medo

Faça agoraNo seu Linux, rode cat /etc/os-release. A primeira linha mostra o nome e a versão da distribuição, como PRETTY_NAME="Ubuntu 24.04.5 LTS".

3. A árvore de pastas

No Linux não existe C: nem D:. Tudo fica numa árvore só, que começa na raiz, /. Até discos extras e pendrives aparecem como pastas dentro dela.

ls /

As pastas que você mais vai visitar:

PastaO que guarda
/homeAs pastas pessoais dos usuários. A sua é /home/seu-usuario, também chamada de ~
/rootA pasta pessoal do administrador (root)
/etcArquivos de configuração do sistema e dos programas
/var/logLogs, os registros do que aconteceu no sistema
/tmpArquivos temporários, que podem ser apagados ao reiniciar
/usr/binA maior parte dos programas que você roda, como ls e cp
/devDispositivos, como discos, representados como arquivos
Faça agoraRode ls /etc | head para ver os primeiros arquivos de configuração. Não precisa mexer em nada: só olhar já ajuda a criar o mapa na cabeça.

4. Usuários, grupos e o root

O Linux foi feito para várias pessoas usarem o mesmo computador ao mesmo tempo. Cada pessoa tem um usuário, e usuários podem fazer parte de grupos, que facilitam dar a mesma permissão para várias pessoas.

whoami
id
Saída parecida com esta:
uid=1000(ana) gid=1000(ana) groups=1000(ana),27(sudo)

O id mostra seu número de usuário (uid), seu grupo principal (gid) e todos os seus grupos. Estar no grupo sudo quer dizer que você pode usar o comando sudo.

O root é o administrador: pode tudo, inclusive apagar o sistema inteiro. Por isso, no dia a dia, você usa seu usuário comum e pede o poder de root só quando precisa, com sudo na frente do comando.

5. Permissões: quem pode o quê

Todo arquivo tem um dono, um grupo e três tipos de permissão: ler (r), escrever (w) e executar (x). Crie uma pasta de treino e um arquivo para ver isso. O && roda o segundo comando só se o primeiro der certo, e o touch cria um arquivo vazio:

mkdir ~/treino-linux && cd ~/treino-linux
touch script.sh
ls -l script.sh
Saída parecida com esta:
-rw-r--r-- 1 ana ana 0 out 17 17:23 script.sh

Se o seu mostrar -rw-rw-r--, tudo bem: em muitas instalações do Ubuntu, o grupo também ganha escrita por padrão. A leitura funciona do mesmo jeito.

Como ler o -rw-r--r--

PartePara quemNeste exemplo
-Tipo: - é arquivo, d é pastaÉ um arquivo
rw-O dono (u, de user)Lê e escreve
r--O grupo (g)Só lê
r--Todos os outros (o, de others)Só leem

Mudar permissões com letras

O chmod muda as permissões. Com letras, você diz para quem (u, g, o), se acrescenta (+) ou tira (-), e qual permissão:

chmod u+x script.sh
Agora o ls -l script.sh mostra algo assim:
-rwxr--r-- 1 ana ana 0 out 17 17:23 script.sh

Mudar permissões com números

Cada permissão vale um número: ler vale 4, escrever vale 2 e executar vale 1. Some os números de cada grupo de três. Por exemplo, 754 quer dizer:

chmod 754 script.sh
Resultado no ls -l:
-rwxr-xr-- 1 ana ana 0 out 17 17:23 script.sh

Os valores mais comuns: 644 para arquivos comuns e 755 para scripts e pastas.

Por que um script não roda

Um script é um arquivo de texto com comandos. Crie um e tente rodar. O printf escreve o texto no arquivo, e cada \n vira uma quebra de linha. A primeira linha do script, #!/bin/bash, diz qual programa vai ler o arquivo. O ./ antes do nome manda rodar o arquivo que está na pasta atual.

printf '#!/bin/bash\necho "Olá, Linux"\n' > ola.sh
./ola.sh
Saída (num sistema em português, aparece Permissão negada):
bash: ./ola.sh: Permission denied

Falta a permissão de execução. Dê a permissão e rode de novo. Sem letra antes do +x, a execução vale para o dono, o grupo e os outros:

chmod +x ola.sh
./ola.sh
Saída:
Olá, Linux
Nunca resolva com chmod 777Os três 7 dão leitura, escrita e execução para o dono, o grupo e todos os outros usuários. O erro some, mas qualquer pessoa ou programa na máquina passa a poder alterar o arquivo. Dê só a permissão que falta, para quem precisa.

Para trocar o dono de um arquivo, existe o chown, que exige administrador: sudo chown ana:ana arquivo deixa o arquivo com o usuário ana e o grupo ana.

6. Instalar e remover programas

No Linux, você raramente baixa programas de sites. Eles vêm de repositórios, listas oficiais de programas mantidas pela distribuição, e são instalados por um gerenciador de pacotes. No Ubuntu e no Debian, ele se chama apt.

sudo apt update

Esse comando não instala nada. Ele atualiza a lista de programas e versões disponíveis. Rode antes de instalar algo.

sudo apt install tree
tree ~/treino-linux

O tree mostra pastas e arquivos em forma de árvore. Para remover:

sudo apt remove tree
Antes de rodar sudo apt upgrade
  1. O que muda: atualiza para a versão mais nova todos os programas instalados que têm atualização. O apt mostra a lista e pede confirmação antes.
  2. Como desfazer: voltar versões é trabalhoso. Num servidor de verdade, atualize primeiro num ambiente de teste e tenha backup.
  3. Como saber que deu certo: rode sudo apt update de novo e veja se ainda há pacotes para atualizar. O Ubuntu às vezes deixa alguns para depois, e isso é normal.

Em outras distribuições, o nome muda: o Fedora usa o dnf (sudo dnf install tree), por exemplo. A ideia é a mesma.

7. Processos: o que está rodando

Todo programa em execução é um processo, e cada processo tem um número de identificação, o PID.

ps aux | head

O ps aux lista todos os processos, e o head mostra só as primeiras linhas. As colunas mais úteis são USER (de quem é), PID, %CPU, %MEM e COMMAND (o que está rodando). Para ver em tempo real, ordenado por uso de CPU:

top

Aperte q para sair. Existe também o htop, mais fácil de ler, que você instala com sudo apt install htop.

Encerrar um processo

Vamos criar um processo de teste que só espera 5 minutos. O & no fim faz ele rodar em segundo plano, ou seja, o terminal fica livre para outros comandos. O terminal também mostra o PID:

sleep 300 &
Saída parecida com esta (o número muda):
[1] 2541
ps aux | grep sleep
kill 2541

No resultado do grep, uma das linhas é a própria busca (grep sleep); ignore essa. Troque 2541 pelo PID que apareceu para você. O kill pede para o processo terminar. Se ele não obedecer, existe o kill -9 PID, que encerra à força, sem dar chance de salvar nada. Use como último recurso.

Confira o PID antes do killEncerrar o processo errado pode derrubar um serviço ou fazer alguém perder trabalho. Leia a coluna COMMAND antes.

8. Disco e memória

df -h

Mostra o espaço de cada disco. Se o seu Ubuntu estiver em português, os nomes das colunas aparecem traduzidos. O -h deixa os números legíveis, em G (gigabytes) e M (megabytes). Olhe a coluna Use%: disco perto de 100% é uma causa clássica de sistema fora do ar.

free -h

Mostra a memória RAM. Olhe a coluna available, que é quanto ainda dá para usar. O Linux usa a memória livre como cache para acelerar o acesso ao disco, então um número baixo na coluna free nem sempre é problema.

du -sh ~/treino-linux

O du mostra quanto espaço uma pasta ocupa. É útil para achar o que está enchendo o disco.

9. Logs e serviços

Quando algo dá errado num servidor, a primeira pergunta é: o que diz o log? Na maioria das distribuições atuais, os logs do sistema são lidos com o journalctl:

journalctl -n 20

Mostra os 20 registros mais recentes. Se aparecer um aviso de permissão, rode com sudo na frente. Para acompanhar ao vivo, use journalctl -f e aperte Ctrl+C para parar. Se a saída não voltar para o prompt sozinha, aperte q; isso vale também para o systemctl abaixo.

Programas que ficam rodando o tempo todo, como um servidor web, são serviços. Eles são controlados pelo systemctl:

systemctl status cron

Mostra se o serviço cron, que roda tarefas agendadas, está ativo, desde quando e as últimas linhas de log dele. Em contêineres e em instalações antigas do WSL, o systemctl pode não funcionar, porque o gerenciador de serviços (systemd) não está ativo. Num servidor ou numa máquina virtual, ele funciona.

10. Missão final

Junte o que você aprendeu. Tente fazer cada item antes de abrir a resposta.

1. Crie um script que mostra a data e dê a permissão certa
printf '#!/bin/bash\ndate\n' > data.sh
chmod 755 data.sh
./data.sh
2. Descubra quanto espaço livre tem o disco principal
df -h /

A resposta está na coluna Avail.

3. Descubra o PID do shell em que você está
echo $$

O shell é o programa que lê e roda seus comandos dentro do terminal (no Ubuntu, o bash). O $$ guarda o PID dele. Procure esse número no ps aux.

4. Limpe a pasta de treino
cd ~ && rm -r ~/treino-linux

Confira o caminho antes de apertar Enter: o rm -r não tem volta.

Para fixarExplique para alguém por que chmod 777 resolve o erro, mas cria outro problema. Depois, marque no tópico que você ensinou alguém.

Lição escrita em português pela Iniciativa Ako, da Rizzygo, com base nos temas do Linux Journey (em inglês). Não é uma tradução: o texto e os exemplos são próprios. Os comandos foram testados no Ubuntu 24.04, menos os de serviços e logs (systemctl e journalctl), que dependem de um ambiente com systemd.

Conteúdo aberto sob a licença CC BY 4.0. Viu um erro? Abra uma issue.