Terminal, shell e emuladores
Esta aula esclarece a diferença entre terminal e shell, apresenta emuladores de terminal, explica o prompt e como funcionam as sessões no Linux. O objetivo é que o aluno compreenda o ambiente onde os comandos são executados.
Nesta aula, vamos entender os conceitos fundamentais do ambiente de linha de comando no Linux: terminal, shell, emuladores, prompt e sessões. Esses termos são frequentemente usados de forma intercambiável, mas possuem significados distintos que são importantes para o aprendizado de shell script.
O que é um terminal vs shell
Originalmente, um terminal era um dispositivo físico (um monitor e teclado) conectado a um computador central (mainframe). Hoje, usamos emuladores de terminal (programas que simulam esse hardware). O shell é o programa que interpreta os comandos digitados no terminal. O shell é o ambiente onde você executa comandos e scripts. Exemplos de shell: Bash, Zsh, Fish. O Bash é o shell padrão na maioria das distribuições Linux.
# Verifique qual shell está em uso
echo $SHELL
# Liste shells disponíveis no sistema
cat /etc/shellsEmuladores
Emuladores de terminal são programas que fornecem uma interface gráfica para interagir com o shell. Exemplos populares: GNOME Terminal, Konsole, Terminator, xterm, iTerm2 (macOS), Windows Terminal (WSL). Eles oferecem recursos como abas, fontes customizáveis, cores e suporte a múltiplas sessões.
# Abrir um novo terminal (exemplo no GNOME)
gnome-terminal
# Abrir com um comando específico
gnome-terminal -- bash -c "ls; exec bash"Prompt
O prompt é a sequência de caracteres exibida pelo shell indicando que está pronto para receber comandos. Normalmente termina com $ para usuários comuns e # para root. O prompt pode ser customizado através da variável PS1. Exemplo de prompt padrão: usuario@maquina:~$.
# Exibir o prompt atual
echo $PS1
# Customizar o prompt (exemplo simples)
PS1='\u@\h:\w\$ 'Sessões
Uma sessão é uma instância do shell em execução. Quando você abre um terminal, inicia uma sessão. Sessões podem ser aninhadas (ex: dentro de um script) ou gerenciadas com ferramentas como screen e tmux, que permitem manter sessões ativas mesmo após desconectar. Cada sessão tem seu próprio histórico, variáveis e processos.
# Iniciar uma nova sessão com bash
bash
# Sair da sessão atual
exit
# Usar tmux (se instalado)
tmux new -s minha_sessao
# Desanexar: Ctrl+b d
# Reanexar: tmux attach -t minha_sessaoReferências
Exercícios
- Explique a diferença entre terminal e shell.Terminal é o dispositivo ou programa que fornece a interface para entrada e saída de texto. Shell é o programa que interpreta os comandos e interage com o sistema operacional. O terminal executa o shell, mas são entidades separadas.
- Qual comando exibe o shell atualmente em uso?
echo $SHELL - Cite dois emuladores de terminal comuns no Linux.GNOME Terminal e Konsole (ou xterm, Terminator, etc.).
- O que significa o símbolo
$no prompt? E o#?$indica que o usuário é comum;#indica que o usuário é root (superusuário). - Qual comando você usaria para manter uma sessão ativa mesmo após desconectar?Usar o comando
tmuxouscreen. Exemplo:tmux new -s minha_sessao.