關於「who」指令及其在「14.04 TrustyTahr」上的輸出

關於「who」指令及其在「14.04 TrustyTahr」上的輸出

從 12.04 PrecisePangolin 升級到 14.04 TrustyTahr 後,我腦海中出現了一個問題。問題與“who”命令及其輸出有關。在先前版本的 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 檔案中。這讓我煩惱了好幾個月,我終於寫了一個c++程序,其中包含popen函數,作為who命令的補充,以便who命令用tty係數顯示當前的XDG_VTNR,例如:

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

儘管如此,為什麼會發生這種變化呢?而且我的也是唯一一個這樣的,因為我在去年五月左右下載了這個,而且我可能已經得到了一個舖位iso 或其他東西,每次我運行who 命令時,它都會讓我想起Beastie Boys 的歌曲:Sabotage (jk這還不錯)。

答案1

嘗試升級包含該命令的套件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>

如果仍然不起作用,請嘗試使用沒有環境的其他 shell(以消除任何不穩定的環境變數、設定、特定於 bash 的垃圾等):

env -i /bin/dash
$ who

如果它在裸外殼中工作,那麼問題可能是 bashrc 中奇怪的別名定義,或類似的東西。

還有,有who --all作用嗎?

相關內容