LINUX目录结构

  • Linux目录配置依据——FHS
    • 四个类型
  • 三个目录结构
  • 根目录(/)的意义和内容
    • 根目录下的子目录
    • /usr的意义和内容
    • /var的意义和内容
    • 汇总以上目录出现的链接设置

前言:该博文基于Centos7编写

Linux目录配置依据——FHS

FHS是一个标准,它们的主要目的是希望让用户可以了解到已安装软件通常存放在哪个目录下。

四个类型

  • 可分享:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,,是能够分享给网络上其他主机挂载使用的目录。
  • 不可分享:自己机器上运行的设备文件或是和程序相关的socket文件等,由于与自身机器有关,所以不适合分享给其他主机。
  • 不变:有些数据是不会经常变动的,例如函数库、文件说明、系统管理员所管理的主机服务配置文件等。
  • 可变动:经常修改的数据,例如日志文件,一般用户组可自行接收的新闻组等。

三个目录结构

  • /:(root,根目录):与启动系统有关。
  • /usr:(unix softwore resource):与软件安装/执行有关。
  • /var:(variable)与系统运行过程有关。

根目录(/)的意义和内容

不但所有的目录都是由根目录衍生出来,同时根目录也与启动、还原、系统修复等操作有关。在系统出现错误时,根目录要包含能够修复文件系统的程序才行,因此FHS建议:根目录(/)所在的分区越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好,这样不但性能好,根目录所在的文件系统也不容易发生问题

根目录下的子目录

哪怕没有以下物理目录,也至少要有链接(link)目录才好。

  • /bin:/bin下放置的是在单人维护模式下还能被使用的命令。在/bin下面的命令root和一般用户都可以使用。

    主要有cat、chmod、chown、date、mv、mkdir、cp、bash等。

  • /boot:该目录下主要放置启动时会使用到的文件,包括Linux内核文件和启动选项,以及启动所需的配置文件等。

    Linux内核常用的文件名为:vmlinuz。

  • /dev:在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录当中的。你通过读写该目录下的某个文件就可以读写某个设备。

    比较重要的文件有:/dev/null、/dev/zero、/dev/tty、/dev/loop*、/dev/sd*。

  • /etc:这个目录内主要存放系统主要的配置文件,例如人员的账号密码文件、各种服务的启动文件等。一般这个文件普通用户是只读的,root用户才能修改。FHS建议不要将可执行文件放在这个目录中。

    比较重要的文件有:/etc/modprobe.d/、/etc/passwd、/etc/fstab、/etc/issue。
    另外还有一个重要的目录最好也在/etc目录下:/etc/opt(必要):这个目录存放第三方辅助软件——/opt的相关配置文件。

  • /lib:放置的是在启动时会用到的函数库,以及在/bin或/sbin下的命令需要调用的函数库。函数库可以理解为外挂插件,某些命令需要这些插件才能顺利完成程序的执行。

    /lib/modules/必须要在/lib下,它存放的主要是可抽换式的内核相关模块(驱动程序)。

  • /media:放置的是可删除的设备,包括软盘、光盘、DVD等设备都暂时挂载在这里

    常用的文件名有:/media/floppy、/media/cdrom等。

  • /mnt:在早期,这个目录就是/media的作用,在有了/media之后,这个目录就用来暂时挂载。

  • /opt:给第三方辅助软件放置的目录。例如桌面管理系统KDE就是一个独立的软件,他安装在Linux中的话,就建议放在这里。

  • /run:系统启动所产生的各项信息就放在这里。因为/run可以用内存模拟,所以性能较好。

  • /sbin:该目录下存放的是启动过程中需要的,包括启动、修复、还原系统所需的命令

    常见的命令包括:fdisk、fsck、ifconfig、mkfs等。

  • /srv:存放一些网络服务启动后,这些服务所需的数据。常见的如WWW、FTP等,WWW所需的网页数据就可以放在/srv/www中。

  • /tmp:让一些用户或者正在执行的程序暂时存放文件的地方。这个目录任何人都能够存取,所以要定期清理。

  • /home:系统默认的用户家目录。在你新增一个一般用户时,默认的用户家目录都会规范到这。

    比较重要的家目录有两种代号:

    • ~:代表目前这个用户的家目录。
    • ~dmtsai:代表dmtsai的家目录。
  • /lib< qual >:用来存放与/lib不同格式的二进制函数库,例如支持64位系统的/lib64等。

  • /proc:这个目录是一个虚拟文件系统(virtual filesystem),它放置的数据都是在内存中的,所以本身不占用硬盘空间,例如系统内核、进程信息、外接设备的状态以及网络状态等。

    比较重要的文件:/proc/cpuinfo、/proc/dma、/proc/interrupts、/proc/ioports、/proc/net*等。

  • /sys:也是一个虚拟文件系统,主要记录内核与系统硬件信息相关的内容。包括目前已加载的内核模块与内核检测到的硬件设备信息。

  • /usr:第二层FHS设置。

  • /var:二层FHS设置。

