DEV Community

Cover image for Diferença entre Shell, Terminal, Console e CLI (Command Line Interface)
Alexandre Liberato
Alexandre Liberato

Posted on • Edited on

Diferença entre Shell, Terminal, Console e CLI (Command Line Interface)

TL:DR

Shell - Entrada para comunicação com o Kernel. Onde os comandos são executados.

Terminal - É o programa que roda um shell. Gnome Terminal, xTerm, iTerm2 por exemplo.

Console ou CLI (Command Line Interface) - Abstração usada para se referir a um terminal + shell ou console tty.

Shell

Imagem de um terminal, Gnome-Terminal, rodando o shell Bash.

É um programa utilizado para processar comandos e trazer os resultados do mesmo. Basicamente ele serve para interagirmos com o kernel do sistema operacional de forma mais abstrata, menos low-level.

Terminal

Imagem de um antigo terminal LSI (terminal físico)

É um programa que roda um shell. Outrora eram equipamentos com capacidade mínima de processamento onde eram realizadas conexões a um computador remoto. Para diferenciar basta se lembrar que terminal indica o ponto final de algo por exemplo, no caso onde acontecem a entrada e saída dos dados para o computador.

Console ou CLI (Command Line)

Foto do console de um avião com dezebas de pequenos botões

São abstrações que indicam a utilização de um terminal+shell. No Linux console pode ainda indicar terminais, 6 por padrão, implementados diretamente pelo kernel. Podemos acessá-los usando os atalhos CTRL + ALT + F/n, exemplo o /dev/tty1 pode ser acessado com CTRL + ALT + F1, enquanto o atalhos CTRL + ALT + F7 traz você de volta para o modo gráfico.

Bônus :)

Vamos entender a diferença entre Login Shell vs Interactive Shell vs Non-Interactive Shell.

Login Shell

É um shell usado para o login. Pode ser acessado por terminal ou ssh por exemplo. Ele executa arquivos mínimos de configuração para podermos utilizar o sistema. Outro exemplo é você acessar seu console 1 ou /dev/tty1 como nos exemplos acima.

Interactive Shell

É o shell que você executa, por exemplo após o login, como por exemplo o bash. Daí você me pergunta: “Ah mas eu não executei nada após o login, estou em um shell de login ou interativo?”, a resposta é que você está em um shell de login/interativo. Outro exemplo é abrir um novo terminal.

Non-Interactive Shell

É um shell que não tem interação com o usuário. É raro de encontrar e não convém ao nosso cenário no momento.

Por hoje é isso pessoal!

Obrigado pela visita, deixe seu like e siga para novos artigos sobre Desenvolvimento de Sistemas.

@feiler no Twitter

Saiba Mais

https://askubuntu.com/questions/506510/what-is-the-difference-between-terminal-console-shell-and-command-line

https://stackoverflow.com/questions/18186929/what-are-the-differences-between-a-login-shell-and-interactive-shell

Top comments (0)