Saltar al contenido

¿Cuál es la diferencia exacta entre un ‘terminal’, un ‘shell’, un ‘tty’ y una ‘consola’?

Intenta comprender el código de forma correcta previamente a aplicarlo a tu trabajo si tdeseas aportar algo puedes decirlo en los comentarios.

Solución:

Un terminal está al final de un cable eléctrico, un caparazón es el hogar de una tortuga, tty es una abreviatura extraña y una consola es una especie de gabinete.

Bueno, etimológicamente hablando, de todos modos.

En terminología de Unix, la respuesta corta es que

  • terminal = tty = entorno de entrada / salida de texto
  • consola = terminal físico
  • shell = intérprete de línea de comando

Consola, terminal y tty están estrechamente relacionados. Originalmente, se referían a una pieza de equipo a través del cual se podía interactuar con una computadora: en los primeros días de Unix, eso significaba un dispositivo de estilo teletipo que se asemeja a una máquina de escribir, a veces llamado teletipo o “tty” en taquigrafía. El nombre “terminal” vino desde el punto de vista electrónico y el nombre “consola” desde el punto de vista del mobiliario. Muy temprano en la historia de Unix, los teclados electrónicos y las pantallas se convirtieron en la norma para los terminales.

En terminología de Unix, un tty es un tipo particular de archivo de dispositivo que implementa una serie de comandos adicionales (ioctls) más allá de la lectura y la escritura. En su significado más común, Terminal es sinónimo de tty. Algunos ttys son proporcionados por el kernel en nombre de un dispositivo de hardware, por ejemplo, con la entrada proveniente del teclado y la salida yendo a una pantalla en modo texto, o con la entrada y salida transmitidas a través de una línea serial. Otros ttys, a veces llamados pseudo-ttys, se proporcionan (a través de una fina capa de núcleo) mediante programas llamados emuladores de terminal, como Xterm (que se ejecuta en el sistema X Window), Screen (que proporciona una capa de aislamiento entre un programa y otro terminal), Ssh (que conecta un terminal en una máquina con programas en otra máquina), Expect (para terminal de scripting interacciones), etc.

La palabra terminal también puede tener un significado más tradicional de dispositivo a través del cual se interactúa con una computadora, generalmente con un teclado y una pantalla. Por ejemplo, una terminal X es una especie de cliente ligero, una computadora de propósito especial cuyo único propósito es manejar un teclado, pantalla, mouse y ocasionalmente otros periféricos de interacción humana, con las aplicaciones reales ejecutándose en otra computadora más poderosa.

A consola es generalmente un terminal en el sentido físico que, por alguna definición, es el terminal primario conectado directamente a una máquina. La consola aparece para el sistema operativo como un tty (implementado en el kernel). En algunos sistemas, como Linux y FreeBSD, la consola aparece como varios ttys (especiales key las combinaciones cambian entre estos ttys); Para confundir las cosas, el nombre dado a cada tty en particular puede ser “consola”, “consola virtual”, “terminal virtual” y otras variaciones.

Consulte también ¿Por qué una Terminal Virtual es “virtual” y qué / por qué / dónde está la Terminal “real” ?.


A cascarón es la interfaz principal que ven los usuarios cuando inician sesión, cuyo propósito principal es iniciar otros programas. (No sé si la metáfora original es que el shell es el entorno doméstico del usuario, o que el shell es en lo que se ejecutan otros programas).

En círculos de Unix cascarón se ha especializado para significar un shell de línea de comandos, centrado en ingresar el nombre de la aplicación que se desea iniciar, seguido de los nombres de los archivos u otros objetos sobre los que la aplicación debería actuar, y presionar Enter key. Otros tipos de entornos no utilizan la palabra “shell”; por ejemplo, los sistemas de ventanas involucran “administradores de ventanas” y “entornos de escritorio”, no un “shell”.

Hay muchas shells de Unix diferentes. Los shells populares para uso interactivo incluyen Bash (el predeterminado en la mayoría de las instalaciones de Linux), zsh (que enfatiza el poder y la personalización) y fish (que enfatiza la simplicidad).

Los shells de línea de comandos incluyen construcciones de control de flujo para combinar comandos. Además de escribir comandos en un indicador interactivo, los usuarios pueden escribir scripts. Los shells más comunes tienen una sintaxis común basada en Bourne_shell. Cuando se habla de “programación de shell”, Casi siempre se da a entender que el caparazón es un caparazón de estilo Bourne. Algunos shells que se utilizan a menudo para la creación de scripts pero que carecen de funciones interactivas avanzadas incluyen el shell Korn (ksh) y muchas variantes de ash. Prácticamente cualquier sistema similar a Unix tiene un shell de estilo Bourne instalado como /bin/sh, generalmente ash, ksh o bash.

