¿Qué es un TTY en Linux? (y cómo utilizar el comando tty)

¿Qué hace el comando tty? Imprime el nombre de la terminal que estás usando. TTY significa «teletipo». ¿Cuál es la historia detrás del nombre del comando? Eso requiere un poco más de explicación.

Teleimpresoras del siglo XIX

En las décadas de 1830 y 1840, las máquinas conocidas como teleimpresores fueron desarrollados. Estas máquinas podrían enviar mensajes mecanografiados «por el cable» a ubicaciones distantes. Los mensajes fueron escritos por el remitente en una especie de teclado. Fueron impresos en papel en el extremo de recepción. Fueron un paso evolutivo en telegrafía, que anteriormente se había basado en morse y códigos similares.

Los mensajes se codificaron y transmitieron, luego se recibieron, decodificaron e imprimieron. 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 tasa de baudios es nombrado. Su esquema de codificación de caracteres es anterior a ASCII por 89 años.

La codificación de Baudot finalmente se convirtió en lo más parecido a un estándar en la codificación de teleimpresores y fue adoptada por la mayoría de los fabricantes. El diseño de hardware original de Baudot tenía solo cinco teclas, similar a las teclas de un piano. Se pidió al operador que aprendiera una combinación de teclas particular para cada letra. Finalmente, el sistema de codificación Baudot se acopló a una distribución de teclado tradicional.

Para marcar ese avance, las máquinas se denominaron teletipos. Esto se redujo a teletipos y, finalmente, a TTY. Entonces ahí es donde obtenemos el acrónimo TTY de, pero ¿qué tiene que ver la telegrafía con la informática?

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 auge de la máquina de fax de la década de 1980.

  Cómo configurar las herramientas de desarrollo de Android en Linux

Las computadoras también estaban evolucionando. Se estaban volviendo capaces de interactuar con los usuarios en tiempo real y de dar soporte a 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 por 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 recibir los resultados. 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 escribieran, codificaran, enviaran, recibieran, decodificaran e imprimieran.

¿Qué le importaba al teletipo si el dispositivo en el otro extremo de la conexión no era otro teletipo? Mientras hablara el mismo idioma de codificación y pudiera recibir mensajes y enviar mensajes de vuelta, el teletipo era feliz.

Y, por supuesto, utilizó un teclado más o menos estándar.

Teletipos emulados por hardware

Los teletipos se convirtieron en el medio predeterminado para interactuar con las grandes computadoras mini y mainframe de esa época.

Finalmente fueron reemplazados por dispositivos que emulaban esas máquinas electromecánicas que usaban 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 funciones hasta ahora imposibles, como mover el cursor por la pantalla, borrar la pantalla, poner texto en negrita, etc.

los DEC VT05 fue un ejemplo temprano de un teletipo virtual, y un antepasado del famoso DEC VT100. Se vendieron millones de DEC VT100.

Teletipos emulados por software

En el entorno de escritorio de Linux y otros sistemas operativos similares a Unix, como macOS, la ventana de terminal y aplicaciones como término x y Consola son ejemplos de teletipos virtuales. Pero estos se emulan completamente en software. Se llaman pseudo-teletipos. Esto se redujo a PTS.

Y ahí es donde entra tty.

¿Qué nos puede decir tty?

En Linux, hay un multiplexor de pseudo-teletipo que maneja las conexiones de todos los pseudo-teletipos de ventana de terminal (PTS). El multiplexor es el maestro y el PTS son los esclavos. El multiplexor es direccionado por el kernel a través del archivo de dispositivo ubicado en / dev / ptmx.

  Cómo realizar un arranque dual de Arch Linux y Windows 11

El comando tty imprimirá el nombre del archivo de dispositivo que su pseudo-teletipo esclavo está usando para interactuar con el maestro. Y ese, efectivamente, es el número de su ventana de terminal.

Veamos qué informa tty para nuestra ventana de terminal:

tty

tty en una ventana de terminal

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), se interconecta con el multiplexor de pseudo-teletipo como un pseudo-teletipo (PTS). Y resulta ser el número cero.

La opción silenciosa

La opción -s (silenciosa) hace que tty no genere salida.

tty -s

tty -s en una ventana de terminal

Sin embargo, produce un valor de salida:

0: 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 comando incorrectos.
3: Se ha producido un error de escritura.

Es probable que esto sea más útil en scripts 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"

tty -s && echo

Como estamos ejecutando en una sesión TTY, nuestro código de salida es 0 y se ejecuta el segundo comando.

El que manda

Otros comandos pueden revelar su número TTY. El comando who mostrará información de todos los usuarios registrados, incluido usted.

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 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

quién y tty en una ventana de terminal

Acceder 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 hará que aparezca el mensaje de inicio de sesión de tty3.

consola tty3

Si inicia sesión y emite el comando tty, verá que está conectado a / dev / tty3.

Este no es un pseudo-teletipo (emulado en software); es un teletipo virtual (emulado en hardware). Está usando la pantalla y el teclado conectados a su computadora, para emular un teletipo virtual como solía hacer el DEC VT100.

  Cómo usar Shazam en el escritorio de Linux con SongRec

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.

consola tty6

Para volver a su entorno de escritorio gráfico, presione Ctrl + Alt + F2.

Si presiona Ctrl + Alt + F1, regresará al indicador de inicio de sesión de su sesión de escritorio gráfico.

En un momento, Ctrl + Alt + F1 hasta Ctrl + Alt + F6 abrirían las consolas TTY de pantalla completa, y Ctrl + Alt + F7 lo devolverían a su entorno de escritorio gráfico. Si está ejecutando una distribución de Linux anterior, este podría ser el comportamiento de su sistema.

Esto se probó en las versiones actuales de Manjaro, Ubuntu y Fedora y todos se comportaron así:

Ctrl + Alt + F1: lo regresa a la pantalla de inicio de sesión del entorno de escritorio gráfico.
Ctrl + Alt + F2: lo regresa 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 utilizan instalaciones de Linux únicamente desde la línea de comandos, y muchos servidores Linux están configurados de esta manera, tener varias consolas disponibles.

¿Alguna vez ha estado trabajando en una máquina Linux con un entorno de escritorio gráfico y algo provocó que su sesión se congelara? Ahora puede saltar a una de las sesiones de la consola TTY para poder intentar rectificar la situación.

Puede usar top y ps para intentar identificar la aplicación fallida, luego use kill para terminarla, o simplemente use shutdown para intentar cerrar con tanta elegancia como lo permita el estado de la computadora.

Tres pequeñas letras con mucha historia

El comando tty recibe su nombre de un dispositivo de finales del siglo XIX, apareció en Unix en 1971 y es parte de los sistemas operativos Linux y similares a Unix hasta el día de hoy.

El pequeño tiene una gran historia detrás de él.