
No Linux eu posso usar as combinações de teclas Alt-Ctrl-F1
, Alt-Ctrl-F2
... para mudar para as diferentes tty1
que eu pudesse usar man chvt
.
usando o comando tty
também é exibido o console virtual teletype/linux em que estou.
No entanto, se eu estiver dentro xterm
ou dentro do gnome-terminal
tty, exibirei o pseudo-terminal relevante.
Considerando tudo isso:
- Como posso saber qual está atualmente "ativo"
tty
(ou seja, está sendo exibido na tela)?
Esta seria de certa forma a solução (no entanto, parece distorcida e depende do loginctl logind, deve haver umnão-systemddescobrir):
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'
Responder1
cat /sys/devices/virtual/tty/tty0/active
tty0
refere-se ao console virtual atual (compareesta resposta). Lendo /sys/devices/virtual/tty/tty0/active
você pode saber qual console é esse.
"Atual" significa o que você vê, não onde cat
está sendo executado. Por exemplo, se você iniciar este loop
while sleep 1; do
cat /sys/devices/virtual/tty/tty0/active
done
deixe entrar, mude manualmente para outro console, espere alguns segundos e volte, então você verá que o outro console foi relatado quando você estava olhando para ele.