Linux中的cd ~命令

我会从核心功能、等价命令、使用场景、特殊细节四个维度讲清楚,让你彻底理解这个新手高频使用的命令。

一、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. 其他等价写法(进阶)
  • 用环境变量 $HOMEcd $HOME$HOME 是系统内置环境变量,存储当前用户的家目录路径);

    bash 复制代码
    # 先查看 $HOME 的值
    echo $HOME  # 输出 /home/user1(普通用户)或 /root(root)
    cd $HOME    # 等价于 cd ~
  • 绝对路径:直接写家目录的完整路径(比如 cd /home/user1cd /root),但这种方式需要手动写路径,不如 cd ~/cd 便捷。

三、cd ~ 的扩展用法(新手也能快速掌握)

~ 不仅能单独用,还能结合路径快速切换到家目录下的子目录,比写完整路径更高效:

bash 复制代码
# 切换到当前用户家目录下的 docker 文件夹(等价于 cd /home/user1/docker)
cd ~/docker

# 切换到 root 用户的家目录(即使当前是普通用户)
cd ~root  # 等价于 cd /root

# 切换到 zhangsan 用户的家目录
cd ~zhangsan  # 等价于 cd /home/zhangsan

四、关键细节(避坑重点)

  1. ~- 的区别

    • cd ~:切换到当前用户家目录
    • cd -:切换到上一次所在的目录 (比如你从 /etc 切到 /var,执行 cd - 会切回 /etc)。
      示例:
    bash 复制代码
    cd /etc/docker  # 进入 /etc/docker
    cd ~            # 切到 /home/user1
    cd -            # 切回 /etc/docker(上一次的目录)
  2. 权限问题

    普通用户执行 cd ~root 只能"切换目录"(前提是有权限进入 /root),但默认普通用户无权限访问 /root,会提示 Permission denied;而 cd ~ 永远能切换到自己的家目录(权限不受限)。

  3. ~ 不是目录名
    ~ 是系统的"快捷符号",不是实际存在的目录,用 ls ~ 能列出家目录的文件,但 ls ~ 本质是解析为 ls /home/user1 后执行。

总结

  1. cd ~ 的核心作用是快速切换到当前登录用户的家目录 ,是 cd /home/用户名(普通用户)或 cd /root(root)的快捷写法;
  2. cd ~ 完全等价的操作是单独执行 cd 命令 ,也等价于 cd $HOME
  3. 扩展用法:~/子目录 可快速切换到家目录下的指定子目录,~用户名 可切换到指定用户的家目录;
  4. 注意区分 cd ~(回家目录)和 cd -(回上一次目录)的不同。

这个命令是 Linux 日常操作中最便捷的目录切换方式,记住 cdcd ~ 就能随时回到自己的"专属目录",避免手动输入长路径。

相关推荐
AOwhisky2 小时前
Linux(CentOS)系统管理入门笔记(第二十一期)——防火墙管理(Firewalld)——zone、服务端口、富规则与端口转发
linux·运维·笔记·安全·centos·防火墙
腾飞开源2 小时前
01_K8s干货笔记之认识K8s
运维·笔记·云原生·容器·kubernetes·k8s·容器化部署
tg_xianheyun8 小时前
CDN节点分布如何影响网页加载速度和用户体验
服务器·cdn加速·全球访问优化
lsh曙光8 小时前
延时at指令和定时cron指令
linux·服务器·网络
圆山猫8 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
布鲁飞丝8 小时前
vivo Pulsar 万亿级消息处理实践()-Ansible运维部署
运维·ansible
XR1234567888 小时前
企业全光网络架构选型技术白皮书:从物理层到运维层的全链路分析
运维·网络·架构
似的8359 小时前
一步一步学习使用FireMonkey动画() 使用TAnimator类创建动画
linux·学习·nginx
HiDev_9 小时前
【非标自动化】2、认识元器件(直线模组)
运维·自动化
夏殇之殁10 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript