Apakah ada perintah untuk mengirim pesan melalui Linux shell ke orang lain di jaringan yang sama? Saya menggunakan write userdan kemudian menulis pesan itu sendiri. Tetapi ada perintah yang tidak menunjukkan nama pengguna saya atau saya mencoba mengirimi mereka pesan
Perintah yang saya gunakan akan menunjukkan ini kepada pengguna yang saya coba hubungi (kode diambil dari web):
Satu-satunya cara langsung yang saya tahu melakukan ini adalah dengan menggunakan wallperintah. Ini dapat digunakan untuk menghilangkan identifikasi pengirim, melalui -nsakelar.
Contoh
$ sudo wall -n hi
Remote broadcast message (Fri Nov 8 13:49:18 2013):
hi
menggunakan gema
Metode alternatif ini lebih merupakan peretasan, karena tidak dilakukan melalui alat eksplisit tetapi Anda dapat menggemakan teks ke terminal pengguna dengan asumsi Anda tahu yang mana yang sedang mereka gunakan.
Contoh
$ 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
Dengan asumsi Anda tahu pengguna samlsebenarnya di salah satu terminal semu Anda dapat menggemakan teks ke perangkat itu secara langsung seperti itu. Dari terminal pts/1:
$ sudo echo "Let's go have lunch... ok?" > /dev/pts/4
$
Tapi 'wall' mengirim pesan ke semua pengguna yang masuk, kan?
Ricardo Almeida
2
@Exsound - benar. Tidak ada cara untuk mengirim pesan tanpa identifikasi Anda melalui metode lain yang saya lihat.
slm
1
Pada sistem saya syslog dikonfigurasi untuk mengirim pesan dengan level muncul melalui dinding, jadi logger -p emerg hiberfungsi sama seperti metode 1 di atas (kecuali syslogd ditampilkan sebagai pengirim), tetapi tidak perlu sudo.
Michael Suelmann
1
@Exsound - Anda juga dapat menggema langsung ke terminal, lihat pembaruan.
slm
@Exsound - sama-sama, terima kasih untuk Q.
slm
9
Anda dapat menggunakan fungsi ini :).
Salin kode itu ke file dengan namaSendMessage.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
berfungsi sama seperti metode 1 di atas (kecuali syslogd ditampilkan sebagai pengirim), tetapi tidak perlu sudo.Anda dapat menggunakan fungsi ini :).
Salin kode itu ke file dengan nama
SendMessage.sh
Cara menggunakan:
Buka Terminal dan ketik:
Dan Anda dapat mengirim pesan.
sumber