Unix操作系統(tǒng)元字符管理
今天,我們就來學(xué)習(xí)下如何利用轉(zhuǎn)義功能轉(zhuǎn)義功能來管理Unix操作系統(tǒng)元字符的問題。在Unix操作系統(tǒng)中有一類特殊的字符,叫做元字符。他們在系統(tǒng)中表示特殊的含義。如*號與?號,操作系統(tǒng)認(rèn)為這些元字符是通配符。
如果在路經(jīng)、文件名或者命令參數(shù)中有這些元字符的話,就會引起Unix操作系統(tǒng)的誤解。為此在系統(tǒng)中要采用一些方法,能夠讓操作系統(tǒng)將這些元字符當(dāng)作普通字符來對待。
轉(zhuǎn)義功能的應(yīng)用
其實(shí)轉(zhuǎn)義機(jī)制不僅僅在Unix操作系統(tǒng)上有,在其他的編程語言中也有類似的處理機(jī)制。如果各位讀者有程序開發(fā)經(jīng)驗(yàn)的話,那么可能更加容易了解這個(gè)轉(zhuǎn)義功能。
簡單的說,轉(zhuǎn)義功能就是指在一些具有特殊含義的元字符前面加上一個(gè)轉(zhuǎn)義字符\,目的是告訴操作系統(tǒng)這是一個(gè)普通的字符,取消元字符的特殊意義。如*本來代表通配符,如ls *則表示所有的文件與目錄。而\*就是將*號當(dāng)作一個(gè)普通的字符來對待,系統(tǒng)不會再認(rèn)為其是一個(gè)通配符。
這個(gè)轉(zhuǎn)義功能的普通應(yīng)用是比較簡單的,只需要在元字符前面加上\即可。不過筆者這里還需要強(qiáng)調(diào)轉(zhuǎn)義字符的幾個(gè)特殊的應(yīng)用。這些應(yīng)用雖然比較特殊,普通用戶平時(shí)不怎么用的到。但是對于系統(tǒng)工程師來說,這些功能可能就特別的有用。
一是需要在文件名中插入空格。如在微軟操作系統(tǒng)中有一個(gè)My Documents文件夾,其中間就有一個(gè)空格。這個(gè)空格在Unix系統(tǒng)中也屬于一個(gè)特殊的原字符。如果在建立文件或者目錄時(shí),直接加入空格,則Unix操作系統(tǒng)會提示錯誤信息。
此時(shí)往往需要轉(zhuǎn)移字符的幫助。如使用命令mkdir My \ Documents,就可以建立中間帶有空格的目錄名。如要建立帶有空格的文件名,也是如此。不過需要注意是,如果在文件或者目錄中包含了元字符的話,那么在使用刪除命令或者目錄定位命令的時(shí)候,也需要采用轉(zhuǎn)移字符來定義這些特殊的元字符,否則的話可能會出現(xiàn)一些莫名其妙的問題。
二是利用轉(zhuǎn)義字符對命令進(jìn)行換行。在Unix操作系統(tǒng)中有些命令特別復(fù)雜,特別是那些部屬在Unix操作系統(tǒng)上的命令。如expdp是Oracle數(shù)據(jù)庫中的一個(gè)數(shù)據(jù)庫對象導(dǎo)出命令。雖然這個(gè)命令的功能很強(qiáng)大,但是可惜的是只有通過復(fù)雜的參數(shù)才能夠完成一些特定的功能。有時(shí)候一個(gè)命令需要好幾行才能夠?qū)懲辍km然Unix操作系統(tǒng)提供了命令自動換行的方法。
但是這個(gè)自動換行的功能比較薄弱,如不會在Unix操作系統(tǒng)工程想要換行地方進(jìn)行換行。為此采用這個(gè)自動換行的話,會造成代碼閱讀的困難。所以不少系統(tǒng)工程師還是希望能夠自己手工進(jìn)行分行,在某些關(guān)鍵參數(shù)后面進(jìn)行分行,以增加命令的可閱讀性。但是,如果直接使用回車鍵分行的話,系統(tǒng)是不認(rèn)可的。因?yàn)檫@個(gè)回車鍵系統(tǒng)認(rèn)為是一個(gè)執(zhí)行命令的鍵。
即當(dāng)系統(tǒng)工程師點(diǎn)擊回車鍵的時(shí)候,Unix操作系統(tǒng)會認(rèn)為用戶已經(jīng)將命令輸入完畢。鍵入回車鍵后系統(tǒng)就會自動運(yùn)行這個(gè)命令。所以直接鍵入回車鍵往往不能夠完成命令分行的需求。此時(shí)就需要轉(zhuǎn)義字符的幫助。如現(xiàn)有一個(gè)命令比較長,工程師希望能夠?qū)⑵浞譃閮尚?,主要是將參?shù)-name后面的內(nèi)容另起一行。
此時(shí)就可以在這個(gè)參數(shù)前面加入一個(gè)轉(zhuǎn)義字符\,然后再按回車鍵即可。由于有了這個(gè)轉(zhuǎn)義字符,Unix操作系統(tǒng)就會取消回車鍵的換行作用。如此操作之后,系統(tǒng)會出現(xiàn)一個(gè)次級提示符,這個(gè)次級提示符表示命令還沒有結(jié)束,下一行繼續(xù)。這個(gè)功能對于系統(tǒng)工程師來說,可能是非常實(shí)用的。因?yàn)榇藭r(shí)系統(tǒng)工程師可以輕松的將一長串的命令根據(jù)自己的需要來進(jìn)行分行,從而提高命令的可讀性。
另外需要注意的是,\這個(gè)轉(zhuǎn)義字符本身就是一個(gè)比較特殊的元字符。如果用戶想在命令或者文件名中使用這個(gè)\符號的話,也需要采用轉(zhuǎn)移字符。如用戶想利用echo或者printf命令顯示網(wǎng)址。在網(wǎng)址中就有很多\符號,此時(shí)就需要采用轉(zhuǎn)義字符來讓Unix操作系統(tǒng)將\符號當(dāng)作普通字符來對待。
這樣,我們就學(xué)習(xí)了Unix操作系統(tǒng)中利用轉(zhuǎn)義功能來管理元字符的知識要點(diǎn),希望大家可以好好的學(xué)習(xí)下。
【編輯推薦】