У меня возник вопрос, который возник у меня после обновления до 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 это не плохо).
Попытайтесь обновить пакет, который содержит эти 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>
, Если это все еще не работает, попробуйте другую оболочку без среды (для избавлений от любых wonky переменных среды, установок, определенного для удара спама, и т.д.):
env -i /bin/dash
$ who
, Если это работает в пустой оболочке, затем проблема вероятна странное определение псевдонима в bashrc или что-то подобное.
кроме того, who --all
работает?