/usr的意义和内容

usr是Unix Software Resourse的缩写。/usr内存放的数据属于可分享与不可变动的,他是Unix操作系统系统软件资源所放置的目录,而不是用户数据。
/usr的子目录建议如下:

  • /usr/bin/:一般用户能够使用的命令放在这里。目前Centos7已将全部的用户命令存放于此,使用链接文件的方式将/bin目录链接至此,也就是说/bin和/usr/bin是一样的。

  • /usr/lib/:基本上和/lib功能相同,所以/lib就是链接到此目录中的。

  • /usr/local/:系统管理员在本机安装自己下载软件(非发行版默认提供的)都会放到该目录下,以便于管理。因此/usr/local与/usr有类似的目录结构。

  • /usr/sbin/:非系统正常运行所需的命令,最常见的就是某些网络服务器软件的服务命令(deamon)。基本功能也和/sbin差不多,因此目前/sbin就是链接到此目录中的。

  • /usr/share/:主要放置只读的数据文件,当然也包括共享文件,在这个目录下放置的数据几乎是不分硬件架构的可读的数据,因为几乎全是文本文件。

    常见的目录如下:

    • /usr/share/man:在线帮助文件
    • /usr/share/doc:软件的说明文档
    • /usr/share/zoneinfo:与时区有关的时区文件
  • /usr/games/:与游戏相关的数据放置在此。

  • /usr/include/:c/c++等程序语言的头文件(header)和包含文件(include)放置处。

  • /usr/libexec/:某些不被一般用户常用的执行文件或脚本会放在此。

  • /usr/lib < qual >/:与/lib < qual >/功能相同,现在/lib < qual >/就是链接到此目录中。

  • /usr/src:一般的源代码放置在此。例如内核文件的源代码建议放置在/usr/src/Linux/目录下。

/var的意义和内容

/var是在系统运行后才会渐渐占用硬盘容量的目录。因为/var目录主要针对经常性变动的文件,包括缓存(cache)、日志文件(log file)以及某些软件运行时所产生的文件,包括程序文件(lock file、run file),或例如MySQL数据库的文件。
常见的子目录有:

  • /var/cache/:存放应用程序本身运行过程中会产生的一些缓存。

  • /var/lib/:程序本身执行过程中需要使用到的数据文件放置的目录,在此目录下各自的软件应该要有各自的目录。例如/var/lib/mysql,var/lib/rpm。

  • /var/lock/:某些设备或者文件资源一次只能被一个应用程序所使用,所以就要给该设备上锁(lock),以确保该设备一次只能给单一软件所使用。

  • /var/log/(重要!):是日志文件存放的目录。

    比较重要的文件有:

    • /var/log/messages、/var/log/wtmp(记录登录信息)等。
  • /var/mail/:放置个人电子邮箱的目录,这个目录和/var/spool/mail/互为链接文件。

  • /var/run/:某些程序或者服务启动后,会将他们的PID放在这个目录下。该目录链接到/run/目录。

  • /var/spool/:这个目录通常放置一些队列数据,所谓的队列就是排队等待其他程序使用的数据,这些数据被使用后通常都会被删除。
    举例来说,系统收到新邮件会放在/var/spool/mail/中,但用户收下该后,该信封原则上会被删除。

汇总以上目录出现的链接设置

  • /bin——>/usr/bin
  • /sbin——>/usr/sbin
  • /lib——>/usr/lib
  • /lib64——>/usr/lib64
  • /var/lock——>/run/lock
  • /var/run——>/run

