有些Linux命令非常熟悉,我們甚至沒有注意到正在使用它們。用於更改目錄的cd命令就是其中之一。有一些技巧可以幫助你提高cd的使用效率,或者你可以完全拋棄它。
你整天眨眼,每天眨眼,但是,大多數時候,你沒有意識到。除非有什麼東西進入你的眼睛,否則你很少去想那些小小的,有規律的動作。有些Linux命令是這樣的。它們徘徊在你意識的邊緣。即使你每天都使用它們,它們也不會引起你的注意,因為它們又小又簡單。
在使用Linux計算機的第一個小時內,您將學習如何使用Bash和其他shell附帶的cd命令。也許您以前有在其他作業系統上使用它的經驗,不需要解釋。它會改變當前的工作目錄,對嗎?還有什麼要知道的?
好吧,比你想象的要多。這裡有一些提示和技巧,可能會提高你的工作效率。
為了完整起見,讓我們快速瀏覽一下cd的標準用法。
如果我們在主目錄中,但要更改為位於/usr/lib/firefox/browser的目錄,然後返回主目錄,則可以使用以下命令:
cd /usr/lib/firefox/browser/ cd /home/dave您不必鍵入整個目錄路徑;您可以使用auto complete。對於路徑的每個部分,鍵入足夠的字母以區分目錄名和其他部分後,按Tab鍵自動完成目錄名。
例如,在命令列中鍵入以下內容:
cd /usr/lib/fire現在,按Tab鍵,shell將為您填充“firefox”目錄的其餘部分。如果將“/b”新增到路徑並再次按Tab鍵,則會將“browser”目錄新增到命令中。
shell添加了一個尾隨的正斜槓,這樣就可以重複製表符完成過程。這也是為什麼第一個命令後面有一個正斜槓。第二張沒有,因為那張是打出來的。
您可以使用波浪號(~)作為從檔案系統中任意位置快速返回主目錄的速記方式;只需鍵入以下內容:
光碟~
這些是絕對路徑的示例,其中提供了從檔案系統根目錄到目標目錄再到cd的整個路徑。
相對路徑是從當前工作目錄引用的。在主目錄中,有一個名為work的目錄。您可以使用tree命令檢視工作目錄中的目錄樹,只需鍵入以下內容:
tree工作目錄包含一個名為dev的目錄。在檔案系統的根目錄中還有一個名為dev的目錄。您可以使用ls和-d(directory)來檢視其中的每一個。-hl(人類可讀的長列表)選項告訴ls對目錄大小和長格式列表使用易於讀取的單位。
如果您鍵入dev,shell將假定您指的是當前目錄中的“dev”。要強制它檢視根目錄中的“dev”,只需新增一個前導正斜槓來表示檔案系統的根目錄,如下所示:
ls -d dev -hl ls -d /dev -hlcd命令在這方面的行為類似於ls。如果將目錄引用為dev,如下所示,則假定您指的是工作目錄中的目錄:
cd dev如果沒有前導正斜槓,則假定從當前工作目錄開始的路徑也較長,如下所示:
cd dev/mobile/android相關:Bash需要知道的15個特殊字元
雙點識別符號表示當前工作目錄的父目錄。如果您位於巢狀較深的子目錄中,則可以使用。。用cd移動到你所在目錄的父目錄。
這將在目錄樹中向上移動兩個目錄。如果你再加上。。在命令上,它允許您在目錄樹上移動任意數量的級別。
鍵入以下內容:
cd .. cd ../..您還可以透過鍵入以下內容來建立一組別名來執行這些操作:
alias .2="cd ../.." alias .3="cd ../../.."您可以用與命令本身相同的方式使用這些命令。
要使別名在重新啟動計算機時保持一致,必須將它們新增到.bashrc或.bash\u別名檔案中。
相關:如何在Linux上建立別名和Shell函式
連字元(-)是另一個具有特殊功能的符號。它會把你的目錄改回你剛來的目錄。
對於本例,假設您在“c”目錄中。您可以使用cd切換到“forth”目錄。然後,可以使用cd-在兩個目錄之間來回跳轉。
為此,請鍵入以下內容:
cd../向前
cd–
cd–
您要移動到的目錄的名稱將在您移動到它之前顯示。
相關:如何在Linux上使用pushd和popd
shell使用當前工作目錄作為相對路徑的“根”或基目錄。可以使用CDPATH環境變數將另一個位置設定為相對路徑的基目錄。如果您將大部分時間花在檔案系統樹的某個部分,這可以節省您每天的大量擊鍵(和時間)。
讓我們鍵入以下內容以使work/dev/projects成為相對路徑的基本目錄:
export CDPATH=/home/dave/work/dev/projects現在,每次使用dc命令時,都會首先檢查CDPATH環境變數中的位置是否匹配目錄名。如果它們中的任何一個與cd命令中提供的目標匹配,那麼您將被傳輸到該目錄。
現在,無論您在檔案系統中的哪個位置,當您使用cd命令時,shell都會檢查目標目錄是否位於基目錄中。如果是,則移動到該目標目錄。
如果目標目錄以前導正斜槓(/)開頭,使其成為絕對路徑,則它不會受到CDPATH環境變數的影響。
為了演示這一點,我們鍵入以下內容:
cd c cd prolog cd /usr cd forthCDPATH環境變數實際上是一個path,就像path環境變數一樣。鍵入命令時,shell將在路徑中的位置搜尋匹配項。使用CDPATH時,shell將在CDPATH環境變數中的位置中搜索匹配項。另外,與PATH相同,CDPATH可以包含多個位置。
相關:如何在Bash中使用變數
要讓shell在CDPATH環境變數中的其他位置之前搜尋當前目錄,只需新增句點(.)在這條路的開始,就像這樣:
export CDPATH=.:/home/dave/work/dev/projects要使設定永久化,必須將它們新增到配置檔案中,如.bashrc。
需要注意的一點是:如果設定基目錄,它也會影響指令碼中執行的目錄更改。為了避免這種情況,可以在指令碼中使用絕對路徑,也可以在指定CDPATH時在.bashrc檔案中使用測試,如下所示:
if test “${PS1+set}”; then CDPATH=.:/home/dave/work/dev/projects; fi這將執行一個測試,以檢視是否設定了命令列提示變數$PS1。只有測試成功,才會設定CDPATH環境變數。
相關:如何在Linux中將目錄新增到$PATH
使用shopt命令,可以為shell設定某些選項。其中一些可以增強你對cd的使用。要設定它們,可以在shopt中使用-s(enable)選項來傳遞選項名。
cdspell選項檢查您的目錄名,並糾正一些常見的鍵入錯誤,包括轉置或缺少字元,或名稱字元過多。如果它發現一個目錄匹配任何更正,則列印更正的路徑,並執行cd操作。
例如,我們鍵入以下命令來設定cdspell選項並拼寫錯誤“Desktop”,以檢視shell是否為我們更正了它:
shopt -s cdspell cd Desktposhell捕捉到錯誤,更正它,並將其更改為“Desktop”目錄。
另一個可以與cd一起使用的shopt選項是autocd。它完全不需要您鍵入cd。您鍵入的任何不是命令、指令碼或其他可執行檔案(如別名)的內容都將用作目標目錄。如果你能轉移到那個目錄,它會被列印在終端視窗中,你會被改變到那個目錄。
例如,我們鍵入以下內容:
shopt -s autocd /usr/local/games /etc ~看!你甚至不用cd就可以跳過整個檔案系統!
使用shopt更改的設定隻影響互動式shell,而不影響指令碼。
你可能不會接受所有這些。然而,很可能你在這裡發現了一些有趣或有益的東西。畢竟,任何加快或簡化命令列導航的方法都是好的!
... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...
...許您在Android裝置上安裝誠實善良的Linux應用程式。下面是如何使用Termux應用程式。 ...
... 如何在windows10上安裝linux bash shell ...
要在Linux中重新命名檔案嗎?如果您知道如何在Windows、macOS或Chrome作業系統中完成這項工作,那麼您就知道如何在這裡完成這項工作。在大多數版本的Linux上,您只需右鍵單擊一個檔案並選擇Rename選項。 ...
想在Linux系統上新增使用者但不知道如何新增?在Linux上使用命令列介面管理使用者無疑是一項複雜的工作。而對於初學者來說,即使新增新使用者也是一場噩夢。 ...
...版本可以讓您對安全更新做出重要決定。我們將向您展示如何找到這些,無論您使用哪個發行版。 滾動和點釋放 你知道你在執行哪個版本的Linux嗎?你能找到核心版本嗎?Linux的滾動發行版,如Arch、Manjaro和openSUSE,經常使用自...
...複您過去執行的命令。一旦您瞭解了Linux history命令以及如何使用它,它就可以顯著地提高您的生產效率。 操縱歷史 正如喬治桑塔亞納(georgestantayana)的一句名言:“那些記不住過去的人註定要重蹈覆轍。”不幸的是,在Linux...