Lệnh who trong linux với các ví dụ dễ hiểu

```html

Lệnh who trong Linux giúp bạn xem ai đang đăng nhập vào hệ thống của mình một cách nhanh chóng. Nó hiển thị thông tin người dùng, terminal họ sử dụng và thời gian đăng nhập, rất hữu ích. Bạn có thể dùng lệnh này để kiểm tra xem có ai lạ đang truy cập máy tính của bạn không. Hãy thử dùng who để quản lý hệ thống hiệu quả hơn nhé!

```

Lệnh who trong linux là gì?

Lệnh who trong Linux là một công cụ dòng lệnh hữu ích, giúp bạn biết ai đang đăng nhập vào hệ thống của mình. Command who in linux hiển thị thông tin về người dùng, terminal họ đang sử dụng, và thời gian họ đăng nhập. Nó cung cấp cái nhìn tổng quan về hoạt động của hệ thống, giúp quản trị viên dễ dàng theo dõi. Bạn có thể sử dụng lệnh này để kiểm tra xem có ai lạ đang truy cập trái phép vào máy tính của bạn hay không. Ngoài ra, lệnh who còn có thể hiển thị thông tin về thời gian hệ thống khởi động gần nhất.

Tìm hiểu về Lệnh who

Trong bước này, chúng ta sẽ khám phá lệnh who, một công cụ mạnh mẽ trong Linux để hiển thị thông tin về người dùng đang đăng nhập.

Lệnh who cung cấp thông tin như tên người dùng, terminal, thời gian đăng nhập và remote host mà người dùng đã đăng nhập. Thông tin này hữu ích cho system administrators và người dùng để hiểu hoạt động hiện tại trên hệ thống.

Hãy bắt đầu bằng cách chạy lệnh who:

who

Ví dụ về đầu ra:

labex   pts/0        2023-04-11 09:15 (172.17.0.1)

Đầu ra cho thấy người dùng labex đã đăng nhập trên terminal pts/0, vào lúc 2023-04-11 09:15 từ remote host 172.17.0.1.

Lệnh who cũng có thể hiển thị thông tin bổ sung bằng cách sử dụng các tùy chọn khác nhau.

Một số tùy chọn phổ biến bao gồm:

  • who -a: Hiển thị đầu ra chi tiết hơn, bao gồm thời gian idle và process ID của shell người dùng.
  • who -H: Hiển thị dòng tiêu đề với tên các cột.
  • who -q: Hiển thị danh sách nhanh những người dùng đã đăng nhập, chỉ hiển thị tên người dùng.
  • who am i: Hiển thị thông tin về người dùng hiện tại.

Hãy thử một vài tùy chọn này:

who -a

Ví dụ về đầu ra:

labex   pts/0        2023-04-11 09:15 00:00   (172.17.0.1)

Tùy chọn -a hiển thị thời gian idle, là 00:00 trong trường hợp này, cho biết người dùng đang tích cực sử dụng terminal.

who -H

Ví dụ về đầu ra:

NAME     LINE         TIME             COMMENT
labex    pts/0        2023-04-11 09:15  (172.17.0.1)

Tùy chọn -H thêm một dòng tiêu đề vào đầu ra, giúp bạn dễ dàng hiểu ý nghĩa của từng cột.

who am i

Ví dụ về đầu ra:

labex   pts/0        2023-04-11 09:15 (172.17.0.1)

Lệnh who am i hiển thị thông tin về người dùng hiện tại đang sử dụng hệ thống.

Khám phá đầu ra của lệnh who

Trong bước này, chúng ta sẽ đi sâu hơn vào đầu ra của lệnh who và tìm hiểu các trường dữ liệu khác nhau mà nó cung cấp.

Hãy bắt đầu bằng cách chạy lại lệnh who để xem thông tin người dùng đang đăng nhập:

who

Ví dụ về đầu ra:

labex   pts/0        2023-04-11 09:15 (172.17.0.1)

Đầu ra của lệnh who bao gồm các trường thông tin quan trọng sau:

  1. Username: Tên người dùng đã đăng nhập, trong trường hợp này là labex.
  2. Terminal: Terminal hoặc phiên mà người dùng đã đăng nhập, ở đây là pts/0.
  3. Login Time: Thời gian người dùng đăng nhập vào hệ thống, ví dụ: 2023-04-11 09:15.
  4. Remote Host: Địa chỉ IP hoặc hostname của máy chủ từ xa, ví dụ: (172.17.0.1).

