Pular para o conteúdo

Windows e Linux, shell, PowerShell e automação por scripts

Prioridade Média 17 min de leitura Status: Não visto Lido Praticado Dominado

Do zero

O sistema operacional é o síndico de um prédio. Os moradores são os programas, e o prédio é o computador. O síndico:

  • divide o tempo do processador entre os programas, como o uso do elevador;
  • reparte a memória, como as salas, e impede que um programa invada a sala do outro;
  • organiza o disco, como o arquivo do condomínio, num sistema de arquivos;
  • controla quem pode o quê, com usuários e permissões.

Um programa em execução é um processo, como uma receita sendo preparada. Dentro dele, as threads são cozinheiros dividindo a mesma cozinha: compartilham os ingredientes (a memória do processo), cada um fazendo uma parte.

E o shell é o balcão onde se fazem pedidos ao síndico por escrito, em vez de clicar. No Linux, o mais comum é o bash; no Windows, o PowerShell. Um pedido escrito pode ser guardado num script e repetido sozinho todo dia: isso é automação.

Frase para guardar: processo é o programa rodando; memória virtual dá a cada um a ilusão de ter a memória só para si; bash conversa em texto, PowerShell conversa em objetos.

Em 1 minuto

  • Estados de um processo: novo, pronto (esperando a vez no processador), em execução, bloqueado (esperando disco, rede ou teclado) e terminado. O escalonador decide quem roda.
  • Memória virtual: cada processo enxerga um espaço de endereços próprio, dividido em páginas; quando a RAM acaba, o sistema manda páginas para o disco (swap no Linux, arquivo de paginação no Windows). Swap demais deixa tudo lento.
  • Sistemas de arquivos: no Windows, NTFS (permissões detalhadas, journaling, cotas, criptografia); FAT32 só aceita arquivos de até 4 GB. No Linux, ext4 (journaling) e XFS. Journaling registra as operações antes de fazê-las, para recuperar o disco depois de uma queda.
  • Diretórios do Linux: /etc (configurações), /var/log (logs), /home (usuários), /tmp (temporários), /bin e /usr/bin (programas), /dev (dispositivos), /proc (informações do kernel e dos processos).
  • Permissões do Linux: leitura (r = 4), gravação (w = 2) e execução (x = 1), para dono, grupo e outros. chmod 750 dá rwx ao dono, r-x ao grupo e nada aos outros.
  • PowerShell: comandos (cmdlets) no formato Verbo-Substantivo (Get-Process, Stop-Service), e o pipeline passa objetos com propriedades, não texto.
  • Agendamento: cron no Linux (campos: minuto, hora, dia do mês, mês, dia da semana); Agendador de Tarefas no Windows.

Exemplo concreto: a limpeza de logs, nos dois sistemas

O servidor do sistema de protocolo enche o disco de logs. A tarefa: apagar os logs com mais de 30 dias e avisar se o disco passar de 90%.

No Linux, em bash:

#!/bin/bash
# Apaga logs com mais de 30 dias e avisa se o disco passar de 90%
find /var/log/protocolo -name "*.log" -mtime +30 -delete

uso=$(df --output=pcent / | tail -1 | tr -dc '0-9')    # só o número, como 93
if [ "$uso" -gt 90 ]; then
  echo "Disco em ${uso}%" | mail -s "Alerta de disco" ti@example.org
fi

Para rodar todo dia às 2h, uma linha no crontab -e:

0 2 * * * /opt/scripts/limpa-logs.sh

No Windows, em PowerShell:

# Apaga logs com mais de 30 dias
Get-ChildItem -Path 'D:\Logs\Protocolo' -Filter *.log |
  Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
  Remove-Item

# Avisa se o disco C passar de 90%
$disco = Get-PSDrive -Name C
$uso = [math]::Round($disco.Used / ($disco.Used + $disco.Free) * 100)
if ($uso -gt 90) { Write-Warning "Disco em $uso%" }    # ou envie o alerta ao monitoramento

