Linux write message to user

write(1) — Linux man page

When you run the write command, the user you are writing to gets a message of the form:

Any further lines you enter will be copied to the specified user’s terminal. If the other user wants to reply, they must run write as well.

When you are done, type an end-of-file or interrupt character. The other user will see the message EOF indicating that the conversation is over.

You can prevent people (other than the super-user) from writing to you with the mesg(1) command. Some commands, for example nroff(1) and pr(1), may disallow writing automatically, so that your output isn’t overwritten.

If the user you want to write to is logged in on more than one terminal, you can specify which terminal to write to by specifying the terminal name as the second operand to the write command. Alternatively, you can let write select one of the terminals — it will pick the one with the shortest idle time. This is so that if the user is logged in at work and also dialed up from home, the message will go to the right place.

The traditional protocol for writing to someone is that the string ‘-o’, either at the end of a line or on a line by itself, means that it’s the other person’s turn to talk. The string ‘oo’ means that the person believes the conversation to be over.

See Also

History

Availability

The write command is part of the util-linux-ng package and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.

Источник

How to Send Broadcast Message to Logged-in Users on Linux Terminals

Linux is a multi-user operating system that allows multiple users to log in and use the system. This implies that at any given time, you might have several users logged in.

Sometimes, you might need to send a message or notification to all the users without necessarily placing a phone call or sending them emails. This is mostly when you want to announce a maintenance task or instruct them to log out.

In this guide, we will demonstrate how you can send messages to all logged-in users in the system. This only applies to users who are logged in via a terminal window using an SSH client such as PuTTY.

Читайте также:  Посмотреть настройки прокси linux

Send Messages to Logged-in Users Using the Wall Command

The wall command is a command-line utility that displays messages to all logged-in users on the terminal.

The wall command takes the following basic syntax:

If no file is specified, then the wall command reads the message from standard input and broadcasts it to all logged-in users.

For example, the following command reads the message enclosed in quotation marks as the argument and sends it to all logged-in users

# wall "The system will be shutting down at 1500HRS for maintenance. Apologies for any inconvenience caused".

Send Broadcast Message to Users in Terminal

When viewed from a logged-in user (in this case bob), the message appears as shown on the terminal window.

Broadcast Message from Root

To display a message from a file, invoke the wall command followed by the file name as shown.

View Broadcast Message from File

This is how the user receives the message on the terminal.

Broadcast Message To User

Send Messages to a Specific Logged-in User

Alternatively, you can use the write command to send a message to a specific user. To list all the currently logged-in users, invoke the who command:

Show Logged-In Users on Linux

For example, to send a message to a user called winnie and notify her about a system restarting in the next 3 hours, run the following write command with the echo command.

$ echo "This system will be restarted in 3 hours" | write winnie

On the user’s terminal, the message will appear as shown.

Send Message to User in Terminal

Conclusion

We have covered various ways of sending a message or notification to logged-in users using the wall and write commands. We hope that you can now send messages to logged-in users without a problem.

Источник

Команда write в Linux

В Linux команда write создаёт линию связи между двумя авторизованными пользователями через терминал, позволяя отправлять сообщения в режиме реального времени.

Примеры использования команды write в Linux

Синтаксис

Параметр user является обязательным и представляет имя пользователя принимающей стороны. Указание ttyname необходимо в случае нескольких открытых терминалов.

Использование команды write в Linux

Предварительная подготовка

Для команды write требуются как минимум два пользователя, вошедших в систему через сеанс pts (псевдо-терминал) или tty (телетайп).

Так как у меня второго пользователя нет, то я его создаю с именем ivan :

oleg@mobile:~$ sudo su root@mobile:/home/oleg# adduser ivan Добавляется пользователь «ivan» . Добавляется новая группа «ivan» (1001) . Добавляется новый пользователь «ivan» (1001) в группу «ivan» . Создаётся домашний каталог «/home/ivan» . Копирование файлов из «/etc/skel» . Новый пароль : Повторите ввод нового пароля : passwd: пароль успешно обновлён Изменение информации о пользователе ivan Введите новое значение или нажмите ENTER для выбора значения по умолчанию Полное имя []: Номер комнаты []: Рабочий телефон []: Домашний телефон []: Другое []: Данная информация корректна? [Y/n] y root@mobile:/home/oleg# 

Добавляю пользователя ivan в группу sudo:

root@mobile:/home/oleg# usermod -aG sudo ivan root@mobile:/home/oleg# 

Проверяю доступность разрешений sudo , переключившись командой su на учётную запись пользователя ivan :

oleg@mobile:~$ sudo su ivan ivan@mobile:/home/oleg$ cd ivan@mobile:~$ 

Теперь пользователь ivan , используя sudo , сможет запускать команды с привилегиями суперпользователя:

ivan@mobile:~$ sudo ls -l /root итого 4 drwxr-xr-x 3 root root 4096 авг 17 2021 snap ivan@mobile:~$

Конечно при работе в реальной многопользовательской среде подобная предварительная подготовка не требуется.

Читайте также:  Открыть терминал линукс горячие клавиши

Разрешение на запись

Для связи с другим пользователем oleg получает разрешение на запись с помощью mesg y :

oleg@mobile:~$ mesg y oleg@mobile:~$

