Unix操作系統(tǒng)發(fā)送屏幕信息
在Unix操作系統(tǒng)中,為了通知用戶某條信息,我們常常采用向用戶能看到的屏幕寫信息的方法實現(xiàn)。下面,我們來講解這方面的知識。
Unix操作系統(tǒng)向單一屏幕發(fā)送信息
每個登錄主機系統(tǒng)的用戶都分配有一個終端號,例如主控臺上的12個屏幕分別為tty01~tty12,從多用戶卡上登錄一般有tty2a、tty2b、tty21a……等等終端設(shè)備號,如果是遠程登錄則為ttyp0、ttyp1等虛擬終端號。它們對應(yīng)的終端設(shè)備文件都在/dev目錄下。
這種方法使用了輸出轉(zhuǎn)向符“>”直接寫終端文件/dev/tty03來實現(xiàn)向屏幕發(fā)送信息。與以下其他三種方式不同的是,這種方法是針對終端的,而不是針對登錄用戶的,所以即使該終端沒有用戶登錄,使用這種方法也可以向屏幕發(fā)送信息。但其他三種方法只能對有用戶登錄的屏幕發(fā)送信息。
Unix操作系統(tǒng)向指定用戶發(fā)送信息
同一個系統(tǒng)用戶可以在多個終端登錄,例如超級用戶可以在主控臺三號屏幕,同時也可以在多用戶卡連接的tty21c終端登錄。此時要向指定屏幕發(fā)送信息可以用write命令。
如果用戶只在一個屏幕登錄,可以省略第二個參數(shù)。利用這個命令可以實現(xiàn)聊天功能,因為每次回車后信息即發(fā)送至指定屏幕,這種特性是其他幾種發(fā)送信息方式無法實現(xiàn)的。“終止”使用Ctrl+d組合鍵。
Unix操作系統(tǒng)向登錄主機的所有用戶發(fā)送信息
多用戶系統(tǒng)特有的廣播概念:像無線廣播一樣,讓所有人都聽到你的聲音。
例子中“-g”參數(shù)指定用戶組,實現(xiàn)向特定組發(fā)送信息的功能。換言之,系統(tǒng)中有多個用戶組登錄,你只想將信息廣播到ROOT超級用戶組屬性登錄的用戶屏幕,可以用“-g root”參數(shù)。無參數(shù)的wall命令向所有登錄系統(tǒng)的用戶發(fā)送屏幕信息,一般用于要緊急關(guān)機的場合,提示用戶在規(guī)定時間保存資料、退出系統(tǒng)。
要廣播的信息可以是一個文本文件中的內(nèi)容,也可以直接輸入,但與write不同的是,直接輸入時每行信息回車后并不發(fā)送,只有在Ctrl+d組合鍵確認輸入結(jié)束后才全部發(fā)送。需要注意的是:如果系統(tǒng)中無其他用戶登錄,各個屏幕(終端)都處于Login:等待登錄狀態(tài),那么wall命令發(fā)送的信息就不會顯示在屏幕上。
Unix操作系統(tǒng)向網(wǎng)絡(luò)中的用戶屏幕發(fā)送信息
上面的三種方法只能對本地主機的屏幕發(fā)送信息,實際工作中我們會需要向網(wǎng)絡(luò)中多臺Unix操作系統(tǒng)主機的用戶屏幕做同樣的操作,以便統(tǒng)一行動,此時就要用到網(wǎng)絡(luò)廣播命令rwall。
它的參數(shù)就是要接受信息的Unix操作系統(tǒng)主機IP地址,使用“<”轉(zhuǎn)向符將文本文件信息發(fā)送到指定主機的所有有用戶登錄的屏幕上。rwall命令不需要登錄對方主機,不需要口令。實際應(yīng)用中一般都作成一個shell文檔,將要接受信息的主機列入其中,然后統(tǒng)一發(fā)送。例如shell文檔為gb:發(fā)送信息時:./gb see.txt。
同樣,遠程主機的屏幕只有有用戶登錄才能接受到信息,在login:狀態(tài)下不會有信息發(fā)送到屏幕上。如果對方主機已經(jīng)關(guān)閉,或者線路出現(xiàn),系統(tǒng)會提示:“Couldn't contact 123.45.67.89 : RPC : Timed out”。
以上方法、命令在5.05SCO Unix操作系統(tǒng)中測試通過,在其他Unix操作系統(tǒng)中可能命令的具體形式會有所變化。希望大家能夠更好的學(xué)習(xí)Unix操作系統(tǒng)的知識。
【編輯推薦】