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