欢迎光临
我们一直在努力

Linux核心目录、软硬链接详解及项目实战笔记

一、linux根目录下核心目录的作用

1. /etc:系统配置中心
作用:存放系统全局配置文件

2. /boot:系统启动文件
内容:包含内核文件、引导加载程序及初始化内存盘

3. /dev:设备文件接口
特性:包含所有硬件设备的虚拟文件接口(如硬盘`/dev/sda`、终端`/dev/tty`)。
原理:Linux通过文件操作访问硬件,如写入`/dev/null`丢弃数据。

4. /bin与/sbin:系统命令
/bin:存放所有用户的基础命令(如`ls`、`cp`、`cat`),系统启动必需。
/sbin:系统管理员专用工具(如`fdisk`、`reboot`),涉及底层管理。

5. /us:用户级程序资源
结构:类似Windows的“Program Files”,包含用户程序。

6. /home与/root:用户空间
/home:普通用户的家目录(如`/home/username`),用户私有数据存储处。
/root:root用户的专属目录,权限隔离,普通用户无法访问。
7. /var:动态数据存储
内容:系统运行中产生的可变数据,如日志(`/var/log`)、缓存(`/var/cache`)、网站数据(`/var/www`)。

8. /tmp与/var/tmp:临时文件
/tmp:全局临时目录,10天未访问的文件可能被清理。
/var/tmp:较长期临时文件,30天清理周期。

9. /proc:进程与内核信息
性质:虚拟文件系统,实时反映内核状态和进程信息。
特点:不占用磁盘空间,数据存于内存。

二、Linux的硬链接与软链接

1.硬链接

硬链接的实质是为同一份数据(inode)创建新的文件名入口。所有硬链接文件共享相同的inode、元数据(权限/时间等)和数据块。修改任一文件,所有链接同步更新;删除任一链接,数据仍存在且可通过其他链接访问。仅当链接数降为1时(即最后一个入口被删),系统才会真正删除数据并释放空间

#创建一个测试环境
[wangchen@xuexizhong ~]$ mkdir wangchen
[wangchen@xuexizhong ~]$ cd wangchen/

#写入一个测试文件
[wangchen@xuexizhong wangchen]$ echo 'wangchen 硬链接测试…' > config.yml
[wangchen@xuexizhong wangchen]$ ls -li
总计 4
50563343 -rw-r–r–. 1 wangchen wangchen 27 7月20日 20:20 config.yml

#在当前目录创建一个硬链接
[wangchen@xuexizhong wangchen]$ ln config.yml config_backup.yml
[wangchen@xuexizhong wangchen]$ ls -li
总计 8
50563343 -rw-r–r–. 2 wangchen wangchen 27 7月20日 20:20 config_backup.yml
50563343 -rw-r–r–. 2 wangchen wangchen 27 7月20日 20:20 config.yml

#删除原文件硬链接依然有效
[wangchen@xuexizhong wangchen]$ rm config.yml
[wangchen@xuexizhong wangchen]$ cat config_backup.yml
wangchen硬链接测试...

2.软链接

软链接相当于一个指向目标文件的“快捷方式”,创建时会生成新的目录项和独立inode,其数据块中仅存储目标文件(不是原文件)的路径信息,不共享原文件的inode或元数据。删除原文件后,软链接因目标路径失效无法访问,成为“悬空链接”(Dangling Link);仅当原文件恢复或重建链接时才能重新生效。

软链接(符号链接)是一个独立的文件实体,它与原文件在 inode 层面完全无关。软链接的数据块中仅存储目标文件的路径字符串(如 /opt/ruoyi/logs),本身不包含原文件的任何数据。当访问软链接时,系统会根据其中记录的路径自动跳转到目标文件,但软链接的创建/删除不会影响原文件的 inode 或数据块——它本质上是一个“路径重定向器”

#写入一个测试文件
[wangchen@xuexizhong wangchen]$ echo '软链接测试…' > /home/wangchen/wangchen/app.log
[wangchen@xuexizhong wangchen]$ ls -li
总计 4
50563343 -rw-r–r–. 1 wangchen wangchen 19 7月20日 20:32 app.log

#在指定目录创建一个软链接
`软链接最好使用绝对路径`
[wangchen@xuexizhong wangchen]$ ln -s /home/wangchen/wangchen/app.log /tmp/app_link.log
[wangchen@xuexizhong wangchen]$ ls -li /tmp/app_link.log
17183983 lrwxrwxrwx. 1 wangchen wangchen 31 7月20日 20:41 /tmp/app_link.log –> /home/wangchen/wangchen/app.l

