Linux命令行管理文件学习文档(CentOS 7)

还在用图形界面鼠标拖拽管理 Linux 服务器文件?新建多层文件夹一层一层点、批量复制文件反复敲命令、删文件误操作差点删库,软硬链接分不清、批量处理几十上百个文件完全无从下手。
很多运维、后端初学者卡在文件管理这一关,命令参数记不全、目录结构看不懂,每次操作都要现搜教程。今天这份 CentOS7.9 实操文档,系统梳理 FHS 文件系统规范、路径切换、8 大文件核心命令、软硬链接底层区别、Shell 万能通配符,全场景带可直接复制的实操代码,跟着敲一遍,服务器文件管理彻底不用求人。

一、Linux 文件系统层次结构 FHS

1.1 FHS 标准简介

Linux 开源特性允许任何人基于内核制作发行版本,如果所有人随意在根目录 / 创建目录存放文件,会造成系统目录混乱,其他人无法快速上手陌生 Linux 系统。

FHS(Filesystem Hierarchy Standard 文件系统层次标准)统一规范 Linux 文件树形目录结构,规定每个目录用途、必备文件目录,同时定义冲突与异常处理规则。

FHS 两层规范:

  1. 规定根目录 / 下一级目录存放数据类型,如 /etc 存放配置、/bin 存放可执行程序;

  2. 细化 /usr/var 两大目录下子目录规范,如 /var/log 存放系统日志。

补充:USR = Unix System Resource,系统资源目录。

1.2 系统核心目录用途表

目录 作用说明
/usr 系统预装软件、共享依赖库
/usr/bin:普通用户执行命令
/usr/sbin:管理员系统管理命令
/usr/lib、/usr/lib64:程序通用依赖库
/usr/local:本地手动安装自定义软件
/etc 全系统各类配置文件
/var variable 可变持久数据目录,重启数据不丢失
存放数据库、缓存、系统日志、打印任务、网站资源
/run 本次开机运行进程临时数据,存储 PID、锁文件
系统重启自动重建,整合旧版 /var/run/var/lock
/home 普通用户个人家目录,每个用户独立文件夹,例 /home/lizihan
/root root 超级管理员专属家目录
/tmp 全局公共临时目录,所有用户可读写
10 天未访问 / 修改文件自动删除
/var/tmp 长期临时目录,30 天无操作文件自动清理
/boot 系统开机引导、内核启动文件
/dev device 硬件设备文件,系统通过该目录访问硬件

二、文件路径导航操作

2.1 路径概念 + cd /pwd 切换目录

三种路径定义
  1. 绝对路径:以 / 根开头,文件完整精准路径;脚本、配置文件中优先使用

  2. 当前工作路径:终端当前所处目录

  3. 相对路径:不以 / 开头,基于当前目录定位,日常操作更简便

实操命令示例
# pwd 查看当前工作目录
[lizihan@centos7 ~ 18:55:54]$ pwd
/home/lizihan

# cd 切换绝对路径
[lizihan@centos7 ~ 18:55:58]$ cd /usr/bin
[lizihan@centos7 bin]$ pwd
/usr/bin

# 切换到 /usr/share/doc
[lizihan@centos7 ~ 18:56:24]$ cd /usr/share/doc
[lizihan@centos7 doc]$ pwd
/usr/share/doc

# cd - 快速返回上一次所在目录
[lizihan@centos7 ~ 18:56:28]$ cd -
/usr/bin
[lizihan@centos7 ~ 18:56:31]$ pwd
/usr/bin

# cd / cd ~ 直接回到当前用户家目录
[lizihan@centos7 ~ 18:56:33]$ cd
[lizihan@centos7 ~ 18:56:34]$ pwd
/home/lizihan

# .. 代表上级父目录
[lizihan@centos7 ~ 18:56:44]$ pwd
/home/lizihan
[lizihan@centos7 ~ 18:56:48]$ cd ..
[lizihan@centos7 home 18:56:53]$ pwd
/home