Repare na diferença: no bash, df devolve texto, e é preciso recortar o número com tail e tr. No PowerShell, cada arquivo chega ao Where-Object como objeto, com a propriedade LastWriteTime pronta para comparar.

Comparação: os comandos equivalentes

Tarefa Linux (bash) Windows (PowerShell)
Listar arquivos ls -l Get-ChildItem (alias dir, ls)
Mudar de pasta cd /var/log Set-Location C:\Logs (alias cd)
Ver conteúdo cat arquivo Get-Content arquivo (alias cat, type)
Procurar texto grep "erro" app.log Select-String "erro" app.log
Copiar, mover, apagar cp, mv, rm Copy-Item, Move-Item, Remove-Item
Listar processos ps aux, top Get-Process
Encerrar processo kill 4321 Stop-Process -Id 4321
Procurar arquivos find /var/log -name "*.log" Get-ChildItem -Recurse -Filter *.log
Mudar o dono chown ana:ti arquivo Set-Acl (ou a aba Segurança do arquivo)
Serviços systemctl status nginx Get-Service, Restart-Service
Espaço em disco df -h Get-PSDrive
Uso de memória free -h Get-Process, Gerenciador de Tarefas
Ajuda man ls Get-Help Get-ChildItem
Agendar cron Agendador de Tarefas
Símbolo do shell O que faz Exemplo
| (pipe) Manda a saída de um comando para o próximo ps aux | grep nginx
> Grava a saída num arquivo, substituindo o conteúdo ls > lista.txt
>> Acrescenta a saída ao fim do arquivo date >> log.txt
&& Roda o segundo só se o primeiro der certo make && make install
Sinal (Linux) Efeito
kill -15 (SIGTERM, o padrão do kill) Pede para o processo terminar; ele pode salvar o estado e sair em ordem
kill -9 (SIGKILL) Mata na hora; o processo não pode tratar nem ignorar
kill -1 (SIGHUP) Muitos serviços o usam para reler a configuração

As permissões em números: some r = 4, w = 2 e x = 1 para cada grupo. chmod 640 dados.csv dá rw- (4 + 2) ao dono, r– (4) ao grupo e — (0) aos outros. No NTFS, as permissões são listas de controle de acesso (ACL), com níveis como Leitura, Gravação, Modificar e Controle total, herdados das pastas.

Como a FCC cobra

Comandos básicos do Linux (ls, cd, grep, find, chmod, chown, ps, kill, df) e seu efeito, permissões em octal (chmod 755, 640) e cmdlets do PowerShell.

  • Estados de processos, threads e escalonamento.
  • Memória virtual, paginação e swap.
  • NTFS × FAT32 × ext4; journaling.
  • Diretórios do Linux (/etc, /var, /home).
  • Pipes e redirecionamento; scripts e agendamento (cron).

Pegadinhas

  • “kill -9 pede ao processo que encerre e salve o trabalho.” Falso: o SIGKILL mata na hora; quem pede é o SIGTERM (kill -15, o padrão).
  • “chmod 777 é a permissão recomendada para scripts de produção.” Falso: dá tudo a todos; o certo é o mínimo necessário, como 750.
  • “O pipeline do PowerShell passa texto entre os comandos, como o bash.” Falso: passa objetos, com propriedades.
  • “O > acrescenta a saída ao fim do arquivo.” Falso: o > substitui o conteúdo; quem acrescenta é o >>.
  • “Threads de um mesmo processo têm memórias separadas.” Falso: compartilham a memória do processo; processos diferentes é que são isolados.
  • “O FAT32 aceita arquivos de qualquer tamanho.” Falso: o limite é 4 GB por arquivo; para mais, NTFS ou exFAT.

Explique com suas palavras

