在CentOS乃至所有Linux发行版的命令行环境中,cd命令是每一位用户和系统管理员最先接触、也最为基础的核心工具之一,它的全称是“change directory”,即更改当前工作目录,理解并熟练运用cd命令,是在Linux文件系统的广阔天地中自由穿梭、高效完成各项任务的前提。

核心语法与基本用法
cd命令的基本语法结构非常简单:
cd [目标目录路径]
这里的“目标目录路径”可以是绝对路径,也可以是相对路径。
-
绝对路径:从根目录()开始,完整地描述到目标目录的路径,要切换到系统的日志目录,无论您当前身在何处,都可以使用:
cd /var/log
执行后,您的工作目录就会立即变为
/var/log。 -
相对路径:相对于当前所在目录的路径,如果您当前在
/home目录下,其中有一个名为user1的子目录,您可以使用:cd user1
这样就能进入
/home/user1目录,相对路径不包含开头的斜杠。
常用快捷方式与技巧
为了提升操作效率,cd命令内置了几个非常实用的快捷方式,掌握它们能让您在终端中如虎添翼。
-
cd或cd ~单独输入cd命令,或者输入cd后跟一个波浪号(),都可以让您迅速返回当前用户的家目录,如果您以root用户登录,执行cd后就会回到/root目录;如果您是普通用户centos,则会回到/home/centos目录,这个波浪号是家目录的通用代称。 -
cd -这是一个极为有用的技巧,它表示切换到上一次所在的工作目录,当您需要在两个相距较远的目录之间频繁来回切换时,cd -能节省大量重复输入路径的时间,系统会将上一次的目录路径存储在OLDPWD这个环境变量中。
-
cd ..在路径中,两个连续的点()代表父目录,即上一级目录。cd ..命令的作用是返回到当前目录的上一级,这个操作可以叠加使用,cd ../..会返回到上上级目录。 -
处理包含空格的目录名 如果目录名中包含空格,直接输入可能会导致系统识别错误,您需要使用引号(单引号或双引号)将路径括起来,或者使用反斜杠(
\)对空格进行转义。cd "My Documents" cd My\ Documents
理解绝对路径与相对路径
为了更清晰地辨析这两种路径,下表小编总结了它们的核心区别:
| 特性 | 绝对路径 | 相对路径 |
|---|---|---|
| 起始点 | 从根目录()开始 | 从当前工作目录开始 |
| 表示符号 | 以开头 | 不以开头,通常包含、或直接子目录名 |
| 示例 | /usr/local/nginx/conf |
../logs (进入上级目录下的logs文件夹) |
| 优缺点 | 优点:路径唯一、精确,不受当前位置影响。 缺点:通常较长,输入繁琐。 |
优点:路径简短,输入快捷。 缺点:路径依赖于当前位置,可能产生歧义。 |
实际操作演练
假设您是一名系统管理员,需要检查Nginx配置,然后回到家目录查看一个脚本,最后再返回配置目录。
-
查看当前位置:
pwd # 假设输出为 /root
-
使用绝对路径进入Nginx配置目录:
cd /etc/nginx pwd # 输出为 /etc/nginx
-
快速返回家目录:
cd ~ pwd # 输出为 /root
-
使用快捷方式返回上一次的目录(/etc/nginx):
cd - pwd # 输出为 /etc/nginx
通过这个简单的流程,您可以感受到
cd命令及其快捷方式组合使用的强大与便捷。
常见错误与排错
在使用cd时,新手常会遇到以下错误提示:
-
bash: cd: xxx: No such file or directory这是最常见的错误,意思是“没有那个文件或目录”,原因通常有三点:- 路径拼写错误:请仔细检查输入的每一个字符。
- 大小写不匹配:Linux系统是大小写敏感的,
Documents和documents是两个不同的目录。 - 路径不存在:您要去的目录确实不在您指定的位置。
-
bash: cd: xxx: Not a directory这个错误表示您试图进入一个文件,而不是一个目录,请使用ls命令确认xxx的类型。 -
bash: cd: xxx: Permission denied这表示您没有进入该目录的权限,目录需要有“执行”权限,用户才能进入它,您可能需要使用sudo提权,或者联系目录所有者修改权限。
相关问答FAQs
问题1:cd - 和 cd .. 有什么区别?
解答: cd - 和 cd .. 是两个功能完全不同的命令。
cd ..:此命令用于在目录层级结构中向上移动一级,它始终是相对于您当前所在的目录,进入其父目录,无论您在/usr/local/bin还是/var/log,执行cd ..都会分别进入/usr/local和/var。cd -:此命令用于在当前目录和上一次所在的目录之间进行来回切换,它记录的是您的工作历史,您从/home/user切换到了/etc/nginx,此时执行cd -会立刻回到/home/user,再次执行cd -又会回到/etc/nginx,它是一个历史切换工具,而不是层级导航工具。
问题2:为什么我输入 cd Documents 会提示 “No such file or directory”,但这个文件夹明明存在?
解答: 这种情况最可能的原因是大小写不匹配,CentOS(以及所有Linux系统)的文件系统是严格区分大小写的,您看到的文件夹名可能是Documents(首字母大写),而您输入的可能是documents(全部小写),在Linux看来,这是两个完全不同的名称。
解决方法:
- 确认正确的大小写:使用
ls -l命令查看当前目录下所有文件和文件夹的准确名称。 - 使用Tab键自动补全:这是避免此类问题的最佳实践,您只需输入
cd D然后按一下Tab键,系统会自动补全为cd Documents(如果它是唯一以D开头的目录),或者列出所有可能的选项供您选择,这不仅能防止拼写错误,还能极大提高输入效率。