在 Linux 文件系統中導航的技巧
無論你是在文件系統中四處查看、尋找文件還是嘗試進入重要目錄,Linux 都可以提供很多幫助。在本文中,我們將介紹一些技巧,使你可以在文件系統中移動,查找和使用所需的命令也更加輕鬆。
添加到 $PATH
確保你不必花費大量時間在 Linux 系統上查找命令的最簡單、最有用的方法之一就是在 $PATH
變數中添加適當的目錄。但是,添加到 $PATH
變數中的目錄順序非常重要。它們確定系統在目錄中查找要運行命令的目錄順序–在找到第一個匹配項時停止。
例如,你可能希望將家目錄放在第一個,這樣,如果你創建的腳本與其他可執行文件有相同的名稱,那麼只要輸入該腳本的名稱,它便會運行。
要將家目錄添加到 $PATH
變數中,可以執行以下操作:
$ export PATH=~:$PATH
~
字元代表家目錄。
如果將腳本保存在 bin
目錄中,下面的會有效:
$ export PATH=~/bin:$PATH
然後,你可以運行位於家目錄中的腳本,如下所示:
$ myscript
Good morning, you just ran /home/myacct/bin/myscript
重要提示:上面顯示的命令會添加到你的搜索路徑中,因為 $PATH
(當前路徑)被包含在內。它們不會覆蓋它。你的搜索路徑應該在你的 .bashrc
文件中配置,任何你打算永久化的更改也應該添加到那裡。
使用符號鏈接
符號鏈接提供了一種簡單而明顯的方式來記錄可能經常需要使用的目錄的位置。例如,如果你管理網站的內容,那麼可能需要通過創建如下鏈接來使你的帳戶「記住」網頁文件的位置:
ln -s /var/www/html www
參數的順序很重要。第一個(/var/www/html
)是目標,第二個是你創建的鏈接的名稱。如果你當前不在家目錄中,那麼以下命令將執行相同的操作:
ln -s /var/www/html ~/www
設置好之後,你可以使用 cd www
進入 /var/www/html
。
使用 shopt
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
中。這將創建一個目錄列表,只需輸入完整路徑名的一部分即可進入。
一方面,這可能有點棘手。你的 $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: https://www.networkworld.com/article/3533421/tricks-for-getting-around-your-linux-file-system.html
作者:Sandra Henry-Stocker 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive