¿Qué hace el tty
comando do? Imprime el nombre del terminal que está utilizando. TTY significa “teletipo”. ¿Cuál es la historia detrás del nombre del comando? Eso requiere un poco más de explicación.
¿De qué vamos a hablar?
Teleimpresores de la década de 1800
En las décadas de 1830 y 1840, las máquinas conocidas como Teleimpresores se desarrollaron. Estas máquinas podrían enviar mensajes mecanografiados “por el cable” a lugares distantes. Los mensajes fueron escritos por el remitente en una especie de teclado. Se imprimieron en papel en el extremo receptor. Fueron un paso evolutivo en telegrafía, en la que anteriormente se había basado Morse y códigos similares.
Los mensajes se codificaban y transmitían, luego se recibían, decodificaban e imprimían. Se utilizaron varias técnicas para codificar y decodificar los mensajes. El más famoso, y uno de los más prolíficos, fue patentado en 1874 por Émile Baudot, para quien el Velocidad se nombra. Su esquema de codificación de caracteres es anterior ASCII por 89 años.
La codificación de Baudot eventualmente se convirtió en lo más parecido a un estándar en codificación de teleimpresora, y fue adoptada por la mayoría de los fabricantes. El diseño de hardware original de Baudot tenía solo cinco teclas, similares a las teclas de piano. Se requería que el operador aprendiera una combinación de teclas particular para cada letra. Eventualmente, el sistema de codificación Baudot se acopló a una distribución de teclado tradicional.
Para marcar ese avance, las máquinas fueron nombradas teletipos. Esto se acortó a teletipos y, finalmente, a TTYs. Así que ahí es donde obtenemos el acrónimo TTY de, pero ¿qué tiene que ver la telegrafía con la computación?
ASCII y Télex
Cuando ASCII llegó en 1963, fue adoptado por los fabricantes de teletipos. A pesar de la invención y el uso generalizado del teléfono, los teletipos seguían siendo fuertes.
Télex era una red mundial de teletipos que permitía enviar mensajes escritos a todo el mundo. Fueron el principal medio de transmisión de mensajes escritos en el período posterior a la Segunda Guerra Mundial hasta el boom de la máquina de fax de la década de 1980.
Las computadoras también estaban evolucionando. Se estaban volviendo capaces de interactuar con los usuarios en tiempo real y de soportar múltiples usuarios. El antiguo método de trabajo por lotes se volvió insuficiente. La gente no quería esperar 24 horas o más para obtener sus resultados. Hacer pilas de tarjetas perforadas y esperar durante la noche los resultados ya no era aceptable.
Las personas necesitaban un dispositivo que les permitiera ingresar instrucciones y obtener resultados que se les enviaran. La gente quería eficiencia.
El teletipo reutilizado
El teletipo era el candidato perfecto como dispositivo de entrada/salida. Después de todo, era un dispositivo diseñado para permitir que los mensajes se escribieron, codificaron, enviaron, recibieron, decodificaron e imprimieron.
¿Qué le importaba al teletipo si el dispositivo en el otro extremo de la conexión no era otro teletipo? Mientras hablara el mismo lenguaje de codificación y pudiera recibir mensajes y enviar mensajes de vuelta, el teletipo estaba feliz.
Y, por supuesto, usaba un teclado más o menos estándar.
Teletipos emulados por hardware
Los teletipos se convirtieron en el medio predeterminado de interactuar con las grandes computadoras mini y mainframe de esa época.
Finalmente fueron reemplazados por dispositivos que Emulado aquellas máquinas electromecánicas que utilizan electrónica. Estos tenían Tubos de rayos catódicos (CRT) en lugar de rollos de papel. No temblaron al entregar respuestas desde la computadora. Permitían una funcionalidad hasta ahora imposible, como mover el cursor alrededor de la pantalla, borrar la pantalla, poner en negrita el texto, etc.
El DIC VT05 fue un ejemplo temprano de un teletipo virtual, y un antepasado del famoso DIC VT100. Se vendieron millones de DEC VT100.
Teletipos emulados por software
En el entorno de escritorio de Linux y otros sistemas operativos tipo Unix como macOS, la ventana del terminal y aplicaciones como x-término y Konsole son ejemplos de teletipos virtuales. Pero estos se emulan completamente en software. Se llaman pseudo-teletipos. Esto se acortó a PTS.
Y ahí es donde tty
entra.
¿Qué nos puede decir?
En Linux, hay un multiplexor pseudo-teletipo que maneja las conexiones de todos los pseudo-teletipos de la ventana de terminal (PTS). El multiplexor es el maestro, und los PTS son los esclavos. El multiplexor es abordado por el kernel a través del archivo de dispositivo ubicado en /dev/ptmx.
El tty
imprimirá el nombre del archivo de dispositivo que su esclavo pseudo-teletipo está utilizando para interactuar con el maestro. Y ese, efectivamente, es el número de su ventana de terminal.
Veamos qué tty
informes para nuestra ventana de terminal:
tty
La respuesta muestra que estamos conectados al archivo del dispositivo en /dev/pts/0.
Nuestra ventana de terminal, que es una emulación de software de un teletipo (TTY), está integrada con el multiplexor pseudoteletipo como un pseudoteletipo (PTS). Y resulta ser el número cero.
La opción silenciosa
El -s
Causas de la opción (silenciosa) tty
para no generar ningún resultado.
tty -s
Lo que hace es producir un valor de salida, sin embargo:
- : si la entrada estándar proviene de un dispositivo TTY, emulado o físico.
- 1: si la entrada estándar no proviene de un dispositivo TTY.
- 2: Error de sintaxis, se utilizaron parámetros de línea de comandos incorrectos.
- 3: Se ha producido un error de escritura.
Es probable que esto sea más útil en el scripting Bash. Pero, incluso en la línea de comandos, podemos demostrar cómo ejecutar un comando solo si se está ejecutando en una ventana de terminal (una sesión TTY o PTS).
tty -s && echo "In a tty"
Debido a que nos estamos ejecutando en una sesión TTY, nuestro código de salida es 0 y se ejecuta el segundo comando.
El comando de los que
Otros comandos pueden revelar su número TTY. El who
mostrará información para todos los usuarios que hayan iniciado sesión, incluido usted mismo.
Alec y Mary están conectados de forma remota a la computadora Linux. Están conectados a PTS uno y dos.
El usuario dave se muestra como conectado a “:0”.
Esto representa la pantalla y el teclado conectados físicamente a la computadora. Aunque la pantalla y el teclado son dispositivos de hardware, todavía están conectados al multiplexor a través de un archivo de dispositivo. tty
revela que es /dev/pts/2.
who
tty
Acceso a un TTY
Puede acceder a una sesión TTY de pantalla completa manteniendo presionadas las teclas Ctrl + Alt y presionando una de las teclas de función.
Ctrl + Alt + F3 mostrará el mensaje de inicio de sesión de tty3.
Si inicia sesión y emite el tty
, verá que está conectado a /dev/tty3.
Esto no es un pseudo-teletipo (emulado en software); es un teletipo virtual (emulado en hardware). Es utilizar la pantalla y el teclado conectados a su computadora, para emular un teletipo virtual como solía hacer el DEC VT100.
Puede usar las teclas de función Ctrl + Alt con las teclas de función F3 a F6 y tener cuatro sesiones TTY abiertas si lo desea. Por ejemplo, puede iniciar sesión en tty3 y presionar Ctrl + Alt + F6 para ir a tty6.
Para volver a su entorno de escritorio gráfico, presione Ctrl+Alt+F2.
Al presionar Ctrl + Alt + F1, volverá al mensaje de inicio de sesión de su sesión de escritorio gráfico.
En un momento, Ctrl + Alt + F1 a Ctrl + Alt + F6 abriría las consolas TTY de pantalla completa, y Ctrl + Alt + F7 lo devolvería a su entorno de escritorio gráfico. Si está ejecutando una distribución de Linux anterior, esta podría ser la forma en que se comporta su sistema.
Esto se probó en actual versiones de Manjaro, Ubuntu y Fedora y todos se comportaron así:
- Ctrl+Alt+F1: Le devuelve a la pantalla de inicio de sesión del entorno de escritorio gráfico.
- Ctrl+Alt+F2: Le devuelve al entorno de escritorio gráfico.
- Ctrl+Alt+F3: Abre TTY 3.
- Ctrl+Alt+F4: Abre TTY 4.
- Ctrl+Alt+F5: Abre TTY 5.
- Ctrl+Alt+F6: Abre TTY 6.
Tener acceso a estas consolas de pantalla completa permite a las personas que usan instalaciones de Linux solo de línea de comandos, y muchos servidores Linux están configurados de esta manera, tener múltiples consolas disponibles.
¿Alguna vez ha estado trabajando en una máquina Linux con un entorno de escritorio gráfico y algo hizo que su sesión se congelara? Ahora puede saltar a una de las sesiones de la consola TTY para que pueda intentar rectificar la situación.
Puedes usar top
y ps
Para intentar identificar la aplicación con errores y, a continuación, utilice kill
para terminarlo, o simplemente usar shutdown
para intentar cerrar con la mayor gracia que permita el estado del equipo.
Tres pequeñas letras con mucha historia
El tty
Command recibe su nombre de un dispositivo de finales de 1800, apareció en Unix en 1971, y es parte de Linux y sistemas operativos similares a Unix hasta el día de hoy.
El pequeño muchacho tiene todo un cuento detrás de él.