En la administración del sistema Unix, un usuario cascarón es el programa que se invoca cuando inician sesión. Las cuentas de usuario normales tienen un shell de línea de comandos, pero los usuarios con acceso restringido pueden tener un shell restringido o algún otro comando específico (por ejemplo, para cuentas de sólo transferencia de archivos).


La división del trabajo entre el terminal y el caparazón no es del todo obvia. Estas son sus principales tareas.

  • Entrada: el terminal se convierte keys en secuencias de control (p. ej. Izquierdae[D). El shell convierte las secuencias de control en comandos (p. Ej. e[Dbackward-char).
  • El shell proporciona la edición de línea, el historial de entrada y la finalización.
    • En su lugar, el terminal puede proporcionar su propia edición de línea, historial y finalización, y solo enviar una línea al shell cuando esté listo para ejecutarse. El único terminal común que opera de esta manera es M-x shell en Emacs.
  • Salida: el shell emite instrucciones como “mostrar foo”,“ Cambiar el color de primer plano a verde ”,“ mover el cursor a la siguiente línea ”, etc. El terminal actúa según estas instrucciones.
  • El indicador es puramente un concepto de shell.
  • El shell nunca ve la salida de los comandos que ejecuta (a menos que sea redirigido). El historial de salida (scrollback) es puramente un concepto de terminal.
  • El terminal proporciona la función de copiar y pegar entre aplicaciones (generalmente con el mouse o key secuencias como control+Cambio+V o Cambio+Insertar). El shell también puede tener su propio mecanismo interno de copiar y pegar (p. Ej. Meta+W y control+Y).
  • El control del trabajo (ejecutar programas en segundo plano y administrarlos) lo realiza principalmente el shell. Sin embargo, es el terminal el que maneja key combinaciones como control+C para matar el trabajo de primer plano y control+Z suspenderlo.

A Terminal o un consola es una pieza de hardware, mediante la cual un usuario puede interactuar con un host. Básicamente, un teclado junto con una pantalla de texto.
Hoy en día casi todos los terminales y consolas son “virtuales”.

El archivo que representa una terminal se denomina tradicionalmente tty expediente. Si busca en el directorio “/ dev” de un sistema UNIX, encontrará muchos tty archivos conectados a consolas virtuales (por ejemplo, tty1 en Linux), terminales virtuales (por ejemplo, pts / 0) o hardware conectado físicamente (por ejemplo, ttyS0 es el terminal en serie físico, si lo hay, conectado al primer puerto serie del host).

A consola debe ser una pieza de hardware físicamente conectada (o parte de) el host. Tiene un papel especial en el sistema: es el punto principal para acceder a un sistema para el mantenimiento y algunas operaciones especiales se pueden realizar solo desde una consola (por ejemplo, ver single user mode). A Terminal puede ser, y suele ser, una pieza remota de hardware.

Por último, pero no menos importante, un cascarón es un programa especial que interactúa con un usuario a través de un controlando tty y ofrece al usuario la forma de ejecutar otros programas (por ejemplo, bash, csh, tcsh).

A emulador de terminal es un programa que emula un terminal físico (por ejemplo, xterm, gnome-terminal, minicom).

Entonces, cuando miras a una “ventana de texto” en tu sistema Linux (bajo X11) estás buscando: a emulador de terminal, conectado a un Terminal virtual, identificado por un tty archivo, dentro del cual se ejecuta un cascarón.

BREVE explicación:

La consola es una terminal. Un sistema tiene una consola y potencialmente múltiples terminales. La consola suele ser la interfaz principal para administrar una computadora, por ejemplo, mientras aún se está iniciando.

Un terminal es una sesión que puede recibir y enviar entradas y salidas para programas de línea de comandos. La consola es un caso especial de estos.

Un TTY es esencialmente un pseudodispositivo, llámelo un recurso del kernel, que los procesos utilizan para acceder a una terminal específica. Los TTY pueden estar vinculados a hardware, como un puerto serie, o pueden ser virtuales, por ejemplo, creados cuando un usuario inicia sesión a través de una red.

El shell es un programa que se utiliza para controlar y ejecutar programas. A menudo se utiliza de forma interactiva, a través de una terminal. Existen varios programas Shell, siendo Bash posiblemente el shell más utilizado en la actualidad. Otros shells, sin ningún orden en particular, incluyen Bourne Shell, C-shell, Dash, Tsch, Ksh y el cada vez más popular zsh. Hay muchos más.

Cuando tiene una GUI, puede usar un programa de terminal para dibujar un bonito borde redimensionable, agregar barras de desplazamiento y formatear el texto, etc., para una sesión de terminal. A menudo, estos se denominan emuladores de terminal y, a veces, pueden manejar varias sesiones a través de un concepto TAB. Un emulador de terminal a menudo inicia un Shell para permitirle trabajar de forma interactiva en una línea de comandos.

Comentarios y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *