Precisa comunicar algo de forma imediata a todos os utilizadores conectados ao sistema? O comando `wall` no Linux oferece uma abordagem mais direta do que o e-mail, enviando a mensagem diretamente para os terminais de todos os utilizadores ativos, garantindo que a mensagem seja notada por todos que estejam a usar um terminal no sistema.
O Comando `wall`
Se necessita de enviar uma mensagem urgente a todos os utilizadores conectados ao seu computador, como o faz de forma eficaz? O e-mail nem sempre é a solução ideal, pois não garante leitura imediata. Se a informação precisa ser transmitida instantaneamente, o e-mail não é o meio mais apropriado. Além disso, o envio de e-mails pode sobrecarregar as caixas de entrada de utilizadores que não precisam de ver a mensagem naquele momento.
Identificar quem está conectado e de onde, requer um certo esforço e tempo. O seu sistema pode estar fisicamente localizado em Lisboa, mas pode ter utilizadores remotos a trabalhar a partir do Porto. Como, então, pode enviar uma mensagem direcionada especificamente aos utilizadores conectados?
O Linux, tal como outros sistemas operacionais similares ao Unix, oferece uma solução simples para este problema. O comando `wall` funciona como um telegrama direto, garantindo a entrega de uma mensagem a todos os utilizadores de terminal, colocando a mensagem diretamente na sua frente. Os utilizadores não conseguem ignorá-la, e tem a certeza de que a mensagem foi recebida. Não é necessário que abram qualquer aplicação para verificar a existência de uma mensagem.
A entrega é feita de forma tão discreta como uma torta de creme na cara.
Como Enviar uma Mensagem
O sistema utilizado para este artigo foi baseado no Fedora Linux, mas o comando `wall` funcionará da mesma forma em outras distribuições.
Uma pequena diferença que pode encontrar é que algumas distribuições Linux exigem o uso de `sudo` para enviar uma mensagem a partir de um ficheiro de texto, enquanto outras exigem sempre o uso de `sudo` com o comando `wall`. Esta é uma particularidade das distribuições Linux e não do funcionamento do comando em si.
Para enviar uma mensagem a todos os utilizadores, digite `wall`, um espaço, e a mensagem que deseja enviar. No Fedora Linux, terá de usar `sudo`.
sudo wall Impressora principal offline até novo aviso.
A mensagem será enviada para todos os utilizadores que tenham um terminal aberto.
Os utilizadores locais Ana e Rui recebem a mensagem, assim como o utilizador remoto João, que está a trabalhar num computador com Ubuntu.
Todos recebem a mensagem em simultâneo, sem necessidade de verificar se a viram.
Enviar uma Mensagem a partir de um Ficheiro
Pode preparar a sua mensagem num ficheiro de texto e guardá-la para envio. Caso tenha mensagens recorrentes, pode criar uma biblioteca com mensagens predefinidas, evitando assim ter de as digitar repetidamente.
A mensagem no ficheiro `mensagem.txt` foi visualizada no terminal usando o comando `cat`, para garantir que é a mensagem correta.
A mensagem é então enviada, passando o nome do ficheiro de texto como parâmetro para o comando `wall`:
cat mensagem.txt
sudo wall mensagem.txt
Como antes, os utilizadores locais Ana e Rui (e todos os outros com um terminal aberto), assim como o utilizador remoto João, recebem a mensagem.
Boas Práticas de Utilização
Dado que o comando `wall` envia mensagens para todos os terminais, o impacto pode ser surpreendente. A utilização do comando `wall` deve ser feita com moderação e apenas em situações de necessidade real. O uso excessivo pode rapidamente tornar-se irritante.
Uma mensagem enviada com `wall` será sobreposta a tudo o que estiver no terminal do utilizador. Embora não altere o texto, irá obscurecê-lo. Este comportamento pode ser alarmante para utilizadores que desconheçam o comando.
Imagine que um dos seus utilizadores locais está a editar um ficheiro importante com o Vi quando a mensagem de `wall` é enviada.
A mensagem aparece no meio do ficheiro.
Para repor a visualização correta, o utilizador só precisa de deslocar a página um pouco para cima e para baixo.
É fácil repor a tela e continuar a trabalhar, mas interrupções constantes desta natureza irão gerar frustração nos utilizadores.
Apesar da sua utilidade, o comando `wall` deve ser utilizado com moderação.
E Quanto aos Ambientes Gráficos?
O comando `wall` atinge todos aqueles com um terminal aberto, mas não afetará quem estiver a usar um ambiente gráfico sem uma janela de terminal aberta.
Se alguém estiver num ambiente gráfico, e tiver um terminal aberto, verá a mensagem nesse terminal, nada mais. Não utilize o comando `wall` para atingir utilizadores fora do terminal.
O método não é sutil, mas garante a entrega da mensagem, especialmente num ambiente de terminal tradicional.