天天看點

Linux指令行工具使用小貼士及技巧(一)

相關内容

如果你剛開始在 linux 系統中使用指令行工具,那麼你應該知道它是 linux 作業系統中功能最強大和有用的工具之一。學習的難易程度跟你想研究的深度有關。但是,無論你的技術能力水準怎麼樣,這篇文章中的一些小貼士和技巧都會對你有所幫助。

在本系列的文章中,我們将會讨論一些非常有用的指令行工具使用小技巧,希望你的指令行使用體驗更加愉快。

但是在開始下一步之前,我得強調一點,這篇文章中的測試執行個體都是在 ubuntu 14.04lts 系統下測試通過的。我們使用指令行 shell 版本是 bash 4.3.11 。

Linux指令行工具使用小貼士及技巧(一)

linux 指令行工具使用的一些小技巧

我們假設你已經掌握了一些 linux 指令行的基礎知識,比如什麼是 root 賬号及 home 目錄,什麼是環境變量,如何檢視目錄内容等等。說明這些小技巧的同時也會介紹涉及到的概念,如果有的話。

輕松切換目錄 —— 快捷方式

假設你正在指令行下做一些操作,并且你需要經常在兩個目錄間來回切換。而且這兩個目錄在完全不同的兩個路徑下,比如說,分别在 /home/ 和 /usr/ 下。你會怎麼做呢?

其中,最簡單直接的方式就是輸入這些目錄的全路徑。雖然這種方式本身沒什麼問題,但是卻很浪費時間。另外一種方式就是打開兩個終端視窗分别進行操作。但是這兩種方式使用起來既不友善,也顯得沒啥技術含量。

你應該感到慶幸的是,還有另外一種更為簡捷的方法來解決這個問題。你需要做的就是先手動切換到這兩個目錄(通過 cd 指令分别加上各自的路徑),之後你就可以使用 cd - 指令在兩個目錄之間來回快速切換了。

例如:

我現在在下面的目錄:

$ pwd 

/home/himanshu/downloads 

然後,我切換到 /usr/ 路徑下的其它目錄:

cd /usr/lib/ 

現在,我可以很友善的使用下面的指令來向前、向後快速地切換到兩個目錄:

cd - 

下面是 cd - 指令的操作截圖:

Linux指令行工具使用小貼士及技巧(一)

the linux cd command

有一點我得跟大家強調下,如果你在操作的過程中使用 cd 加路徑的方式切換到第三個目錄下,那麼 cd - 指令将應用于目前目錄及第三個目錄之間進行切換。

輕松切換目錄 —— 相關細節

對于那些有強烈好奇心的使用者,他們想搞懂 cd - 的工作原理,解釋如下:如大家所知道的那樣, cd 指令需要加上一個路徑作為它的參數。現在,當 - 符号作為參數傳輸給 cd 指令時,它将被 oldpwd 環境變量的值所替代。

Linux指令行工具使用小貼士及技巧(一)

the cd command explained

現在應該明白了吧, oldpwd 環境變量存儲的是前一個操作目錄的路徑。這個解釋在 cd 指令的 man 幫助文檔中有說明,但是,很遺憾的是你的系統中可能沒有預先安裝 man 指令幫助工具(至少在 ubuntu 系統下沒有安裝)。

但是,安裝這個 man 幫助工具也很簡單,你隻需要執行下的安裝指令即可:

sudo apt-get install manpages-posix 

然後做如下操作:

man cd 

打開 man 幫助文檔首頁後,你将會看到下面很明确的解釋:

—— 當 - 符号被用作 cd 指令的參數值時,将等同于下面的操作指令: 

 cd "$oldpwd" && pwd 

毫無疑問, cd 指令設定了 oldpwd 環境變量值。是以每一次你切換操作目錄時,上一個目錄的路徑就會被儲存到這個變量裡。這還讓我們看到很重要的一點就是:任何時候啟動一個新的 shell 執行個體(包括手動執行或是使用 shell 腳本),都不存在 ‘上一個工作目錄’。

Linux指令行工具使用小貼士及技巧(一)

hyphen and the cd command

這也很符合邏輯,因為 cd 指令設定了 oldpwd 環境變量值。是以,除非你至少執行了一次 cd 指令,否則 oldpwd 環境變量不會包含任何值。

繼續,盡管這有些難以了解, cd - 和 cd $oldwpd 指令的執行結果并非在所有環境下都相同。比如說,你重新打開一個新的 shell 視窗時。

Linux指令行工具使用小貼士及技巧(一)

cd command example

從上面的截圖可以清楚的看出,當執行 cd - 指令提示未設定 oldpwd 值時, cd $oldpwd 指令沒有報任何錯;實際上,它把目前的工作目錄改變到使用者的 home 目錄裡。

那是因為 oldpwd 變量目前還沒有被設定, $oldpwd 僅僅是一個空字元串。是以, cd $oldpwd 指令跟 cd 指令的執行結果是一緻的,預設情況下,會把使用者目前的工作目錄切換到使用者的 home 目錄裡。

最後,我還遇到過這樣的要求,需要讓 cd - 指令執行的結果不顯示出來。我的意思是,有這樣的情況(比如說,在寫 shell 腳本的時候),你想讓 cd - 指令的執行結果不要把目錄資訊顯示出來。那種情況下,你就可以使用下面的指令方式了:

cd - &>/dev/null 

上面的指令把檔案描述符 2(标準輸入)和 1(标準輸出)的結果重定向到 /dev/null 目錄。這意味着,這個指令産生的所有的錯誤不會顯示出來。但是,你也可以使用通用的 $? 方式來檢查這個指令的執行是否異常。如果這個指令執行報錯, echo $? 将會傳回 1,否則傳回 0。

或者說,如果你覺得 cd - 指令出錯時輸出資訊沒有關系,你也可以使用下面的指令來代替:

cd - > /dev/null 

這個指令僅用于将檔案描述符 1 (标準輸出)重定向到 /dev/null 。

總結

遺憾的是,這篇文章僅包含了一個跟指令行相關的小技巧,但是,我們已經地對 cd - 指令的使用進行了深入地探讨。建議你在自己的 linux 系統的指令行終端中測試本文中的執行個體。此外,也強烈建議你檢視 man 幫助文檔,然後對 cd 指令進行全面測試。

如果你對這篇文章有什麼疑問,請在下面的評論區跟大家交流。同時,敬請關注下一篇文章,我們将以同樣的方式探讨更多有用的指令行使用技巧。

作者:ansh

來源:51cto

繼續閱讀