溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中如何使用shell下的特殊字符

發(fā)布時間:2021-10-22 09:13:22 來源:億速云 閱讀:281 作者:小新 欄目:系統(tǒng)運維

這篇文章給大家分享的是有關Linux中如何使用shell下的特殊字符的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一、快速在目錄之間切換。

在Linux操作系統(tǒng)的文本模式下,在目錄之間進行切換都需要通過命令來完成。顯然這沒有圖形化界面下使用鼠標點點那么方便。但是,shell中仍然提供了一些特殊的字符。在這些字符的幫助下,系統(tǒng)管理員可以輕松的在不同的目錄之間進行切換。

如現(xiàn)在系統(tǒng)管理員想從任何目錄中回到用戶的主目錄下,除了按原路返回外,還有其他更快的方法嗎?其實,要回到用戶的主目錄下,有一個很便捷的方式,就是通過一個特殊的字符~來完成。通常情況下,當管理員創(chuàng)建某個用戶后,在系統(tǒng)的/home目錄中會以這個用戶的名字建立一個文件夾。這個文件夾所在的目錄就是用戶的主目錄。當用戶不知道自己所處那個目錄,而需要迅速回到自己的主目錄時,可以使用這個命令來實現(xiàn):cd ~。也就是說,特殊符號~在操作系統(tǒng)中代表的是用戶的主目錄。由于不同用戶的主目錄不同,利用這個主目錄可以快速的回到自己的主目錄下面。

在目錄切換過程中,還有兩個比較重要的特殊字符,分別為.與..符號。其中“.”表示當前目錄。這個符號很重要,在很多地方都需要用到。如在定義PATH環(huán)境變量的時候,在路經(jīng)的***需要加上這個.號,這表示當前目錄。另外,如果系統(tǒng)管理員想運行當前目錄下的一個腳本文件,如setup.sh。則可以不采用絕對路徑,而直接使用./setup.sh。其中這個.符號就代表當前目錄。在cd命令中也可以使用.號,如cd ./setup,就表示進入到當前目錄的下一個子目錄setpup下面。所以說這個特殊符號..(英文狀態(tài)下的點號)在切換目錄的時候非常有用。另外一個特殊的字符就是“..”(英文狀態(tài)下的雙點號)在系統(tǒng)中表示的是上一級目錄。如故管理員利用cd命令定義到一個目錄后,又想回到上一級目錄中,則可以使用cd ..命令來實現(xiàn)。注意cd命令與點號之間要有空格。

系統(tǒng)管理員若能夠熟練應用這些特殊字符,特別是表示用戶主目錄的~符號,能夠幫助管理員迅速切換到自己想要的目錄下。如在Linux客戶端中,往往用戶郵箱的文件夾是保存在用戶主目錄下面的。如用戶可能采用的是thunderbird的郵件客戶端。采用這個客戶端有一個弊端,即當Linux系統(tǒng)非法關機后,開會在郵件的目錄中產(chǎn)生一個lock的文件。客戶端就不能夠打開。只是系統(tǒng)管理員需要切換到用戶主目錄下的郵件文件夾中,刪除這lock文件。此時比較簡單的方法,就是直接使用~符號定位到用戶的主目錄下,然后再進入到郵件目錄中,找到這個文件并刪除。這筆一級一級的進入要快的多。

二、將執(zhí)行結果保存到文件中。

用戶在日常的操作中,可能需要將某些命令的執(zhí)行結果保存到文件中。如需要將一些程序的運行結果保存到日至文件中等等。筆者現(xiàn)在以一個簡單的例子為例。Ps命令是用來顯示當前系統(tǒng)運行程序的命令。如在命令行中,輸入ps命令可以顯示當前系統(tǒng)運行的所有程序(注意程序跟進程是兩個不同的經(jīng)驗)。其中會顯示應用程序的進程號、終端信息、運行時間以及程序名字等等?,F(xiàn)在管理員如果要將這些信息保存到一個特定的文件中,該如何實現(xiàn)呢?

此時系統(tǒng)管理員可以在命令后面采用一個特殊的字符>,如ps > ps.txt的方式,將命令ps的執(zhí)行結果保存到文本文件ps.txt 中。如果目標文件不存在的話,則系統(tǒng)會創(chuàng)建文件并保存信息。如果目標文件存在的話,則系統(tǒng)會覆蓋原先的文件。所以,在使用>這個特殊符號來創(chuàng)建文件的時候,需要特別的注意。因為目標文件存在,則系統(tǒng)不會給用戶任何的提示信息,就把目標文件刪除并新建同名的文件。為此一不小心就可能會造成文件的丟失。不過其還有一個雙胞胎的兄弟,即>>符號。這個特殊符號跟>符號類似,也是將執(zhí)行結果保存到一個文件中。不過這個符號與>符號有一個很大的不同。如果目標文件已經(jīng)存在的話,兩個符號的執(zhí)行效果是不同的。如果采用的是>符號的話,則系統(tǒng)會自動覆蓋它。而如果采用的是>>符號的話,在系統(tǒng)不會覆蓋已經(jīng)存在的目標文件,而只是在這個目標文件中追加相關地記錄。如果目標文件不存在的話,則仍然會自動創(chuàng)建目標文件。