#修改软链接文件内容
[wangchen@xuexizhong wangchen]$ echo '00123' > /tmp/app_link.log
[wangchen@xuexizhong wangchen]$ cat /home/wangchen/wangchen/app.log
00123

#删除原文件
[wangchen@xuexizhong wangchen]$ rm app.log
[wangchen@xuexizhong wangchen]$ cat /tmp/app_link.log
cat: /tmp/app_link.log: 没有那个文件或目录

3.对比
对比维度硬链接(Hard Link)软链接(Soft Link / Symbolic Link)
本质 同一数据的多个文件名入口(共用inode) 指向路径的快捷方式(独立inode)
inode关系 ❌ 不新建inode所有链接共享同一个inode ✅ 新建独立inode仅存储目标文件路径
数据存储 直接引用原文件数据块,不复制数据 数据块中仅存储目标文件路径字符串
删除原文件影响 ⚠️ 无影响其他链接仍可正常访问数据 ❌ 立即失效成为"悬空链接"(路径丢失)
跨文件系统支持 ❌ 不支持必须在同一分区(因依赖inode) ✅ 支持可跨分区/不同文件系统创建
目录支持 ❌ 不能链接目录(防循环引用) ✅ 可链接目录
典型创建命令 ln 源文件 目标链接 ln -s 源文件 目标链接
关键特性 • 链接数=0时才真正删除数据• 修改任一链接实时同步 • 链接独立存在(删除链接不影响原文件)• 路径失效需手动修复
使用场景 • 备份关键文件(防误删)• 节省磁盘空间(无数据冗余) • 跨分区调用文件• 管理动态路径(如版本切换)

三、实战案例:若依项目目录治理

1.创建标准化目录结构

#创建标准化结构目录
[wangchen@xuexizhong wangchen]$ sudo mkdir -p /opt/ruoyi/{backend,frontend,logs,config,backup}

#验证目录
[wangchen@xuexizhong wangchen]$ tree /opt/ruoyi/
/opt/ruoyi/
├── backend
├── backup
├── config
├── frontend
└── logs

6 directories, 0 files

2.创建配置文件模板

[wangchen@xuexizhong wangchen]$ vim /opt/ruoyi/config/application.yml
`因为没有权限创建配置文件,只能临时存放在加目录下。vim命令行输入:w! ~/wangchen/temp_app.yml`

#剪切刚才保存的文件到指定目录
[wangchen@xuexizhong wangchen]$ sudo mv temp_app.yml /opt/ruoyi/config/application.yml

3.硬链接保护配置文件

[wangchen@xuexizhong wangchen]$ sudo ln /opt/ruoyi/config/application.yml /opt/ruoyi/backup/application.yml.bak
[wangchen@xuexizhong wangchen]$ ls -li /opt/ruoyi/backup/application.yml.bak
50565332 -rw-r–r–. 2 wangchen wangchen 98 7月20日 21:24 /opt/ruoyi/backup/application.yml.bak
[wangchen@xuexizhong wangchen]$ ls -li /opt/ruoyi/config/application.yml
50565332 -rw-r–r–. 2 wangchen wangchen 98 7月20日 21:24 /opt/ruoyi/config/application.yml

4.软链接统一日志路径

#创建软链接,原文件或目录(入口) 目标文件或目录(目标地址)
[wangchen@xuexizhong wangchen]$ sudo ln -s /opt/ruoyi/logs /var/log/ruoyi

[wangchen@xuexizhong wangchen]$ ls -l /var/log/ruoyi
lrwxrwxrwx. 1 root root 15 7月20日 21:34 /var/log/ruoyi –> /opt/ruoyi/logs

5.压缩归档日志

#打包压缩 目表路径及时间函数名称 打包压缩的目录
[wangchen@xuexizhong wangchen]$ sudo tar -czvf /opt/ruoyi/backup/ruoyi-log-$(date +%F).tar.gz /opt/ruoyi/logs/
[sudo] wangchen 的密码:
tar: 从成员名中删除开头的“/”
/opt/ruoyi/logs/
`tar: 从成员名中删除开头的“/”为tar的保护机制,在打包压缩过程中删除开头的/,防止解压文件时解压到/opt/ruoyi/logs/覆盖别的文件,取消/后只能解压到当前目录下的opt/ruoyi/logs`
#查看压缩包里面的内容列表(不解压)
[wangchen@xuexizhong wangchen]$ tar -tzvf /opt/ruoyi/backup/ruoyi-log*.tar.gz
drwxr-xr-x root/root 0 2026-07-20 21:13 opt/ruoyi/logs/

赞(0)
未经允许不得转载:171主机测评 » Linux核心目录、软硬链接详解及项目实战笔记
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址