Acerca del comando 'who' y su salida en '14 .04 TrustyTahr '

9

Tengo una pregunta que surgió en mi mente después de actualizar a 14.04 TrustyTahr desde 12.04 PrecisePangolin. La pregunta se refiere al comando 'quién' y su salida. En ediciones anteriores de Ubuntu, la salida del comando who leería qué tty se usó para iniciar sesión e iniciar el sistema y lightdm, por ejemplo:

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

Pero el 14.04 TrustyTahr, cuando ejecuto el comando quién produce mi producción, produce:

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

En ambas ediciones, la transferencia de vt7 está ocurriendo en / boot, y en TrustyTahr mi variable XDG_VTNR es 7 cuando inicio sesión a través de lightdm; pero tty7, ni vt7 se imprime en el archivo utmp. Esto me molestó durante meses, finalmente escribí un programa c ++, que incorpora la función popen, como complemento del comando who para que el comando who muestre el XDG_VTNR actual con un coeficiente tty, por ejemplo:

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

Sin embargo, ¿por qué ha cambiado esto? Y también es el mío el único así, porque descargué esto alrededor de mayo del año pasado, y podría haber obtenido una iso de literas o algo así, cada vez que ejecuto el comando quién me hace pensar en esa canción de Beastie Boys: Sabotage (jk No es lo malo).

oOpSgEo
fuente
Estoy en 14.04. Justo ahora fui a tty1 y corrí startx $(which gnome-shell). La salida de whotty1 reportado y: 0. Supongo que su máquina en particular está experimentando algún tipo de error
Sergiy Kolodyazhnyy
actualice la pregunta con $ who --version
j0h

Respuestas:

2

Intente actualizar el paquete que contiene el whocomando; incluso si utilizó una versión extraña de ISO para instalar, una actualización debería reemplazarla:

Descubra qué paquete posee who:

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

Entonces:

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

Si todavía no funciona, pruebe con un shell diferente sin entorno (para deshacerse de las variables de entorno inestable, configuraciones, basura específica de bash, etc.):

env -i /bin/dash
$ who

Si funciona en un shell simple, entonces el problema es probablemente una extraña definición de alias en un bashrc, o algo similar.

Además, ¿ who --allfunciona?

Felix
fuente