Linux cd 命令详细教程
一、cd 命令概述
cd
是 Linux 系统中用于切换工作目录的核心命令,全称 “change directory”。- 它是文件导航的基础工具,通过绝对路径、相对路径或特殊符号,可快速在文件系统中移动,掌握其用法是 Linux 操作的必备技能。
- 资料已经分类整理好:
https://pan.quark.cn/s/26d73f7dd8a7
二、cd 命令基本语法
cd [目标目录]
核心参数说明:
目标目录
:可以是绝对路径(从根目录/
开始)、相对路径(基于当前目录)或特殊符号- 若省略目标目录,默认切换到用户主目录
- 支持通配符(如
cd doc*
)和变量(如cd $HOME
)
三、cd 命令核心用法与示例
1. 切换到主目录
# 方式1:直接输入cd(无参数)
cd
# 方式2:使用~符号
cd ~
# 方式3:使用环境变量$HOME
cd $HOME
说明:主目录通常为/home/用户名
,如用户名为user
,则主目录为/home/user
。
2. 切换到根目录
cd /
说明:根目录是文件系统的顶级目录,所有路径从这里开始,输入ls /
可查看根目录下的标准结构(如bin
、etc
、home
等)。
3. 切换到上一级目录
# 方式1:使用..符号
cd ..
# 方式2:连续切换多级目录
cd ../../ # 从当前目录向上切换2级
说明:..
表示当前目录的父目录,./
表示当前目录(通常可省略)。
4. 切换到最近访问的目录
# 方式1:使用-符号
cd -
# 方式2:查看历史目录(需配合fcntl)
cd `dirs -l | head -n 2 | tail -n 1`
示例输出:
# 假设当前目录是/home/user/doc,执行cd /etc后:
cd - # 会切换回/home/user/doc,并显示上一次目录
# 输出:/home/user/doc
5. 绝对路径与相对路径切换
# 绝对路径(从根目录开始)
cd /usr/share/doc
# 相对路径(基于当前目录)
# 假设当前在/home/user,切换到user下的子目录
cd documents/project/ # 等价于/home/user/documents/project/
路径规则:
- 绝对路径以
/
开头,如/etc/apt
- 相对路径以目录名开头,如
../bin
或subdir/
6. 切换到指定用户主目录
# 格式:cd ~用户名
cd ~root # 切换到root用户主目录(/root)
cd ~guest # 切换到guest用户主目录(/home/guest)
说明:需有访问权限,普通用户切换到其他用户主目录可能需要su
或sudo
权限。
四、高级技巧与实用场景
1. 通配符与路径补全
# 使用通配符快速匹配目录
cd doc* # 切换到以doc开头的目录
cd *project # 切换到末尾包含project的目录
# 路径补全(按Tab键)
cd /usr/s[Tab] # 输入s后按Tab,自动补全为/usr/share/
技巧:连续按两次Tab键可显示所有匹配项,避免手动输入长路径。
2. 结合环境变量与特殊符号
# 使用$PWD变量(当前工作目录)
cd $PWD/temp/
# 使用~+符号(等价于当前目录)
cd ~+
# 使用~-符号(等价于上一次目录)
cd ~-
3. 临时切换与返回
# 场景:进入临时目录操作后返回原目录
cd /tmp
# 执行操作...
cd - # 直接返回之前的目录
4. 处理特殊目录名
# 目录名包含空格或特殊字符时,用引号包裹
cd "my documents"
cd 'dir with@symbol'
# 或使用转义符
cd my\ documents
cd dir\ with@symbol
5. 批量切换与脚本应用
# 在脚本中循环切换目录
for dir in /data/logs/*; do
cd "$dir"
# 执行日志处理命令...
done
五、常见错误与解决方案
- 目录不存在错误
cd non_existent_dir
# 错误提示:bash: cd: non_existent_dir: 没有那个文件或目录
解决方案:
- 检查目录名拼写(区分大小写)
- 使用
ls
先确认目录存在 - 通过
cd ..
返回上一级目录重新导航
- 权限不足错误
cd /root
# 错误提示:bash: cd: /root: 权限不够
解决方案:
- 使用
su
或sudo
获取管理员权限:sudo cd /root
(注:cd 是内置命令,sudo cd 需配合子shell,如sudo -i
后再cd) - 或让管理员修改目录权限
- 路径格式错误
cd /usr//local # 双斜杠错误
# 正确写法:cd /usr/local
说明:Linux路径中多个斜杠会被视为单个斜杠,但建议保持规范写法。
- 切换到隐藏目录
cd .config/ # 切换到当前目录下的.config隐藏目录
提示:隐藏目录以.
开头,需明确输入或通过ls -a
确认存在。
六、快速参考表格
操作场景 | 命令示例 | 说明 |
---|---|---|
切换到主目录 | cd 或 cd ~ | 进入当前用户主目录 |
切换到根目录 | cd / | 进入文件系统顶级目录 |
切换到上一级 | cd .. | 向上切换一级目录 |
切换到历史目录 | cd - | 切换到上一次访问的目录 |
绝对路径切换 | cd /etc/apt | 从根目录开始的完整路径 |
相对路径切换 | cd ../bin | 基于当前目录的相对位置 |
切换到用户主目录 | cd ~root | 进入指定用户的主目录 |
处理特殊目录名 | cd "dir name" | 用引号包裹包含空格的目录名 |
七、进阶拓展:cd 命令与 shell 特性
- cd 命令的 shell 内置属性
在bash中,cd
是内置命令(非独立程序),可通过help cd
查看更多选项:
help cd
# 输出包含:
# -P, --physical 跟随物理路径(不穿过符号链接)
# -L, --logical 跟随逻辑路径(穿过符号链接,默认行为)
示例:
cd -P /usr/bin # 切换到物理路径(不处理软链接)
cd -L /usr/bin # 切换到逻辑路径(处理软链接)
- 使用 dirs 命令管理目录栈
通过dirs
、pushd
、popd
可管理目录历史(类似栈结构):
pushd /etc # 入栈并切换目录
pushd /var # 再次入栈
dirs # 显示目录栈:/var /etc ~
popd # 出栈并切换到上一个目录(/etc)
- 自定义 cd 命令行为
在.bashrc
或.zshrc
中添加别名或函数,例如:
# 定义cd时自动显示目录内容
alias cd='cd && ls -la'
# 或通过函数实现(保留原cd功能)
cd() {
builtin cd "$@"
ls -la
}
保存后执行source ~/.bashrc
使配置生效。
掌握cd
命令的各种用法,能帮助你在Linux文件系统中高效导航。实际操作中,建议结合路径补全(Tab键)和ls
命令配合使用,避免手动输入错误路径。如需更复杂的目录管理,可进一步学习pushd
、popd
和目录栈操作。