如果您剛開始使用 Linux 系統中的命令列工具,那麼您應該知道它是 Linux 作業系統中最強大和實用的工具之一。學習難度取決於您想要深入研究的程度。但是,無論您的技能水平如何,本文中的一些提示和技巧都會對您有所幫助。
在本系列文章中,我們將討論一些非常實用的命令列工具使用技巧,希望您的命令列使用體驗更加愉快。
但是,在開始下一步之前,我必須強調一點,本文中的測試範例都是在 Ubuntu 14.04LTS 系統下通過測試的。我們使用的命令列 Shell 版本是 bash 4.3.11。
Linux 命令列工具使用的一些小技巧
我們假設你已經掌握了一些 Linux 命令列的基礎知識,例如什麼是 root 帳號及 home 目錄,什麼是環境變量,如何查看目錄內容等等。說明這些小技巧的同時也會介紹涉及的概念,如果有的話。
輕鬆切換目錄 —— 捷徑
假設你正在命令列下做一些操作,並且你需要經常在兩個目錄間來回切換。而且這兩個目錄在完全不同的兩個路徑下,比如說,分別在 /home/ 和 /usr/ 下。你會怎麼做呢?
其中,最簡單直接的方式就是輸入這些目錄的全路徑。雖然這種方式本身沒什麼問題,但卻很浪費時間。另外一種方式就是打開兩個終端機視窗分別進行操作。但這兩種方式使用起來既不方便,也顯得沒啥技術含量。
你應該感到慶幸的是,還有另一個更簡捷的方法來解決這個問題。你需要做的就是先手動切換到這兩個目錄(透過 cd 指令分別加上各自的路徑),之後你就可以使用 cd – 指令在兩個目錄之間來回快速切換了。
例如:
我現在在下面的目錄:
]$ pwd /home/himanshu/Downloads
然後,我切換到 /usr/ 路徑下的其它目錄:
cd /usr/lib/
現在,我可以很方便的使用下面的指令來向前、向後快速地切換到兩個目錄:
cd -
下面是 cd – 指令的操作截圖:
有一點我得跟大家強調下,如果你在操作的過程中使用cd 加路徑的方式切換到第三個目錄下,那麼cd – 指令將會套用在目前目錄及第三個目錄之間進行切換。
輕鬆切換目錄 —— 相關細節
對於那些有強烈好奇心的用戶,他們想搞懂 cd – 的工作原理,解釋如下:如大家所知道的那樣, cd 指令需要加上一個路徑作為它的參數。現在,當 – 符號作為參數傳輸給 cd 命令時,它將被 OLDPWD 環境變數的值所取代。
現在應該明白了吧, OLDPWD 環境變數儲存的是前一個操作目錄的路徑。這個解釋在 cd 指令的 man 幫助文件中有說明,但是,很遺憾的是你的系統中可能沒有預先安裝 man 指令幫助工具(至少在 Ubuntu 系統下沒有安裝)。
但是,安裝這個 man 幫助工具也很簡單,你只需要執行下的安裝指令:
sudo apt-get install manpages-posix
然後做如下操作:
man cd
開啟 man 說明文件首頁後,你將會看到下面很明確的解釋:
—— 當 – 符號被用作 cd 指令的參數值時,將等同於下面的操作指令:
cd "$OLDPWD" && pwd
毫無疑問, cd 指令設定了 OLDPWD 環境變數值。因此每一次你切換操作目錄時,上一個目錄的路徑就會被儲存到這個變數裡。這也讓我們看到很重要的一點就是:任何時候啟動一個新的 shell 實例(包括手動執行或是使用 shell 腳本),都不存在 ‘上一個工作目錄’。
這也很符合邏輯,因為 cd 指令設定了 OLDPWD 環境變數值。因此,除非你至少執行了一次 cd 指令,否則 OLDPWD 環境變數不會包含任何值。
繼續,儘管這有些難以理解, cd – 和 cd $OLDWPD 指令的執行結果並非在所有環境下都相同。比如說,你重新開啟一個新的 shell 視窗時。
從上面的截圖可以清楚的看出,當執行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 命令进行全面测试。
如果你对这篇文章有什么疑问,请在下面的评论区跟大家交流。同时,敬请关注下一篇文章,我们将以同样的方式探讨更多有用的命令行使用技巧。
以上是Linux系統命令列工具的使用技巧(一)的詳細內容。更多資訊請關注PHP中文網其他相關文章!