Introduzione
wall
è un'utilità della riga di comando che visualizza un messaggio sui terminali di tutti gli utenti che hanno effettuato l'accesso. I messaggi possono essere digitati sul terminale o all'interno di un file. wall sta per scrivi tutto, per inviare un messaggio solo a un utente specifico usa il comando write
.
Di solito, gli amministratori di sistema inviano messaggi per annunciare la manutenzione e chiedono agli utenti di disconnettersi e chiudere tutti i programmi aperti. I messaggi vengono mostrati a tutti gli utenti registrati con un terminale aperto. Gli utenti che utilizzano un ambiente desktop grafico senza terminale aperto non vedranno i messaggi. Ogni utente può controllare l'accesso in scrittura al proprio terminale con l'utilità mesg
. Quando il superutente invoca il comando wall
, tutti gli utenti ricevono i messaggi, indipendentemente dalle loro impostazioni di mesg
.
Trasmettere un messaggio
La sintassi del comando wall
è la seguente:
wall [OPTIONS] [<FILE>|<MESSAGE>]
Se non viene specificato alcun file, wall
legge il messaggio dallo standard input.
Il modo più semplice per trasmettere un messaggio è invocare il comando wall
con il messaggio come argomento:
wall "The system will be restarted in 10 minutes."
Broadcast message from root@TEST-SERVER-1 (pts/0) (Tue Oct 6 19:31:26 2020):
The system will be restarted in 10 minutes.
Il messaggio verrà trasmesso a tutti gli utenti attualmente connessi.
Per vedere tutti gli utenti che hanno effettuato l'accesso, eseguire il comando w
o who
.
Per sopprimere il banner e mostrare solo il testo digitato agli utenti che hanno effettuato l'accesso, invoca il comando con l'opzione -n
(--nobanner
):
wall -n "The system will be restarted in 10 minutes."
The system will be restarted in 10 minutes.
Se vuoi scrivere messaggi su più righe, richiama il comando senza argomenti:
wall
Il comando wall
aspetterà che tu inserisca il testo. Quando hai finito di digitare il messaggio, premi Ctrl+D
per terminare il programma e trasmettere il messaggio.
Puoi anche usare il reindirizzamento here-string o reindirizzare l'output di un altro comando a wall
. Ecco un esempio che mostra come utilizzare il comando echo
per trasmettere messaggi su più righe:
echo "The system will be restarted in 10 minutes. \nPlease save your work." | wall
Trasmettere un messaggio da un file
Se invii regolarmente gli stessi messaggi, puoi scrivere ciascuno di essi in un file, in modo da non dover digitare nuovamente lo stesso testo. wall
legge dal file solo se invocato come root.
Per trasmettere il contenuto di un file, invoca il comando wall
seguito dal nome del file:
wall message_file.txt
Broadcast message from root@TEST-SERVER-1 (pts/0) (Tue Oct 6 19:31:26 2020):
The system will be restarted in 10 minutes.
Trasmettere un messaggio a un gruppo
Per inviare un messaggio solo ai membri di un determinato gruppo, eseguire il comando con l'opzione -g
(--group
), seguito dal nome del gruppo. Ad esempio, per scrivere solo sui terminali dei membri del gruppo devs, dovresti eseguire:
wall -g devs "The system will be restarted in 10 minutes."
Il gruppo può anche essere specificato dal suo GID (ID gruppo).
Conclusione
Il comando wall
scrive un messaggio sui terminali di tutti gli utenti attualmente connessi.