Пользователь ivan также получает разрешение на запись:

ivan@mobile:~$ mesg y ivan@mobile:~$

Вход в терминальный сеанс

При работе на одном компьютере с двумя разными пользователями каждый пользователь запускает команду в своём терминальном сеансе и указывает своё имя пользователя.

Команда предлагает ввести sudo и пароль пользователя для продолжения.

Пользователь oleg входит в терминальный сеанс:

oleg@mobile:~$ sudo login oleg Пароль: Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-58-generic x86_64) . oleg@mobile:~$ 

То же самое выполняет и пользователь ivan :

ivan@mobile:~$ sudo login ivan Пароль: . ivan@mobile:~$ 

Чтобы проверить, кто вошёл в систему, используется команда w в любом терминале:

oleg@mobile:~$ w 17:51:14 up 14 min, 3 users, load average: 0,28, 0,39, 0,50 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT oleg :0 :0 17:38 ?xdm? 1:33 0.00s /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_M oleg pts/0 - 17:47 1.00s 0.12s 0.00s w ivan pts/2 - 17:49 2:05 0.14s 0.05s -bash oleg@mobile:~$ 

Вывод показывает, что пользователи oleg и ivan вошли в систему через консоль pts . Кроме этого пользователь oleg предварительно вошёл в систему через локальный дисплей (GUI). Он же выполнил команду login для обоих пользователей.

Создание сообщения

Чтобы написать сообщение другому пользователю с помощью команды write выполняются следующие действия:

Запускаем утилиту и указываем пользователя:

Команда ожидает входное сообщение. На принимающей стороне пользователь получает подтверждение о соединении со следующей информацией:

ivan@mobile:~$ Message from oleg@mobile on pts/0 at 17:56 . 

Пользователь oleg набирает текст сообщения и нажимает Enter для перехода на новую строку:

oleg@mobile:~$ Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer now?

Сообщение появляется на принимающей стороне в режиме реального времени и пользователь ivan отвечает:

ivan@mobile:~$ Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer? write oleg Yes, of course. o 

Пользователь oleg завершает работу, набрав oo и нажав CTRL + D:

oleg@mobile:~$ write ivan Message from ivan@mobile on pts/2 at 18:03 . Hi, how are you? write ivan Would you like to drink some beer now? write oleg Yes, of course. o write oo oleg@mobile:~$ 

Пользователь ivan получает сообщение об окончании сеанса и бежит к Олегу:

ivan@mobile:~$ EOF Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer now? write oleg Yes, of course. o write oo EOF

Поскольку не существует надлежащего способа отличить, когда пользователь заканчивает сообщение, традиционный способ завершения оператора — это символ o . Чтобы сигнализировать об окончании разговора, напишите oo . Завершите работу, нажатием CTRL + D.

Читайте также:  Sync android with linux

Сообщение с помощью команды echo

С использованием команды echo можно ввести сообщение и передать команду write :

oleg@mobile:~$ echo "Hello from oleg" | write ivan

Канал связи немедленно заканчивается для отправителя, а получатель принимает сообщение и ожидает завершения.

Сообщение из файла

Для отправки сообщения из текстового файла создаётся текстовый файл:

Содержимое файла отправляется с помощью команды следующим образом:

oleg@mobile:~$ echo "Hello from oleg" | write ivan < beer.txt

Сообщение на определённый терминал

Когда у пользователя открыто несколько терминальных сеансов, утилита выбирает терминал с наименьшим временем простоя.

Используйте эту утилиту для проверки имени tty и времени простоя.

Чтобы указать, на какой tty отправлять сообщения, запустите:

ivan@mobile:~$ write oleg pts/0

Сообщения поступят только на pts/0 .

Заключение

Изучив в этой небольшой статье примеры использования команду write в Linux вы сможете использовать её в своей работе. Вы уже убедились в том, что это несложно.

Источник

How to Send a Message to Logged Users in Linux Terminal

How can I send a messages to logged on users in a Linux server? If you are asking this question, then this guide will help you learn how to do that. We will demonstrate how to send a message to all or a specific logged on user, on the terminal in Linux.

Linux offers a variety of means for sending messages to users logged on to a server as explained in the two methods below.

In the first method, we will use wall command – write a message to all currently logged in users on the terminal as shown.

# wall "System will go down for 2 hours maintenance at 13:00 PM"

Send Message to Logged Users

To disable the normal banner printed by wall, for example:

Broadcast message from [email protected] (pts/2) (Sat Dec 9 13:27:24 2017):

Add the -n (Suppress the banner) flag, this however, can only be used by the root user.

# wall -n "System will go down for 2 hours maintenance at 13:00 PM"

In the second method, we will use write command, which comes pre-installed on all if not most Linux distributions. It allows you to send a message to another user in the terminal using tty.

First check the all logged on users with the who command as shown.

Find Logged in Users

There are currently two users are active on the system (tecmint and root), now the user aaronkilik is sending a message to the root user.

$ write root pts/2 #press Ctrl+D after typing the message.

Send Message to User

That’s all! Do share with us other methods or commands for sending messages to all logged on users through the terminal in Linux. If you have any queries, please use the feedback form below.

Источник

Оцените статью
Adblock
detector