Linux命令行工具使用小貼士及技巧(一)
相關(guān)內(nèi)容
如果你剛開始在 Linux 系統(tǒng)中使用命令行工具,那么你應(yīng)該知道它是 Linux 操作系統(tǒng)中功能***大和有用的工具之一。學(xué)習(xí)的難易程度跟你想研究的深度有關(guān)。但是,無論你的技術(shù)能力水平怎么樣,這篇文章中的一些小貼士和技巧都會對你有所幫助。
在本系列的文章中,我們將會討論一些非常有用的命令行工具使用小技巧,希望你的命令行使用體驗(yàn)更加愉快。
但是在開始下一步之前,我得強(qiáng)調(diào)一點(diǎn),這篇文章中的測試實(shí)例都是在 Ubuntu 14.04LTS 系統(tǒng)下測試通過的。我們使用命令行 Shell 版本是 bash 4.3.11 。
Linux 命令行工具使用的一些小技巧
我們假設(shè)你已經(jīng)掌握了一些 Linux 命令行的基礎(chǔ)知識,比如什么是 root 賬號及 home 目錄,什么是環(huán)境變量,如何查看目錄內(nèi)容等等。說明這些小技巧的同時(shí)也會介紹涉及到的概念,如果有的話。
輕松切換目錄 —— 快捷方式
假設(shè)你正在命令行下做一些操作,并且你需要經(jīng)常在兩個(gè)目錄間來回切換。而且這兩個(gè)目錄在完全不同的兩個(gè)路徑下,比如說,分別在 /home/ 和 /usr/ 下。你會怎么做呢?
其中,最簡單直接的方式就是輸入這些目錄的全路徑。雖然這種方式本身沒什么問題,但是卻很浪費(fèi)時(shí)間。另外一種方式就是打開兩個(gè)終端窗口分別進(jìn)行操作。但是這兩種方式使用起來既不方便,也顯得沒啥技術(shù)含量。
你應(yīng)該感到慶幸的是,還有另外一種更為簡捷的方法來解決這個(gè)問題。你需要做的就是先手動切換到這兩個(gè)目錄(通過 cd 命令分別加上各自的路徑),之后你就可以使用 cd - 命令在兩個(gè)目錄之間來回快速切換了。
例如:
我現(xiàn)在在下面的目錄:
- $ pwd
 - /home/himanshu/Downloads
 
然后,我切換到 /usr/ 路徑下的其它目錄:
- cd /usr/lib/
 
現(xiàn)在,我可以很方便的使用下面的命令來向前、向后快速地切換到兩個(gè)目錄:
- cd -
 
下面是 cd - 命令的操作截圖:
The Linux cd command
有一點(diǎn)我得跟大家強(qiáng)調(diào)下,如果你在操作的過程中使用 cd 加路徑的方式切換到第三個(gè)目錄下,那么 cd - 命令將應(yīng)用于當(dāng)前目錄及第三個(gè)目錄之間進(jìn)行切換。
輕松切換目錄 —— 相關(guān)細(xì)節(jié)
對于那些有強(qiáng)烈好奇心的用戶,他們想搞懂 cd - 的工作原理,解釋如下:如大家所知道的那樣, cd 命令需要加上一個(gè)路徑作為它的參數(shù)?,F(xiàn)在,當(dāng) - 符號作為參數(shù)傳輸給 cd 命令時(shí),它將被 OLDPWD 環(huán)境變量的值所替代。
The cd command explained
現(xiàn)在應(yīng)該明白了吧, OLDPWD 環(huán)境變量存儲的是前一個(gè)操作目錄的路徑。這個(gè)解釋在 cd 命令的 man 幫助文檔中有說明,但是,很遺憾的是你的系統(tǒng)中可能沒有預(yù)先安裝 man 命令幫助工具(至少在 Ubuntu 系統(tǒng)下沒有安裝)。
但是,安裝這個(gè) man 幫助工具也很簡單,你只需要執(zhí)行下的安裝命令即可:
- sudo apt-get install manpages-posix
 
