О команде 'who' и ее выводе в '14 .04 TrustyTahr '

9

У меня возник вопрос, который возник у меня после обновления до 14.04 TrustyTahr с 12.04 PrecisePangolin. Вопрос относится к команде who и ее результатам. В предыдущих выпусках Ubuntu вывод команды who считывал, какой tty использовался для входа в систему и запуска системы и lightdm, например:

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

Но 14.04 TrustyTahr, когда я запускаю команду who, мой вывод выдает:

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

В обеих редакциях передача vt7 происходит в / boot, а в TrustyTahr моя переменная XDG_VTNR равна 7, когда я вхожу через lightdm; но tty7, ни vt7 печатаются в файл utmp. Это раздражало меня в течение многих месяцев, и я наконец написал программу на c ++, которая включает функцию popen в качестве дополнения к команде who, чтобы команда who отображала текущий XDG_VTNR с коэффициентом tty, например:

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

Тем не менее, почему это изменилось? И, кроме того, моя единственная такая, потому что я скачал ее примерно в мае прошлого года, и, возможно, я получил bunk iso или что-то в этом роде, каждый раз, когда я запускаю команду who, я вспоминаю эту песню Beastie Boys: Sabotage (jk это не плохо).

oOpSgEo
источник
Я на 14.04. Только сейчас я пошел в tty1 и побежал startx $(which gnome-shell). На выходе whoсообщается tty1 а: 0. Я думаю, что ваша конкретная машина испытывает какую-то ошибку
Сергей Колодяжный
обновите вопрос с помощью $ who --version
j0h

Ответы:

2

Попробуйте обновить пакет, содержащий whoкоманду; даже если вы использовали для установки странную версию ISO, обновление должно заменить ее:

Узнайте, какой пакет принадлежит who:

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

Затем:

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

Если он по-прежнему не работает, попробуйте другую оболочку без среды (чтобы избавиться от каких-либо непонятных переменных среды, настроек, специфичных для bash ненужных и т. Д.):

env -i /bin/dash
$ who

Если это работает в пустой оболочке, то проблема, скорее всего, в странном определении псевдонима в bashrc или чем-то подобном.

Кроме того, who --allработает?

Феликс
источник