Terminal vs. Shell [duplicado]

14

Possível duplicado:
Quais são as diferenças entre shell, console e terminal?

Provavelmente isso soa como uma pergunta estúpida, mas estou tendo muitos problemas para diferenciar claramente entre um shell (como Bourne ou bash) e o aplicativo Terminal no GNOME. 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?

Nicklas Olsen
fonte

Respostas:

15

O programa do 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.

user55325
fonte
8

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.

O ponto é: Em um ambiente gráfico (como GNOME ou 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, pois é o que muitos programas (linha de comando, texto, não GUI) esperam. Tudo isso é o trabalho do aplicativo Terminal GNOME.

Então você tem o shell (provavelmente o bash) e o terminal GNOME está envolvido. Para ver o que exatamente o terminal GNOME que você pode executar (Alt + F2) gnome-terminal, xterme rxvtno meio, e ver onde eles são diferentes e que eles têm em comum.

Roland Illig
fonte
1

Eu acho que o que você realmente está perguntando é qual é a diferença entre o console e um aplicativo de terminalxterm ?

Nesse caso, o console é local para a máquina, pode haver apenas um console. A saída do console é direcionada para o /dev/consoleque geralmente significa seu monitor. Um terminal, por outro lado, é realmente um emulador de terminal que remonta aos dias em que os mainframes eram tão grandes quanto as salas inteiras e você tinha usuários interagindo com terminais burros que eram remotos ao mainframe. Os terminais enviavam comandos do terminal através de uma linha serial para o 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 vinculado a uma pseudo ttyty /dev/pts#) e podemos usá-los remotamente e encaminhar sua conexão através de um canal SSH criptografado na Internet.

O console e um aplicativo de terminal invocam seus shells ao fazer login.

SiegeX
fonte
-2

O terminal é essencialmente um shell emulado em uma janela.

Se você quiser ver um shell real sem o Terminal, pressione Ctrl+ Alt+ F1e Ctrl+ Alt+ F8para voltar à interface gráfica.

digitxp
fonte
Um terminal não é nenhum tipo de shell.
Ignacio Vazquez-Abrams
@Dennis Cuidados para elaborar?
digitxp
Veja o comentário de Ignacio. Um terminal, quer se trate de uma consola do sistema ou gnome-terminal, xtermou massa é mais semelhante a um terminal físico (e é, portanto, um emulador ). Um shell é um software que, entre outras coisas, aceita entrada, processa e gera saída em um terminal.
Pausado até novo aviso.
@ Dennis Então, devo dizer "O terminal contém essencialmente um shell emulado dentro de uma janela gráfica".
usar o seguinte código
Um terminal não é necessariamente uma janela gráfica e um shell não está necessariamente em execução nele. E o shell não é emulado (poderia ser outro programa). O que você está pedindo é essencialmente o mesmo que o original. Veja a resposta aqui, que está muito perto de ser completa e é bastante precisa.
Pausado até novo aviso.