wall - write to all users
/usr/sbin/wall [-a] [-g grpname] [filename]
wall reads its standard input until an end-of-file. It then sends this message to all currently logged-in users preceded by:
Broadcast Message from . . .
If filename is given, then the message is read in from that file.
It is used to warn all users, typically prior to shutting down the system. Normally, pseudo-terminals that do not correspond to login sessions are ignored. Thus, when using a window system, the message appears only on the console window. However, –a will send the message even to such pseudo-terminals.
The sender must have all privileges to override any protections the users may have invoked. See mesg(1).
wall runs setgid() to the group ID tty, in order to have write permissions on other user's terminals. See setuid(2).
wall will detect non-printable characters before sending them to the user's terminal. Control characters will appear as a "^" followed by the appropriate ASCII character; characters with the high-order bit set will appear in “meta” notation. For example, ‘\003’ is displayed as ‘^C’ and ‘\372’ as ‘M−z’.
The following options are supported:
Broadcast message to the console and pseudo-terminals.
Broadcast to the users in a specified group only, per the group database (see group(5)).
If the LC_* variables (LC_CTYPE, LC_TIME, LC_COLLATE, LC_NUMERIC, and LC_MONETARY) are not set in the environment, the operational behavior of wall for each corresponding locale category is determined by the value of the LANG environment variable. See environ(7). If LC_ALL is set, its contents are used to override both the LANG and the other LC_* variables. If none of the above variables are set in the environment, the "C" (U.S. style) locale determines how wall behaves.
See attributes(7) for descriptions of the following attributes:
wall displays “Cannot send to . . .” when it fails to open a user's tty file.