色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

/dev/tty文件在Unix操作系統中的妙用

瀏覽:8日期:2024-06-14 13:04:12

在Unix系統中,文件是其中最重要的資源。如標準輸出文件、標準輸入文件、標準錯誤文件等等。不過這些文件普通用戶與系統工程師都需要用到。而在實際工作中,對于系統工程師來說,還需要掌握/dev/tty這個文件。

這個文件顧名思義,主要用來表示用戶的終端,但是它跟普通的終端又有差異。普通的終端是指一些硬件設備,如顯示器等等。通常情況下,標準輸出或者標準錯誤流的文件都會輸出到終端中。但是,這些標準的輸入輸出往往不能夠輸入到/dev/tty文件中。而是需要通過重定向功能,把一些命令的輸出重定向到這個文件中。另外需要說明的是,普通終端的話往往是每個用戶之間相互獨立的。也就是說,每個用戶的輸出彼此之間是互不干涉的。在用戶A的終端中不能夠看到用戶B的終端信息。但是/det/tty這個文件由其特殊性。這個終端文件可以由各個用戶共享。正是因為這個文件有這方面的特殊性,為此在實際工作中系統工程師經常需要用到這個文件。

一、系統工程師常見需求描述及實現方案。

利用這個特殊文件,可以幫助系統工程師解決很多實際問題。

1、利用這個文件來屏蔽不需要的結果信息。通常情況下,為了提高與用戶溝通界面的友好性,往往會在腳本程序中,利用echo命令向用戶顯示一些提示信息。如一個簡單的計算器腳本程序,會提示用戶輸入相關的參數,如“Put one number等等。有時候,還會在程序的開頭顯示一大堆的程序說明。這毋庸置疑,可以提高腳本程序的可讀性。即方便了用戶的使用,而且別的系統工程師借助這些說明也可以順利對其進行功能上的調整與擴展。不過這也會贊成一些工作上的困擾。如當系統工程師調試腳本程序的時候,這些顯示的提示信息反而會增加系統工程師的困擾,會增加他們的閱讀量。因為此時用戶終端上顯示的將士全部的信息,即包括對于應用程序沒有實際價值的提示信息,也包括一些應用程序執行過程中的錯誤信息。這顯然會給系統工程師閱讀錯誤信息帶來一定的麻煩。另外如筆者談過,系統工程師可以通過重定向符號把這個終端輸出的信息重定向到一個文件中。可是此時這個文件中也會顯示全部的信息。而這些信息大部分是系統工程師不需要看到的。系統工程師可能只需要一些相關的參數以及具體的執行結果。如10*10=100。就這么簡單,而不需要看到一大堆的提示說明。而且如果這個文件中帶有這么多的無用信息,對于其他腳本程序來調用這個文件也不是很方便。遇到這種情況時該如何處理呢?其實系統工程師可以輕松的通過/dev/tty文件來過濾這些無用的提示信息。如只需要把腳本程序的運行結果通過重定向服務重定向到/dev/tty文件中。在這個重定向的過程中,Unix系統的shell會采取一定的內部處理機制,會忽略掉echo等命令。也就是說,只要把命令的標準輸出重定向到這個文件中,則利用echo命令設置的一些提示信息都會被忽略掉。此時在這個文件中,存儲的只有一些必要的運行信息,如錯誤或者警告信息等等。

2、當作其他命令的參數。/dev/tty文件不僅可以用作終端設備來管理,而且這個文件還可以被用來當作其他命令的參數。因為一個終端就相當于一個文件,為此在一些命令中如tee命令就可以拿這個文件當作參數。Tee命令是一個分流命令,其主要用途就是把一個輸入流的一個副本保存到另外一個文件中。有時候這個特性非常有用。如現在系統工程師需要利用who命令來顯示Unix系統的當前登錄用戶。同時希望把這個顯示結果保存到一個特定的文件中。如果沒有tee這個命令的話,則需要通過兩個步驟才能夠完成。首先需要利用who命令在當前終端中顯示相關的結果。然后再利用who >重定向符號把這個命令的顯示結果保存到一個特定的文件中。如果一開始就采用who >進行重定向的話,則在用戶終端將不會顯示任何信息。因為其直接把結果保存到了一個文件中。而現在系統工程師即希望把命令的結果輸出到終端中,同時保存到一個文件中,就需要利用tee命令,如who | tee userinfo.txt。(注意,如果利用了tee命令的話,在可以不再使用重定向符號)。到這里為止沒有涉及到/dev/tty這個文件。who | tee userinfo.txt這個命令的顯示結果,只會顯示當前登錄的用戶明細,而不會顯示當前有多少個用戶登錄到系統中。可能或許有人回說只要數一下就可以了呀。確實數數的話可以實現,但是計算機不會自己數呀。如果其他腳本程序需要用到當前登錄用戶的總數而不需要明細,那么該如何處理呢?此時就需要利用/dev/tty文件作為參數了。如可以使用who | tee /dev/tty |wc –l 命令。這個命令可以把當前用戶的明細以及總共的用戶數量顯示出來。以上這個命令其實我們可以分為四個步驟。第一步系統先執行who命令;第二步tee命令把who命令執行對結果保存到/dev/tty文件中;第三步wc命令會統計/dev/tty文件中的行數。由于一個終端對相當于一個文件,故利用wc命令可以統計出當前系統登錄用戶的數量。第四步再把這個統計的結果顯示在終端上。所以說,把/dev/tty文件當作其他命令的一個參數,一個一起組合以實現一些比較復雜的功能。