Explique a um colega o que faz chmod 750 num script e por que o PowerShell é diferente do bash na hora de filtrar arquivos antigos.

  1. Escreva sem olhar a lição, com frases curtas e um exemplo seu.
  2. Onde travar ou precisar de jargão, há uma lacuna: releia só essa parte.
  3. Compare com a explicação-modelo e reescreva o que faltou.

Fica salva neste navegador.

Comparar com uma explicação-modelo

As permissões do Linux são três letras para três grupos de pessoas: o dono, o grupo do arquivo e os outros. Cada letra vale um número: ler vale 4, gravar vale 2, executar vale 1. O 7 do dono é 4 + 2 + 1: ele lê, grava e executa. O 5 do grupo é 4 + 1: o grupo lê e executa, mas não altera. O 0 dos outros quer dizer que mais ninguém faz nada com o script.

No bash, os comandos conversam por texto: um comando escreve linhas e o seguinte precisa recortar a parte que interessa. No PowerShell, eles conversam por objetos: cada arquivo chega ao próximo comando com as informações já separadas, como a data da última alteração. Para achar os arquivos antigos, basta comparar essa data, sem recortar texto.

Teste-se

SO, Redes e Nuvem · Windows, Linux e scripts · Inédita, estilo FCC

Questão 1 de 3

Num servidor Linux, o administrador executou chmod 750 backup.sh. As permissões resultantes do arquivo, na notação simbólica, são

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

SO, Redes e Nuvem · Windows, Linux e scripts · Inédita, estilo FCC

Questão 2 de 3

Um administrador precisa encerrar o processo de PID 4321, dando a ele a chance de salvar o estado e liberar recursos antes de sair. O comando adequado é

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

SO, Redes e Nuvem · Windows, Linux e scripts · Inédita, estilo FCC

Questão 3 de 3

No Windows PowerShell, o comando Get-Service | Where-Object Status -eq 'Running' | Sort-Object DisplayName

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Mais duas questões deste tópico estão em Questões.

Flashcards gerados

FrenteVerso
Estados de um processo Novo, pronto (na fila do processador), em execução, bloqueado (esperando entrada e saída) e terminado.
Processo × thread O processo é o programa em execução, com memória própria; as threads são linhas de execução dentro dele, que compartilham essa memória.
Memória virtual e swap Cada processo enxerga um espaço de endereços próprio; quando a RAM acaba, o sistema leva páginas ao disco (swap no Linux, arquivo de paginação no Windows).
Redirecionamento > × >> O > grava a saída no arquivo, substituindo o conteúdo; o >> acrescenta ao fim.
NTFS × FAT32 O NTFS tem permissões (ACL), journaling e criptografia; o FAT32 é simples e limita cada arquivo a 4 GB.

Ligação com o estudo de caso

Num caso de administração de servidores, transforme a rotina manual em script agendado: o que o script faz (limpar, conferir, avisar), quando roda (cron ou Agendador de Tarefas), com qual usuário (uma conta de serviço com o mínimo de permissões, nunca o root ou o administrador) e onde grava o log do que fez. Isso mostra automação com segurança e rastreabilidade.

Fontes da lição

  • Edital nº 01/2026, Anexo II, Sistemas Operacionais, Redes e Computação em Nuvem (fontes/edital-01-2026.txt).
  • Andrew Tanenbaum e Herbert Bos, Sistemas operacionais modernos (processos, memória virtual e sistemas de arquivos).
  • Manual do GNU Bash e páginas de manual do Linux (comandos, sinais e cron).
  • Documentação do PowerShell (cmdlets e pipeline de objetos).

Claude explica

Tire dúvidas sobre este tema no Claude: o site copia o pedido com a lição e abre uma conversa nova, na sua conta. Confira na fonte qualquer fato de lei ou de norma.

Pratique fora do site

Faça questões da FCC sobre este tópico no QConcursos ou no Gran e registre aqui quantas fez: elas contam na meta da semana e no status do tópico.

Registrar questões feitas lá
Errei uma questão lá: criar flashcard