Co je
$XDG_VTNR? Kde a kdy se nastavuje?
Nastavuje se pomocí pam_systemd Modul PAM a je nastaven pouze na počítačích, které používají systemd, což znamená, že byste neměli spolehněte se na to ve svých skriptech, pokud nechcete, aby byly závislé na systemd.
Na systémech, které používají systemd, $XDG_VTNR budou nastaveny jak graficky (pomocí lightdm , gdm , atd.) a v relacích v textovém režimu (podle /bin/login ).
Kde najdu oficiální dokumentaci k této proměnné?
V pam_systemd(8) manuálová stránka.
ttyje vestavěný příkaz, zatímco$XDG_VTNRposkytuje Xorg, proč se lidé rozhodnou používat$XDG_VTNRmísto vestavěnéhotty?
1) tty je samostatný program, nikoli vestavěný, a $XDG_VTNR není poskytována společností Xorg.
2) Protože jsou to úplně jiné věci. Jak je jasně uvedeno na jeho manuálové stránce, tty(1) vám sdělí název terminálu připojeného k jeho standardnímu vstupu, nikoli název virtuálního terminálu, na kterém může být spuštěna vaše relace GUI nebo něco podobného[1]. Zvažte toto:
$ script -q /dev/null
$ tty
/dev/pts/5
$ script -q /dev/null
$ tty
/dev/pts/6
$ tty </dev/zero
not a tty
[1] pro které XDG_VTNR není ani spolehlivým ukazatelem.