Existe algum comando para enviar mensagens através do shell do Linux para outras pessoas na mesma rede? Estou usando write usere depois escrevo a mensagem. Mas há algum comando que não mostre meu nome de usuário ou que estou tentando enviar uma mensagem
O comando que estou usando mostrará isso ao usuário que estou tentando entrar em contato (código retirado da web):
A única maneira direta que conheço de fazer isso é usar o wallcomando Isso pode ser usado para omitir a identificação do remetente, através do -nswitch.
Exemplo
$ sudo wall -n hi
Remote broadcast message (Fri Nov 8 13:49:18 2013):
hi
usando eco
Esse método alternativo é mais um hack, pois não é feito por meio de uma ferramenta explícita, mas você pode repetir o texto no terminal de um usuário, assumindo que você sabe em qual deles está.
Exemplo
$ w
13:54:26 up 2 days, 36 min, 4 users, load average: 4.09, 4.20, 3.73
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
saml tty1 :0 Wed13 2days 3:55m 0.04s pam: gdm-password
saml pts/0 :0.0 Wed13 24:16m 0.35s 0.35s bash
saml pts/1 :0.0 Wed20 0.00s 3.71s 0.00s w
saml pts/4 :0.0 01:20 12:33m 0.36s 0.05s man rsync
Supondo que você saiba que o usuário samlestá de fato em um dos pseudo terminais, você pode ecoar o texto para esse dispositivo diretamente dessa forma. Do terminal pts/1:
$ sudo echo "Let's go have lunch... ok?" > /dev/pts/4
$
Mas 'wall' envia a mensagem para todos os usuários logados, certo?
Ricardo Almeida
2
@Exsound - correto. Não há como enviar uma mensagem sem a sua identificação através de qualquer outro método que eu já tenha visto.
slm
11
No meu sistema, o syslog está configurado para enviar mensagens com nível emergente via wall, portanto, logger -p emerg hifunciona da mesma maneira que o primeiro método acima (exceto que syslogd é mostrado como remetente), mas não precisa do sudo.
Michael Suelmann
11
@Exsound - você também pode ecoar diretamente para o terminal, consulte a atualização.
slm
@Exsound - você é bem-vindo, obrigado pela Q.
SLM
9
Você pode usar esta função :).
Copie esse código no arquivo com o nomeSendMessage.sh
#!/bin/bashSendMessage(){
com=`tty`set`who am i`
who | grep -v "$1">filef.txt
exec < filef.txt
array=""while read linedoset $line
echo $1
array+=($1)done
rm filef.txt
exec <$com
echo "====================> Select User Number <===================="
echo
select userName in ${array[@]}doUserNam=$userNameif[-n $UserNam ];thenbreakfidone
unset array #Clear the Array
echo
echo
echo "===================================> Message Body <==================================="
mesg y
read -p "put here your Message==> " messagel
echo $messagel | write $UserNamif[ $?-eq 0];then
echo "It has been sent successfully.............ok"#return 0else
echo "Message Failed to send ..............No!!"
echo "Maybe It is not available for you To send Message To hem "return1fi}SendMessage
logger -p emerg hi
funciona da mesma maneira que o primeiro método acima (exceto que syslogd é mostrado como remetente), mas não precisa do sudo.Você pode usar esta função :).
Copie esse código no arquivo com o nome
SendMessage.sh
Como usar:
Vá para o Terminal e digite:
E você pode enviar uma mensagem.
fonte