Hai la necessità di comunicare rapidamente un avviso a tutti gli utenti attivi sul sistema? Il comando `wall` di Linux è una soluzione più diretta rispetto all’email, poiché recapita i messaggi direttamente a chi sta utilizzando una shell. Questo strumento è in grado di notificare chiunque stia lavorando da un terminale su una macchina.
Il Funzionamento del Comando `wall`
Come puoi diffondere un messaggio cruciale e immediato agli utenti connessi al tuo sistema? L’email, pur essendo utile, non garantisce una visualizzazione istantanea. Se la tua priorità è che tutti ricevano l’informazione subito, l’email non è la scelta migliore. Inoltre, non vorresti intasare le caselle di posta di chi non è collegato e che quindi non necessita del tuo messaggio.
Senza un ulteriore sforzo, risulterebbe complicato identificare chi è connesso al sistema e da dove. Il tuo server potrebbe essere localizzato ad Aberdeen, Washington, ma potresti avere utenti che si connettono da remoto da Aberdeen, Scozia. Come fare quindi per far recapitare un messaggio mirato agli utenti connessi?
Linux, e altri sistemi operativi basati su Unix, mettono a disposizione un metodo semplificato per questa necessità. Il comando `wall` opera come un telegramma virtuale, inviando messaggi a tutti gli utenti che stanno utilizzando un terminale. Il messaggio apparirà in bella vista, senza che l’utente debba cercarlo attivamente. Non è richiesta l’apertura di nessuna applicazione specifica per visualizzare la notifica.
L’effetto è tanto immediato quanto una torta in faccia.
Come Inviare un Messaggio
La macchina di test usata per la stesura di questo articolo è una installazione di Fedora Linux, ma il comando `wall` si comporterà in modo analogo anche su altre distribuzioni.
Una possibile variazione è che alcune distribuzioni Linux potrebbero richiedere l’utilizzo di `sudo` per inviare un messaggio da un file di testo, mentre altre richiedono `sudo` in ogni caso. Questa è una caratteristica della distribuzione, non del comando `wall` stesso.
Per notificare tutti gli utenti, digita `wall`, uno spazio, e poi il testo del messaggio. Su Fedora Linux, l’uso di `sudo` è necessario.
sudo wall Stampante principale fuori servizio fino a nuovo avviso.
Il messaggio sarà inoltrato a chiunque abbia una finestra di terminale aperta.
Gli utenti locali, Ria e Tom, riceveranno il messaggio, così come l’utente remoto Dick, che si trova su un sistema Ubuntu.
Tutti riceveranno il messaggio nello stesso istante, e avrai la certezza che sia stato visualizzato.
Invio di un Messaggio da File
È possibile preparare il testo del messaggio in un file e tenerlo pronto per l’invio. Se hai necessità di inviare messaggi con cadenza regolare, puoi creare una libreria di messaggi predefiniti per evitare di doverli riscrivere ogni volta.
Il messaggio nel file di testo `message.txt` è stato visualizzato nel terminale con il comando `cat` per assicurarsi che fosse corretto.
Il messaggio viene quindi inviato passando il nome del file al comando `wall` come parametro:
cat message.txt
sudo wall message.txt
Come prima, gli utenti locali Ria e Tom (e tutti gli altri collegati con una shell aperta) e l’utente remoto Dick riceveranno il messaggio.
Linee Guida per l’Utilizzo del Comando `wall`
Dato che il comando `wall` invia messaggi a tutti gli utenti del terminale, un uso eccessivo può diventare fastidioso. È importante ridurre al minimo l’impiego di questo comando e utilizzarlo solo quando strettamente necessario. Altrimenti, si corre il rischio di irritare gli utenti.
Un messaggio inviato con `wall` verrà mostrato sovrapposto a qualsiasi attività in corso nel terminale dell’utente. Non andrà a sovrascrivere il contenuto, ma lo coprirà temporaneamente. Questo può disorientare un utente non informato.
Immagina che uno degli utenti stia modificando un file importante con l’editor Vi, proprio nel momento in cui viene inviato un messaggio via `wall`.
Il messaggio comparirà al centro del file.
Per ripristinare la visualizzazione corretta del file, l’utente dovrà semplicemente scorrere il file in su e in giù.
Nonostante sia semplice ripristinare la visualizzazione e continuare a lavorare, un numero eccessivo di interruzioni di questo tipo può infastidire gli utenti. Pertanto, pur essendo uno strumento utile, il comando `wall` va usato con giudizio.
E gli Utenti con Interfacce Grafiche?
Il comando `wall` raggiungerà tutti gli utenti che hanno una finestra di terminale aperta, ma non notificherà chi sta usando un ambiente grafico senza una shell attiva.
Se un utente che utilizza un’interfaccia grafica ha anche una finestra di terminale aperta, il messaggio comparirà in tale finestra. Questo è l’unico modo per raggiungere chi non sta lavorando attivamente nel terminale. Non affidarsi a `wall` per raggiungere chi non usa un terminale.
Nonostante la sua mancanza di discrezione, è innegabile la sua efficacia nel comunicare messaggi, almeno all’interno di un contesto di terminale tradizionale.