Existe-t-il une commande permettant d'envoyer des messages via le shell Linux à d'autres personnes du même réseau? J'utilise write userpuis écris le message lui-même. Mais il y a une commande qui ne montre pas mon nom d'utilisateur ou que j'essaie de leur envoyer un message
La commande que j'utilise va montrer ceci à l'utilisateur que je tente de contacter (code tiré du Web):
Le seul moyen simple que je connaisse est de faire appel à la wallcommande. Ceci peut être utilisé pour omettre l'identification de l'expéditeur, via le -ncommutateur.
Exemple
$ sudo wall -n hi
Remote broadcast message (Fri Nov 8 13:49:18 2013):
hi
en utilisant écho
Cette méthode alternative est plus un hack, car elle ne s'effectue pas à l'aide d'un outil explicite, mais vous pouvez renvoyer du texte au terminal d'un utilisateur en supposant que vous sachiez sur lequel il se trouve.
Exemple
$ 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
En supposant que vous sachiez que l’utilisateur samlest en fait sur l’un des pseudo-terminaux, vous pouvez envoyer du texte à cet appareil directement comme ceci. Du terminal pts/1:
$ sudo echo "Let's go have lunch... ok?" > /dev/pts/4
$
Mais 'mur' envoie le message à tous les utilisateurs connectés, non?
Ricardo Almeida
2
@ Exsound - correct. Il n’ya pas de moyen d’envoyer un message sans votre identification par une autre méthode que j’ai vue.
slm
1
Sur mon système, syslog est configuré pour envoyer des messages avec level level via un mur. Il logger -p emerg hifonctionne donc de la même manière que la 1re méthode ci-dessus (sauf que syslogd est affiché en tant qu'expéditeur), mais n'a pas besoin de sudo.
Michael Suelmann
1
@Exsound - vous pouvez également envoyer un écho directement au terminal, voir mise à jour.
slm
@Exsound - de rien, merci pour le Q.
slm
9
Vous pouvez utiliser cette fonction :).
Copiez ce code dans le fichier avec le nomSendMessage.sh
#!/bin/bashSendMessage(){
com=`tty`set`who am i`
who | grep -v "$1">filef.txt
exec < filef.txt
array=""while read line
doset $line
echo $1
array+=($1)done
rm filef.txt
exec <$com
echo "====================> Select User Number <===================="
echo
select userName in ${array[@]}doUserNam=$userName
if[-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 $UserNam
if[ $?-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
fonctionne donc de la même manière que la 1re méthode ci-dessus (sauf que syslogd est affiché en tant qu'expéditeur), mais n'a pas besoin de sudo.Vous pouvez utiliser cette fonction :).
Copiez ce code dans le fichier avec le nom
SendMessage.sh
Comment utiliser:
Allez au terminal et tapez:
Et vous pouvez envoyer un message.
la source