cd 命令多是任何 Linux 用戶學習的前 10 個命令之一,但這並非在 Linux 文件系統中導航的惟一方法,這裏還有其餘一些方法。html
不管你是在文件系統中四處查看、尋找文件仍是嘗試進入重要目錄,Linux 均可以提供不少幫助。在本文中,咱們將介紹一些技巧,使你能夠在文件系統中移動,查找和使用所需的命令也更加輕鬆。linux
確保你沒必要花費大量時間在 Linux 系統上查找命令的最簡單、最有用的方法之一就是在 $PATH
變量中添加適當的目錄。可是,添加到 $PATH
變量中的目錄順序很是重要。它們肯定系統在目錄中查找要運行命令的目錄順序--在找到第一個匹配項時中止。git
例如,你可能但願將家目錄放在第一個,這樣,若是你建立的腳本與其餘可執行文件有相同的名稱,那麼只要輸入該腳本的名稱,它便會運行。github
要將家目錄添加到 $PATH
變量中,能夠執行如下操做:bash
$ export PATH=~:$PATH
複製代碼
~
字符表明家目錄。ide
若是將腳本保存在 bin
目錄中,下面的會有效:學習
$ export PATH=~/bin:$PATH
複製代碼
而後,你能夠運行位於家目錄中的腳本,以下所示:網站
$ myscript
Good morning, you just ran /home/myacct/bin/myscript
複製代碼
**重要提示:**上面顯示的命令會添加到你的搜索路徑中,由於 $PATH
(當前路徑)被包含在內。它們不會覆蓋它。你的搜索路徑應該在你的 .bashrc
文件中配置,任何你打算永久化的更改也應該添加到那裏。ui
符號連接提供了一種簡單而明顯的方式來記錄可能常常須要使用的目錄的位置。例如,若是你管理網站的內容,那麼可能須要經過建立以下連接來使你的賬戶「記住」網頁文件的位置:spa
ln -s /var/www/html www
複製代碼
參數的順序很重要。第一個(/var/www/html
)是目標,第二個是你建立的連接的名稱。若是你當前不在家目錄中,那麼如下命令將執行相同的操做:
ln -s /var/www/html ~/www
複製代碼
設置好以後,你可使用 cd www
進入 /var/www/html
。
shopt
命令還提供了一種讓移動到其餘目錄更加容易的方法。當你使用 shopt
的 autocd
選項時,只需輸入名稱便可轉到目錄。例如:
$ shopt -s autocd
$ www
cd -- www
/home/myacct/www
$ pwd -P
/var/www/html
$ ~/bin
cd -- /home/myacct/bin
$ pwd
/home/myacct/bin
複製代碼
在上面的第一組命令中,啓用了 shopt
命令的 autocd
選項。輸入 www
,就會調用 cd www
命令。因爲此符號連接是在上面的 ln
命令示例之一中建立的,所以將咱們移至 /var/www/html
。 pwd -P
命令顯示實際位置。
在第二組中,鍵入 ~/bin
會調用 cd
進入在用戶家目錄的 bin
目錄。
請注意,當你輸入的是命令時,autocd
行爲將不會生效,即便它也是目錄的名稱。
shopt
是 bash 內置命令,它有不少選項。這只是意味着你沒必要在要進入每一個目錄的名稱以前輸入 cd
。
要查看 shopt
的其餘選項,只需輸入 shopt
。
可能進入特定目錄的最有用技巧之一,就是將你但願可以輕鬆進入的路徑添加到 $CDPATH
中。這將建立一個目錄列表,只需輸入完整路徑名的一部分便可進入。
一方面,這可能有點棘手。你的 $CDPATH
須要包含要移動到的目錄的父目錄,而不是目錄自己。
例如,假設你但願僅經過輸入 cd html
就能夠移至 /var/www/html
目錄,並僅使用 cd
和簡單目錄名便可移至 /var/log
中的子目錄。在這種狀況下,此 $CDPATH
就能夠起做用:
$ CDPATH=.:/var/log:/var/www
複製代碼
你將看到:
$ cd journal
/var/log/journal
$ cd html
/var/www/html
複製代碼
當你輸入的不是完整路徑時,$CDPATH
就會生效。它向下查看其目錄列表,以查看指定的目錄是否存在於其中一個目錄中。找到匹配項後,它將帶你到那裏。
在 $CDPATH
開頭保持 .
意味着你能夠進入本地目錄,而沒必要在 $CDPATH
中定義它們。
$ export CDPATH=".:$CDPATH"
$ Videos
cd -- Videos
/home/myacct/Videos
複製代碼
在 Linux 文件系統鍵切換並不難,可是若是你使用一些方便的技巧輕鬆地到達各個位置,那你能夠節省一些大腦細胞。
via: www.networkworld.com/article/353…
做者:Sandra Henry-Stocker 選題:lujun9972 譯者:geekpi 校對:wxy