← Voltar ao Encontro 12
Sistemas Operacionais · ADS23
01 / 14
Encontro 12 de 17 · Abertura da Unidade VI

Shell: comandos,
arquivos e coringas

A competência mais empregável desta disciplina — e a base do projeto final. A partir de hoje, o terminal deixa de ser ferramenta de diagnóstico e vira ferramenta de trabalho.

ADS23IFCE Campus HorizonteProf. José Stelio Sampaio Bastos Neto
↓ role pra avançar · use os pontos à direita pra navegar direto
Aviso importante

Hoje o encontro começa com avaliação

Os primeiros ~40 minutos são a N1 da 2ª etapa: uma prática avaliada curta sobre memória e E/S — o conteúdo dos Encontros 9, 10 e 11. Depois dela, começamos a Unidade VI normalmente.

Primeira parte

N1 · prática avaliada (~40 min)

Diagnóstico de memória e E/S no terminal, individual. Sem consulta a colegas; consulta ao material permitida conforme orientação em sala.

Resto da aula

Unidade VI · shell

Conteúdo novo, com prática — e sem relação com a avaliação da primeira parte.

Pergunta pra turma

Você precisa renomear 400 arquivos,
cada um com um padrão diferente.
Quanto tempo isso leva?

No mouse, arrastando e clicando: uma tarde inteira. No shell: uma linha.

Situando o shell

O shell é um programa comum — e é isso que o torna poderoso

O shell não faz parte do núcleo do SO. Ele é apenas um programa que lê o que você digita, pede ao kernel que execute, e mostra o resultado. É por isso que existem vários shells diferentes e você pode trocar de um para outro.

Você — digita um comando
↓
Shell (bash) — interpreta, expande coringas, monta pipes
↓ chamadas de sistema (Encontro 3)
Kernel — cria processos, lê arquivos, acessa dispositivos
↓
Hardware

Reparem que o shell usa exatamente as chamadas de sistema que vocês rastrearam com strace no Encontro 3.

O essencial

Navegação e inspeção: onde estou, o que tem aqui

ComandoO que fazVariação útil
pwdMostra o diretório atual—
lsLista o conteúdols -lah — detalhes, ocultos, legível
cdMuda de diretóriocd - volta ao anterior
cat / lessMostra conteúdo de arquivoless pagina arquivos grandes
head / tailInício / fim de um arquivotail -f acompanha log ao vivo

O tail -f é, sozinho, o comando mais usado em sustentação — acompanhar um log enquanto o problema acontece.

Manipulação

Criar, copiar, mover, apagar

ComandoO que fazCuidado
mkdir -pCria diretório (e os pais, se faltarem)—
touchCria arquivo vazio / atualiza data—
cp -rCopia (o -r para diretórios)Sobrescreve sem perguntar
mvMove — e também renomeiaSobrescreve sem perguntar
rm -rRemove diretório e conteúdoNão existe lixeira. É definitivo.

Regra de sobrevivência: antes de um rm com coringa, rode o mesmo padrão com ls primeiro. Veja o que seria apagado antes de apagar.

O multiplicador de força

Coringas: um padrão, muitos arquivos

Aqui está a resposta da pergunta do slide 2. Coringas (globbing) são expandidos pelo shell antes do comando rodar — o comando nem sabe que houve coringa; ele recebe a lista já pronta.

CoringaCasa comExemplo
*Qualquer sequência de caracteres*.log — todos os .log
?Exatamente um caracterearq?.txt — arq1.txt, arqA.txt
[...]Um caractere do conjuntoarq[123].txt
{a,b}Cada alternativa da listarel.{txt,pdf}

Como quem expande é o shell, echo *.log mostra exatamente o que qualquer comando receberia — a forma mais segura de testar um padrão.

Procurando

Encontrar arquivos e encontrar conteúdo

find

Procura arquivos pelo nome ou atributo

Percorre a árvore de diretórios inteira. Filtra por nome, tamanho, data, tipo — e pode executar ações sobre o que encontrar.

grep

Procura dentro do conteúdo

Já usado desde o Encontro 5 com pipes. Com -r percorre diretórios, com -n mostra a linha exata.

A combinação dos dois — find para localizar, grep para filtrar conteúdo — resolve a maioria das buscas do dia a dia.

Retomando o Encontro 6

Pipes e redirecionamento, agora como ferramenta de trabalho

Vocês já conhecem |, > e 2> desde o Encontro 6. O que muda hoje é o uso: não mais para observar o sistema, mas para produzir resultado.

OperadorO que faz
>Redireciona a saída para arquivo, substituindo o conteúdo
>>Redireciona acrescentando ao final — o que se usa em log
2>Redireciona só os erros (stderr, Encontro 6)
|Encana a saída de um comando na entrada do próximo

A confusão entre > e >> é a causa mais comum de "meu script apagou o log inteiro".

Por que isso importa pra quem trabalha com software

Onde o shell aparece na sua carreira

Não é opcional

Servidor não tem interface gráfica

Qualquer máquina em nuvem, container ou pipeline de CI se opera por linha de comando. Não há alternativa por mouse.

Diferencial real

É o que separa quem espera de quem resolve

Diagnosticar, automatizar e corrigir sem depender de terceiros — a competência mais visível em sustentação, DevOps e cloud.

Eixo do curso

Todo container é, por dentro, um shell esperando comandos

Vocês já usaram docker exec no Encontro 5 sem pensar muito nele. Agora dá pra ver o que estava acontecendo: aquele comando abre um shell dentro do container — e tudo que vocês aprenderem hoje funciona lá dentro também.

No host

Shell da sua VM

Ferramentas completas, sistema de arquivos inteiro, seus arquivos pessoais.

No container

Shell mínimo e isolado

Muitas imagens (como alpine) trazem só o essencial — e é justamente aí que dominar os comandos básicos faz diferença.

Diagnosticar um container quebrado é, quase sempre, entrar nele com docker exec -it ... sh e usar exatamente os comandos de hoje.

Prévia da prática

Coringas, cópia, busca — e o shell dentro do container

Uma sequência real: listar com padrão, organizar arquivos, e procurar conteúdo dentro deles.

Cada uma dessas linhas vira um passo do roteiro de laboratório de hoje.

Mão na massa

De navegar a manipular em lote

FUNDAMENTOS

Navegação, arquivos e coringas

Criar uma estrutura de teste, manipular em lote com coringas, e buscar com find e grep.

REFORÇO DOCKER

Shell dentro do container

Entrar num container com docker exec -it e usar os mesmos comandos lá dentro.

O roteiro de laboratório detalha os passos, com dicas se algo travar.

Para ler

Leitura da semana

🟢

Laureano — Comandos Básicos + Comandos para diretórios e arquivos

A referência direta dos comandos de hoje — vale manter aberto durante a prática. p. 33–38 e 43–53

🔵

Tanenbaum — O interpretador de comandos (shell)

Duas páginas que situam o shell na arquitetura do SO — o conteúdo do slide 3. p. 32–33

⚪

Laureano — Permissões + Comandos avançados

Adiantamento útil: permissões voltam com força no Encontro 14, na automação. p. 62–69 e 59–61

O quiz da semana verifica essa leitura e recolhe suas observações da prática — tudo no mesmo instrumento.