我会从核心功能、等价命令、使用场景、特殊细节四个维度讲清楚,让你彻底理解这个新手高频使用的命令。
一、cd ~ 的核心作用
cd ~ 是 Linux 中快速切换到当前登录用户"家目录" 的命令,是最常用的目录切换快捷方式之一:
cd:change directory 的缩写,即"切换目录";~:波浪号,是 Linux 中当前用户家目录的"快捷符号"(系统会自动解析为对应的家目录路径)。
通俗举例
- 如果你以普通用户(比如
user1) 登录:cd ~等价于cd /home/user1; - 如果你以管理员(root) 登录:
cd ~等价于cd /root; - 如果你切换到其他用户(比如
su zhangsan):cd ~会切换到zhangsan的家目录/home/zhangsan。
二、与 cd ~ 完全等价的操作
1. 最简等价:直接输入 cd
在 Linux 中,单独执行 cd 命令(不带任何参数) ,默认就是切换到当前用户的家目录,和 cd ~ 效果完全一样:
bash
# 以下三条命令效果完全相同(以 user1 登录为例)
cd ~
cd
cd /home/user1
2. 其他等价写法(进阶)
-
用环境变量
$HOME:cd $HOME($HOME是系统内置环境变量,存储当前用户的家目录路径);bash# 先查看 $HOME 的值 echo $HOME # 输出 /home/user1(普通用户)或 /root(root) cd $HOME # 等价于 cd ~ -
绝对路径:直接写家目录的完整路径(比如
cd /home/user1、cd /root),但这种方式需要手动写路径,不如cd ~/cd便捷。
三、cd ~ 的扩展用法(新手也能快速掌握)
~ 不仅能单独用,还能结合路径快速切换到家目录下的子目录,比写完整路径更高效:
bash
# 切换到当前用户家目录下的 docker 文件夹(等价于 cd /home/user1/docker)
cd ~/docker
# 切换到 root 用户的家目录(即使当前是普通用户)
cd ~root # 等价于 cd /root
# 切换到 zhangsan 用户的家目录
cd ~zhangsan # 等价于 cd /home/zhangsan
四、关键细节(避坑重点)
-
~与-的区别:cd ~:切换到当前用户家目录;cd -:切换到上一次所在的目录 (比如你从/etc切到/var,执行cd -会切回/etc)。
示例:
bashcd /etc/docker # 进入 /etc/docker cd ~ # 切到 /home/user1 cd - # 切回 /etc/docker(上一次的目录) -
权限问题 :
普通用户执行
cd ~root只能"切换目录"(前提是有权限进入/root),但默认普通用户无权限访问/root,会提示Permission denied;而cd ~永远能切换到自己的家目录(权限不受限)。 -
~不是目录名 :
~是系统的"快捷符号",不是实际存在的目录,用ls ~能列出家目录的文件,但ls ~本质是解析为ls /home/user1后执行。
总结
cd ~的核心作用是快速切换到当前登录用户的家目录 ,是cd /home/用户名(普通用户)或cd /root(root)的快捷写法;- 与
cd ~完全等价的操作是单独执行cd命令 ,也等价于cd $HOME; - 扩展用法:
~/子目录可快速切换到家目录下的指定子目录,~用户名可切换到指定用户的家目录; - 注意区分
cd ~(回家目录)和cd -(回上一次目录)的不同。
这个命令是 Linux 日常操作中最便捷的目录切换方式,记住 cd 或 cd ~ 就能随时回到自己的"专属目录",避免手动输入长路径。