¿Qué hace el comando tty de Linux? Muestra el nombre del terminal que está utilizando.
Origen de Linux tty
¿Cuál es el origen del término “tty”? Bueno, eso es un poco más difícil de explicar…
Teleimpresoras de antaño
Durante las décadas de 1830 y 1840, se desarrollaron máquinas llamadas teleimpresoras. Estos dispositivos podrían transmitir mensajes escritos “por el cable” a otros lugares. El remitente usó un dispositivo similar a un teclado para escribir el mensaje, y se imprimió en papel en el extremo receptor. Fueron un paso evolutivo en la telegrafía, que anteriormente dependía de Morse.
Los mensajes fueron encriptados y enviados, luego decodificados e impresos. Fueron codificados usando una variedad de técnicas. El más famoso, así como uno de los más prolíficos, fue patentado en 1874 por Émile Baudot, de quien recibe su nombre la “velocidad de baudios”. Su método de codificación de caracteres precedió a ASCII por 89 años.
La codificación de Baudot finalmente se convirtió en el estándar de facto para la codificación de teleimpresores y fue adoptada por la mayoría de los fabricantes. El diseño de hardware original de Baudot constaba de solo cinco teclas, similar al piano. Para cada letra, el operador debía memorizar una secuencia de teclas específica. El sistema de codificación Baudot se vinculó más tarde con un diseño de teclado tradicional.
Para conmemorar ese progreso, las máquinas fueron denominadas teletipos. La palabra teletipos se abrevió a TTY, que finalmente se convirtió en su nombre común. Entonces, ¿cuál es el trato con la telegrafía y las computadoras?
ASCII y Télex
Los fabricantes de teletipos lo adoptaron en 1963 y se convirtió en el estándar de la industria para la transmisión de texto. A pesar de la invención y el uso generalizado del teléfono, los teletipos aún prevalecían.
Telex era una red mundial de teletipos que permitía enviar comunicaciones escritas a todo el mundo. Fue el principal medio para enviar información escrita durante la era posterior a la Segunda Guerra Mundial hasta el auge de las máquinas de fax en la década de 1980.
Las computadoras también estaban mejorando. Pudieron interactuar con los usuarios finales en tiempo real y apoyar a muchas personas. El antiguo enfoque de trabajo por lotes resultó insuficiente. La gente no quería esperar 24 horas o más para obtener sus resultados. Hacer montones de tarjetas perforadas y esperar toda la noche los resultados ya no era aceptable.
El advenimiento de las computadoras y el desarrollo de una nueva tecnología ha creado la necesidad de un software que permita a los usuarios enviar y recibir datos. Queríamos eficiencia.
El teletipo reutilizado
El teletipo era un candidato ideal para un dispositivo de entrada/salida porque era una máquina que permitía escribir, codificar, transmitir, recibir, decodificar e imprimir mensajes.
Al teletipo no le importaba si el dispositivo en el otro extremo del enlace no era otro teletipo. El teletipo estaba bien siempre que pudiera hablar el mismo lenguaje de codificación. Utilizaba un teclado más o menos estándar con un diseño ligeramente alterado.
Teletipos emulados por hardware
Los teletipos se convirtieron en la forma de facto de interactuar con las grandes computadoras mini y mainframe de esa época, reemplazando a las máquinas de telégrafo.
Estos finalmente fueron reemplazados por dispositivos que los simulaban usando electrónica, con tubos de rayos catódicos (CRT) en lugar de rollos de papel. No temblaron mientras entregaban las respuestas desde la computadora. Habilitaron funciones que antes eran imposibles, como mover el cursor por la pantalla, borrar la pantalla y texto en negritaentre otras cosas.
El DEC VT05 fue uno de los primeros teletipos virtuales y su descendiente es el renombrado DEC VT100. El DEC VT100 ha vendido millones de unidades.
Teletipos emulados por software
La ventana de terminal y aplicaciones como x-term y Konsole son teletipos virtuales en el entorno de escritorio de Linux y otros sistemas operativos similares a Unix, como macOS. Sin embargo, son completamente simulados. Se llaman teletipos falsos. El acrónimo se acortó a PTS.
Y ahí es donde entra el comando tty de Linux.
Hablando de MacOS, ¿te gustaría instalar Linux en tu iPad?
¿Qué puede hacer tty en Linux?
Hay un “multiplexor de pseudo-teletipo” en Linux que maneja todas las conexiones PTS de la ventana de terminal. El maestro es el multiplexor y los PTS son sus esclavos. El núcleo se comunica con el multiplexor a través de su archivo de dispositivo en /dev/ptmx
El comando tty imprimirá el nombre del archivo del dispositivo que su esclavo de pseudo-teletipo está usando para interactuar con el maestro. Y ese, efectivamente, es el número de su ventana de terminal.
Veamos lo que informa el tty de Linux:
tty
La respuesta muestra que estamos conectados al archivo del dispositivo en /dev/pts/0.
La ventana de terminal, que es una imitación de software de un teletipo, está vinculada al multiplexor de pseudo-teletipo como un PTS. Y es cero.
La opción silenciosa
La opción -s (silencio) hace que tty no genere ningún resultado.
tty -s
Produce un valor de salida si:
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 usaron parámetros de línea de comando incorrectos.
3: Se ha producido un error de escritura.
Esto será más útil en scripts de Bash. Sin embargo, incluso en la línea de comandos, podemos mostrarle cómo ejecutar un comando si está en una ventana de terminal (una sesión TTY o PTS).
tty -s && echo "In a tty"
Debido a que estamos ejecutando una sesión TTY, nuestro código de salida es 0 y se ejecuta el segundo comando.
Relacionado: debe consultar estos 189 comandos de terminal de Linux
el que manda
El comando “quién” mostrará una lista de todos los usuarios registrados. User2 y User3 están conectados de forma remota a la computadora Linux. Están conectados a PTS uno y dos. El Usuario1 se muestra como conectado a “:0”. El archivo de dispositivo de la pantalla y el teclado está conectado al multiplexor de la computadora. Aunque la pantalla y el teclado son dispositivos de hardware, todavía están vinculados al multiplexor a través de un archivo de dispositivo. tty indica que es /dev/pts/2.
who
Acceso a un TTY
Si mantiene presionadas las teclas Ctrl+Alt y presiona una de las teclas de función, puede acceder a una sesión de TTY de pantalla completa. Ctrl+Alt+F3 abrirá el indicador de inicio de sesión de tty3. Si inicia sesión y ejecuta el comando tty, verá que está conectado a /dev/tty3.
Este no es un teletipo falso (emulado en software); es un teletipo virtual (emulado en hardware). Está emulando un teletipo virtual, como el DEC VT100, con la pantalla y el teclado conectados a su computadora. Si lo desea, puede establecer cuatro sesiones TTY de Linux utilizando teclas de función con la combinación Ctrl+Alt. Si selecciona esta opción, por ejemplo, y ha iniciado sesión en tty3, presione Ctrl+Alt+F6 para ir a tty6.
Para volver a su entorno de escritorio gráfico, presione Ctrl+Alt+F2. Si está utilizando un entorno de escritorio gráfico, al presionar Ctrl+Alt+F1 volverá a la pantalla de inicio de sesión de su sesión de escritorio gráfico. Se puede acceder a las consolas TTY de Linux de pantalla completa al mismo tiempo usando las teclas Ctrl+Alt+F1 a Ctrl+Alt+F6, y es posible regresar a su entorno de escritorio gráfico mediante Ctrl+Alt+F7. Si está utilizando una distribución anterior de Linux, esta puede ser la forma en que funcione para usted.
Esto se probó en las versiones actuales de Manjaro, Ubuntu y Fedora y todas 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 los usuarios utilizar instalaciones de Linux solo desde la línea de comandos, y muchos servidores Linux están configurados de esta manera para tener acceso a numerosas consolas.
¿Alguna vez ha estado trabajando en un sistema Linux con una interfaz gráfica de usuario y algo congeló su sesión? Ahora puede pasar a una de las sesiones de la consola TTY para intentar solucionar el problema.
Usar top
y ps
para buscar la aplicación fallida, luego termínela con kill o simplemente apáguela con la mayor gracia posible.
Las 3 letritas que tienen una larga historia
El comando tty de Linux recibe su nombre de un dispositivo obsoleto de finales de 1800, que se usó por primera vez en Unix en 1971, y todavía forma parte de Linux y otros sistemas operativos similares a Unix. Este pequeño tiene toda una historia detrás de él.