然后做如下操作:
- man cd
 
打開 man 幫助文檔主頁后,你將會看到下面很明確的解釋:
- —— 當(dāng) - 符號被用作 cd 命令的參數(shù)值時(shí),將等同于下面的操作命令:
 - cd "$OLDPWD" && pwd
 
毫無疑問, cd 命令設(shè)置了 OLDPWD 環(huán)境變量值。因此每一次你切換操作目錄時(shí),上一個(gè)目錄的路徑就會被保存到這個(gè)變量里。這還讓我們看到很重要的一點(diǎn)就是:任何時(shí)候啟動一個(gè)新的 shell 實(shí)例(包括手動執(zhí)行或是使用 shell 腳本),都不存在 ‘上一個(gè)工作目錄’。
Hyphen and the cd command
這也很符合邏輯,因?yàn)?cd 命令設(shè)置了 OLDPWD 環(huán)境變量值。因此,除非你至少執(zhí)行了一次 cd 命令,否則 OLDPWD 環(huán)境變量不會包含任何值。
繼續(xù),盡管這有些難以理解, cd - 和 cd $OLDWPD 命令的執(zhí)行結(jié)果并非在所有環(huán)境下都相同。比如說,你重新打開一個(gè)新的 shell 窗口時(shí)。
cd command example
從上面的截圖可以清楚的看出,當(dāng)執(zhí)行 cd - 命令提示未設(shè)置 OLDPWD 值時(shí), cd $OLDPWD 命令沒有報(bào)任何錯(cuò);實(shí)際上,它把當(dāng)前的工作目錄改變到用戶的 home 目錄里。
那是因?yàn)?OLDPWD 變量目前還沒有被設(shè)置, $OLDPWD 僅僅是一個(gè)空字符串。因此, cd $OLDPWD 命令跟 cd 命令的執(zhí)行結(jié)果是一致的,默認(rèn)情況下,會把用戶當(dāng)前的工作目錄切換到用戶的 home 目錄里。
***,我還遇到過這樣的要求,需要讓 cd - 命令執(zhí)行的結(jié)果不顯示出來。我的意思是,有這樣的情況(比如說,在寫 shell 腳本的時(shí)候),你想讓 cd - 命令的執(zhí)行結(jié)果不要把目錄信息顯示出來。那種情況下,你就可以使用下面的命令方式了:
- cd - &>/dev/null
 
上面的命令把文件描述符 2(標(biāo)準(zhǔn)輸入)和 1(標(biāo)準(zhǔn)輸出)的結(jié)果重定向到 /dev/null 目錄。這意味著,這個(gè)命令產(chǎn)生的所有的錯(cuò)誤不會顯示出來。但是,你也可以使用通用的 $? 方式來檢查這個(gè)命令的執(zhí)行是否異常。如果這個(gè)命令執(zhí)行報(bào)錯(cuò), echo $? 將會返回 1,否則返回 0。
或者說,如果你覺得 cd - 命令出錯(cuò)時(shí)輸出信息沒有關(guān)系,你也可以使用下面的命令來代替:
- cd - > /dev/null
 
這個(gè)命令僅用于將文件描述符 1 (標(biāo)準(zhǔn)輸出)重定向到 /dev/null 。
總結(jié)
遺憾的是,這篇文章僅包含了一個(gè)跟命令行相關(guān)的小技巧,但是,我們已經(jīng)地對 cd - 命令的使用進(jìn)行了深入地探討。建議你在自己的 Linux 系統(tǒng)的命令行終端中測試本文中的實(shí)例。此外,也強(qiáng)烈建議你查看 man 幫助文檔,然后對 cd 命令進(jìn)行全面測試。
如果你對這篇文章有什么疑問,請?jiān)谙旅娴脑u論區(qū)跟大家交流。同時(shí),敬請關(guān)注下一篇文章,我們將以同樣的方式探討更多有用的命令行使用技巧。



















 
 
 









 
 
 
 