二、/dev/tty文件使用的注意點。

在使用這個文件中,特別需要關注的是其權限文件。默認情況下,普通用戶也可以實現這個文件,從而可能造成一定的安全隱患。如現在系統中有兩個普通用戶sa01與sa02。而他們兩個都是通過遠程終端連入到Unix操作系統中。此時假設用戶sa01知道用戶sa02的用戶名以及登錄密碼。那么就可以假冒用戶sa02的身份,把一些命令的執行結果重定向到/dev/tty文件中。同時利用tee命令進行分流。此時對于用戶sa02時,因為其執行相關的命令在終端上仍然可以正常顯示,不會產生什么懷疑。但是這個用戶其可能不知道,自己執行命令的結果已經保存到/dev/tty文件中。而其他用戶就可以通過這個文件來顯示在其用戶終端上所顯示的信息。這顯然會導致用戶SA02信息的泄漏,給其帶來一定的損失。

 /dev/tty這個文件可以有多個用戶同時使用,而且相互之間不會發生沖突。這個特性可以幫助系統工程師實現很多有用的功能。但是毋庸置疑的是,也造成了一定的安全隱患。為此對于大部分情況下,Unix系統工程師要對這個文件進行一定的權限限制,如只有系統工程師(不一定是特權用戶)才可以使用這個文件。從而防止非法攻擊者利用這個文件來獲取其攻擊所必要的信息。

另外需要注意的是命令 >/dev/tty與命令> file連個命令其最終的結果有可能相同,也有可能不同。前者在把命令的顯示結果保存到/dev/tty文件中的時候,會過濾掉echo等命令設置的信息。而后者這個命令這會把顯示的結果一五一十的照搬到file文件中去。也就是說,如果在命令或者腳本程序中沒有echo等類似的命令設置信息的話在,則這兩個命令重定向文件后所保存文件的內容是一致的。但是如果在命令或者腳本程序中有類似的提示命令的話,則兩個文件的顯示結果則會不同。為此系統工程師就需要根據自己的實際需要,來選擇合適的重定向文件,看看有否必要采用/dev/tty文件。筆者的態度是,只有在確實有必要的情況下,才能夠使用/dev/tty文件。因為這個文件是比較稀缺的,只由在缺其不可的情況下,才啟用這個文件。

標簽: Unix系統
主站蜘蛛池模板: a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 1级毛片| 在线视免费频观看韩国aaa | 国产精品a人片在线观看 | 久久综合九色综合欧洲色 | 国产真实自拍 | 亚洲精品成人久久 | 国产一区日韩二区欧美三 | 欧美有码在线观看 | 99在线免费观看 | 久久er视频| 4438全国最大成人网视频 | 三级国产三级在线 | 国产一区二区影院 | 免费特级毛片 | 日韩一区二区三区在线观看 | 武松金莲肉体交战在线观看 | 久久中文字幕久久久久91 | 国产精品免费视频一区一 | 久久国产首页 | 国产成人精品三级在线 | 在线观看免费黄视频 | 中文字幕在线一区二区在线 | 黄 色 免费网 站 成 人 | 久青草国产在线 | 欧美free性秘书xxxxhd | www.成人在线视频 | 久久青草免费线观最新 | 久久中精品中文 | 最新步兵社区在线观看 | 亚洲高清一区二区三区四区 | 欧美精品自拍 | 91精品人成在线观看 | 欧美一级特黄视频 | 日本欧美一级二级三级不卡 | 国产成人久久久精品毛片 | 国产黄色片一级 | 欧美日韩一区在线观看 | 久久超级碰 | 孕妇孕妇aaaaa级毛片视频 | 初爱视频教程在线观看高清 |