2 Terminal
2.1 Uma Breve História
Antes das interfaces gráficas com janelas, ícones e mouse, a única forma de interagir com um computador era através de texto. O usuário digitava comandos e o computador respondia — também em texto. Essa interação acontecia através de terminais físicos: máquinas compostas por um teclado e uma tela (ou impressora) conectadas a um computador central.
Nos anos 1960 e 1970, os terminais eram a porta de entrada para os grandes mainframes das universidades e empresas. Programadores, cientistas e engenheiros passavam horas diante dessas telas escuras com letras verdes ou âmbar, digitando comandos para executar cálculos, processar dados e desenvolver software.
Com a chegada dos computadores pessoais nos anos 1980, as interfaces gráficas (GUI) começaram a se popularizar. O Macintosh da Apple (1984) e posteriormente o Windows da Microsoft tornaram os computadores acessíveis a pessoas sem conhecimento técnico. Bastava apontar e clicar.
Mas o terminal não desapareceu. Ele permaneceu como uma ferramenta essencial para desenvolvedores, administradores de sistemas e usuários avançados. Por quê? Porque a linha de comando oferece algo que a interface gráfica nem sempre consegue: precisão, automação e poder.
2.2 O que é o Terminal hoje?
Quando falamos em “terminal” hoje, nos referimos a um emulador de terminal — um programa que simula aqueles antigos terminais físicos dentro do seu sistema operacional moderno. É uma janela onde você digita comandos de texto e recebe respostas do computador.
Por trás do terminal existe um programa que interpreta seus comandos e os executa, chamado de shell. Pense no terminal como a janela (a interface visual) e no shell como o cérebro que entende o que você digita.
No Mac, o aplicativo se chama Terminal e vem instalado por padrão. No Windows, temos o Prompt de Comando (cmd), o PowerShell, e mais recentemente o Windows Terminal, que unifica diferentes shells em uma única interface moderna.
2.2.1 Shells no Mac e Linux
Até 2019, o shell padrão do macOS era o bash (Bourne Again Shell), criado em 1989 e extremamente popular no mundo Unix e Linux. A partir do macOS Catalina (10.15), a Apple mudou o padrão para o zsh (Z Shell).
O zsh é compatível com o bash na maioria dos comandos básicos, mas oferece recursos adicionais como melhor autocompletar, correção de erros de digitação e temas visuais. Para o uso cotidiano e para tudo que faremos neste manual, os dois funcionam de forma idêntica.
Uma forma simples de identificar qual shell você está usando é olhar o prompt:
zsh: termina com
%seu-usuario@seu-mac ~ %bash: termina com
$seu-usuario@seu-mac ~ $
Se você encontrar tutoriais antigos que mencionam bash, não se preocupe — os comandos que aprenderemos aqui funcionam em ambos.
2.2.2 Shells no Windows
No Windows, a situação é um pouco diferente:
- Prompt de Comando (cmd): o interpretador clássico do Windows, existe desde o MS-DOS. Simples, mas limitado.
- PowerShell: shell moderno da Microsoft, muito mais poderoso, com uma linguagem própria orientada a objetos. É o padrão em versões recentes do Windows.
- Git Bash: quando você instala o Git no Windows, ele inclui um emulador que permite usar comandos no estilo Unix (os mesmos do Mac e Linux). Muito útil para seguir tutoriais padronizados.
2.3 Por que aprender a usar o Terminal?
Você pode estar se perguntando: se temos interfaces gráficas tão bonitas e intuitivas, por que alguém usaria o terminal?
Eficiência. Muitas tarefas que exigem vários cliques podem ser feitas com um único comando. Renomear 500 arquivos de uma vez? Uma linha de comando resolve.
Automação. Você pode criar scripts — sequências de comandos salvos em um arquivo — que executam tarefas repetitivas automaticamente.
Acesso a ferramentas poderosas. Muitos programas de desenvolvimento, incluindo o Git, foram criados para a linha de comando. As versões gráficas são apenas “capas” sobre esses programas.
Controle preciso. O terminal permite especificar exatamente o que você quer fazer, com todas as opções disponíveis. Interfaces gráficas frequentemente escondem funcionalidades avançadas.
Universalidade. Os comandos básicos funcionam de forma similar em Mac, Linux e (com algumas diferenças) no Windows. Aprender uma vez serve para sempre.
Servidores e nuvem. Se você trabalhar com servidores remotos ou serviços em nuvem, a interface será quase sempre via terminal.
2.4 Abrindo o Terminal
2.4.1 No Mac
Existem várias formas de abrir o Terminal:
- Spotlight: Pressione
Cmd + Espaço, digite “Terminal” e pressione Enter - Finder: Vá em Aplicativos → Utilitários → Terminal
- Launchpad: Abra o Launchpad e procure por Terminal na pasta “Outros”
Ao abrir, você verá uma janela com um prompt parecido com:
seu-usuario@seu-mac ~ %
Esse prompt indica que o terminal está pronto para receber comandos.
2.4.2 No Windows
O Windows oferece diferentes opções:
Prompt de Comando (cmd)
- Pressione
Win + R, digitecmde pressione Enter - Ou pesquise “Prompt de Comando” no menu Iniciar
PowerShell
- Clique com botão direito no menu Iniciar e selecione “Windows PowerShell”
- Ou pesquise “PowerShell” no menu Iniciar
Windows Terminal (recomendado)
O Windows Terminal é um aplicativo moderno que unifica cmd, PowerShell e outros shells. Você pode instalá-lo gratuitamente pela Microsoft Store. Ele oferece abas, personalização visual e melhor suporte a caracteres especiais.
Git Bash
Se você instalar o Git para Windows, ele inclui o Git Bash — um emulador que permite usar comandos no estilo Unix/Mac dentro do Windows. Isso é especialmente útil porque os comandos serão idênticos aos do Mac e Linux.
2.5 Anatomia de um Comando
Um comando de terminal geralmente segue esta estrutura:
comando [opções] [argumentos]
Por exemplo:
ls -la DocumentsNeste comando:
lsé o comando (listar arquivos)-lasão opções (formato longo + arquivos ocultos)Documentsé o argumento (a pasta a ser listada)
As opções geralmente começam com um hífen (-) para opções curtas ou dois hífens (--) para opções longas:
ls -a # opção curta
ls --all # opção longa (equivalente)2.6 Comandos Essenciais
Vamos aprender os comandos básicos que você usará no dia a dia. Apresento as versões para Mac/Linux e, quando diferentes, para Windows.
2.6.2 Manipulação de Arquivos e Pastas
Criar pasta
mkdir nova-pasta # Cria uma pasta
mkdir -p pasta/subpasta # Mac/Linux: cria pasta e subpastas
mkdir pasta\subpasta # Windows: cria estrutura de pastasCriar arquivo vazio
touch arquivo.txt # Mac/Linux
type nul > arquivo.txt # Windows cmd
New-Item arquivo.txt # Windows PowerShellCopiar
cp arquivo.txt copia.txt # Mac/Linux
copy arquivo.txt copia.txt # WindowsPara copiar pastas:
cp -r pasta nova-pasta # Mac/Linux: -r significa recursivo
xcopy pasta nova-pasta /E # WindowsMover ou renomear
mv arquivo.txt novo-nome.txt # Mac/Linux: move ou renomeia
move arquivo.txt novo-nome.txt # WindowsRemover arquivo
rm arquivo.txt # Mac/Linux
del arquivo.txt # WindowsRemover pasta
rm -r pasta # Mac/Linux: remove pasta e conteúdo
rmdir /S pasta # Windows: remove pasta e conteúdoOs comandos de remoção são permanentes. Diferente da Lixeira, arquivos deletados pelo terminal não podem ser recuperados facilmente. Sempre confira o que está deletando antes de pressionar Enter.
2.6.3 Visualização de Conteúdo
Ver conteúdo de arquivo
cat arquivo.txt # Mac/Linux: mostra todo o conteúdo
type arquivo.txt # WindowsVer arquivo página por página
less arquivo.txt # Mac/Linux: navegue com setas, saia com 'q'
more arquivo.txt # Windows e Mac/LinuxVer início ou fim de arquivo
head arquivo.txt # Mac/Linux: primeiras 10 linhas
tail arquivo.txt # Mac/Linux: últimas 10 linhas
head -n 20 arquivo.txt # Primeiras 20 linhas2.6.4 Busca e Filtros
Encontrar arquivos
find . -name "*.txt" # Mac/Linux: busca arquivos .txt
dir /S *.txt # Windows: busca arquivos .txtBuscar texto dentro de arquivos
grep "palavra" arquivo.txt # Mac/Linux
findstr "palavra" arquivo.txt # Windows2.6.5 Informações do Sistema
Limpar a tela
clear # Mac/Linux
cls # WindowsVer histórico de comandos
history # Mac/Linux
doskey /history # Windows cmd
Get-History # Windows PowerShellManual de um comando
man ls # Mac/Linux: manual completo
ls --help # Ajuda resumida
help dir # Windows: ajuda do comando2.7 Atalhos de Teclado Úteis
Estes atalhos funcionam na maioria dos terminais e economizam muito tempo:
| Atalho | Função |
|---|---|
Tab |
Autocompleta nomes de arquivos e pastas |
↑ / ↓ |
Navega pelo histórico de comandos |
Ctrl + C |
Cancela o comando em execução |
Ctrl + L |
Limpa a tela (equivalente a clear) |
Ctrl + A |
Move cursor para o início da linha |
Ctrl + E |
Move cursor para o fim da linha |
Ctrl + U |
Apaga do cursor até o início da linha |
Ctrl + K |
Apaga do cursor até o fim da linha |
Ctrl + R |
Busca no histórico de comandos |
O Tab é especialmente útil. Comece a digitar o nome de um arquivo ou pasta e pressione Tab — o terminal completará automaticamente. Se houver múltiplas opções, pressione Tab duas vezes para ver todas.
2.8 Caminhos Absolutos e Relativos
Entender caminhos é fundamental para navegar no terminal.
Caminho absoluto começa da raiz do sistema:
/Users/henrique/Documents/projeto # Mac
C:\Users\henrique\Documents\projeto # WindowsCaminho relativo parte da sua localização atual:
Documents/projeto # Se você está em /Users/henrique
../Downloads # Volta uma pasta e entra em Downloads
./script.sh # Arquivo na pasta atualSímbolos especiais:
.— pasta atual..— pasta pai (um nível acima)~— pasta home do usuário (Mac/Linux)/— raiz do sistema (Mac/Linux)\— separador de pastas (Windows)
2.9 Prática: Criando uma Estrutura de Projeto
Vamos praticar criando a estrutura de um projeto do zero:
# Criar e entrar na pasta do projeto
mkdir meu-projeto
cd meu-projeto
# Criar subpastas
mkdir dados
mkdir scripts
mkdir resultados
# Criar arquivos
touch README.md
touch scripts/analise.R
touch dados/.gitkeep
# Verificar a estrutura
ls -la
ls scriptsNo Windows (cmd):
mkdir meu-projeto
cd meu-projeto
mkdir dados
mkdir scripts
mkdir resultados
type nul > README.md
type nul > scripts\analise.R
dir2.10 O Terminal e o Git
Agora que você conhece o terminal, está pronto para entender por que o Git foi feito para ele.
O Git nasceu em 2005, criado por Linus Torvalds para gerenciar o código do Linux. Como Linus e outros desenvolvedores do Linux trabalham exclusivamente no terminal, o Git foi projetado como uma ferramenta de linha de comando.
Todos os comandos Git seguem a estrutura que você aprendeu:
git comando [opções] [argumentos]Por exemplo:
git status # Sem opções nem argumentos
git add . # Com argumento (o ponto)
git commit -m "msg" # Com opção (-m) e argumento ("msg")
git log --oneline # Com opção longaNos próximos capítulos, você usará esses comandos. Mas antes de continuar, pratique um pouco no terminal. Crie pastas, navegue entre elas, crie arquivos, liste conteúdos. Quanto mais confortável você estiver com o terminal, mais natural será usar o Git.
2.11 Resumo dos Comandos
2.11.1 Mac/Linux
| Comando | Função |
|---|---|
pwd |
Mostra pasta atual |
ls |
Lista arquivos |
cd pasta |
Muda de pasta |
mkdir pasta |
Cria pasta |
touch arquivo |
Cria arquivo vazio |
cp origem destino |
Copia |
mv origem destino |
Move/renomeia |
rm arquivo |
Remove arquivo |
rm -r pasta |
Remove pasta |
cat arquivo |
Mostra conteúdo |
clear |
Limpa tela |
2.11.2 Windows (cmd)
| Comando | Função |
|---|---|
cd |
Mostra pasta atual |
dir |
Lista arquivos |
cd pasta |
Muda de pasta |
mkdir pasta |
Cria pasta |
type nul > arq |
Cria arquivo vazio |
copy origem destino |
Copia |
move origem destino |
Move/renomeia |
del arquivo |
Remove arquivo |
rmdir /S pasta |
Remove pasta |
type arquivo |
Mostra conteúdo |
cls |
Limpa tela |
Se você pretende usar Git regularmente, considere instalar o Git Bash. Ele vem junto com o Git para Windows e permite usar os mesmos comandos do Mac/Linux. Isso facilita seguir tutoriais e documentações, que geralmente usam comandos Unix.