使用Linux命令來發送資訊

來源:互聯網
上載者:User
使用Linux命令來發送資訊(轉貼)2007-10-08 12:13  Linux發展到今天,很多功能已經可以在可視化的介面中來完成。不過在很多情況下,命令還是非常有用的,特別是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 Talk_Daemon@www.cao.com at 7:18 ...
  talk: connection requested by b@www.cao.com.
  talk: respond with: talk b@www.cao.com

  然後進入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系統中可能命令的具體形式會有所變化。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.