
En Linux puedo usar las combinaciones de teclas Alt-Ctrl-F1
, Alt-Ctrl-F2
... para cambiar a las diferentes tty1
que pueda usar man chvt
.
Al usar el comando, tty
también se muestra la consola virtual de teletipo/linux en la que estoy.
Sin embargo, si estoy en xterm
o en gnome-terminal
tty, se mostrará el pseudoterminal correspondiente.
Teniendo en cuenta todo eso:
- ¿Cómo puedo saber cuál está actualmente "activo"
tty
(es decir, cuál se muestra en la pantalla)?
Esta sería en cierto modo la solución (aunque parezca retorcido y se base en loginctl logind, debe haber unano sistemadescubrir):
for sessionid in $(loginctl list-sessions --no-legend | awk '{ print $1 }'); do loginctl show-session -p State -p TTY $sessionid; done | grep "State=active" -B1 | head -n 1 | sed 's/.*=//g'
Respuesta1
cat /sys/devices/virtual/tty/tty0/active
tty0
se refiere a la consola virtual actual (compáreseesta respuesta). Al leer /sys/devices/virtual/tty/tty0/active
podrás saber qué consola es esta.
"Actual" significa lo que ves, no dónde cat
se está ejecutando. Por ejemplo, si inicias este bucle
while sleep 1; do
cat /sys/devices/virtual/tty/tty0/active
done
Deje que se ejecute, cambie manualmente a otra consola, espere unos segundos y vuelva a cambiar, luego verá que se informó sobre la otra consola cuando la estaba mirando.