Linux的命令按照来源方式分为两种:Shell 内置命令和外部命令。所谓 Shell 内置命令,就是 Shell 自带的命令,这些命令是没有执行文件的;而外部命令就是由程序员单独开发的,是命令,所以会有命令的执行文件。Linux 中的绝大多数命令是外部命令,而 cd 命令是一个典型的 Shell 内置命令,所以 cd 命令没有执行文件所在路径。
cd 命令本身不难,但有两个非常重要的概念,就是绝对路径和相对路径。初学者由于对字符界面不熟悉,所以有大量的错误都是因为对这两个路径没有搞明白,比如进错了目录、打开不了文件、打开的文件和系统文件不一致等。所以我们先来区分一下这两个路径。
首先,我们先要弄明白什么是绝对、什么又是相对。其实我们一直说现实生活中没有绝对的事情,没有绝对的大,也没有绝对的小;没有绝对的快,也没有绝对的慢。这只是由于参照物的不同或认知的局限,导致会暂时认为某些东西可能是绝对的、不能改变的。比如目前我们认为光速是最快的速度,我们不能突破光速的限制。但也有可能随着技术的进步,我们会突破这一限制。
但在 Linux 的路径中是有绝对路径的,那是因为 Linux 有最高目录,也就是根目录。如果路径是从根目录开始,一级一级指定的,那使用的就是绝对路径。例如:
这些切换目录的方法使用的就是绝对路径。所谓相对路径,就是只从当前所在目录开始,切换目录。例如:
#而同样的命令,由于当前所在目录改变了,所以就算是同一个命令也会报错,除非在/etc/目录中还有一个etc目录
所以,虽然绝对路径输入更加烦琐,但是更准确,报错的可能性也更小。对初学者而言,笔者还是建议大家使用绝对路径。本教程为了使命令更容易理解,也会尽量使用绝对路径。
从我当前所在路径算起,加入..代表进入上一级目录,而上—级目录是根目录,而根目录中有 usr 目录,就会一级一级地进入 src目录了。

