어떤 tty가 "포그라운드"/"현재 표시"되어 있는지 확인합니까?

어떤 tty가 "포그라운드"/"현재 표시"되어 있는지 확인합니까?

리눅스에서는 키 조합을 사용하여 사용할 수 있는 다른 조합 으로 전환할 수 Alt-Ctrl-F1있습니다 .Alt-Ctrl-F2tty1man chvt

이 명령을 사용하면 tty현재 있는 텔레타이프/Linux 가상 콘솔을 표시할 수도 있습니다.

xterm그러나 a 또는 tty 에 있으면 gnome-terminal관련 의사 터미널이 표시됩니다.

이 모든 것을 고려하면:

  • 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

실행하고 수동으로 다른 콘솔로 전환하고 몇 초 정도 기다렸다가 다시 전환하면 볼 때 다른 콘솔이 보고되는 것을 볼 수 있습니다.

관련 정보