
目录导航网站分享命令一、文件目录移动和创建/删除二、文件查找和处理 高频组合技巧通用目录结构FHS 标准一级目录全景核心目录详解/usr 子目录系统的Program Files/var 子目录会长大的地方/etc 子目录配置的大本营几个容易混淆的点 记忆口诀网站分享http://cb.vu/https://uixshell.com/zh/practicehttps://darven-cs.github.io/linux-learning/命令一、文件目录移动和创建/删除主指令作用常用子指令 / 参数示例mkdir创建目录-p递归创建多级目录-m指定权限mkdir -p a/b/crmdir删除空目录-p递归删除空父目录rmdir -p a/b/crm删除文件/目录-r递归删除-f强制删除不提示-i删除前确认rm -rf dir/cp复制文件/目录-r递归复制目录-a归档模式(保留属性)-p保留原属性-v显示过程cp -r src/ dst/mv移动/重命名-f强制覆盖-i覆盖前确认-v显示过程mv old.txt new.txttouch创建空文件 / 更新时间戳-c不创建新文件-t指定时间戳touch file.txtln创建链接-s创建软链接-f强制覆盖ln -s target linkcd切换目录..上级目录-返回上次的目录~家目录cd /var/logpwd显示当前路径-P显示物理路径(解析链接)pwd -Pls列出目录内容-l长格式-a含隐藏文件-h人类可读大小-R递归-t按时间排序ls -lah⚠️rm -rf极其危险删除后不可恢复生产环境慎用。二、文件查找和处理主指令作用常用子指令 / 参数示例find按条件查找文件-name按名称-type f/d按类型-size按大小-mtime按修改时间-exec对结果执行命令find . -name *.log -mtime 7 -deletelocate基于数据库快速查找-i忽略大小写-r正则匹配locate -i nginx.confwhich查找可执行文件路径--all显示所有匹配which python3whereis查找二进制/源码/手册-b只找二进制-m只找手册whereis lsgrep文本搜索-r递归-i忽略大小写-n显示行号-v反向匹配-E扩展正则grep -rn TODO src/cat查看/合并文件-n显示行号-A显示所有字符(含$)cat -n file.txtless/more分页查看less支持上下翻页less large.loghead查看文件头部-n N显示前 N 行-c N显示前 N 字节head -n 20 file.logtail查看文件尾部-n N显示后 N 行-f实时追踪(常用于日志)tail -f /var/log/syslogwc统计行数/词数/字节-l行数-w词数-c字节数wc -l file.txtsort排序-n数值排序-r倒序-u去重sort -nr data.txtuniq去重(需先 sort)-c统计出现次数-d只显示重复行sort file \| uniq -ccut按列截取-d指定分隔符-f指定字段cut -d: -f1 /etc/passwdawk文本处理/报表生成-F指定分隔符{print $N}打印第 N 列awk -F: {print $1} /etc/passwdsed流编辑器/批量替换-i就地修改s/old/new/g替换sed -i s/foo/bar/g file.txtxargs将标准输入转为命令参数-I{}占位符-n N每次传 N 个参数find . -name *.tmp \| xargs rmtar归档/压缩-c创建-x解压-zgzip-jbzip2-v显示过程-f指定文件tar -czvf pkg.tar.gz dir/gzip/gunzipgzip 压缩/解压-d解压-k保留原文件-9最高压缩率gzip -k filechmod修改权限u/g/o/a用户/组/其他/所有/-/增加/减少/赋值-R递归chmod -R 755 dir/chown修改所有者-R递归user:group同时改所有者和组chown -R www:www /var/www 高频组合技巧可以把需求丢给AI# 查找大文件并清理 find /var/log -name *.log -size 100M -mtime 30 -delete # 批量重命名 .txt → .md for f in *.txt; do mv $f ${f%.txt}.md; done # 实时追踪日志 过滤关键字 tail -f /var/log/nginx/access.log | grep 404 # 统计访问 IP Top 10 cat access.log | awk {print $1} | sort | uniq -c | sort -rn | head -10 提示findxargsgrep/sed/awk是 Linux 文件处理的三剑客组合掌握它们几乎能应对所有文件处理场景。通用目录结构FHS 标准所有 Linux 发行版都遵循FHSFilesystem Hierarchy Standard文件系统层次标准整个系统的目录像一棵树从根目录/开始向下展开。一级目录全景/ ├── bin/ # 基础用户命令所有人都可用 ├── sbin/ # 基础系统管理命令主要给 root ├── etc/ # 系统配置文件 ├── home/ # 普通用户的家目录 ├── root/ # root 用户的家目录 ├── usr/ # 用户程序第二层只读层级 ├── var/ # 可变数据日志、缓存、邮件等 ├── tmp/ # 临时文件重启可能清空 ├── dev/ # 设备文件 ├── proc/ # 进程和内核信息的虚拟文件系统 ├── sys/ # 系统设备和内核信息的虚拟文件系统 ├── opt/ # 第三方大型软件 ├── boot/ # 启动相关文件内核、initramfs ├── lib/ # /bin 和 /sbin 所需的基础共享库 ├── lib64/ # 64 位共享库 ├── media/ # 可移动介质的挂载点 ├── mnt/ # 临时挂载点 ├── srv/ # 服务相关的数据如 HTTP/FTP 根目录 └── run/ # 运行时数据PID 文件、socket 等重启清空核心目录详解目录作用里面有什么/bin基础用户命令ls、cp、mv、cat、bash等——系统修复、单用户模式下也必须能用/sbin基础系统管理命令fdisk、mkfs、iptables、reboot等——多数需 root 权限/etc系统配置文件passwd、shadow、fstab、nginx/、ssh/等——“一切皆配置”/home普通用户家目录/home/alice/、/home/bob/——用户私有文件、.bashrc等/rootroot 的家目录不同于/home单独放在根下/usr**用户程序第二层级**相当于Linux 的 Program Files详见下文/var可变数据会随时间变化的数据详见下文/tmp临时文件所有用户可读写重启后通常清空/dev设备文件sda硬盘、tty终端、null、zero等——一切皆文件的体现/proc进程/内核虚拟文件系统cpuinfo、meminfo、/1/PID 为 1 的进程信息——内存中的虚拟目录/sys内核/设备虚拟文件系统暴露内核对象给 userspace——内存中的虚拟目录/opt第三方大型软件如/opt/google/chrome/、/opt/jdk/——不归包管理器管的软件/boot启动文件vmlinuz内核、initramfs.img、grub/——不能删/lib/lib64共享库.so动态链接库供/bin、/sbin使用/run运行时数据PID 文件、socket、锁文件——tmpfs重启清空/srv服务数据如/srv/www/网站根、/srv/ftp/——按服务组织/mnt/media挂载点/mnt手动挂/media自动挂 U 盘/光盘/usr子目录系统的Program Files/usr是只读的用户程序层其内部结构几乎和根目录平行/usr/ ├── bin/ # 大多数用户命令ls、gcc、python 等 ├── sbin/ # 系统管理命令useradd、httpd 等 ├── lib/ # /usr/bin 和 /usr/sbin 的共享库 ├── local/ # 本地编译安装的软件make install 默认到这里 │ ├── bin/ │ ├── sbin/ │ └── lib/ ├── share/ # 架构无关的共享数据文档、locale、zoneinfo ├── include/ # C/C 头文件 └── src/ # 源代码少见 区别/bin是最小可用命令急救用/usr/bin是完整用户命令。现代发行版UsrMerge已将/bin→/usr/bin做成符号链接。/var子目录会长大的地方/var/ ├── log/ # 日志文件/var/log/messages、nginx/、audit/ ├── cache/ # 应用缓存 ├── spool/ # 队列数据邮件、打印任务 ├── lib/ # 应用持久化数据如 /var/lib/mysql/、/var/lib/docker/ ├── tmp/ # 系统级临时文件比 /tmp 更持久 ├── run/ # 运行时数据符号链接到 /run └── www/ # 某些发行版的 Web 根目录⚠️/var是最容易撑爆磁盘的目录——日志、数据库、容器镜像都在这里。生产环境常把/var单独分区。/etc子目录配置的大本营/etc/ ├── passwd # 用户信息 ├── shadow # 用户密码仅 root 可读 ├── group # 用户组 ├── fstab # 文件系统挂载表 ├── hosts # 静态 DNS 解析 ├── resolv.conf # DNS 服务器 ├── ssh/ # SSH 配置sshd_config、密钥 ├── nginx/ # Nginx 配置 ├── systemd/ # systemd 服务单元 ├── network/ # 网络配置发行版相关 └── profile.d/ # 全局环境变量脚本几个容易混淆的点1./binvs/usr/bin老传统/bin在根分区启动早期就能用/usr/bin可能在独立分区挂载后才能用现代UsrMerge/bin是/usr/bin的符号链接二者已合并2./srvvs/var/www两者都可放网站文件没有强制规定常见约定/srv/www/或/var/www/html/取决于发行版3. 什么是虚拟文件系统/proc和/sys不占磁盘空间是内核在内存中动态生成的查看它们就是在和内核对话cat /proc/cpuinfo、cat /sys/class/net/eth0/address4. 绝对路径 vs 相对路径以/开头 绝对路径从根开始不以/开头 相对路径从当前目录开始 记忆口诀“配 etc变 var用户 home程序 usr设备 dev启 boot临时 tmp挂 mnt”记住这条你就能在任意 Linux 发行版上快速定位文件。不同发行版的唯一差异在于/etc下的具体配置文件名比如网络配置 Ubuntu 用 netplanRHEL 用 network-scripts但整体骨架完全一致。