Linux cd命令cd、 cd ~、cd /、cd../、cd /home讲解

Linux cd 命令详解:cdcd ~cd /cd ..cd /home(2025 版,保姆级教程)

在 Linux 中,cd(Change Directory)是用于切换工作目录的核心命令,广泛应用于终端操作(如 Bash、Zsh)。它简单但功能强大,帮助用户在文件系统中导航。本教程从基础概念到具体用法,详细讲解 cd 及其变体(cdcd ~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),即终端所在的文件系统位置。
  • 作用:导航到指定目录,执行文件操作(如 lscp)。
  • 语法
  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 命令变体详解(中级)

以下逐一讲解 cdcd ~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 – 无效未记录上个目录检查 $OLDPWDecho $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 cdhelp 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 导航将如鱼得水!若需特定场景或错误调试,欢迎提供详情。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注