歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix資訊 >> 讓Unix終端隨用戶而動

讓Unix終端隨用戶而動

日期:2017/3/6 11:43:12   编辑:Unix資訊

在Windows操作系統中,也可以對終端進行一些簡單的設置。如可以設置輸入法的切換健等等。但是在Windows操作系統中,這個終端的設置是非常少的。而在Unix操作系統中,則可以設置終端的很多特性,以方便用戶使用。其實只要有心的用戶,在實際工作中可能已經碰到過類似的現象。如在有些Unix操作系統上,利用退格鍵可以刪除一個字符;但是在有些操作系統上則不行。即使在同一個版本的shell中也會遇到這種情況。其實,這不是鍵盤有問題,而是由於終端的個性化設置所造成的。有時候系統工程師需要調整Unix終端設置,以適應其自身的工作習慣。Unix將終端當作文件來管理,所以其可以設置的參數有很多,基本上包含了跟終端有關的所有特性。不過系統工程師實際上用的並不是很多,主要有如下幾個方面的內容。

一、Ctrl+C組合鍵能否退出應用程序。

無論是Unix操作系統也好,是Linux操作系統也好,有時候會遇到命令無法響應的情況。或者數,由於運行時間比較長,超過了系統工程師的忍耐時間。此時,用戶往往可以通過Ctrl+C鍵來中斷進程,中斷命令的運行。但是有些系統工程師用不慣這個組合鍵。由於它們用慣了微軟的產品。在微軟的記事本或者Word等版本文件中,這個命令是用來復制文本的。現在要讓他們用來中斷命令行,他們就容易搞混。為此有些系統工程師就喜歡將這個屏幕屏蔽掉。在Unix系統中,這個功能是通過關鍵字intr來控制的。如果要屏蔽這個功能,只需要將這個執行stty命令即可。不過筆者建議,最好還是不用動這個關鍵字為好。否則的話,到真的需要推出某個運行著的命令時,就無法強制退出了。

如果需要重新啟動這個命令,則可以利用stty intr \^c來設置。其中Intr是控制這個功能的關鍵字。\^兩個符號在系統中有特殊的含義。在Unix中要設置某個終端關鍵字值,這裡采用的是\反斜桿,而不是等號或者其他符號。另外,^在Unix系統中叫做脫字符,它在終端關鍵字設置時代表的是鍵盤上的ctrl鍵。最後的字符c表示鍵盤上的c鍵。不過需要注意的是,這是一個小心的字符c,而不是大寫的。上面這個命令就是告訴操作系統,利用Ctrl+c鍵作為中斷符號。

二、文件結尾符號的設置。

在Unix操作系統中,有時候文本方式的操作要比圖形化操作多的多。特別是將Unix操作系統當作服務器來管理,往往只把操作系統啟動當文本模式,而不是當圖形化模式。這不僅可以提高服務器的工作效率,而且還有利於提高其穩定性。不過如果通過文本模式來管理操作系統,對於不少系統工程師來說,會帶來一些挑戰,因為都需要通過鍵盤來完成相關的操作。如在寫郵件時,一切操作都是靠鍵盤來完成。在此時就會遇到一個文件,如何告訴操作系統已經將文本輸入完成了呢?如在文本模式下書寫郵件,需要告訴操作系統可以結束鍵盤的輸入操作了。如在利用cat命令創建文件時,也需要手工的告訴操作系統文件內容已經完成了。此時,系統工程師可以使用Ctrl+a鍵來告訴操作系統。這個功能在系統中對應的關鍵字是eof(文件結尾符)。系統工程師如果用不慣這個組合鍵的話,可以利用命令stty來進行更改。如有些從微軟轉行過來的系統工程師,系統使用Ctrl+e鍵來表示文件結束符,而不喜歡使用這個Ctrl+a鍵(可能在微軟產品中這是表示全選的含義吧)。此時就可以利用這個命令來進行設置:stty eof \^e。跟上面的命令非常相似,只是所采用的關鍵字不同而已。不過在更改這些終端操作符號的時候,需要注意避免采用相同的終端操作符號。否則的話,可能會出現一些莫名其妙的問題。