由于>>符號不會自動覆蓋目標文件,只是在目標文件中追加記錄。為此這個符號還有其他一些特殊的用途,如可以用來合并不同的文件。如現(xiàn)在有連個文件listjpg.txt與listgif.txt。在這個兩個文件中主要保存著jpg與gif的圖片名字?,F(xiàn)在用戶想將這個兩個文件合并,或者說想將listjpg.txt中的記錄追加到listgif.txt文件中。此時該如何處理呢?利用命令cat listjpg.txt >> listgif.txt就可以實現(xiàn)這個功能了。這個命令的意思是,先利用cat命令將文件listjpg.txt的內(nèi)容讀取出來然后追加到listgif.txt文件中。執(zhí)行了這個命令后,就會將兩個文件合并。不過原先的文件仍然存在。如果不需要的話,就需要手工的刪除它。

由于這兩個特殊符號功能類似,但是實現(xiàn)細節(jié)上有所差異。為此系統(tǒng)管理員需要掌握其中的差異,并在實際工作中選擇合適的處理方式。如在一些安裝程序中,需要將安裝過程中的信息保存在日志文件中。但是在下一次重新安裝的過程中,系統(tǒng)管理員可能喜歡先將原先的日志刪除。因為這會增加閱讀量。此時就是采用>這個特殊符號來實現(xiàn)比較合理,因為其會自動刪除日志文件。

三、將程序放在后臺運行。

有些時候,系統(tǒng)管理員可能希望某些程序在系統(tǒng)后臺運行。如果將Linux操作系統(tǒng)當作服務器來管理的話,講一些長時間運行的程序放在后臺運行是一種很常見的手段。如現(xiàn)在管理員利用while循環(huán)來實現(xiàn)一個功能。每5分鐘來判斷一下某個應用系統(tǒng)是否有產(chǎn)生錯誤的日志文件。如果有的話要馬山將這個錯誤日志文件發(fā)送給系統(tǒng)管理員。寫完這個腳本程序之后,***的方式就是將這個腳本程序放置在后臺運行。因為這個程序需要長時間運行,如果在前臺運行的話,可能會對其他程序產(chǎn)生干擾。而且也容易被誤關閉。所以,放在后臺執(zhí)行反而更加合理。那么在Linux操作系統(tǒng)中是如何將腳本程序防止在后臺運行的呢?此時也需要用到另外一個特殊字符&。如這個腳本程序的名字為errorlog.sh。則管理員只需要運行命令errorlog.sh &,系統(tǒng)就會將這個程序放置在后臺運行。

四、解釋特殊字符的轉(zhuǎn)義字符。

在微軟操作系統(tǒng)中,某些字符是不能夠用來做文件名的。如*這個米字符號,其是用來做通配符用的,不能夠在文件名或者目錄名中出現(xiàn)。但是在Linux操作系統(tǒng)中沒有這方面的限制。如test*.txt在Linux操作系統(tǒng)中是一個合法的名字。難道*符號在Linux操作系統(tǒng)中不做通配符使用嗎?其實,在Linux操作系統(tǒng)中這個*符號也有特殊的含義,其也是代碼通配符。如使用ls text*命令,可以列出所有已text開頭的文件或者目錄的名字。那么為什么在Linux操作系統(tǒng)中還可以利用這個*米字符號來作為文件名呢?這都是轉(zhuǎn)義字符\在其作用。

如現(xiàn)在用戶想在文件名字中加入一個*米字符,則可以使用命令vi text\*.txt來實現(xiàn)。在這個通配符*米字符號前面加入一個轉(zhuǎn)移字符\,就告訴系統(tǒng)要將這個*字符當作普通字符來對待。其實這個轉(zhuǎn)義字符的重要作用還是體現(xiàn)在文件的刪除上面。如現(xiàn)在某個目錄下有如下幾個文件,chap*.txt,chap1.txt,chap2.txt。其中chap*表示一本書的目錄,而其他的表示這個本書的各章內(nèi)容。如果現(xiàn)在系統(tǒng)管理員想把目錄文件刪除了,采用了rm chap*.txt命令,還有什么后果呢?此時系統(tǒng)會把所有的以chap開頭的文件刪除。也就是說,不光光是目錄文件,章節(jié)的內(nèi)容文件也被刪除了。因為此時操作系統(tǒng)是將這個*符號當作通配符來對待。如果要刪除目錄文件在,則正確的命令應該這么寫:rm chap\*.txt。這個命令就是告訴系統(tǒng)這個*符號為普通的符號,而不是通配符。此時系統(tǒng)就會將這個目錄文件刪除了,而不會影響到其他文件。

雖然說在Linux操作系統(tǒng)中通過轉(zhuǎn)義字符的方法允許用戶采用一些特殊的字符來為文件命名。但是出于以后管理的方便,筆者還是建議大家不要采用特殊符號來命名。否則一不小心就會發(fā)生不可挽回的損失。如上面的案例中,將*通配符當作文件名字的話,那么在刪除時就很容易將相關的文件全部刪除。

感謝各位的閱讀!關于“Linux中如何使用shell下的特殊字符”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI