Giới thiệu về lệnh 'ai' và nó xuất ra trên '14 .04 TrustyTahr '


9

Tôi có một câu hỏi nảy sinh trong đầu sau khi nâng cấp lên 14.04 TrustyTahr từ 12.04 PrecisePangolin. Câu hỏi liên quan đến lệnh 'ai' và đầu ra của nó. Trong các phiên bản trước của Ubuntu, đầu ra lệnh who sẽ đọc những gì tty đã được sử dụng để đăng nhập và khởi tạo hệ thống và lightdm, ví dụ:

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

Nhưng vào ngày 14.04 TrustyTahr, khi tôi chạy lệnh ai sẽ cho kết quả đầu ra của tôi:

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

Trên cả hai phiên bản, quá trình chuyển đổi vt7 đang diễn ra trong / boot và trên TrustyTahr, biến XDG_VTNR của tôi là 7 khi tôi đăng nhập qua lightdm; nhưng tty7, vt7 cũng không được in vào tập tin utmp. Điều này làm tôi bực mình trong nhiều tháng, cuối cùng tôi đã viết một chương trình c ++, kết hợp chức năng popen, như là một bổ sung cho lệnh who để lệnh ai hiển thị XDG_VTNR hiện tại với hệ số tty, ví dụ:

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

Không có ít hơn tại sao điều này đã thay đổi? Và tôi cũng là người duy nhất như vậy, vì tôi đã tải xuống bản này vào khoảng tháng 5 năm ngoái và tôi có thể đã nhận được một chiếc bunk iso hoặc thứ gì đó, mỗi khi tôi điều hành người chỉ huy nó khiến tôi nghĩ về bài hát Beastie Boys: Sabotage (jk nó không phải là xấu).


Tôi vào ngày 14.04. Vừa nãy tôi đã đi đến tty1 và chạy startx $(which gnome-shell). Đầu ra của whotty1 được báo cáo và: 0. Tôi đoán rằng cỗ máy đặc biệt của bạn đang gặp phải một lỗi nào đó
Sergiy Kolodyazhnyy 04/07/2015

cập nhật câu hỏi với $ who --version
j0h

Câu trả lời:


2

Hãy thử nâng cấp gói chứa wholệnh; ngay cả khi bạn đã sử dụng một phiên bản ISO lạ để cài đặt từ đó, một bản cập nhật sẽ thay thế nó:

Tìm hiểu những gì gói sở hữu who:

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

Sau đó:

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

Nếu nó vẫn không hoạt động, hãy thử một shell khác không có môi trường (để loại bỏ bất kỳ biến môi trường, thiết lập, rác cụ thể bash nào, v.v.):

env -i /bin/dash
$ who

Nếu nó hoạt động trong một vỏ trần, thì vấn đề có thể là một định nghĩa bí danh kỳ lạ trong bashrc, hoặc một cái gì đó tương tự.

Ngoài ra, không who --alllàm việc?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.