Linux 命令:cd

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 /可查看根目录下的标准结构(如binetchome等)。

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
  • 相对路径以目录名开头,如../binsubdir/
6. 切换到指定用户主目录
# 格式:cd ~用户名
cd ~root      # 切换到root用户主目录(/root)
cd ~guest     # 切换到guest用户主目录(/home/guest)

说明:需有访问权限,普通用户切换到其他用户主目录可能需要susudo权限。

四、高级技巧与实用场景
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
五、常见错误与解决方案
  1. 目录不存在错误
cd non_existent_dir
# 错误提示:bash: cd: non_existent_dir: 没有那个文件或目录

解决方案

  • 检查目录名拼写(区分大小写)
  • 使用ls先确认目录存在
  • 通过cd ..返回上一级目录重新导航
  1. 权限不足错误
cd /root
# 错误提示:bash: cd: /root: 权限不够

解决方案

  • 使用susudo获取管理员权限:sudo cd /root(注:cd 是内置命令,sudo cd 需配合子shell,如sudo -i后再cd)
  • 或让管理员修改目录权限
  1. 路径格式错误
cd /usr//local  # 双斜杠错误
# 正确写法:cd /usr/local

说明:Linux路径中多个斜杠会被视为单个斜杠,但建议保持规范写法。

  1. 切换到隐藏目录
cd .config/  # 切换到当前目录下的.config隐藏目录

提示:隐藏目录以.开头,需明确输入或通过ls -a确认存在。

六、快速参考表格
操作场景命令示例说明
切换到主目录cdcd ~进入当前用户主目录
切换到根目录cd /进入文件系统顶级目录
切换到上一级cd ..向上切换一级目录
切换到历史目录cd -切换到上一次访问的目录
绝对路径切换cd /etc/apt从根目录开始的完整路径
相对路径切换cd ../bin基于当前目录的相对位置
切换到用户主目录cd ~root进入指定用户的主目录
处理特殊目录名cd "dir name"用引号包裹包含空格的目录名
七、进阶拓展:cd 命令与 shell 特性
  1. cd 命令的 shell 内置属性
    在bash中,cd是内置命令(非独立程序),可通过help cd查看更多选项:
help cd
# 输出包含:
#   -P, --physical   跟随物理路径(不穿过符号链接)
#   -L, --logical    跟随逻辑路径(穿过符号链接,默认行为)

示例

cd -P /usr/bin  # 切换到物理路径(不处理软链接)
cd -L /usr/bin  # 切换到逻辑路径(处理软链接)
  1. 使用 dirs 命令管理目录栈
    通过dirspushdpopd可管理目录历史(类似栈结构):
pushd /etc  # 入栈并切换目录
pushd /var  # 再次入栈
dirs       # 显示目录栈:/var /etc ~
popd       # 出栈并切换到上一个目录(/etc)
  1. 自定义 cd 命令行为
    .bashrc.zshrc中添加别名或函数,例如:
# 定义cd时自动显示目录内容
alias cd='cd && ls -la'

# 或通过函数实现(保留原cd功能)
cd() {
  builtin cd "$@"
  ls -la
}

保存后执行source ~/.bashrc使配置生效。

掌握cd命令的各种用法,能帮助你在Linux文件系统中高效导航。实际操作中,建议结合路径补全(Tab键)和ls命令配合使用,避免手动输入错误路径。如需更复杂的目录管理,可进一步学习pushdpopd和目录栈操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值