Informacje o poleceniu „who” i jego wynikach w wersji „14 .04 TrustyTahr”

9

Mam pytanie, które pojawiło się w mojej głowie po aktualizacji do wersji 14.04 TrustyTahr z wersji 12.04 PrecisePangolin. Pytanie dotyczy polecenia „kto” i jego wyników. W poprzednich wersjach Ubuntu wyjście, które komenda who przeczytałoby, jakiego tty użyto do zalogowania się i zainicjowania systemu i lightdm, na przykład:

:~$ who
geo      tty7     thedate (:0)
geo      pts/n    thedate (:0.0)

Ale w dniu 14.04 TrustyTahr, kiedy uruchamiam komendę, która generuje moje wyniki, zwraca:

:~$ who
geo      :0       thedate (:0)
geo      pts/n    thedate (:0.0)

W obu wersjach przekazywanie vt7 odbywa się w / boot, a na TrustyTahr moja zmienna XDG_VTNR wynosi 7, kiedy loguję się przez lightdm; ale tty7, ani vt7 są drukowane do pliku utmp. To mnie denerwowało przez miesiące, w końcu napisałem program c ++, który zawiera funkcję popen, jako uzupełnienie komendy who, aby komenda who wyświetlała bieżący XDG_VTNR ze współczynnikiem tty np .:

geo      tty7         2015-06-04 20:54 (:0)
geo      pts/0        2015-06-04 20:54 (:0.0)

Niemniej jednak, dlaczego to się zmieniło? I jest też mój jedyny taki, ponieważ pobrałem go około maja ubiegłego roku i mogłem dostać piętrowe iso lub coś, za każdym razem, gdy uruchamiam komendę, każe mi myśleć o piosence Beastie Boys: Sabotage (jk to nie jest złe).

oOpSgEo
źródło
Mam 14.04. Właśnie teraz poszedłem do tty1 i pobiegłem startx $(which gnome-shell). Dane wyjściowe whozgłoszonego tty1 i: 0.
Wydaje
zaktualizuj pytanie o $ who --version
j0h

Odpowiedzi:

2

Spróbuj zaktualizować pakiet zawierający whopolecenie; nawet jeśli do instalacji użyłeś dziwnej wersji ISO, aktualizacja powinna ją zastąpić:

Dowiedz się, jaki pakiet posiada who:

which who    # find out where 'who' binary is
dpkg -S /path/to/who

Następnie:

apt-get update
apt-get install <package name from dpkg -S command>

Jeśli nadal nie działa, wypróbuj inną powłokę bez środowiska (aby pozbyć się chwiejnych zmiennych środowiskowych, ustawień, śmieci specyficznych dla bash itp.):

env -i /bin/dash
$ who

Jeśli to działa w czystej postaci, problem jest prawdopodobnie dziwną definicją aliasu w bashrc lub czymś podobnym.

Czy też who --alldziała?

Felix
źródło