Linux cd命令cd、 cd ~、cd /、cd../、cd /home讲解
Linux cd
命令详解:cd
、cd ~
、cd /
、cd ..
、cd /home
(2025 版,保姆级教程)
在 Linux 中,cd
(Change Directory)是用于切换工作目录的核心命令,广泛应用于终端操作(如 Bash、Zsh)。它简单但功能强大,帮助用户在文件系统中导航。本教程从基础概念到具体用法,详细讲解 cd
及其变体(cd
、cd ~
、cd /
、cd ..
、cd /home
),结合实际示例,适合初学者到进阶用户。内容基于 Linux 标准(Ubuntu 24.10、CentOS 等,2025 年 10 月),参考官方文档和社区资源(如 Linux man pages、CSDN)。
前提:
- Linux 环境(Ubuntu、CentOS 或 WSL)。
- 终端工具(Ctrl + Alt + T 打开)。
- 测试目录:建议创建
/tmp/test_dir
练习(mkdir -p /tmp/test_dir
)。
第一阶段:cd
命令基础概念(初学者级别)
1.1 什么是 cd
?
- 定义:
cd
是 Bash 内置命令,用于更改当前工作目录(Current Working Directory, CWD),即终端所在的文件系统位置。 - 作用:导航到指定目录,执行文件操作(如
ls
、cp
)。 - 语法:
cd [目录路径]
[目录路径]
:绝对路径(如/home/user
)或相对路径(如docs
)。- 无参数:行为取决于具体用法(如
cd ~
)。 - 验证:运行
pwd
(Print Working Directory)显示当前路径。 - 类比:
cd
像“地图导航”,定位你在文件系统中的位置。
1.2 文件系统基础
- 根目录(
/
):Linux 文件系统的顶层,所有目录的起点。 - 家目录(
~
):当前用户的个人目录(如/home/user
)。 - 相对路径:基于当前目录(如
docs
表示当前目录下的docs
)。 - 绝对路径:从根目录开始(如
/home/user/docs
)。
环境准备:
mkdir -p /tmp/test_dir/sub1/sub2
cd /tmp/test_dir
pwd
输出:/tmp/test_dir
第二阶段:cd
命令变体详解(中级)
以下逐一讲解 cd
、cd ~
、cd /
、cd ..
和 cd /home
,包括原理和示例。
2.1 cd
(无参数)
- 功能:不带参数时,
cd
默认切换到当前用户的家目录(等同于cd ~
)。 - 原理:读取环境变量
$HOME
,通常为/home/username
(或/root
对于 root 用户)。 - 示例:
cd /tmp/test_dir
pwd # 输出: /tmp/test_dir
cd
pwd # 输出: /home/user
- 场景:快速返回家目录,如编辑
~/.bashrc
。
2.2 cd ~
- 功能:显式切换到当前用户的家目录。
- 原理:
~
是 Bash 扩展,表示$HOME
环境变量。 - 示例:
cd /tmp/test_dir/sub1
pwd # 输出: /tmp/test_dir/sub1
cd ~
pwd # 输出: /home/user
- 进阶:切换到其他用户家目录:
cd ~other_user # 切换到 /home/other_user(需权限)
- 场景:管理个人配置文件(如
~/.ssh/config
)。
2.3 cd /
- 功能:切换到文件系统的根目录(
/
)。 - 原理:
/
是绝对路径的起点,包含所有目录(如/etc
、/home
)。 - 示例:
cd /tmp/test_dir
pwd # 输出: /tmp/test_dir
cd /
pwd # 输出: /
ls # 输出: bin boot dev etc home ...
- 场景:访问系统级目录(如
/etc
修改配置)。
2.4 cd ..
- 功能:切换到当前目录的父目录。
- 原理:
..
表示上一级目录,可多次使用(如cd ../..
向上两级)。 - 示例:
cd /tmp/test_dir/sub1/sub2
pwd # 输出: /tmp/test_dir/sub1/sub2
cd ..
pwd # 输出: /tmp/test_dir/sub1
cd ../..
pwd # 输出: /tmp
- 场景:快速回退目录,如从子目录返回项目根目录。
2.5 cd /home
- 功能:切换到
/home
目录,包含所有用户家目录。 - 原理:
/home
是绝对路径,通常存储用户目录(如/home/user1
、/home/user2
)。 - 示例:
cd /tmp/test_dir
pwd # 输出: /tmp/test_dir
cd /home
pwd # 输出: /home
ls # 输出: user1 user2 ...
- 场景:管理多个用户目录(如批量检查用户配置)。
第三阶段:高级用法与技巧(高级)
3.1 相对路径与绝对路径
- 相对路径:基于当前目录。
cd sub1/sub2 # 从 /tmp/test_dir 到 /tmp/test_dir/sub1/sub2
- 绝对路径:从根目录开始。
cd /tmp/test_dir/sub1/sub2
3.2 快速切换最近目录
- 上一个目录:
cd -
返回上一次工作目录。
cd /tmp/test_dir
cd /home
cd - # 回到 /tmp/test_dir
pwd # 输出: /tmp/test_dir
3.3 自动补全
- Tab 补全:输入
cd /ho
> 按 Tab,补全为cd /home
。 - 提示:若补全失败,检查目录是否存在(
ls /ho*
)。
3.4 环境变量与 cd
- 自定义变量:设置常用目录。
export MY_DIR=/tmp/test_dir
cd $MY_DIR
pwd # 输出: /tmp/test_dir
- 添加 ~/.bashrc:
echo 'export MY_DIR=/tmp/test_dir' >> ~/.bashrc
source ~/.bashrc
3.5 处理特殊字符
- 目录含空格:用引号或转义。
cd "My Folder"
cd My\ Folder
第四阶段:实际应用场景 + 举例
4.1 场景 1:项目导航
假设项目目录 /home/user/project/src
。
cd /home/user/project/src
ls # 查看 src 文件
cd .. # 回到 /home/user/project
cd ~ # 回到家目录
cd - # 回到 /home/user/project
4.2 场景 2:系统管理
编辑系统配置。
cd /etc
ls # 查看配置目录
cd /home # 检查用户目录
cd ~ # 返回家目录
4.3 场景 3:批量脚本
在脚本中切换目录。
#!/bin/bash
cd /tmp/test_dir
echo "In test_dir: $(pwd)"
cd /home
echo "In home: $(pwd)"
cd ..
echo "In root: $(pwd)"
运行:chmod +x script.sh && ./script.sh
输出:
In test_dir: /tmp/test_dir
In home: /home
In root: /
第五阶段:常见问题与故障排除
问题 | 原因 | 解决方案 |
---|---|---|
No such file or directory | 目录不存在 | 用 ls 检查路径(如 ls /tmp/test )。 |
Permission denied | 无权限 | 用 sudo cd (无效,改用 sudo -i 进入 root)。 |
cd – 无效 | 未记录上个目录 | 检查 $OLDPWD (echo $OLDPWD )。 |
空格路径失败 | 未转义 | 用引号或 \ (如 cd "My Folder" )。 |
调试:
- 检查路径:
ls -ld 路径
查看目录是否存在。 - 权限:
stat 路径
检查权限。 - 日志:用
set -x
调试脚本中的cd
。
第六阶段:总结与进阶学习
cd
是 Linux 导航核心,cd
(家目录)、cd ~
(显式家目录)、cd /
(根目录)、cd ..
(父目录)、cd /home
(用户目录集)覆盖常见场景。熟练使用相对/绝对路径和 cd -
,可大幅提升效率。
进阶路径:
- 1 天:掌握基本
cd
和变体。 - 2-3 天:练习脚本和特殊路径。
- 1 周:结合
pushd
/popd
(目录栈)或zsh
自动补全。
资源:
- 官方:Linux man pages(
man cd
或help cd
)。 - 英文:GeeksforGeeks (https://www.geeksforgeeks.org/cd-command-in-linux-with-examples/).
- 中文:CSDN (https://blog.csdn.net/weixin_43883374/article/details/106926058) – Linux 命令。
- 视频:Bilibili “Linux 基础命令教程”。
掌握 cd
后,Linux 导航将如鱼得水!若需特定场景或错误调试,欢迎提供详情。