📦 Capítulo 01: O Terminal Unix e Navegação no Sistema de Arquivos (pwd, ls, cd)

🎯 Objetivos da Aula

Ao final desta aula, você será capaz de:

  1. Compreender o papel da Linha de Comando (CLI) na engenharia de software e administração de servidores.
  2. Identificar a estrutura de diretórios em árvore dos sistemas operacionais baseados em Unix/Linux.
  3. Exibir o diretório atual de trabalho utilizando o comando pwd.
  4. Listar arquivos e pastas ocultas com ls e navegar entre diretórios com cd.

🧠 1. O Terminal e a Estrutura em Árvore do Sistema de Arquivos

Diferente das interfaces gráficas (GUI), onde arrastamos pastas com o mouse, no Terminal (CLI) interagimos diretamente com o sistema operacional por meio de comandos de texto de alta velocidade.

flowchart TD
    Root["/ (Diretorio Raiz - Root)"] --> Home["/home (Usuarios do Sistema)"]
    Root --> Var["/var (Logs e Dados Variaveis)"]
    Root --> Etc["/etc (Arquivos de Configuracao)"]
    
    Home --> UserDev["/home/dev (Diretorio do Desenvolvedor)"]
    UserDev --> Projetos["/home/dev/projetos"]
    Projetos --> AppC["/home/dev/projetos/sistema_alunos_c"]

Conceitos de Caminho:

  • Caminho Absoluto: Especifica a localização completa a partir da raiz / (ex.: /home/dev/projetos).
  • Caminho Relativo: Especifica a localização a partir do diretório atual onde você se encontra (ex.: ./projetos ou ../).

💻 2. Comandos Fundamentais de Navegação

1. pwd (Print Working Directory)

Exibe o caminho absoluto do diretório onde o seu terminal está atualmente posicionado:

$ pwd
/home/dev/projetos

2. ls (List)

Lista os arquivos e subdiretórios contidos na pasta atual:

# Listagem simples
$ ls
 
# Listagem detalhada com permissoes, tamanho e data (-l)
$ ls -l
 
# Listagem detalhada incluindo arquivos ocultos iniciados por ponto (-)
$ ls -la

3. cd (Change Directory)

Navega para outros diretórios do sistema:

# Entrar na pasta 'sistema_alunos' (Caminho relativo)
$ cd sistema_alunos
 
# Voltar um nivel para a pasta pai (..)
$ cd ..
 
# Ir direto para o diretorio inicial do usuario (Home ~)
$ cd ~
 
# Ir para a raiz do sistema
$ cd /

⚔️ 3. Desafios Práticos (Exercícios 30/50/20)

🥉 Nível Bronze (Fixação)

  1. Qual a diferença de saída entre executar o comando ls e o comando ls -la no terminal?
  2. Para qual diretório o comando cd .. leva o usuário?

🥈 Nível Prata (Aplicação)

  1. Escreva a sequência exata de comandos do terminal necessária para: a) Verificar a pasta atual.
    b) Entrar na pasta /var/log.
    c) Listar todos os arquivos detalhados (incluindo ocultos).
    d) Retornar ao diretório home (~).

🥇 Nível Ouro (Desafio)

  1. Abra o terminal em sua máquina (ou WSL/Linux) e navegue da raiz / até a pasta do seu projeto C criado na Fase 01 usando apenas caminhos relativos. Registre os comandos executados em seu caderno de estudos.

💡 Gabaritos Sanfonados de Resposta

💡 Ver Gabarito do Nível Bronze
  1. ls mostra apenas os nomes de arquivos e pastas visíveis. ls -la mostra uma lista detalhada (long format) incluindo permissões, proprietário, tamanho, data de modificação e arquivos ocultos (iniciados com .).
  2. O comando cd .. navega para o diretório pai (um nível acima na árvore de pastas).
💡 Ver Gabarito do Nível Prata (Sequência de Comandos)
$ pwd
$ cd /var/log
$ ls -la
$ cd ~

📚 Referências Teóricas Oficiais

  • SILBERSCHATZ, Abraham; GALVIN, Peter B.; GAGNE, Greg. Sistemas Operacionais com Java. 8ª Edição. Campus, 2010. Cap. 11 (Interface do Sistema de Arquivos).
  • IEEE Std 1003.1 (POSIX Specification). Shell & Utilities — Shell Command Language.

⬅️ Voltar ao Sumário da Fase 02 | Próximo Capítulo (Manipulação de Arquivos e Pastas) ➡️