Shell核心基础命令(上)—— 文件与目录操作

张开发
2026/6/8 7:21:06 15 分钟阅读
Shell核心基础命令(上)—— 文件与目录操作
Shell核心基础命令上—— 文件与目录操作在Linux/Unix系统中文件和目录操作是日常运维和开发工作的基石。熟练掌握这些基础命令不仅能提升工作效率更是深入理解Shell环境的必经之路。本文将系统介绍文件与目录操作的核心命令从基础到进阶助你构建完整的知识体系。一、目录导航定位与切换1. pwd —— 明确你的位置pwdPrint Working Directory用于显示当前工作目录的绝对路径。$pwd/home/user/projects/shell-tutorial# 显示物理路径解析符号链接$pwd-P/usr/local/share/nginx在复杂的目录结构中pwd是防止误操作的第一道防线。2. cd —— 自由穿梭目录间cdChange Directory支持多种路径切换方式cd/home/user/docs# 绝对路径cd../downloads# 相对路径上级目录cd~# 切换到用户主目录cd-# 切换到上一次所在的目录cd..# 切换到上级目录特殊路径符号.—— 当前目录..—— 上级目录~—— 用户主目录-—— 上一次所在的目录快速来回切换二、目录内容查看ls命令详解lsList是最常用的目录查看命令其丰富的参数组合可以满足各种场景需求。基础用法ls# 列出当前目录内容ls/var/log# 列出指定目录内容ls-lfile.txt# 查看单个文件详情核心参数详解ls -l—— 长格式详细信息$ls-ldrwxr-xr-x2user group4096Jan1510:30 documents -rw-r--r--1user group2048Jan1509:20 file.txt输出字段解析-rw-r--r-- 1 user group 2048 Jan 15 09:20 file.txt │└┬┘└┬┘└┬┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └── 文件名 │ │ │ │ │ │ │ │ └──────────── 修改时间 │ │ │ │ │ │ │ └─────────────────────── 文件大小字节 │ │ │ │ │ │ └──────────────────────────── 所属组 │ │ │ │ │ └────────────────────────────────── 所有者 │ │ │ │ └──────────────────────────────────────── 硬链接数 │ │ │ └──────────────────────────────────────────── 其他用户权限 │ │ └────────────────────────────────────────────── 所属组权限 │ └───────────────────────────────────────────────── 所有者权限 └──────────────────────────────────────────────────── 文件类型ls -a—— 显示隐藏文件$ls-a....bashrc .profile documents file.txtLinux中以.开头的文件为隐藏文件通常用于存储配置信息。常用组合参数组合作用ls -la/ls -al显示所有文件的详细信息ls -lh以人类可读格式显示大小K、M、Gls -lt按修改时间排序最新在前ls -lS按文件大小排序最大在前ls -lR递归显示子目录内容ls -ld /etc显示目录本身信息三、目录操作创建与管理1. mkdir —— 创建目录mkdirnew_folder# 创建单个目录mkdir-pparent/child/grand# 递归创建多级目录-p参数mkdirdir1 dir2 dir3# 同时创建多个目录2. rmdir —— 删除空目录rmdirempty_folder# 删除空目录rmdir-pparent/child# 递归删除空目录从子目录向上注意rmdir只能删除空目录非空目录需使用rm -r。3. tree —— 可视化目录结构tree# 显示当前目录的树形结构tree-L2# 限制显示深度为2层tree-d# 只显示目录不显示文件输出示例. ├── bin/ ├── docs/ │ ├── api.md │ └── guide.md ├── src/ │ ├── main.c │ └── utils.c └── README.md四、文件操作创建、查看与基础管理1. touch —— 创建空文件或更新时间戳touchnewfile.txt# 创建空文件touchfile1.txt file2.txt# 创建多个文件touch-t202401151200old.txt# 指定时间戳YYYYMMDDHHMM2. cat —— 查看文件内容catfile.txt# 显示整个文件内容cat-nfile.txt# 显示行号catfile1 file2combined# 合并多个文件3. head / tail —— 查看文件首尾head-20log.txt# 查看前20行tail-flog.txt# 实时追踪文件新增内容-f参数tail-n50log.txt# 查看最后50行4. cp —— 复制文件或目录cpfile.txt backup.txt# 复制文件cp-rdir1 dir2# 递归复制目录cp-ifile.txt dest/# 覆盖前提示确认cp-pfile.txt dest/# 保留文件属性时间戳、权限等5. mv —— 移动或重命名mvold.txt new.txt# 重命名文件mvfile.txt /tmp/# 移动文件到指定目录mv-ifile.txt dest/# 覆盖前提示6. rm —— 删除文件或目录rmfile.txt# 删除文件rm-ifile.txt# 删除前确认rm-rdirectory# 递归删除目录及其内容rm-rfdirectory# 强制递归删除慎用⚠️ 警告rm -rf /会删除整个系统使用-rf参数时务必确认路径正确。五、路径操作进阶技巧1. 通配符使用ls*.txt# 匹配所有txt文件lsfile?.txt# 匹配单个字符如file1.txt, fileA.txtls[abc]*.txt# 匹配以a、b或c开头的文件ls[!abc]*.txt# 匹配不以a、b或c开头的文件2. 命令组合技巧# 快速创建项目结构mkdir-pproject/{src,docs,tests}/{2024,2025}# 批量重命名forfin*.txt;domv$f${f%.txt}.bak;done# 查找最近修改的文件ls-lt|head-10六、命令速查表命令功能常用参数pwd显示当前路径-P显示物理路径cd切换目录-返回上次目录ls列出目录内容-l详细列表-a显示隐藏文件-h人类可读大小mkdir创建目录-p递归创建rmdir删除空目录-p递归删除touch创建文件/更新戳-t指定时间cat查看文件内容-n显示行号head查看文件开头-n指定行数tail查看文件末尾-f实时追踪-n指定行数cp复制-r递归-i交互确认-p保留属性mv移动/重命名-i交互确认rm删除-r递归-f强制-i交互确认七、实战场景场景1快速搭建项目目录mkdir-pmyproject/{src,docs,tests,bin}cdmyprojecttouchREADME.mdls-la场景2日志分析工作流cd/var/logpwdls-lhS*.log|head-5# 找出最大的日志文件tail-fnginx/access.log# 实时监控访问日志场景3文件备份与清理cp-rimportant_docs backup_$(date%Y%m%d)ls-ltbackup_*|head-3# 查看最近备份rm-rftemp_downloads/# 清理临时文件结语文件与目录操作是Shell使用的基石。建议读者多练习在测试环境中反复操作形成肌肉记忆勤查看不确定时先用ls确认再用rm等危险命令做备份重要操作前做好备份尤其是使用rm、mv等命令时在下一篇中我们将继续介绍文件权限管理、文本处理工具以及更高级的文件操作技巧。本文基于Linux标准命令编写适用于Bash/Zsh等主流Shell环境。

更多文章