Bây giờ, hãy cùng khám phá chi tiết hơn về từng trường thông tin này:

Username: Trường username hiển thị tên của người dùng hiện đang đăng nhập vào hệ thống. Nó trùng với tên người dùng bạn đang sử dụng, trong trường hợp này là labex.

Terminal: Trường terminal cho biết terminal hoặc phiên mà người dùng đã đăng nhập vào hệ thống. Trong hệ thống Linux, bạn có thể thấy các giá trị như tty1, pts/0, pts/1, v.v.

Login Time: Trường login time hiển thị ngày và giờ người dùng đăng nhập vào hệ thống.

Remote Host: Trường remote host hiển thị địa chỉ IP hoặc hostname của hệ thống từ xa mà người dùng đã đăng nhập. Trong ví dụ này, người dùng đăng nhập từ Docker container, nên remote host là (172.17.0.1).

Hãy thử một ví dụ khác để xem đầu ra thay đổi như thế nào khi có nhiều người dùng đăng nhập:

sudo useradd -m testuser
sudo su - testuser
who

Ví dụ về đầu ra:

labex   pts/0        2023-04-11 09:15 (172.17.0.1)
testuser pts/1        2023-04-11 09:20 (172.17.0.1)

Trong ví dụ này, chúng ta đã tạo một người dùng mới là testuser và chuyển sang người dùng đó. Lệnh who bây giờ hiển thị hai người dùng đã đăng nhập: labextestuser.

Lọc Kết Quả Đầu Ra của Lệnh who

Trong bước này, chúng ta sẽ tìm hiểu cách lọc kết quả đầu ra của lệnh who để lấy thông tin cụ thể.

Lệnh who có thể tạo ra rất nhiều kết quả, đặc biệt trên hệ thống có nhiều người dùng. Để lọc kết quả, ta có thể dùng các công cụ dòng lệnh như grep, awkcut.

Hãy bắt đầu bằng cách lọc kết quả để chỉ hiển thị tên người dùng:

who | awk '{print $1}'

Ví dụ kết quả:

labex

Lệnh awk '{print $1}' trích xuất trường đầu tiên (tên người dùng) từ kết quả của lệnh who.

Tiếp theo, hãy lọc kết quả để chỉ hiển thị thời gian đăng nhập:

who | awk '{print $4, $5}'

Ví dụ kết quả:

2023-04-11 09:15

Lệnh awk '{print $4, $5}' trích xuất trường thứ tư và thứ năm (ngày và giờ đăng nhập) từ kết quả của lệnh who.

Bạn cũng có thể dùng grep để lọc kết quả dựa trên các tiêu chí cụ thể. Ví dụ, để chỉ hiển thị người dùng đăng nhập từ một remote host cụ thể:

who | grep '(172.17.0.1)'

Ví dụ kết quả:

labex   pts/0        2023-04-11 09:15 (172.17.0.1)

Lệnh grep '(172.17.0.1)' lọc kết quả để chỉ hiển thị các dòng chứa chuỗi (172.17.0.1), đại diện cho remote host.

Đây chỉ là một vài ví dụ về cách bạn có thể lọc kết quả của lệnh who. Bạn có thể kết hợp các kỹ thuật này để lấy thông tin cụ thể bạn cần.

Kết luận cho linux who command

Vậy là chúng ta đã cùng nhau khám phá lệnh linux who command, một công cụ nhỏ nhưng vô cùng hữu ích trong Linux. Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về cách lệnh này hoạt động và những thông tin mà nó cung cấp. Bạn có thể dễ dàng biết được ai đang sử dụng hệ thống của mình, từ đó quản lý và giám sát tốt hơn. Đừng ngần ngại thử nghiệm các tùy chọn khác nhau của lệnh để khám phá thêm nhiều điều thú vị. Việc thực hành thường xuyên sẽ giúp bạn làm quen và sử dụng thành thạo lệnh này. Hãy nhớ rằng, Linux là một thế giới rộng lớn với vô vàn điều để khám phá, và lệnh `who` chỉ là một phần nhỏ trong đó. Chúc bạn có những trải nghiệm tuyệt vời trên hành trình chinh phục Linux! Hãy tiếp tục học hỏi và khám phá những lệnh khác để trở thành một người dùng Linux thành thạo nhé.

Last Updated : 15/10/2025