Aprenda / Terminal e linha de comando

FundamentosAula 2 de 1614 min0% da trilha

Navegando no sistema de arquivos: pwd, ls e cd

Três comandos resolvem 90% da navegação: saber onde você está, ver o que tem ali e se mover — sem clicar em nada.

No Finder ou no Explorer, você sempre sabe "onde está" porque enxerga a janela, o caminho de pastas abertas, os ícones. No terminal isso não é visual — você precisa perguntar. É exatamente pra isso que existem pwd, ls e cd: os três comandos que substituem clicar duas vezes numa pasta.

pwd — onde você está agora

pwd significa print working directory ("imprimir o diretório de trabalho") e mostra o caminho completo da pasta em que o terminal está posicionado no momento.

terminal
pwd

Todo comando que você roda depois disso age a partir dessa pasta, a não ser que você diga o contrário. É por isso que "onde estou" é sempre a primeira pergunta a fazer quando algo não se comporta como esperado.

ls — o que tem aqui

ls (list) lista o conteúdo da pasta atual. Sozinho, ele mostra só os nomes:

terminal
ls

Na prática, quase ninguém usa ls puro — o combo mais comum é ls -la, que junta duas flags:

terminal
ls -la

O -l muda pro formato "longo" — uma linha por item, com permissões, dono, tamanho e data (a próxima lição explica cada coluna dessas em detalhe). O -a ("all") mostra também os arquivos ocultos, que no Linux/macOS são simplesmente qualquer arquivo cujo nome começa com . — como .env e .git no exemplo acima. Sem -a, esses dois nunca apareceriam, e é justamente onde ficam configurações importantes.

cd — mudando de pasta

cd (change directory) move o terminal pra outra pasta.

terminal
cd src

Repare que cd normalmente não imprime nada quando dá certo — silêncio é sucesso, no terminal. Se você errar o nome da pasta, aí sim aparece um erro do tipo no such file or directory.

Caminho absoluto vs. relativo

Existem duas formas de dizer "onde" uma pasta ou arquivo está. Um caminho absoluto começa da raiz do sistema (/) e funciona de qualquer lugar que você esteja: /Users/joana/projetos/site/src. Um caminho relativo parte de onde você já está agora: se você já estiver dentro de projetos/site, basta cd src.

três atalhos de caminho relativo
.   → a pasta atual (usado com comandos que pedem uma pasta explícita, ex: "cp arquivo .")
..  → a pasta um nível acima (a "pasta mãe")
~   → a pasta pessoal do usuário logado (ex: /Users/joana ou /home/joana)
terminal
cd ..
pwd
cd ~
pwd

cd .. sobe um nível; cd ~ te leva direto pra sua pasta pessoal de qualquer lugar do sistema, sem precisar digitar o caminho completo. E cd sozinho, sem argumento nenhum, faz a mesma coisa que cd ~ — vai direto pra casa.

Exercício

Você está em /Users/joana/projetos/site/src e quer ir direto pra /Users/joana/projetos — duas pastas acima de onde está. Sem digitar o caminho absoluto completo, como fazer isso num único comando?

Quiz rápido

O que muda entre 'ls' sozinho e 'ls -la'?
Estando em '/Users/joana/projetos/site', o que 'cd ~' faz, diferente de 'cd ..'?