You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Linux系统中/proc、/sys目录区别及/usr目录写入限制的技术问询

关于Linux系统中/proc、/sys目录区别及/usr目录写入限制的技术问询

嘿,我来帮你拆解这两个常见的Linux文件系统疑问,都是日常用系统时很容易懵的点~

一、/proc 和 /sys 目录的核心区别

这俩都是虚拟文件系统(数据不存磁盘,由内核实时生成),但定位和用途完全不同:

  • /proc(procfs):主打「进程与系统运行状态全景」
    • 里面的内容围绕进程和系统整体运行数据展开,比如/proc/[PID]目录对应每个运行的进程,能看到进程的内存占用、打开的文件、命令行参数;还有/proc/cpuinfo/proc/meminfo这类系统硬件/资源的统计信息。
    • 它是Linux早期就有的虚拟文件系统,结构相对松散,早期也承担了部分硬件配置的功能,但后来这部分职责被拆分了。
  • /sys(sysfs):主打「硬件设备与驱动的精细化管理」
    • 它是后来为了统一硬件信息暴露而设计的,结构非常规整,按设备、总线、驱动的层次来组织内容。比如你可以通过/sys/class/leds调整设备LED亮度,或者通过/sys/devices查看所有硬件的层级关系。
    • 很多原本在/proc里的硬件配置项,现在都迁移到/sys了,它的设计更标准化,更适合自动化脚本或程序来读取和配置硬件。

简单总结:/proc看系统和进程“正在干嘛”,/sys管硬件“是什么、能怎么调”。

二、为什么不能随便写/usr?/usr 和 /opt 有啥区别?

1. /usr 只读的原因

现在主流Linux发行版默认把/usr挂载为只读,核心是为了系统稳定性和安全性

  • 首先,/usr里装的是系统包管理器(apt/dnf/yum等)管理的核心软件,比如系统自带的bash、gcc、Python这些基础工具。如果/usr可写,误操作、病毒或恶意脚本很容易篡改这些核心文件,直接导致系统崩溃。
  • 其次,只读的/usr更方便系统升级、快照恢复:比如用btrfs做系统快照时,只读的/usr能保证快照里的系统文件是干净的,升级时也能避免文件冲突。
  • 当然,不是完全不能写——当你用root身份通过包管理器安装/更新软件时,系统会临时把/usr挂载为可写,完成操作后再切回只读,这个过程是自动的,不用你手动处理。

2. /usr 不是只存“首次安装的软件”

你误解啦,只要是系统包管理器安装的软件,不管是首次装的还是后续新增、更新的,都会放到/usr里。它的定位是「系统级共享软件目录」,所有用户都能使用这些软件,由系统统一管理。

3. 自己装的软件用/opt 或 /usr/local 更合适

  • /opt:专门给「第三方非系统软件」用的,比如你自己下载解压的Chrome、VS Code,或者厂商打包的闭源软件(比如Oracle数据库)。把软件放到/opt里,不会和系统包管理的文件混在一起,卸载也很方便,直接删目录就行。
  • /usr/local:适合「系统管理员手动编译安装的软件」,比如你自己从源码编译的nginx、Redis,放到这里既不会干扰系统软件,又能让所有用户访问,权限和结构和/usr类似,但属于管理员自主管理的范围。

备注:内容来源于stack exchange,提问作者Souha

火山引擎 最新活动