Ubuntu O Terminal
O terminal é uma janela onde você controla o computador digitando, em vez de clicar. No começo parece difícil, mas é mais rápido, mais preciso e deixa você automatizar tarefas. Nesta aula você aprende a abrir, ler e dominar essa janela.
- A diferença entre terminal, shell e Bash.
- Ler o prompt: quem você é, onde está e se é administrador.
- Digitar menos com a tecla Tab.
- Reaproveitar comandos antigos com o histórico (↑,
history,!!, Ctrl+R). - Editar a linha, copiar, colar e cancelar sem medo.
- Que existe um terminal de emergência para quando a tela trava.
Terminal, shell e Bash
Três palavras aparecem o tempo todo e costumam ser confundidas:
| Termo | O que é | Comparação |
|---|---|---|
| Terminal | O programa com a janela onde você digita. No Ubuntu, o aplicativo se chama Terminal. | A tela e o teclado |
| Shell | O programa que lê o que você digitou e executa. O nome vem de "concha": é a camada em volta do sistema. | O intérprete |
| Bash | O shell padrão do Ubuntu. O nome vem de Bourne Again SHell. | Um intérprete específico |
Você pode perguntar qual shell está usando:
$ echo $SHELL /bin/bash
Como abrir o terminal
| Forma | Como | Abre em… |
|---|---|---|
| Atalho | Ctrl+Alt+T | Sua pasta pessoal |
| Busca | Super, digitar terminal, Enter | Sua pasta pessoal |
| Pelo Arquivos | Botão direito numa pasta → Abrir no Terminal | Aquela pasta |
| Servidor, Multipass, WSL | Você já está no terminal | — |
Além da janela de terminal, o Ubuntu tem consoles de texto (os TTYs) que funcionam mesmo se a interface gráfica travar. Você abre um com Ctrl+Alt+F3. Não teste agora sem ler antes Quando o Sistema Trava, que explica como entrar e como voltar.
Lendo o prompt
O prompt é o texto que aparece antes do cursor. Ele diz que o shell está pronto e traz quatro informações:
$
| Pedaço | Significado |
|---|---|
ana | Seu nome de usuário. |
@notebook | Em qual computador ("@" se lê "em"). É o hostname. |
:~ | A pasta onde você está. ~ é a sua pasta pessoal, /home/ana. |
$ | Você é usuário comum. Vira # quando você é o administrador (root). |
O prompt muda conforme você anda pelas pastas. Repare na parte azul:
$ cd Documentos $ cd projetos $ cd /etc $ cd
O último cd, sem nada depois, volta para a pasta pessoal. E quando alguém vira administrador, o $ vira #, um aviso de "cuidado":
$ sudo -i [sudo: authenticate] Senha: #> whoami root #> exit sair
As linhas com o prompt colorido são o que a pessoa digitou; as outras são a resposta do computador. O botão copiar copia só os comandos, sem o prompt.
Seu primeiro comando
- echo
- De "eco": repete na tela o que recebeu.
- "Olá, terminal!"
- O texto a mostrar. As aspas mantêm tudo como uma coisa só.
$ echo "Olá, terminal!" Olá, terminal!
Digitar um comando sempre segue o mesmo ritmo: você escreve, aperta Enter, o computador responde e um prompt novo aparece. Enquanto o prompt não voltar, o comando ainda está rodando.
Digite menos: a tecla Tab
A tecla Tab completa nomes de comandos, pastas e arquivos. Digite o começo e aperte Tab:
# você digita "cd Doc" e aperta Tab; o shell completa: $ cd Documentos/
Quando há mais de uma opção, o primeiro Tab completa só a parte em comum. Aperte Tab duas vezes para ver a lista:
# você digita "cd D" e aperta Tab duas vezes: $ cd D Documentos/ Downloads/ « as duas opções que começam com D
Se o Tab não completa, é porque não existe nada com esse começo. Isso evita erros de digitação, como documentos em vez de Documentos.
Missão: entre na pasta Documentos/projetos/site usando Tab para completar cada nome. Digite cd Doc, aperte Tab, depois pro + Tab, depois s + Tab, e Enter.
Histórico: reaproveitar comandos
O Bash guarda tudo o que você digita. Há quatro formas de voltar a um comando antigo, da mais simples à mais poderosa.
Forma 1: setas
↑ volta ao comando anterior; ↓ avança. Você pode editar o comando antes de apertar Enter.
Forma 2: o comando history
Mostra a lista numerada de comandos digitados:
$ history 495 sudo apt update 496 ls -l 497 cd Documentos 498 echo "Olá, terminal!" 499 history
Ela fica gravada no arquivo ~/.bash_history quando você fecha o terminal. Para ver só os últimos, junte com tail: history | tail -5 (o | é explicado em Pipes).
Forma 3: atalhos com !
| Expressão | O que faz | Exemplo |
|---|---|---|
!! | Repete o último comando | sudo !! |
!n | Repete o comando número n do history | !496 |
!texto | Repete o último comando que começa com texto | !echo |
O uso mais famoso é o sudo !!, quando você esquece o sudo:
$ apt update Erro: Não foi possível abrir arquivo de trava /var/lib/apt/lists/lock - open (13: Permissão negada) Erro: Não é possível travar o diretório /var/lib/apt/lists/ $ sudo !! sudo apt update « o Bash mostra o comando que montou [sudo: authenticate] Senha: Atingido:1 http://br.archive.ubuntu.com/ubuntu resolute InRelease ...
Forma 4: busca com Ctrl+R
Aperte Ctrl+R e digite parte de um comando antigo. O Bash mostra o mais recente que combina:
(reverse-i-search)`upd': sudo apt update
| Durante a busca | Efeito |
|---|---|
| Ctrl+R de novo | Mostra a ocorrência anterior |
| Enter | Executa o comando encontrado |
| → ou Esc | Coloca o comando na linha para você editar |
| Ctrl+G | Desiste da busca |
Qual forma usar?
| Situação | Use |
|---|---|
| O comando foi agora há pouco | ↑ |
Esqueceu o sudo | sudo !! |
| Foi ontem e você lembra uma palavra | Ctrl+R |
| Quer ver tudo o que fez | history |
Missão: rode três comandos quaisquer (por exemplo pwd, ls e whoami), use ↑ para repetir um deles e depois veja a lista com history. O simulador não entende !! nem Ctrl+R; esses, teste no seu Ubuntu.
Editar a linha sem o mouse
| Atalho | O que faz |
|---|---|
| Ctrl+A | Vai para o início da linha |
| Ctrl+E | Vai para o fim da linha |
| Ctrl+← / → | Pula uma palavra para trás / para frente |
| Ctrl+U | Apaga do cursor até o início da linha |
| Ctrl+K | Apaga do cursor até o fim da linha |
| Ctrl+W | Apaga a palavra antes do cursor |
| Ctrl+Y | Cola o que foi apagado com Ctrl+U, K ou W |
| Ctrl+L | Limpa a tela (igual ao comando clear) |
| Ctrl+C | Cancela o comando que está rodando, ou a linha atual |
| Ctrl+D | Numa linha vazia, fecha o terminal (igual a exit) |
| Ctrl+Z | Pausa o comando atual (veja Jobs) |
No terminal, Ctrl+C interrompe o comando em execução. Para copiar, use Ctrl+Shift+C.
Cancelar um comando que não termina
Alguns comandos rodam até você mandar parar. O ping, por exemplo, testa a conexão sem fim. O Ctrl+C aparece como ^C:
$ ping ubuntu.com PING ubuntu.com (185.125.190.20) 56(84) bytes of data. 64 bytes from 185.125.190.20: icmp_seq=1 ttl=50 time=212 ms 64 bytes from 185.125.190.20: icmp_seq=2 ttl=50 time=211 ms ^C « você apertou Ctrl+C --- ubuntu.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
Copiar e colar
| Ação | No terminal |
|---|---|
| Copiar o texto selecionado | Ctrl+Shift+C |
| Colar | Ctrl+Shift+V |
| Colar a última seleção | Selecionar com o mouse e clicar com o botão do meio |
| Pelo menu | Botão direito do mouse |
Um texto colado que termina com uma quebra de linha é executado na hora, sem você apertar Enter. Cole primeiro num editor de texto se não tiver certeza do que o comando faz.
Senhas invisíveis
Quando um comando pede senha, como o sudo, nada aparece enquanto você digita: nem letras, nem asteriscos. É proposital, para ninguém ver o tamanho da sua senha. Digite normalmente e aperte Enter.
$ sudo apt update [sudo: authenticate] Senha: « digite aqui, mesmo sem ver nada
Abas, janelas e tamanho da letra
| Atalho | O que faz |
|---|---|
| Ctrl+Shift+T | Nova aba |
| Ctrl+Shift+N | Nova janela |
| Ctrl+Shift+W | Fecha a aba |
| Ctrl+Page Up / Page Down | Troca de aba |
| Ctrl++ / Ctrl+- | Aumenta / diminui a letra |
| Ctrl+0 | Volta a letra ao tamanho normal |
Limpar a tela e sair
| Comando | O que faz |
|---|---|
clear ou Ctrl+L | Limpa a tela. O histórico continua lá. |
reset | Conserta um terminal "bagunçado", com símbolos estranhos depois de mostrar um arquivo binário. |
exit ou Ctrl+D | Fecha o terminal, ou encerra a conexão num servidor remoto. |
Quando não funciona
$ sl Comando 'sl' não encontrado, mas poder ser instalado com: sudo apt install sl
O que aconteceu: o comando existe, mas o programa não está instalado. O Ubuntu já sugere o pacote. O "poder" no lugar de "pode" é um erro da tradução original do Ubuntu.
Como resolver: rode o comando sugerido, se quiser o programa.
$ Ls Ls: comando não encontrado
O que aconteceu: não existe nenhum programa com esse nome. O Linux diferencia maiúsculas: Ls não é ls.
Como resolver: confira a digitação. Use Tab para completar o nome do comando.
> e nada acontece
$ echo "Olá > >
O que aconteceu: você abriu aspas e não fechou. O > é o shell pedindo o resto do comando.
Como resolver: aperte Ctrl+C e digite de novo, fechando as aspas.
O que aconteceu: algum comando ainda está rodando, ou esperando você digitar algo (como uma senha ou um texto).
Como resolver: aperte Ctrl+C. Se a janela inteira do Ubuntu parou de responder, o problema é outro: veja Quando o Sistema Trava.
^V ao colar
O que aconteceu: você usou Ctrl+V, que no terminal tem outra função.
Como resolver: use Ctrl+Shift+V.
Exercícios
1. Esqueci o sudo
Você digitou apt update e recebeu erro de permissão. Complete para repetir o último comando com sudo:
2. Qual é o meu shell?
Complete o comando que mostra o shell em uso:
3. Os últimos comandos
Complete para ver o histórico de comandos:
4. Qual atalho busca um comando antigo no histórico?
5. O prompt é root@notebook:/etc#. O que isso indica?
6. Como copiar um texto selecionado no terminal?
Resumo
- Abra com Ctrl+Alt+T. O prompt
ana@notebook:~$diz quem, onde e se é root (#). - Tab completa nomes; Tab duas vezes lista as opções.
- ↑,
history,sudo !!e Ctrl+R reaproveitam comandos. - Ctrl+C cancela; copiar e colar usam Ctrl+Shift+C/V.
- Senhas não aparecem enquanto você digita. Se a tela inteira travar, existe o TTY (Ctrl+Alt+F3).