1. 程式人生 > >鳥哥的Linux私房菜讀書筆記--主機上的使用者訊息傳遞

鳥哥的Linux私房菜讀書筆記--主機上的使用者訊息傳遞

1、查詢使用者

之前學習過的id和finger都可以以進行查詢使用者的相關資料,最簡單的還可以使用last檢視

使用命令:w    命令:who    命令  lastlog    #查詢賬號的登入情況

2、使用者對談:write、mesg、wall

命令:write  使用者賬號  使用者所在的終端介面    #與使用者交流

例:write  vbird1  pts/2

如果不想讓使用者接受任何訊息

命令:$  mesg n    #決絕所有資訊,但對root傳來的訊息無法阻擋。

命令:$  mesg  y    #開始接受資訊

命令:$  wall  “廣播內容”    #對系統所有使用者傳送廣播

3、使用者郵箱信件:mail

郵箱mailbox都會放置在/var/spool/mail裡面。例如vbird就具有/var/spool/mail/vbird這個mailbox。

寄郵件:

命令:$  mail -s "郵件標題"  [email protected]    #如果寄給本機的使用者,甚至不需要加@localhost

例:我以 root 寄信給 vbird1 ,信件標題是『 nice to meet you 』,則:
[

[email protected] ~]# mail -s "nice to meet you" vbird1
Hello, D.M. Tsai
Nice to meet you in the network.
You are so nice. byebye!
. <==這裡很重要喔,結束時,最後一行輸入小數點 . 即可!
EOT
[[email protected] ~]# <==出現提示字元,表示輸入完畢了!
如此一來,你就已經寄出一封信給 vbird1 這位使用者囉,而且,該信件標題為: nice to meet you,信件內容就如同上面提到的。不過,你或許會覺得 mail 這個程式不好用~ 因為在信件編寫的過程中,如果寫錯字而按下 Enter 進入次行,前一行的資料很難刪除ㄟ! 那怎麼辦?沒關係啦!我們使用資料流重導向啊!呵呵!利用那個小於的符號 ( < ) 就可以達到取代鍵盤輸入的要求了。也就是說,你可以先用 vi 將信件內容編好, 然後再以 mail -s "nice to meet you" vbird1 < filename 來將檔案內
容傳輸即可。
例題:請將你的家目錄下的環境變數檔案 (~/.bashrc) 寄給自己!
答:mail -s "bashrc file content" dmtsai < ~/.bashrc
例題:透過管線命令直接將 ls -al ~ 的內容傳給 root 自己!
答:ls -al ~ | mail -s "myfile" root
剛剛上面提到的是關於『寄信』的問題,那麼如果是要收信呢?呵呵!同樣的使用 mail 啊! 假設我以 vbird1 的身份登入主機,然後輸入 mail 後,會得到什麼?
[
[email protected]
~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/vbird1": 1 message 1 new
>N 1 root Wed Jul 22 02:09 20/671 "nice to meet you"
& <==這裡可以輸入很多的指令,如果要查閱,輸入 ? 即可!

當輸入mail指令看到信件時,信件前面的>代表目前處理的信件,在大於符號的右邊的N代表信件尚未讀過。message list指的是每封郵件的左邊的數字。

常見指令:

指令 意義
h 列出信件標頭;如果要查閱 40 封信件左右的信件標頭,可以輸入『 h 40 』
d 刪除後續接的信件號碼,刪除單封是『 d10 』,刪除 20~40 封則為『 d20-40 』。 不過,這個動作要生效的話,必須要配合 q 這個指令才行(參考底下說明)!
s 將信件儲存成檔案。例如我要將第 5 封信件的內容存成 ~/mail.file:『s 5 ~/mail.file』
x 或者輸入 exit 都可以。這個是『不作任何動作離開 mail 程式』的意思。 不論你剛剛刪除了什麼信件,或者讀過什麼,使用 exit 都會直接離開 mail,所以剛剛進行的刪除與閱讀工作都會無效。 如果您只是查閱一下郵件而已的話,一般來說,建議使用這個離開啦!除非你真的要刪除某些信件。
q 相對於 exit 是不動作離開, q 則會實際進行你剛剛所執行的任何動作 (尤其是刪除!)

舊版的 CentOS 在使用 mail 讀信後,透過 q 離開始,會將已讀信件移動到 ~/mbox 中,不過目前CentOS 7 只需按下q即可離開