確定哪個 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

讓運行,手動切換到另一個控制台,等待幾秒鐘並切換回來,然後你會看到當你查看它時報告了另一個控制台。

相關內容