Contents

Linux文件目录

Linux文件目录

Linux文件系统层次概述

文件系统包含了很多不同的初始路径,本节对不同的路径名称进行概述,可以通过man file-hierarchy来查看详细信息

通用目录

  • /:根目录
  • /boot/:存放操作系统的启动的核心文件,应考虑设置为只读。
  • /etc/:存放系统特定的配置文件和子目录
  • /home/:存放用户家目录,除系统用户外,每个用户应该有一个以自己用户名为名的家目录,可以通过$HOME访问
  • /root/:root用户的家目录
  • /srv/:存放服务启动后需要的数据
  • /tmp/:存放小的临时文件
    • 通常被挂载为tmpfs
    • 大的临时文件存放在/var/tmp
    • 在启动时被刷新
    • 文件没有确定的删除时间
  • /mnt/:用户挂载目录
  • /lost+found/:通常为空,非正常关机时存储一些文件
  • /bin/:存放二进制文件
  • /sbin/:存放超级用户使用的二进制文件
  • /lib/:存放动态共享库,类似于windows的dll文件
  • /lib64/:同上
  • /opt/:用户级的程序目录
    • 类似于D:/Software
    • /usr/local/类似于C:/Program Files/,自己编译的软件会安装到此/usr/local/

注意bin,sbin,lib,lib64需要查看兼容性符号链接章节

运行时目录

  • /run/:存放运行时数据,套接字文件等的临时文件系统
    • 在启动时被刷新
    • /var/run/应指向此目录
  • /run/log/:存放实时系统日志
  • /run/usr/:存放每个用户的运行时目录
    • 通常每个都是个临时文件系统
    • 当用户log out 或者重启时刷新
  • /run/media/:存放实时挂载的硬盘

厂商提供的资源目录

  • /usr/:存放厂商提供的程序和文件
  • /usr/src/:存放所有程序的源代码,主要是Linux核心程序
  • /usr/local/:存放本地安装的软件和其他文件,与系统无关
  • /usr/bin/:存放系统用户使用的二进制文件
    • shell不可用的二进制文件应存放到/usr/lib/
  • /usr/include/:存放系统库的c/c++ api header
  • /usr/lib/:静态的私有的厂商数据,放有内部可执行文件和shell不可用的二进制文件,动态共享库
  • /usr/share/:在多个包之间共享的资源,例如文档,man pages,字体等
  • /usr/share/doc/:操作系统或系统包的文档

持久性可变系统文件

  • /var/:存放持久性的可变的系统数据
  • /var/cache/:持久性的系统缓存数据
  • /var/lib/:持久性的系统数据
  • /var/log/:持久性的系统日志
  • /var/tmp/:更大的持久实时系统,相对于/tmp/

虚拟内核和API文件系统

  • /dev/:存放外部设备
  • /proc/:存放着程序列表和功能性组件等的虚拟文件系统
    • 虚拟目录,是内存的映射
    • 不在硬盘而在内存上,可以修改
  • /proc/sys/:存储内核状态
  • /sys/:特殊的文件系统,它是内核向用户空间暴露系统信息的一种方式。它的目录结构和文件通过 sysfs 文件系统实现,是一种动态的文件系统,随着系统状态的变化而变化。

兼容性符号链接

  • /bin,/sbin,/usr/sbin/->/usr/bin
  • /lib/->/usr/lib/
  • /lib64/->/usr/lib64/
  • /var/run/->/run/