Apa itu
$XDG_VTNR? Di mana dan kapan itu disetel?
Diatur oleh pam_systemd Modul PAM, dan hanya disetel pada mesin yang menggunakan systemd, yang artinya Anda tidak andalkan itu dalam skrip Anda, kecuali jika Anda ingin membuatnya bergantung pada systemd.
Pada sistem yang menggunakan systemd, $XDG_VTNR akan diatur keduanya secara grafis (oleh lightdm , gdm , dll) dan dalam sesi mode teks (dengan /bin/login ).
Di mana saya dapat menemukan dokumentasi resmi tentang variabel ini?
Di pam_systemd(8) halaman manual.
ttyadalah perintah bawaan sedangkan$XDG_VTNRdisediakan oleh Xorg, mengapa orang memilih untuk menggunakan$XDG_VTNRbukanttybawaan ?
1) tty adalah program mandiri, bukan bawaan, dan $XDG_VTNR tidak disediakan oleh Xorg.
2) Karena mereka adalah hal yang sangat berbeda. Seperti yang dinyatakan dengan jelas di halaman manualnya, tty(1) akan memberi tahu Anda nama terminal yang terhubung ke input standarnya, bukan nama terminal virtual yang mungkin digunakan oleh sesi GUI Anda atau semacamnya[1]. Pertimbangkan ini:
$ script -q /dev/null
$ tty
/dev/pts/5
$ script -q /dev/null
$ tty
/dev/pts/6
$ tty </dev/zero
not a tty
[1] untuk XDG_VTNR yang mana juga bukan indikator yang dapat diandalkan.