# . 代表当前目录,一般省略不写
[lizihan@centos7 ~ 18:57:05]$ file ./.bash_history 
./.bash_history: UTF-8 Unicode text
[lizihan@centos7 ~ 18:57:08]$ file .bash_history
.bash_history: UTF-8 Unicode text

# 多层相对路径跳转示例
[lizihan@centos7 ~ 18:57:11]$ cd /usr/share/doc/at-spi2-core-2.28.0/
[lizihan@centos7 at-spi2-core-2.28.0]$ cd ../../
[lizihan@centos7 share 18:57:14]$ pwd
/usr/share

# 跨层级切换到 /etc/yum
[lizihan@centos7 share 18:57:27]$ cd ../../../../etc/yum
[lizihan@centos7 yum 18:57:30]$ pwd
/etc/yum
路径使用场景思考

日常交互式操作优先相对路径,输入简短方便;编写脚本、配置文件定义文件路径时,必须使用绝对路径,避免环境切换导致路径失效。

2.2 ls 目录查看命令补充参数

# ls -1 数字1,单列展示文件
[lizihan@centos7 ~ 18:57:48]$ ls -1
公共
模板
视频
图片
文档
下载
音乐
桌面

# ls -R 递归查看所有子目录内容
[lizihan@centos7 ~ 18:57:55]$ ls -R /etc/yum

# ls -l 长格式,展示权限、所有者、大小、修改时间等详细信息
[lizihan@centos7 ~ 18:57:59]$ ls -l /etc/hosts
-rw-r--r--. 1 root root 197 113 14:35 /etc/hosts

# ls -r 反向排序文件
[lizihan@centos7 ~ 18:58:03]$ ls -rl 

# ls -t 按文件修改时间从新到旧排序
[lizihan@centos7 ~ 18:58:06]$ ls -tl

# ls -d 仅查看目录本身,不展开内部文件
[lizihan@centos7 ~ 18:58:11]$ ls -ld /etc/yum
drwxr-xr-x. 6 root root 100 1213 10:42 /etc/yum

2.3 tree 树形展示目录结构

# 树形打印/etc/yum目录结构
[lizihan@centos7 ~ 18:59:34]$ tree /etc/yum
/etc/yum
├── fssnap.d
├── pluginconf.d
│   ├── fastestmirror.conf
│   └── langpacks.conf
├── protected.d
│   └── systemd.conf
├── vars
│   ├── contentdir
│   └── infra
└── version-groups.conf
4 directories, 6 files

2.4 stat 查看文件完整元数据

查看文件大小、inode、权限、三组时间(访问、修改、改动)

[lizihan@centos7 home 18:59:37]$ stat /etc/fstab
  文件:"/etc/fstab"
  大小:541       	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:67160130    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:etc_t:s0
最近访问:2026-07-15 10:34:02.456757398 +0800
最近更改:2026-07-14 10:25:54.864263555 +0800
最近改动:2026-07-14 10:30:23.409796585 +0800
创建时间:-

2.5 touch 创建空文件 / 修改文件时间戳

核心作用:文件不存在则新建空文件;文件存在则更新访问、修改时间

# 基础用法:更新已有文件时间
[lizihan@centos7 ~ 18:59:46]$ ls -l zhang.txt 
-rw-rw-r--. 1 lizihan lizihan 0 1214 10:51 zhang.txt
[lizihan@centos7 ~ 19:00:55]$ touch zhang.txt

# 文件不存在则创建空文件
[lizihan@centos7 ~ 19:01:37]$ touch zhang-f1.txt

# -c 参数:文件不存在不创建,仅更新已有文件时间
[lizihan@centos7 ~19:01:47]$ touch -c zhang-f2.txt

touch 常用参数说明:

  • -a:仅修改访问时间 atime

  • -m:仅修改修改时间 mtime

  • -t:指定自定义时间戳 touch -t 202607151000 test.txt

  • -r:参考其他文件时间 touch -r /etc/hosts test.txt

