前言

开始接触Linux操作系统的时候弄清楚文件结构是很有必要的,利用这种树状、有层次的文件结构能够提高文件系统的管理和维护。简单来说弄清楚文件结构就是弄明白自己该在哪里存放或者寻找想要的文件。

文件结构

FHS即Filesystem Hierarchy Standard(文件系统层次化标准),多数Linux版本采用这种文件组织形式
/( root,根目录 ):与开机系统有关;
/usr( UNIX software resource ):与软件安装/执行有关,系统默认的软件会安装在这个目录下面;
/var( varable ):与系统运行有关,系统运行才慢慢开始占用硬盘容量的目录;
在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构,如下图

描述

/ :所有目录都是由根目录衍生出来的;根目录与系统的开机、修复、还原密切相关
/root:该目录为系统管理员,也称作超级权限者的用户主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
/bin:存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
/boot:系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev:设备文件保存位置
/etc:配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home:普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。例如用户 bob 的主目录就是 /home/bob
/lib:系统调用的函数库保存位置
/media:挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt:挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
/misc:挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的
/opt:第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
/sbin:保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
/srv:服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp:临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空
/proc:虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的…
/lost+found:当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run
/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的
/usr:Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。
/var:目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等

在笔者刚接触Linux的时候,一直以为usr是用户的缩写,其实不然,usr全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。

目录 描述
/usr/bin 存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin 存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。
/usr/lib 应用程序调用的函数库保存位置
/usr/XllR6 图形界面系统保存位置
/usr/local 手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
/usr/share 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
/usr/src 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
/usr/include C/C++ 等编程语言头文件的放置目录

var目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。

目录 描述
/var/lib 程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
/var/log 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。
/var/run 一些服务和程序运行后,它们的 PID(进程 ID)保存位置
/var/spool 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail
/var/www RPM 包安装的 Apache 的网页主目录
/var/nis和/var/yp NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录
/var/tmp 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除

Linux文件系统笔记相关推荐

  1. Linux学习笔记---使用BusyBox创建根文件系统(四)

    目录 软件运行测试 设置程序为后台运行 设置开机自启动 外网连接测试 软件运行测试 进入到rootfs文件夹中新建一个drivers文件夹,用于存放编写的软件. 新建hello.c文件 输入以下代码 ...

  2. Linux学习笔记---使用BusyBox创建根文件系统(三)

    目录 创建/etc/init.d/rcS 文件 创建/etc/fstab 文件 创建/etc/inittab 文件 创建/etc/init.d/rcS 文件 通过nfs加载根文件系统成功后,在串口终端 ...

  3. Linux学习笔记---使用BusyBox创建根文件系统(二)

    目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...

  4. Linux学习笔记---使用BusyBox创建根文件系统(一)

    目录 下载BusyBox 修改makefile 添加中文支持 编译busybox 下载BusyBox BusyBox 可以在其官网下载到,官网地址为:https://busybox.net 打开官网后 ...

  5. Linux学习笔记1--Linux文件系统之CentOS7挂载U盘

    Linux学习笔记(一) CentOS7挂载U盘 插入U盘连接虚拟机 打开终端 创建U盘目录 挂载U盘 卸载U盘 可能出现的bug Linux文件系统与Windows文件系统之比 二者文件系统具体 二 ...

  6. Linux系统笔记:shell命令、文件系统、Vi编辑器、文件IO、mmap()、bmp图片格式、线程

    文章目录 一.shell命令集 二.ubuntu文件系统 三.vi编辑器 四.文件IO 五.Linux中C库mmap()函数详解 六.bmp图片格式详解 七.C语言笔记 (一)标准IO函数 time( ...

  7. 【SRE笔记 2022.9.59.6 linux文件系统及软件安装命令】

    SRE笔记 2022.9.5&9.6 文件系统 定义 分区格式化 常见文件系统 文件系统组成 生产文件系统选型 三商 磁盘性能指标 常见性能指标 查看命令iostat iotop gzip命令 ...

  8. Linux学习笔记(4) - 文件系统

    4.1 什么是文件系统 文件系统表示存储在计算机上的文件和目录的数据结构,也可以用于存储文件的分区或磁盘,操作系统通过文件系统可以方便地查询和访问其中所包含的磁盘块.在Linux系统中,每个分区都是一 ...

  9. 《Linux4.0设备驱动开发详解》笔记--第五章:Linux文件系统与设备文件

    5.1 Linux文件操作 5.1.1 文件操作系统调用 创建 int create(const char *filename, mode_t mode); mode是存取权限,它同umask(在文件 ...

最新文章

  1. TTCN手动测试总结
  2. matlab练习程序(点云下采样)
  3. python对话机器人软件_如何用Python为聊天机器人创建对话?
  4. 春节跳槽最新Java面试题
  5. uva 10110——Light, more light
  6. 全球仅3000人通过的TensorFlow开发人员认证到底有多香!
  7. Spring Cloud Config 规范
  8. 计算机二级学那个科目,考计算机二级选哪个科目好 哪个科目简单
  9. jQuery学习之七---CSS
  10. 【Java】application run failed Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and
  11. mysql表损坏及修复
  12. Java 一维数组 二维数组 三维数组
  13. shl归纳推理测试题库_SHL(外企笔试常见试题)全攻略
  14. MySQL数据库索引查询
  15. PMP-35项目沟通管理
  16. 脂肪肝青睐“三围”人士 不吃早餐容易诱发
  17. 系统重构过程中的异构数据同步回环处理
  18. 参数等效模型可以用于_盘式永磁涡流驱动器的电磁-温度耦合解析模型
  19. 关于BigDecimal.ROUND_HALF_UP与ROUND_HALF_DOWN
  20. 兼容IE8的文件下载,解决IE下载文本和图片直接打开问题

热门文章

  1. python识别手写文字_使用 python 获取 CASIA 脱机和在线手写汉字库
  2. html让图片一直旋转,css如何设置不停旋转的图片?
  3. matlap实现肺实质区域初始分割,去除肺部气管及背景
  4. 无线发射器c语言程序代码,单片机编码 无线模块发送与接收 程序
  5. shell不允许输入空字符_Linux Cygwin知识库(一):一文搞清控制台、终端、shell概念...
  6. C语言程序设计(第三版)何钦铭著 习题3-5
  7. Summary_HTML中让两个div并排显示
  8. CSS引入外部艺术字体
  9. Thread类的基本用法
  10. 蓝桥杯嵌入式第十届省赛真题