使用Linux命令來發送信息

設置登錄提示 

  /etc/motd文件的用途 

  /etc/motd?即message?of?today(布告欄信息),每次用戶登錄時,/etc/motd文件的內容會顯示在用戶的終端。系統管理員可以在文件中編輯系統活動消息,例如:管理員通知用戶系統何時進行軟件或硬件的升級、何時進行系統維護等。如果shell支持中文,還可以使用中文,這樣看起來更易於瞭解。/etc/motd?缺點是,現在許多用戶登錄系統時選擇自動進入圖形界面,所以這些信息往往看不到。 

  /etc/issue文件的用途 

  /etc/issue文件的使用方法與/etc/motd文件相差不大,它們的主要區別在於:當一個網絡用戶或通過串口登錄系統上時,/etc/issue的文件內容顯示在login提示符之前,而/etc/motd內容顯示在用戶成功登錄系統之後。 

  使用write命令 

  用戶可以使用write命令給其他在線用戶發送消息。格式: 

  #write username [tty] 

  在Shell提示符號輸入write,username指接受發送信息的用戶名。如果一個用戶多次登錄到系統, tty參數指定要發送的終端。使用write發送信息的前提條件是該用戶已經登錄到系統。否則會出現以下提示: 

  #write cjh 
  write:cjh is not logged in 

  可以使用who命令查詢登錄用戶名稱。接着可以輸入要發送的信息。當輸入完畢後,鍵入EOF表示信息結束,用Crtl+D組合鍵發送信息。輸入內容會出現在用戶的屏幕上,同時通信中止。 

  如果在網絡上可以使用write命令在username後加入主機名稱或域名,建立網絡通信。如果要和cao主機上的bj用戶通信使用命令: 

  #write bj@cao 

  可以使用rusers命令列出所有局域網上的登錄用戶。 

  wall命令 

  如果想要發送一條信息給系統中所有用戶,可以使用wall命令,wall表示:write all。輸入wall,然後編輯信息,如果shell支持可以使用中文。然後使用Crtl+D組合鍵發送信息。這樣系統所有登錄用戶的桌面會收到信息。如果在網絡上,可以使用rwall命令把信息發送到局域網上所有的用戶。 

  talk命令 

  talk命令可以和另一個登錄系統用戶實現雙向對話。系統管理員輸入信息,用戶也可以輸入自己的信息。雙方都可以看到交流時的屏幕信息。格式: 

  #talk username 

  一個例子: 

  #talk b 

  對方屏幕顯示: 

  Message from [email protected] at 7:18 ... 
  talk: connection requested by [email protected]
  talk: respond with: talk [email protected] 

  然後進入talk分屏界面,雙方輸入的信息。會出現的對方的屏幕。 

  用戶完成會話後使用Crth+C斷開連接。和write一樣可以使用在username後加入主機名稱或域名,建立網絡會話連接。 

  mesg 命令 

  用戶可以阻止其他用戶給自己發送消息打斷工作,使用mesg n命令禁止其他用戶發送消息。當別人試圖再使用write給他發送信息時,發送者將會看見提示: 

  #write: user has messages disabled on pts/n? 

  但是超級用戶可以給任何用戶發送消息,即使用戶使用mesg n命令。要恢復接受信息輸入: 

  mesg -y 

  Linux服務器運行的軟件主要是開源軟件,而且都在不停升級,穩定版和測試版交替出現。如果你是一個Linux網管員,你經常需要上相應的網站看,是否有補丁,是否有了bug fix,是否需要升級。網絡管理員還要給用戶提供安全服務。對用戶要定期發送安全信息,是讓用戶具有安全意識。通過使用以上命令可以更好幫助管理用戶。

在UNIX操作系統中,爲了通知用戶某條信息,我們常常採用向用戶能看到的屏幕寫信息的方法實現。 
   向單一屏幕發送信息 
   每個登錄主機系統的用戶都分配有一個終端號,例如主控臺上的12個屏幕分別爲tty01~tty12,從多用戶卡上登錄一般有tty2a、tty2b、tty21a……等等終端設備號,如果是遠程登錄則爲ttyp0、ttyp1等虛擬終端號。它們對應的終端設備文件都在/dev目錄下。 
  echo'讓我告訴你:……' > /dev/tty03 

  這種方法使用了輸出轉向符“>”直接寫終端文件/dev/tty03來實現向屏幕發送信息。與以下其他三種方式不同的是,這種方法是針對終端的,而不是針對登錄用戶的,所以即使該終端沒有用戶登錄,使用這種方法也可以向屏幕發送信息。但其他三種方法只能對有用戶登錄的屏幕發送信息。 


   向指定用戶發送信息 


   同一個系統用戶可以在多個終端登錄,例如超級用戶可以在主控臺三號屏幕,同時也可以在多用戶卡連接的tty21c終端登錄。此時要向指定屏幕發送信息可以用write命令。 

  write root tty03 

  如果用戶只在一個屏幕登錄,可以省略第二個參數。利用這個命令可以實現聊天功能,因爲每次回車後信息即發送至指定屏幕,這種特性是其他幾種發送信息方式無法實現的。“終止”使用Ctrl+d組合鍵。 


   向登錄主機的所有用戶發送信息 


   多用戶系統特有的廣播概念:像無線廣播一樣,讓所有人都聽到你的聲音。 

  wall 

  wall -g group 

  wall -g root see.txt 

  例子中“-g”參數指定用戶組,實現向特定組發送信息的功能。換言之,系統中有多個用戶組登錄,你只想將信息廣播到ROOT超級用戶組屬性登錄的用戶屏幕,可以用“-g root”參數。無參數的wall命令向所有登錄系統的用戶發送屏幕信息,一般用於要緊急關機的場合,提示用戶在規定時間保存資料、退出系統。要廣播的信息可以是一個文本文件中的內容,也可以直接輸入,但與write不同的是,直接輸入時每行信息回車後並不發送,只有在Ctrl+d組合鍵確認輸入結束後才全部發送。需要注意的是:如果系統中無其他用戶登錄,各個屏幕(終端)都處於Login:等待登錄狀態,那麼wall命令發送的信息就不會顯示在屏幕上。 


   向網絡中的用戶屏幕發送信息 


   上面的三種方法只能對本地主機的屏幕發送信息,實際工作中我們會需要向網絡中多臺Unix主機的用戶屏幕做同樣的操作,以便統一行動,此時就要用到網絡廣播命令rwall。 

  rwall 123.45.67.89 < see.txt 

  它的參數就是要接受信息的Unix主機IP地址,使用“<”轉向符將文本文件信息發送到指定主機的所有有用戶登錄的屏幕上。rwall命令不需要登錄對方主機,不需要口令。實際應用中一般都作成一個shell文檔,將要接受信息的主機列入其中,然後統一發送。例如shell文檔爲gb: 

  rwall 123.45.67.89 < $1 

  rwall 123.45.67.90 < $1 

  rwall 123.45.67.91 < $1 

  …… 

  發送信息時:./gb see.txt。 

  同樣,遠程主機的屏幕只有有用戶登錄才能接受到信息,在login:狀態下不會有信息發送到屏幕上。如果對方主機已經關閉,或者線路出現故障,系統會提示:“Couldn't contact 123.45.67.89 : RPC : Timed out”。 

  以上方法、命令在SCO Unix5.05系統中測試通過,在其他Unix系統中可能命令的具體形式會有所變化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章