三、文件 / 目录基础管理命令(增删改移复制)

3.1 命令功能对照表

操作 单个文件 / 目录 多个对象批量操作
创建文件 touch file touch f1 f2 f3
创建目录 mkdir dir mkdir -p a/b/c 级联创建
复制文件 cp f1 f2 cp f1 f2 f3 目标目录
复制目录 cp -r dir1 dir2 cp -r dir1 dir2 dir3 目标目录
移动 / 重命名 mv f1 f2 mv f1 f2 f3 目标目录
删除文件 rm file rm -f f1 f2 f3 强制删除
删除空目录 rmdir dir -
删除非空目录 rm -r dir rm -rf dir1 dir2 强制递归删除

3.2 mkdir 创建目录

# 创建单个目录
[lizihan@centos7 ~ 19:02:37]$ mkdir lab

# 一次性创建多个同级目录
[lizihan@centos7 ~ 19:02:47]$ mkdir lab1 lab2

# -p 参数级联创建多层目录,不存在父目录自动生成
[lizihan@centos7 ~ 19:02:48]$ mkdir dir1/dir2/dir3/dir4
mkdir: 无法创建目录"dir1/dir2/dir3/dir4": 没有那个文件或目录
[lizihan@centos7 ~ 19:02:51]$ mkdir -p dir1/dir2/dir3/dir4
[lizihan@centos7 ~ 19:02:58]$ tree dir1
dir1
└── dir2
    └── dir3
        └── dir4
3 directories, 0 files

3.3 cp 复制命令

复制文件
[lizihan@centos7 ~ 19:04:37]$ cd lab
# 复制文件到当前目录
[lizihan@centos7 lab 19:04:41]$ cp /etc/hosts . 

# 复制并重命名
[lizihan@centos7 lab 19:04:43]$ cp /etc/hosts ./hosts-1

# -i 覆盖前交互提示确认
[lizihan@centos7 lab 19:04:46]$ cp -i /etc/hosts ./hosts-1
cp:是否覆盖"./hosts-1"yes

# 多文件复制,目标必须是目录
[lizihan@centos7 lab 19:05:37]$ cp /etc/passwd /etc/host.conf .
复制目录(必须加 -r 递归参数)
# 不加-r会跳过目录
[lizihan@centos7 lab 19:06:32]$ cp /etc/yum .
cp: 略过目录"/etc/yum"

# -r 递归复制目录
[lizihan@centos7 lab 19:06:36]$ cp -r /etc/yum .

# 复制目录并重命名
[lizihan@centos7 lab 19:06:42]$ cp -r /etc/yum ./yum-1

3.4 mv 移动 / 重命名命令

mv 无递归参数,文件、目录操作逻辑一致

# 移动单个文件到指定目录
[lizihan@centos7 lab 19:07:32]$ mv hosts-1 ../lab1

# 多文件移动,目标只能是目录
[lizihan@centos7 lab 19:07:40]$ mv passwd hosts /home/lizihan/lab1/

# 重命名:同目录下mv等于改名
[lizihan@centos7 lab 19:07:55]$ mv host.conf host.conf-new

# 移动目录
[lizihan@centos7 lab 19:08:02]$ mv etc ../lab1

# 批量移动多个目录
[lizihan@centos7 lab 19:08:56]$ mv home/ yum/ yum-1/ ../lab1

3.5 rmdir 删除空目录

仅能删除无任何文件的空目录,目录有内容则报错

[lizihan@centos7 lab 19:15:53]$ rmdir ../lab2
[lizihan@centos7 lab1 19:15:56]$ rmdir etc
rmdir: 删除 "etc" 失败: 目录非空

3.6 rm 删除文件 / 目录

# 删除单个文件
[lizihan@centos7 lab1 19:20:16]$ rm hosts

# 批量删除多个文件
[lizihan@centos7 lab1 19:20:36]$ rm hosts-1 passwd 

