'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 파일에 인쇄되지 않습니다. 이것은 몇 달 동안 나를 짜증나게 만들었고, 마침내 who 명령이 tty 계수와 함께 현재 XDG_VTNR을 표시하도록 하기 위해 who 명령에 대한 보충으로 popen 함수를 통합하는 C++ 프로그램을 작성했습니다.

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)가 생각납니다. 나쁘지는 않습니다).

답변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>

그래도 작동하지 않으면 환경이 없는 다른 셸을 사용해 보십시오(불안정한 환경 변수, 설정, bash 관련 정크 등을 제거하기 위해).

env -i /bin/dash
$ who

베어 셸에서 작동한다면 문제는 bashrc의 이상한 별칭 정의 또는 이와 유사한 것일 가능성이 높습니다.

또한 who --all작동합니까?

관련 정보