O programa terminal é apenas uma interface gráfica para o shell. O shell é o que realmente lida com comandos e assim por diante; o programa do terminal apenas oferece uma maneira de interagir com o ambiente gráfico.
Isso provavelmente parece uma pergunta estúpida, mas estou tendo muitos problemas para diferenciar claramente entre um shell (como o Bourne ou o bash) e o aplicativo Terminal no GNOME. Eu percebo que ambos são completamente diferentes, mas não consigo encontrar uma resposta clara escrita em texto. Alguém poderia distinguir claramente entre os dois?
O shell é um programa típico do Unix. Ele lê comandos da entrada padrão e imprime algo na saída padrão. Isso é simples e bom.
Os pontos são: Em um ambiente gráfico (como o GNOME ou o KDE), um programa não pode simplesmente escrever texto diretamente na área de trabalho. Se os programas pudessem, isso rapidamente se tornaria uma bagunça e caos. Portanto, você precisa de um programa que forneça um espaço onde outros programas possam escrever seu texto. Esse programa também aceita pressionamentos de tecla do usuário e os converte em seqüências de bytes, já que é o que muitos programas (linha de comando, texto baseado, não GUI) esperam. Tudo isso é o trabalho do aplicativo Terminal do GNOME.
Então você tem o shell (provavelmente o bash), e em volta dele está o terminal GNOME. Para ver exatamente o que o terminal GNOME faz, você pode executar (Alt + F2) gnome-terminal
, xterm
e rxvt
entre e ver onde eles são diferentes e o que eles têm em comum.
Eu acho que o que você está realmente perguntando é qual é a diferença entre o console e um aplicativo terminal como xterm
?
Se sim, o console é local para a máquina, só pode haver um console. A saída do console é direcionada para /dev/console
, o que geralmente significa seu monitor. Um terminal, por outro lado, é na verdade um emulador de terminal que remete aos dias em que os mainframes eram tão grandes quanto salas inteiras e você tinha usuários interagindo com terminais idiotas que eram remotos para o mainframe. Os terminais enviariam comandos de terminal por uma linha serial ao mainframe para interagir com ele. Hoje em dia, ainda usamos terminais, mas eles são emulados para que possamos usar mais de um (cada um ligado a um pseudo tty como /dev/pts#
) e podemos até usá-los remotamente e encaminhar sua conexão por um canal SSH criptografado ao longo do internet.
Tanto o console quanto o aplicativo do terminal invocam seu (s) shell (s) no login.
O Terminal é essencialmente um shell emulado em uma janela.
Se você quiser ver um shell real sem Terminal, tecle Ctrl + Alt + F1 e Ctrl + Alt + F8 para voltar para a interface gráfica.