LINUX目录——FHS标准相关推荐

  1. linux闲话FHS标准下linux目录结构

    2019独角兽企业重金招聘Python工程师标准>>> 1.闲话         2011年10月24日收到了秒针的OfferLetter并决定加入之后,就开始认真学习linux.坦 ...

  2. Linux的FHS标准是什么意思?

    Linux目录标准FHS介绍 Linux和UNIX的文件系统是一个以"/ "为根的阶层式的树状文件结构,/ 因此被称为根目录.所有的文件和目录都置于根目录/ 之下.根目录/下面有/ ...

  3. Linux 目录配置标准:FHS

    一.FHS针对目录树架构定义出三层目录下放置数据: 1. / (root,根目录):与开机系统有关 2. /usr (UNIX software resourse):与软件安装/执行有关 3. /va ...

  4. Linux目录标准FHS介绍

    Linux目录标准FHS介绍 Linux和UNIX的文件系统是一个以"/ "为根的阶层式的树状文件结构,/ 因此被称为根目录.所有的文件和目录都置于根目录/ 之下.根目录/下面有/ ...

  5. Linux目录配置与FHS标准

    一.Linux 整体目录树 在 Linux 系统中,所有文件和目录都是从根目录开始,一级一级向下分支形成一个树状结构的. 我们把这种目录配置方式称为目录树. Linux 的根目录为 "/&q ...

  6. linux中tmp目录是什么,Linux文件系统目录标准介绍(FHS)-tmp是什么文件

    概述 在Linux中一切皆文件,而文件是由文件系统组织存放,但文件系统的组织存放方式也是有标准的.一般只要是一个标准化的Linux发行版系统都会遵循这种标准,不然就太混乱了.而这种Linux文件系统标 ...

  7. Linux的FHS(文件系统结构标准)剖析

    Linux的FHS(文件系统结构标准)剖析 我们平时所说的Linux系统并不是说的某一个操作系统,而是指使用了由Linus Torvalds(林纳斯·托瓦兹)发明并领衔开发的Linux内核的所有操作系 ...

  8. FHS Linux目录详解

    <一>FHS与Linux目录一般配置 FHS简述 Filesystem Hierarchy Standard(文件系统层次化标准),是为了规范Linux distributions开发团队 ...

  9. Linux 文件系统层级标准 Filesystem Hierarchy Standard (FHS)3.0 基本全章节中文翻译

    本文章所有内容不允许以任何形式进行转载.复制.存档或分发等,为了避免翻译过程中对标准内容理解有误.或语言组织不严谨等造成的不能100%表达或阐述原标准的思想和内容,从而误导读者或造成错误等,强烈要求读 ...

最新文章

  1. [你必须知道的.NET]第一回:恩怨情仇:is和as
  2. “CoreCLR is now Open Source”阅读笔记
  3. Web服务集成CRM的应用
  4. 【视频】vue表单提交
  5. Java学习笔记十五
  6. Struts2与Servlet之间的关系
  7. JEECG传统版问题分析
  8. matlab中有非线性模型吗,仿真非线性模型Matlab
  9. 数据库 关系代数表达式
  10. python+mitmdump实战(3/3)(附源码)
  11. html+css基础教程入门篇之css选择器详细解读
  12. java bounds_Java Bounds.intBounds方法代码示例
  13. 免费图片验证码识别方法,支持旋转图片识别
  14. Recap | Apache Pulsar Meetup 上海站
  15. pythonwhile循环语句_Python While循环语句
  16. Java实现 蓝桥杯VIP 算法提高 P0404
  17. 我对于测试团队建设的意见
  18. 芝加哥大学计算机应用数学专业排名,美国大学应用数学专业排名
  19. Qt——用在ARM板上的Mplayer(1.3.0,1.0rc4)安装编译步骤!还有,Mplayer背景抖动闪烁问题解答,终于来了!
  20. 神奇的兔子序列(斐波那契数列)

热门文章

  1. 用友t3网络计算机浏览没有,用友T3客户端提示用友通服务没有启动?
  2. 思科ocserv服务搭建
  3. spring boot Invalid bound statement (not found): com.su.mapper.UserMapper.getAllUsers
  4. mysql sleep详解_MySQL Sleep进程
  5. 做跨境必不可少的装备,虾扑erp帮东南亚卖家便捷跨境!
  6. 计算1+2+3+...+100的和
  7. 蓝宝石压力传感器工作原理与优势
  8. 跨账本资产原子互换协议
  9. 骑摩托车出行防水防雾小技巧
  10. [Unity3D]动态生成平面网格