在Linux中靈活使用shell下的特殊字元

來源:互聯網
上載者:User

眾所周知,shell是Linux作業系統下的主要管理工具。系統管理員除了要掌握shell下的命令外,還需要掌握一些特殊的字元。這些特殊字元可以協助系統管理員將多個命令組合成一個命令,或者說可以讓系統管理員更便捷的操作。筆者就給大家介紹一下這些特殊字元以及相關的應用。

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

在Linux作業系統的文字模式下,在目錄之間進行切換都需要通過命令來完成。顯然這沒有圖形化介面下使用滑鼠點點那麼方便。但是,shell中仍然提供了一些特殊的字元。在這些字元的協助下,系統管理員可以輕鬆的在不同的目錄之間進行切換。

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

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

系統管理員若能夠熟練應用這些特殊字元,特別是表示使用者主目錄的~符號,能夠協助管理員迅速切換到自己想要的目錄下。如在Linux用戶端中,往往使用者郵箱的檔案夾是儲存在使用者主目錄下面的。如使用者可能採用的是thunderbird的郵件用戶端。採用這個用戶端有一個弊端,即當Linux系統非法關機後,開會在郵件的目錄中產生一個lock的檔案。用戶端就不能夠開啟。只是系統管理員需要切換到使用者主目錄下的郵件檔案夾中,刪除這lock檔案。此時比較簡單的方法,就是直接使用~符號定位到使用者的主目錄下,然後再進入到郵件目錄中,找到這個檔案並刪除。這筆一級一級的進入要快的多。

二、將執行結果儲存到檔案中。

使用者在日常的操作中,可能需要將某些命令的執行結果儲存到檔案中。如需要將一些程式的運行結果儲存到日至檔案中等等。筆者現在以一個簡單的例子為例。Ps命令是用來顯示當前系統運行程式的命令。如在命令列中,輸入ps命令可以顯示當前系統啟動並執行所有程式(注意程式跟進程是兩個不同的經驗)。其中會顯示應用程式的進程號、終端資訊、已耗用時間以及程式名字等等。現在管理員如果要將這些資訊儲存到一個特定的檔案中,該如何?呢?

此時系統管理員可以在命令後面採用一個特殊的字元>,如ps > ps.txt的方式,將命令ps的執行結果儲存到文字檔ps.txt 中。如果目標檔案不存在的話,則系統會建立檔案並儲存資訊。如果目標檔案存在的話,則系統會覆蓋原先的檔案。所以,在使用>這個特殊符號來建立檔案的時候,需要特別的注意。因為目標檔案存在,則系統不會給使用者任何的提示資訊,就把目標檔案刪除並建立同名的檔案。為此一不小心就可能會造成檔案的丟失。不過其還有一個雙胞胎的兄弟,即>>符號。這個特殊符號跟>符號類似,也是將執行結果儲存到一個檔案中。不過這個符號與>符號有一個很大的不同。如果目標檔案已經存在的話,兩個符號的執行效果是不同的。如果採用的是>符號的話,則系統會自動覆蓋它。而如果採用的是>>符號的話,在系統不會覆蓋已經存在的目標檔案,而只是在這個目標檔案中追加相關地記錄。如果目標檔案不存在的話,則仍然會自動建立目標檔案。

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

由於這兩個特殊符號功能類似,但是實現細節上有所差異。為此系統管理員需要掌握其中的差異,並在實際工作中選擇合適的處理方式。如在一些安裝程式中,需要將安裝過程中的資訊儲存在記錄檔中。但是在下一次重新安裝的過程中,系統管理員可能喜歡先將原先的日誌刪除。因為這會增加閱讀量。此時就是採用>這個特殊符號來實現比較合理,因為其會自動刪除記錄檔。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.