三、退格鍵是否允許刪除字符。

在鍵盤上有兩個鍵,一個是del鍵,用來向後刪除字符。另外一個是退格鍵,則用來向前刪除字符。但是有時候系統工程師會發現退格鍵不能夠起作用,其不能夠向後刪除字符。排除鍵盤故障外,往往也是這個終端配置所惹的禍。在終端配置中有個關鍵字叫做echoe,其就是用來控制是否允許使用退格鍵來向後刪除字符。不過這個設置跟上面的設置方法有差異。如果需要禁用這個功能的話,則需要使用stty –echoe命令。如果需要啟用的話,則需要使用stty echoe命令。

其實,在Unix操作系統中,跟終端相關的關鍵字主要有兩種表現形式,分別為關鍵字=某個值或者關鍵字(-關鍵字)等形式表示。這兩種形式的關鍵字其值設置的方式是不同的。如上面提到的中端符號,其系統中的顯示格式為關鍵字=某個值的格式(intr=^c)。對於這個格式的關鍵字需要采用的是\^的調整方式,其可以重新設置功能鍵。而現在的退格功能的關鍵字為echoe,其顯示格式為關鍵字(-關鍵字)。這種關鍵字又叫做開關關鍵字。也就是說其只有啟用或者禁用。而不能夠使用其他的內容來代替。對於這種類型的關鍵字,要調整其值的話,也相對簡單。只需要利用stty (-)關鍵字的形式即可。如果關鍵字前面沒有減號的話,則說明這個功能是啟用的。如果有減號的話,則說明這個功能是禁用的。如果系統工程師反先這個退格鍵不能用了,可以先利用命令stty –a命令來查看當前終端的配置。特別是需要關注一些這個echoe關鍵字,看其前面是否有減號。如果有的話,就表示當前不能夠利用退格鍵來向前刪除一個字符。此時系統工程師可以利用stty echoe來啟用這個功能。通常情況下,不需要注銷系統或者關閉當前會話這個設置就會生效。不同的shell對這個退格鍵的默認設置是不同的。所以為了操作的方便,系統工程師有時候往往需要調整這個退格鍵的功能,來保證各個版本的shell 都能夠使用這個功能或者禁用這個功能。

四、用戶輸入的內容不回顯。

在登陸Unix操作系統時(文本模式下),用戶需要輸入帳戶名與密碼才能夠登陸。當用戶輸入密碼時,在屏幕上不會有任何的提示,連*好掩飾符號都沒有。有時候,系統工程師為了似的腳步程序也可以向這個口令一樣,接收用戶的輸入而不是將內容輸出到屏幕上(即用戶輸入的內部不回顯到屏幕上),就需要修改echo這個關鍵字的值。不要要注意,修改這個關鍵字的時候需要三步走。第一步將這個關鍵字設置為-echo(表示向密碼那樣不回顯用戶輸入的內容);第二步不回顯的接收用戶輸入的內容,此時用戶的任何輸入不會顯示到屏幕上;第三步再將這個關鍵字設置為echo,即後續的內容允許其顯示在屏幕上。因為在大部分情況下,都是需要系統將用戶輸入的結果顯示在屏幕上的。否則的話,不能夠保證用戶輸入的准確性。所以,在使用完畢後,一定要講這個關鍵字設置為原先的值,即利用stty –echo將這個關鍵字設置回來。這裡echo也是利用-號來代表的一個關鍵字,也就是說這個功能也是一個開關功能。在設置時,要麼關閉,要麼啟用。而第三種處理方法。也就是說,如果想要用戶輸入的內容以*號來代替的話,則需要采用其他的方式。確實,這個以*顯示的方式跟終端設置無關。

可見,在Unix操作系統中,對於終端的控制要比在Windows操作系統強的多。有時候系統工程師為了在多個操作系統版中保證一個比較統一的終端配置,往往會將這些內容寫成一個腳本文件。然後遇到一個新的shell時,會先不管三七二十一,執行這個腳本。如此,就可以實現Unix終端隨用戶而動,根據用戶的操作習慣來進行終端配置的調整。

Copyright © Linux教程網 All Rights Reserved