Команда Wall в Linux

Команда Linux wall

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 выводит сообщение на терминалы всех вошедших в систему пользователей.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии.

Терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *