Lệnh who trong Linux là một công cụ giúp người dùng kiểm tra các thông tin quan trọng về trạng thái của hệ thống và người dùng hiện đang đăng nhập. Trong bài viết này, Vietnix sẽ cùng bạn tìm hiểu lệnh who và cách sử dụng lệnh với 5 ví dụ chi tiết giúp bạn quản lý hệ thống Linux một cách hiệu quả.
Lệnh who trong Linux là gì?
Lệnh who trong Linux là một công cụ hữu ích giúp cung cấp thông tin về người dùng hiện tại đang đăng nhập vào hệ thống.
Với tính năng cung cấp thông tin về người dùng hiện tại, lệnh man được xem là một dòng lệnh hữu ích trong quá trình chạy lệnh trên hệ điều hành Linux. Bạn có thể ứng dụng ngay với một số hệ điều hành dựa trên Linux như Ubuntu.
Ngoài ra, bạn có thể tham khảo thêm các câu lệnh trong Linux để hiểu thêm chi tiết về hệ điều hành
Cú pháp cơ bản của lệnh who
who [OPTION]... [FILE]
Lệnh who trong Linux nhận các [OPTION] và [FILE] như một đối số.
12 tùy chọn sử dụng lệnh who
Bạn hoàn toàn có thể điều chỉnh cách lệnh who hoạt động bằng cách thêm các tùy chọn khác nhau vào cú pháp ban đầu. Để hỗ trợ bạn, Vietnix đã tổng hợp các tùy chọn thông dụng nhất ngay bên dưới. Tuy nhiên, nếu bạn cần tìm thêm những tùy chọn khác không có trong danh sách này, bạn có thể dễ dàng tra cứu trên trang hướng dẫn (man page) bằng cách nhập lệnh man theo cú pháp sau vào Terminal và nhấn ENTER để truy cập:
man who
Tùy chọn | Mô tả |
---|---|
-b ,-boot | Hiển thị thời gian khởi động hệ thống lần cuối |
-d , -dead | Hiển thị các tiến trình đã kết thúc |
-H , -heading | Hiển thị tiêu đề các cột |
-help | Hiển thị phần trợ giúp và thoát |
-l , -login | Hiển thị các tiến trình đăng nhập vào hệ thống |
-q , -count | Hiển thị tên đăng nhập và số lượng người dùng đang đăng nhập |
-r , -runlevel | Hiển thị mức chạy hiện tại của hệ thống |
-s , -short | Mặc định chỉ hiển thị tên, dòng, và thời gian |
-t , -time | Hiển thị lần thay đổi đồng hồ hệ thống gần nhất |
-T , -w , -mesg | Thêm trạng thái tin nhắn của người dùng với các ký hiệu +, –, hoặc ? tương ứng với sẵn sàng nhận tin nhắn, bận, và không xác định |
-u , -users | Hiển thị danh sách người dùng đang đăng nhập |
-version | Hiển thị thông tin phiên bản và thoát |
6 ví dụ thực tế về lệnh who trong Linux
- Hiển thị tên người dùng đăng nhập ở thời điểm hiện tại
- Hiển thị hostname và người dùng liên quan đến các thiết bị input/output
- Hiển thị thông tin chi tiết của người dùng đang đăng nhập
- Hiển thị trạng thái tin nhắn của người dùng
- Hiển thị danh sách người dùng đang đăng nhập
- Hiển thị danh sách các tiến trình đã kết thúc (dead processes)
Ví dụ 1: Hiển thị tên người dùng đăng nhập ở thời điểm hiện tại
Bạn có thể sử dụng lệnh who trong terminal để in ra tên người dùng, tên terminal, và thời gian đăng nhập của tất cả những người dùng hiện đang đăng nhập vào hệ thống. Để thực hiện, hãy làm theo các bước sau:
Bước 1: Trước tiên, bạn cần mở Terminal trên Ubuntu.
Bước 2: Sau đó, gõ lệnh sau vào command prompt rồi bấm ENTER và đợi kết quả.
who
Kết quả
Sau khi thực hiện cú pháp trên, lệnh này đã in ra thông tin của người dùng hiện đang đăng nhập vào hệ thống, bao gồm:
- Tên người dùng: susmit (người dùng hiện tại đang đăng nhập).
- Tên terminal: tty2 (thiết bị mà người dùng đang sử dụng).
- Thời gian đăng nhập: 2023-02-06 09:27 (thời điểm người dùng đã đăng nhập vào hệ thống).
Ví dụ 2: Hiển thị hostname và người dùng liên quan đến các thiết bị input/output
Bằng cách sử dụng các tùy chọn -m
và -H
của lệnh who, bạn có thể dễ dàng hiển thị tên máy chủ (hostname) và người dùng liên quan đến các thiết bị nhập/xuất như bàn phím. Để thực hiện điều này, hãy làm theo các bước sau:
Bước 1: Trước tiên, bạn cần mở Terminal trên Ubuntu.
Bước 2: Sau đó, bạn hãy nhập dòng lệnh sau:
who -m -H
Bước 3: Cuối cùng, bạn nhấn ENTER là hoàn tất.
Kết quả
Như bạn có thể thấy kết quả của lệnh who -m -H
trong Terminal trên Ubuntu. Lệnh này được sử dụng để hiển thị tên máy chủ (hostname) và tên người dùng đang sử dụng thiết bị đầu vào/đầu ra (như bàn phím) trên hệ thống (tương tự với lệnh hostname).
Ví dụ 3: Hiển thị thông tin chi tiết của người dùng đang đăng nhập
Bạn chỉ cần sử dụng tùy chọn -a
với lệnh who trong Linux để xem tất cả các chi tiết liên quan đến người dùng đang đăng nhập vào hệ thống. Để thực hiện, bạn hãy làm theo các bước sau:
Bước 1: Trước tiên, bạn cần mở Terminal trên Ubuntu.
Bước 2: Tiếp đó, bạn gõ lệnh sau vào dòng lệnh:
who -a
Bước 3: Cuối cùng, bạn nhấn ENTER để thực thi lệnh.
Kết quả
Lệnh who -a
giúp hiển thị toàn bộ thông tin chi tiết liên quan đến trạng thái hệ thống và người dùng đang đăng nhập, bao gồm cả các thông tin không hiển thị với các tùy chọn khác của lệnh who.
- system boot: Thời điểm hệ thống được khởi động.
- run-level: Mức độ chạy hiện tại của hệ thống (run level).
- susmit + tty2: Tên người dùng (susmit) đăng nhập qua thiết bị đầu cuối (tty2) cùng với thời gian đăng nhập và mã tiến trình liên quan.
Ví dụ 4: Hiển thị trạng thái tin nhắn của người dùng
Khi kết hợp các tùy chọn -T
và -H
của lệnh who trong Linux , bạn có thể kiểm tra trạng thái tin nhắn của người dùng được biểu thị bằng các ký hiệu “+”, “–”, hoặc “?”. Để thực hiện điều này, hãy làm theo các bước sau:
Bước 1: Bạn hãy mở Terminal trên Ubuntu.
Bước 2: Sau đó, bạn sao chép và dán lệnh sau vào Terminal:
who -T -H
Bước 3: Cuối cùng, bạn nhấn phím ENTER để hiển thị trạng thái tin nhắn của người dùng.
Kết quả
Hình ảnh output dưới đây thể hiện cách lệnh who -T -H
hiển thị trạng thái tin nhắn của người dùng. Trong đó biểu tượng “+
” xuất hiện, điều này cho thấy người dùng đang sẵn sàng nhận tin nhắn.
Ví dụ 5: Hiển thị danh sách người dùng đang đăng nhập
Việc sử dụng tùy chọn -u
của lệnh who giúp bạn hiển thị danh sách tất cả người dùng hiện đang đăng nhập vào hệ thống một cách dễ dàng. Hãy thực hiện theo các bước sau để tiến hành:
Bước 1: Bạn hãy mở Terminal trên hệ điều hành Ubuntu.
Bước 2: Tiếp theo, bạn nhập lệnh sau:
who -u
Bước 3: Cuối cùng, bạn nhấn ENTER để thực thi lệnh.
Kết quả
Tùy chọn -u
của lệnh who đã hiển thị toàn bộ danh sách tất cả người dùng hiện đang đăng nhập vào hệ thống, cùng với thông tin chi tiết về mỗi phiên đăng nhập. Cụ thể:
- Tên người dùng: “susmit” là người dùng đang đăng nhập.
- Thiết bị đầu cuối: “tty2” là thiết bị đầu cuối mà người dùng đang sử dụng.
- Thời gian đăng nhập: Thời gian mà người dùng đã đăng nhập vào hệ thống.
- Thời gian hoạt động: Thời gian kể từ khi người dùng đăng nhập, hiển thị dưới dạng giờ và phút.
- Mã tiến trình: 1866 là PID của phiên đăng nhập.
Ví dụ 6: Hiển thị danh sách các tiến trình đã kết thúc (dead processes)
Khi kết hợp linh hoạt các tùy chọn -d
và -H
của lệnh who, bạn sẽ có thể xuất ra toàn bộ danh sách các tiến trình đã kết thúc (dead processes) chỉ với 3 bước sau:
Bước 1: bạn hãy mở Terminal trên Ubuntu.
Bước 2: Tiếp theo, bạn nhập lệnh sau vào cửa sổ Terminal:
who -d -H
Bước 3: Nhấn ENTER để xem kết quả.
Kết quả
Lệnh who -d -H
là sự kết hợp của hai tùy chọn: -d
để liệt kê các tiến trình đã chấm dứt và -H
để thêm tiêu đề cột nhằm cung cấp một cái nhìn chi tiết về các tiến trình này. Kết quả nhận được sau khi lệnh chạy xong là danh sách liệt kê các tiến trình đã kết thúc trên hệ thống.
Câu hỏi thường gặp
Lệnh who
có thể hiển thị thông tin về các phiên đăng nhập từ xa không?
Có thể. Người dùng khi thực hiện lệnh sẽ được hiển thị các thông tin như tên người dùng; thiết bị đầu cuối; địa chỉ IP và thời gian đăng nhập.
Có thể sử dụng lệnh who
để tìm kiếm thông tin về các phiên đăng nhập đã kết thúc không?
Câu trả lời là không. Lệnh who
chỉ cung cấp danh sách các người dùng hiện đang đăng nhập vào hệ thống cùng với một số thông tin liên quan như tên thiết bị đầu cuối, thời gian đăng nhập và địa chỉ IP.
Lời kết
Hy vọng qua bài viết này, bạn đã có được những hiểu biết cần thiết để tận dụng tối đa lệnh who trong công việc hàng ngày của mình trên Linux. Nếu có bất cứ vấn đề gì cần hỗ trợ hay thắc mắc cần giải đáp thì bạn đừng ngần ngại để lại bình luận phía bên dưới để Vietnix có thể giúp đỡ bạn. Chúc bạn thành công!