
wall — это утилита командной строки, которая выводит сообщение на терминалы всех вошедших в систему пользователей. Сообщения могут быть введены с терминала или содержать содержимое файла. wall означает «записать всё» (write all). Чтобы отправить сообщение только определённому пользователю, используйте команду write .
Обычно системные администраторы отправляют сообщения о необходимости технического обслуживания и просят пользователей выйти из системы и закрыть все открытые программы. Эти сообщения отображаются для всех вошедших в систему пользователей с открытым терминалом. Пользователи, использующие графическую среду рабочего стола без открытого терминала, не увидят эти сообщения. Каждый пользователь может контролировать доступ к записи в свой терминал с помощью утилиты mesg . Когда суперпользователь вызывает команду wall , все пользователи получают сообщения, независимо от их настроек mesg .
Трансляция сообщения
Синтаксис команды wall следующий:
wall [ OPTIONS ] [ | ]
Если файл не указан, wall считывает сообщение со стандартного ввода.
Самый простой способ передать сообщение — вызвать команду wall с сообщением в качестве аргумента:
wall "The system will be restarted in 10 minutes."
Broadcast message from root@linuxize.host (pts/0) (Sun Oct 4 19:22:07 2020): The system will be restarted in 10 minutes.
Сообщение будет передано всем пользователям, которые в данный момент находятся в системе.
Чтобы увидеть всех вошедших в систему пользователей, выполните команду w или who .
Чтобы скрыть баннер и показывать вошедшим в систему пользователям только вводимый вами текст, вызовите команду с опцией -n ( --nobanner ):
wall -n "The system will be restarted in 10 minutes."
The system will be restarted in 10 minutes.
Если вы хотите написать многострочные сообщения, вызовите команду без аргумента:
wall
Команда wall будет ждать ввода текста. Когда закончите вводить сообщение, нажмите Ctrl+D чтобы завершить программу и передать сообщение.
Вы также можете использовать перенаправление строки here-string или передать вывод другой команды в wall . Вот пример использования команды echo для трансляции многострочных сообщений:
echo "The system will be restarted in 10 minutes. nPlease save your work." | wall
Трансляция сообщения из файла
Если вы регулярно отправляете одни и те же сообщения, вы можете записать каждое из них в файл, чтобы не пришлось заново вводить один и тот же текст. wall считывает данные из файла только при вызове от имени пользователя root.
Чтобы транслировать содержимое файла, вызовите команду wall , а затем имя файла:
message1_file.txt
The system will be restarted in 10 minutes.
wall message1_file.txt
Broadcast message from root@linuxize.host (pts/0) (Sun Oct 4 19:25:06 2020): The system will be restarted in 10 minutes.
Трансляция сообщения группе
Чтобы отправить сообщение только членам определённой группы, выполните команду с опцией -g ( --group ), указав после неё имя группы. Например, чтобы писать только на терминалах членов группы «devs», выполните:
wall -g devs "The system will be restarted in 10 minutes."
Группу также можно указать по ее GID (идентификатору группы).
Заключение
Команда wall выводит сообщение на терминалы всех вошедших в систему пользователей.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.
Связанные руководства