# -f 强制删除,写保护文件不弹窗确认
[lizihan@centos7 lab1 19:20:46]$ rm -f cacerts

# -r 递归删除目录(目录内所有文件一并删除)
[lizihan@centos7 lab1 19:25:17]$ rm -r yum

# -rf 组合:递归+强制删除,生产慎用,不可逆
[lizihan@centos7 lab1 19:25:47]$ rm -fr etc

# 批量删除多个目录
[lizihan@centos7 lab1 19:25:57]$ rm -fr home/ yum-1/

# 批量清理实验环境
[lizihan@centos7 ~ 19:27:47]$ rm -fr lab lab1 lab2 dir1

四、软硬链接(符号链接 / 硬链接)

4.1 软链接(符号链接 symbolic link)

作用:Windows 快捷方式,存放目标文件路径;删除源文件后软链接失效。
创建语法:ln -s 源文件/目录 软链接名

# 系统自带软链接示例
[lizihan@centos7 ~ 19:27:47]$ ls -dl /bin
lrwxrwxrwx. 1 root root 8 715 19:32 /bin -> usr/bin

# 创建软链接指向/var/tmp
[lizihan@centos7 ~ 19:40:47]$ ln -s /var/tmp/ mytmp
[lizihan@centos7 ~ 19:41:37]$ ls -l mytmp
lrwxrwxrwx. 1 lizihan lizihan 8 715 19:39 mytmp -> /var/tmp
# 通过软链接创建文件,实际存储在源目录
[lizihan@centos7 ~ 19:43:41]$ touch mytmp/myfile
[lizihan@centos7 ~ 19:44:32]$ ls /var/tmp/myfile 
/var/tmp/myfile

4.2 硬链接

本质:同一个文件数据块的多个文件名,共用同一个 inode;删除任意一个硬链接,文件数据仍存在,全部链接删除文件才消失。
限制:不能跨分区、不能对目录创建硬链接
创建语法:ln 源文件 硬链接名

[lizihan@centos7 lab 19:50:23]$ cp /etc/hosts ./hosts-1
# 创建硬链接
[lizihan@centos7 lab 19:50:30]$ ln hosts-1 hosts-2

# 两个文件inode编号完全一致
[lizihan@centos7 lab 19:50:37]$ ls -i1 hosts-1 hosts-2
33554556 hosts-1
33554556 hosts-2

# 修改其中一个文件内容,所有硬链接同步变化
[lizihan@centos7 lab 19:51:43]$ echo hello world >> hosts-1
[lizihan@centos7 lab 19:51:45]$ cat hosts-2
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
hello world

五、Shell 文件通配符扩展匹配

5.1 通配符对照表

匹配符号 匹配规则
* 匹配任意长度任意字符(0 个及以上),不匹配隐藏文件
? 匹配任意单个字符
[abc] 匹配括号内任意一个字符
[^abc]/[!abc] 匹配不在括号内的任意字符
~ 当前用户家目录
~用户名 指定用户家目录
[[:digit:]] 数字 0-9
[[:alpha:]] 大小写英文字母
[[:lower:]] 小写字母
[[:upper:]] 大写字母
[[:alnum:]] 字母 + 数字
[[:punct:]] 标点符号
[[:space:]] 空格、制表符、换行等空白字符

六、全文总结

新手操作核心逻辑:先认系统目录、分清两种路径,查看确认文件后再执行删改,能大幅避免误删翻车;日常敲命令用相对路径,写脚本一律用绝对路径。
目录查看三件套:ls快速浏览、tree树形可视化、stat查看文件完整底层信息。
文件万能操作 8 大命令:touch建文件、mkdir建目录、cp复制、mv移动改名、rm删除,覆盖全部日常文件管理需求。
软硬链接一句话分清:软链接 = 快捷方式,源文件删了就失效;硬链接共用数据,删源文件内容仍保留。
通配符是效率神器:*、?、{}一键批量处理几十上百个文件,彻底告别手动挨个操作。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