关于“谁”命令及其在“ 14.04 TrustyTahr”上的输出


9

从12.04 PrecisePangolin升级到14.04 TrustyTahr之后,我想到一个问题。该问题与“谁”命令及其输出有关。在Ubuntu的早期版本中,输出who命令将读取用于登录并启动系统和lightdm的tty,例如:

:~$ 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上,当我通过lightdm登录时,我的XDG_VTNR变量为7;但是tty7,也不会将vt7打印到utmp文件中。这让我烦恼了几个月,我终于写了一个包含popen函数的c ++程序,作为who命令的补充,以便who命令显示带有tty系数的当前XDG_VTNR,例如:

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

尽管如此,为什么会改变呢?而且也是我唯一的这样的人,因为我是在去年5月左右下载的,并且我可能得到了上下铺iso或类似的内容,每次我运行who命令时,都会使我想到那首Beastie Boys歌曲:Sabotage(jk这还不错)。


我在14.04。刚才我去了tty1跑了startx $(which gnome-shell)who报告的tty1和:0 的输出。我猜您的特定计算机遇到了某种错误
Sergiy Kolodyazhnyy 2015年

用$ who --version更新问题
2015年

Answers:


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行得通吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.