Terminal, Console e Shell

Terminal, Console e Shell

Command Line Conca

Nesse artigo vou explorar o significado de alguns termos que costumam aparecem bastante nesse contexto de linhas de comando que são: terminal, console, shell e linha de comando.

terminal

O terminal é um dispositivo utilizado para comunicação entre o usuário e o computador, geralmente utilizando formato de texto.

Antigamente eram utiizados dispositivos físicos como por exemplo o VT100 que era um vídeo terminal, com um teclado e tela, que eram apenas dispositivos de entrada e saída conectados em grandes computadores que executavam o processamento de fato.

DEC VT100 terminal transparent

Existiam também, antes dos dispositivos com telas, alguns terminais que pareciam máquinas de escrever eletro-mecânicas que eram chamados de TeleTypewriters. Eles eram utilizados para envio de mensagens remotas antes dos computadores existirem, e depois foram adaptados para uso em computadores.

Esses dispositivos deram origem à sigla tty que ainda é bastante utilizada nos dias de hoje.

WACsOperateTeletype.jpg

IBM 2741 Communications Terminal

Hoje quando utilizamos o nome terminal, geralmente estamos nos referindo à softwares emuladores de terminal, como por exemplo: xterm, gnome terminal, terminator, kitty, alacritty etc. Esses softwares simulam o comportamento dos antigos terminais físicos.

gnome-terminal

console

O termo console se refere ao equipamento físico (ou painel de controle) diretamente conectado ao computador, utilizado para operação do mesmo, e também pode ser um terminal físico.

IBM 1620 Model 1

Nas distribuições Linux atuais existem alguns consoles virtuais, que podem ser acessados utilizando algumas das teclas de atalho de Ctrl-Alt-F1 a Ctrl-Alt-F7.

No Ubuntu 22.10 desktop por exemplo, Ctrl-Alt-F1 está associado à tela de login e Ctrl-Alt-F2 à sessão gráfica do usuário. Das teclas Ctrl-Alt-F3 a Ctrl-Alt-F6 os virtual consoles (também chamados de tty) podem ser acessados.

virtual-console-tty

shell

Shell são programas interpretadores de comandos, que recebem os comandos do usuário através do terminal. Os comandos são executados e a saída dos mesmos por padrão também é direcionada ao terminal para que o usuário visualize os resultados.

O shell mais comum, facilmente encontrado em servidores Linux, é o Bash.

Outro shell bastante comum em workstations é o zsh. É o que eu mais utilizo, em conjunto com o Oh My Zsh, que possui vários plugins e customizações.

CLI e linha de comando

CLI significa Command Line Interface (interface de linha de comando).

É um tipo de interface de aplicação onde ela apresenta ao usuário um prompt e aguarda que o usuário digite comandos. A parte onde o usuário digita é chamada de linha de comando.

shell-prompt

Ao enviar os comandos, a aplicação os interpreta, executa e exibe os resultados ao usuário.

Os shells Linux são aplicações que implementam esse tipo de interface.

conclusão

Os termos, apesar de estarem relacionados, as vezes até se confundirem, possuem diferenças.

Eles também tem uma forte relação com a história da evolução dos computadores.

referências