¿Son iguales terminal y shell?


29

Sé que esto puede sonar tonto, pero solo quería saber si realmente hay una diferencia entre las dos palabras utilizadas en el mundo Linux. Sé que Shell es una interfaz de línea de comandos y tiene muchas variantes como Bash, Korn, etc. Y también sé que Ctrl + Alt + T lanza un terminal en Ubuntu. Solo quiero conectar estos dos puntos.

¿Significa que el terminal es la ventana que se abre y el shell es el programa que se ejecuta detrás para interpretar los comandos escritos en la ventana? ¿O son iguales en donde terminal es un término genérico utilizado para abstraer los conceptos de Shell, etc.?

¿Qué es lo que diferencia exactamente las dos palabras?

Respuestas:


30

El emulador de terminal (a menudo llamado terminal) es "solo la ventana", sí. Ejecuta un programa basado en texto, que por defecto es su shell de inicio de sesión (que es bash en Ubuntu). Cuando escribe caracteres en la ventana, el terminal dibuja estos caracteres en la ventana además de enviarlos al stdin del shell (u otro programa). Los caracteres que el shell genera en stdout y stderr se envían al terminal, que a su vez dibuja estos caracteres en la ventana.

Entonces, sí, el shell y el emulador de terminal son programas completamente separados, y ambos se pueden usar sin el otro.


2
¿Cómo puedes usar shell sin terminal?
Koray Tugay

55
@KorayTugay, cuando ejecuta un script de shell desde cron o mediante un iniciador de escritorio (donde no ha marcado "ejecutar en terminal"), está utilizando un shell sin terminal.
geirha


6

Sí, el emulador de terminal y el shell son dos programas diferentes. Como ya sabe, un ejemplo de la diferencia es que el lanzamiento de una ventana de terminal puede ejecutar diferentes shells dependiendo de lo que haya configurado (bash, tcsh, ksh, ash, ¡incluso python!).

Otra diferencia es que hay más emuladores de terminal que solo los predeterminados: gnome-terminal, varias variedades de xterm, konsole (para KDE), etc. (ver: http://www.howtogeek.com/howto/ubuntu/set- the-default-terminal-emulator-on-ubuntu-linux / ). Cualquier shell puede ejecutarse en cualquiera de estos emuladores de terminal, sin mucha dificultad.

Una tercera diferencia es que, además de ejecutar comandos de shell, también puede iniciar ciertas aplicaciones interactivas en su emulador de terminal, y se ejecutarán en la misma ventana (y seguir confiando en el mismo programa de emulador de terminal para manejar los gráficos reales), como el editor de texto vim, el RPG de nethack y otros. Si lo desea, puede configurar un perfil en su emulador de terminal para iniciar nethack, por ejemplo, automáticamente cuando abre una nueva pestaña; sin shell involucrado, pero el emulador de terminal sigue siendo el mismo programa.

Una cuarta diferencia es que puede realizar inicios de sesión remotos, utilizando un programa como ssh, desde una ventana de terminal. En este caso, su shell (o cualquier programa que ejecute de forma remota) se está ejecutando en otra computadora, y el programa ssh lo conecta al programa emulador de terminal local que se ejecuta en su máquina que maneja gráficos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.