Có những lúc nhiều người dùng đăng nhập vào máy tính chủ và bạn - quản trị viên hệ thống/mạng - cần phải khởi động lại máy chủ để thực hiện một số tác vụ bảo trì. Tất nhiên, cách đúng là thông báo cho tất cả những người đã đăng nhập về hoạt động bảo trì.
Rất may là Linux cung cấp tiện ích dòng lệnh tích hợp cho mục đích này. Công cụ được đề cập là Wall và trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của công cụ này bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, chúng ta cần lưu ý rằng tất cả các ví dụ trong bài viết này đều đã được thử nghiệm trên máy Ubuntu 22.04 LTS.
Và đây là cách trang hướng dẫn của công cụ mô tả lệnh này:
Sau đây là một số ví dụ theo dạng Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh wall hoạt động.
Ví dụ, đây là bước đầu tiên khi văn bản được nhập vào stdin:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22380%22%20height=%2237%22%3E%3C/svg%3E
Đây là bước thứ hai khi nhấn Ctrl+D nhiều lần và tin nhắn được phát đi:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22384%22%20height=%22121%22%3E%3C/svg%3E
Và đây là cách những người dùng đã đăng nhập khác nhìn thấy thông điệp:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22323%22%20height=%2274%22%3E%3C/svg%3E
Ví dụ, hành động sau:
Tạo ra đầu ra sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22204%22%20height=%2274%22%3E%3C/svg%3E
Ví dụ:
Trong đó input.txt chứa nội dung sau dòng:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22461%22%20height=%2238%22%3E%3C/svg%3E
Và đây là kết quả:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22471%22%20height=%22105%22%3E%3C/svg%3E
Rất may là Linux cung cấp tiện ích dòng lệnh tích hợp cho mục đích này. Công cụ được đề cập là Wall và trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của công cụ này bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, chúng ta cần lưu ý rằng tất cả các ví dụ trong bài viết này đều đã được thử nghiệm trên máy Ubuntu 22.04 LTS.
Lệnh wall trên Linux
Như đã đề cập, lệnh wall được sử dụng để gửi tin nhắn đến tất cả người dùng đã đăng nhập. Sau đây là cú pháp của lệnh này:
Mã:
wall [-n] [-t TIMEOUT] [file]
Mã:
Wall displays the contents of file or, by default, its standard input, on
the terminals of all currently logged in users. The command will cut over
79 character long lines to new lines. Short lines are white space padded
to have 79 characters. The command will always put carriage return and
new line at the end of each line.
Only the super-user can write on the terminals of users who have chosen
to deny messages or are using a program which automatically denies mes?
sages.
Reading from a file is refused when the invoker is not superuser and the
program is suid or sgid.
Câu hỏi 1. Cách sử dụng lệnh wall?
Cách sử dụng cơ bản rất đơn giản - chỉ cần thực hiện lệnh 'wall' và viết thông điệp bạn muốn truyền trên đầu vào chuẩn. Khi hoàn tất, hãy sử dụng tổ hợp phím Ctrl+D để báo hiệu lệnh rằng bạn đã viết xong thông điệp.
Mã:
wall
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22380%22%20height=%2237%22%3E%3C/svg%3E
Đây là bước thứ hai khi nhấn Ctrl+D nhiều lần và tin nhắn được phát đi:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22384%22%20height=%22121%22%3E%3C/svg%3E
Và đây là cách những người dùng đã đăng nhập khác nhìn thấy thông điệp:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22323%22%20height=%2274%22%3E%3C/svg%3E
Câu 2. Làm thế nào để xóa tiêu đề khỏi tin nhắn được phát sóng?
Trong trường hợp bạn muốn xóa tiêu đề xuất hiện cùng với tin nhắn được phát sóng, bạn có thể thực hiện việc đó bằng tùy chọn dòng lệnh -n.
Mã:
wall -n
Mã:
wall -n
Message without header
^D
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22204%22%20height=%2274%22%3E%3C/svg%3E
Câu 3. Làm thế nào để wall chấp nhận đầu vào từ tệp?
Điều này có thể đạt được bằng cách truyền tên tệp làm đầu vào cho lệnh wall.
Mã:
wall [filename]
Mã:
wall input.txt
Mã:
This message is from a file
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22461%22%20height=%2238%22%3E%3C/svg%3E
Và đây là kết quả:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22471%22%20height=%22105%22%3E%3C/svg%3E
Câu hỏi 4. Có những cách nào khác để sử dụng lệnh wall?
Ngoài ra còn có một số cách khác mà bạn có thể sử dụng lệnh wall. Đối với ví dụ:
Mã:
echo "test message" | wall
Mã:
wall