确定哪个 tty 位于“前台”/“当前显示”?

确定哪个 tty 位于“前台”/“当前显示”?

在linux中,我可以使用组合键Alt-Ctrl-F1Alt-Ctrl-F2...切换到tty1我可以使用的不同组合man chvt

使用该命令tty我还可以显示我所在的电传打字机/Linux 虚拟控制台。

但是,如果我在xtermgnome-terminaltty 中,则会显示相关的伪终端。

鉴于这一切:

  • 我如何知道哪个是当前“活动的” tty(意味着它显示在屏幕上)?

这在某种程度上是解决方案(但是它看起来扭曲并且依赖于loginctl登录,必须有一个非系统化找出来):

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'

答案1

cat /sys/devices/virtual/tty/tty0/active

tty0指当前的虚拟控制台(比较这个答案)。通过阅读/sys/devices/virtual/tty/tty0/active您可以了解这是哪个控制台。

“当前”是指您所看到的,而不是cat正在运行的地方。例如,如果你开始这个循环

while sleep 1; do
   cat /sys/devices/virtual/tty/tty0/active
done

让运行,手动切换到另一个控制台,等待几秒钟并切换回来,然后你会看到在查看时报告了另一个控制台。

相关内容