Linux文件管理与查询
Linux文件管理与查询
一、文件目录结构

目录说明
1./bin和/sbin:系统命令目录
1.1 /bin (二进制命令)
- 作用:存放普通用户和系统管理员都可以使用的基础命令
- 特点:
- 普通用户下也可使用
- 命令多为系统运行必需的核心工具
1.2/sbin(系统管理命令)高级权限
- 作用:存放需要管理员权限执行的系统管理命令
- 特点:
- 普通用户默认无权执行(需 sudo )
- 命令多涉及系统配置和维护
2./dev:设备文件目录
作用:管理所有硬件设备和虚拟设备
关键设备示例:
硬盘设备:
/dev/sda :第一块 SATA/SCSI 硬盘
/dev/sda1:第一块硬盘的第一个分区
虚拟设备:
- /dev/null:空设备(丢弃所有输入
- /dev/random:随机数生成器
权限说明:
- 块设备(如硬盘)通常只有 root 或 disk 用户组有操作权限
3./root和/home :用户家目录
3.1 /root
作用:超级用户(root)的家目录
特点:
默认只有 root 用户可访问
存放 root 的配置文件
3.2/home
- 作用:存放普通用户的家目录
- 特点:
- 每个用户对应一个子目录
- 用户对其家目录有完全控制权
4./tmp 和/var:动态数据目录
4.1 /tmp
- 作用:存放临时文件
- 特点
- 全局可读写(权限为 drwxrwxrwt)
- 系统重启或定期清理时会自动删除文件。
4.1 /var
- 作用:存放运行时可变数据(如日志、数据库、邮件)
- 常见子目录:
- /var/log :系统和服务日志(如 syslog 、nginx/access.log )
- /var/lib :应用程序数据(如 MySQL 数据库 /var/lib/mysql )
- /var/spool :队列数据(如邮件队列 /var/spool/mail )
- /var/log/secure :安全认证日志(如 SSH 登录记录)
- /var/log/messages :核心系统日志(替代通用 syslog)
5.设备挂载目录
5.1/media
- 作用:系统自动挂载可移动设备
- 特点
- 现代 Linux 发行版(如 Ubuntu)自动挂载到 /media/用户名/设备名
5.2/mnt
- 作用:管理员手动挂载临设备或远程存储
- 特点
- 通常为空目录,需手动创建子目录并挂载
6./etc :系统配置目录
作用:存放系统和应用程序的配置文件
关键文件示例
/etc/passwd :用户账户信息
CentOS 特有路径:
网络配置:
/etc/sysconfig/network-scripts/ifcfg-ens192 # 网卡配置文件(替换ens192 为实际网卡名)
SELinux 配置:
/etc/selinux/config # SELinux 模式(enforcing/permissive/disabled)
YUM/DNF 配置:
/etc/yum.repos.d/CentOS-Base.repo # 软件源配置
操作注意:
- 修改配置文件后,通常需要重启服务生效
7./proc:虚拟文件系统
- 作用:动态反映内核、进程和硬件状态
- 关键文件示例:
- /proc/cpuinfo :CPU 详细信息
- /proc/meminfo :内存使用情况
- /proc/1234 :PID 为 1234 的进程信息
8./usr和/usr/local:系统资源目录
8.1/usr
- 作用:存放系统核心程序、库和文档
- 子目录
- /usr/bin :用户命令(如 gcc 、python )
- /usr/lib :库文件(如 .so 动态库)
- /usr/share :共享数据(如文档、时区文件)
8.1/usr/local
- 作用:存放用户手动编译安装的软件
- 特点:
- 避免与系统包管理器(如 apt 、yum )安装的软件冲突
9./boot:系统启动目录
作用:存放启动引导文件
关键文档:
- vmlinuz-* :Linux 内核文件
- initrd.img-* :初始内存盘镜像
- /boot/grub :GRUB 引导程序配置。
操作警告:
- 误删此目录文件可能导致系统无法启动!
10./lib和/lib64:库文件目录
10.1 lib
- 作用:存放32 位系统的核心库文件(如 glibc )
- 常见内容:
- 动态链接库( .so 文件)
- 内核模块 /lib/modules/ 。
10.2lib64
- 作用:存放64 位系统的核心库文件
11./lost+found :文件系统恢复目录
- 作用:fsck 工具修复文件系统时存储未被引用的文件碎片
- 特点:
- 每个磁盘分区根目录下都有此目录
- 普通用户无需操作,数据需手动恢复
二、文件管理
文件管理命令
1.touch-创建空文件
用途:创建新文件或更新文件时间戳。
语法:
touch 文件名 |
示例:
touch file.txt # 创建空文件 |
2.mkdir-创建目录
用途:创建新目录
语法:
mkdir [选项] 目录名 |
常用选项:
mkdir dir1 # 创建单层目录 |
3.rm-删除文件或目录
用途:删除文件或目录(慎用!)。
语法:
rm [选项] 文件或目录 |
常用选项:
rm file.txt # 删除文件 |
[!WARNING]
警告: rm -rf / 会删除整个系统,切勿尝试!
4.cp - 复制文件或目录
用途:复制文件或目录到指定位置。
语法:
cp [选项] 源文件 目标路径 |
常用选项:
cp file.txt backup/ # 复制文件到目录 |
5.mv - 移动或重命名文件
用途:移动文件或目录,或修改名称
语法:
mv 源文件 目标路径或名称 |
示例:
mv old.txt new.txt # 重命名文件 |
6.ls
常用选项:
ls -a 显示隐藏文件 |
7.查询命令(cat less tail grep find)
(1)cat
用途:
用于快速查看、合并或创建文件内容。适合小文件,直接将内容输出到终端,无交互功能
语法:
cat filename # 查看文件内容 |
常用选项:
cat -n 文件名 #显示行号(包括空行) |
(2)less
用途:
提供用户交互式地滚动浏览文件。在 less 环境下,可以使用方向键或 Page Up/Page Down 键来滚动浏览文件。按 q 键可以退出less
语法:
less filename |
常用选项:
less -N:显示行号 |
(3)tail
用途:
用于查看文件末尾内容,默认显示最后10行。常用于实时监控日志更新。
语法:
tail filename # 显示文件最后10行 |
常用选项:
tail -n 文件 #指定显示的行数 |
8.grep核心知识点
1.基础语法
grep [选项] "模式" [文件...] |
2.grep常用选项
| 选项 | 说明 |
|---|---|
| -i | 忽略大小写 |
| -o | 仅输出匹配内容 |
| -w | 精确匹配 |
| -r | 递归搜索 |
| -n | 统计行号 |
| -c | 统计行数 |
| -v | 反向匹配(排除模式) |
| -A N | 显示匹配行及匹配后N行 |
| -B N | 显示匹配行及匹配前N行 |
3.正则表达式
(1)基础正则表达式
| 符号 | 说明 |
|---|---|
| . | 匹配任意单个字符 |
| ^ | 匹配行首 |
| $ | 匹配行尾 |
| [abc] | 匹配括号内任意字符 |
| [^abc] | 排除括号内字符 |
| ***** | 重复前一个字符0次或多次 |
(2)扩展正则表达式
| 符号 | 说明 |
|---|---|
| + | 前一个字符重复1次或多次 |
| ? | 前一个字符重复0次或1次 |
| {n,m} | 前一个字符重复n到m次 |
| | | 逻辑或 |
补充:
#grep常用场景速查
| 场景 | 命令示例 |
|---|---|
| 快速定位错误 | grep -n “ERROR” file |
| 统计日志关键词频率 | grep -c “pattern” file |
| 提取结构化数据 | grep -Eo “正则表达式” file |
| 日志上下文分析 | grep -C3 “Exception” file |
注意事项
转义特殊字符:如 $ 、 * 需用 \ 转义。
9.find核心知识点
1.基础语法
find [搜索路径] [匹配条件] [执行动作] |
搜索路径:默认为当前目录( . ),可指定绝对或相对路径。
匹配条件:按名称、类型、大小、时间等过滤文件。
执行动作:对匹配文件执行操作(如删除、输出路径)。
2.常用匹配条件
(1)按名称或路径匹配
| 条件 | 说明 |
|---|---|
| -name | 按文件名匹配(区分大小写) |
| -iname | 按文件名匹配(不区分大小写) |
| -path | 按路径匹配 |
(2)按文件类型匹配
| 条件 | 说明 |
|---|---|
| -type f | 仅匹配普通文件 |
| -type d | 仅匹配目录 |
| -type l | 仅匹配符号链接 |
(3)按文件大小匹配
| 条件 | 说明 |
|---|---|
| -size +10M | 找到大于 10MB 的文件 |
| -size -1G | 找到小于 1GB 的文件 |
| -size 0 | 找到所有空文件 |
(4) 按时间戳匹配
| 条件 | 说明 |
|---|---|
| -mtime -7 (modify time 记录修改时间) | 7 天内修改过的文件 |
| -atime +30 | 30 天前访问过的文件 |
| -newer file | 比指定文件更新的文件 |
(5) 按权限匹配
| 条件 | 说明 |
|---|---|
| -perm 644 | 权限精确为 644 的文件 |
| -perm /u=x | 用户有执行权限的文件 |
3.逻辑操作符
[^find实验 :忽略特定目录 -o用法]:
| 操作符 | 说明 |
|---|---|
| -a | 逻辑与 |
| -o | 逻辑或 |
| ! | 逻辑非 |
4.执行动作
[^find实验:搜索并压缩文件 -exec命令]:
| 动作 | 说明 |
|---|---|
| 输出文件路径(默认动作) | |
| -delete | 删除匹配的文件 |
| -exec | 执行自定义命令 |
| -ok | 交互式执行命令(需确认) |
#常用场景速查
| 场景 | 命令示例 |
|---|---|
| 清理临时文件 | find /tmp -type f -mtime +7 -delete |
| 查找大文件 | find / -size +100M -exec ls -lh {} ; |
| 批量重命名 | find . -name “*.old” -exec mv {} {}_new ; |
| 按内容搜索 | find . -type f -exec grep “pattern” {} ; |
注意事项:
1.谨慎使用 **-**delete :建议先运行 -print 确认文件列表
2.处理特殊字符:使用 -print0 和 xargs -0 避免文件名问题:
find . -name "*.txt" -print0 | xargs -0 rm |
#文件类型及标识符
| 类型(标识符) | 特点 | 示例 | 标识符 |
|---|---|---|---|
| 普通文件(-) | 存储文本、二进制数据(如脚本、图片、可执行程序) | /home/user/file.txt (在find命令类型中使用f查找普通文件) | ls -l输出首字符为 - |
| 目录文件(d) | 用于组织其他文件或子目录,本质是文件名与 inode 的映射表。 | /etc、/home |
ls -l输出首字符为 d。 |
| 符号链接(l) | 软链接(快捷方式),指向另一个文件或目录;删除链接不影响原文件。 | /usr/bin/python -> python3 | ls -l输出首字符为 l。 |
| 设备文件(b、c) | 如硬盘(/dev/sda),数据按块读写。 |
如键盘(/dev/tty),数据按字符流读写 |
ls -l输出首字符为 b或 c。 |
| 管道文件(p) | 命名管道(FIFO),用于进程间通信。 | 通过 mkfifo创建 |
ls -l输出首字符为 p。 |
| 套接字文件(s) | 用于网络或本地进程通信(如 MySQL 套接字)。 | /var/run/mysqld/mysqld.sock | ls -l输出首字符为 s。 |
#文件类型的操作命令
| 创建文件 | 删除文件 | |
|---|---|---|
| 普通文件 | touch file.txt | rm file.txt |
| 目录 | mkdir mydir | rm -r mydir (-r表示递归删除,不加-r无法删除非空目录) |
| 链接文件 | ln -s /path/to/original link_name | rm link_name |
Linux文件管理与查询实验
grep命令
实验4.2:提取IP地址
grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}" practice.txt |
实验 5.1:提取邮箱地址
grep -Eio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b" practice.txt |
扩展练习
# 创建目录结构 |

find命令
创建目录结构
mkdir -p ~/find-practice/{logs,data,backup} |
实验 1.1:按名称搜索文件
find ~/find-practice -name "*.log" |
实验 1.2:按类型搜索目录
find ~/find-practice -type d |
实验 1.3:组合条件(名称与大小)
find ~/find-practice -name "*.jpg" -size +10k |
未查询到
实验 2.1:查找最近修改的文件
find ~/find-practice -mtime -1 |
实验 2.2:排除特定权限文件
find ~/find-practice ! -perm 644 |
实验 3.1:删除空文件
find ~/find-practice -size 0 -delete |
实验 3.2:批量修改权限
find ~/find-practice -name "*.sh" -exec chmod 755 {} \; |
实验 3.3:搜索并压缩文件
touch ~/find-practice/logs/{app.log,error.log} |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZHangJT的博客!








