Table of Contents

  • 概述
  • 根目录/
  • 二进制目录
  • 配置文件目录
  • 数据目录
  • 内存目录
    • /dev目录

      • 物理设备文件
      • /dev/tty跟/dev/pts
      • /dev/null
    • /proc目录
  • /usr目录
  • /var目录

概述

多数Linux发行版本都是遵循文件系统结构标准(Filesystem Hierarchy Standard, 简称FHS),可以在这里找到该标准。本文对Linux的文件系统结构进行简单的介绍。

根目录/

所有的Linux系统都有根目录,由/表示。Linux系统的所有内容都在该目录下。

二进制目录

目录 说明
/bin 包括了可执行的二进制文件,通常这些二进制文件可以被所有用户访问。FHS规定,该目录至少包括/bin/cat/bin/date文件
/sbin 包括了系统的二进制文件,通过需要root权限,用来配置系统
/lib 包括了/bin所依赖的库
/lib/modules Linux将从/lib/modules/$kernel-version/目录下载入内核模块
/lib32和/lib64 顾名思义,分别存放不同位数的库
/opt 该目录用来存放一些可选的软件,通常情况下,很多第三方的客户软件会选择安装在该目录下

配置文件目录

目录 说明
/boot 顾名思义,用来存放系统启动的配置文件,如grub引导的配置文件/boot/grub/grub.cfg
/etc 几乎大部分配置文件都放在改目录下。历史上etc的全称是etcetera,不过,现在一般认为是Editable Text Configuration的缩写
/etc/init.d 存放daemon启动、停止等的脚本文件。不过在引入systemd之后,启动脚本有所变化
/etc/skel 存放创建新用户之后所需的配置文件的模板,如.bashrc文件,默认会从该目录拷贝到用户目录
/etc/sysconfig 一般出现在RedHat系列的Linux系统中,存放系统有关配置,如IP的配置文件等

数据目录

目录 说明
/home 当创建一个新用户的时候,默认情况下,系统会为用户创建一个/home/<username>的目录用来存放个人数据。
/root 该目录被很多Linux系统用来存放root用户的个人数据
/srv 可以被解释为served by your system。FHS允许rsyncftpwww等数据存放在改目录
/media 该目录通常被用来挂载可移除设备,如CD-ROM,U盘等
/mnt 根据FHS,该目录通常被用来作为短期的挂载点
/tmp 该目录用来存放一些短期的文件,不要再该目录下存放重要文件,该目录下的文件有可能会被系统回收

内存目录

Linux系统中,几乎所有的东西都被映射成文件,文件有的是对应着硬盘、设备(CD-ROM等)等,有的则被Linux映射到内存中。这一节介绍映射到内存中的目录。

/dev目录

/dev目录映射了各种设备文件,这些文件由系统启动的时候扫描硬件生成。

物理设备文件

物理设备包括很多种,如硬盘,CD-ROM等。不同的物理设备映射为/dev目录下不同的文件。如SATA/SCSI设备或USB通常被映射为/dev/sd*,其中*可以为[a-z]中的任意字符;而IDE设备通常被映射为/dev/hd*,其中*[a-z]中任意字符。

/dev/tty跟/dev/pts

首先需要搞清楚tty设备跟pts设备的区别。这两者都是终端设备,所谓终端设备通常指的是能够接受命令输入,并可能同时能够输出的设备,但是这两者是有本质的不同的:

  • tty设备

    ttyTeletype的简称,表示原生的终端设备,通常指的是物理终端设备如串口,键鼠接口等,以及系统内核模拟的终端设备。

  • pts设备

    ptsPseudo Terminal Slave的简称,表示伪终端设备,通常由应用进程模拟出来,如ssh开启的终端等。

tty设备通常被映射为/dev/tty*,其中*代表数字,如/dev/tty1等。而pts设备被映射为/dev/pts/*,其中*表示数字,如/dev/pts/1

/dev/null

该文件在Linux中有着特殊的意义,是一个只有输入的文件,且文件有无限的大小,你不能从该文件读出任何东西,任何写入的内容逻辑上相当于消失了。从实现的角度,实际上任何写入的内容都被系统丢弃了。

/proc目录

该目录用来记录内核以及内核进程的实时信息,可以通过它轻而易举的实现对内核状态的获取甚至改变。

目录 说明
/proc/ 几乎每个进程都会在该目录下有映射的文件/proc/*,其中<id>代表进程的ID。该目录记录的该进程的几乎所有的状态信息。
/proc/cpuinfo 记录了系统的CPU信息,通常通过该文件可以知道系统有多少个CPU(核数)。
/proc/meminfo 记录了系统的内存信息,可以通过它知道系统有多少内存
/proc/sys /proc目录下的绝大部分文件都是只读的文件,但是在该目录下有些文件是可写的,可以通过它们改变内核状态
/proc/interrupts 记录了当前系统的中断信息
/proc/kcore 这个文件代表了系统的物理内存,其大小就是物理内存的大小,因此千万不要用cat来试图显示该文件内容

/usr目录

/usr目录估计是被误解最多的目录,一般大家都以为它是user的简写,感觉应该存放的是用户相关的东西,但是实际上完全不是这样。它其实是Unix System Resources的简写,表示Unix系统资源。通常情况下,该目录以只读的权限被挂载。

目录 说明
/usr/bin 很多命令都存放在这个目录下面,事实上,在Centos跟Solaris系统中,/bin目录实际上只是一个软连接,连接到此目录
/usr/include 存放大量的头文件,可能会被C代码引用
/usr/lib 存放库文件,同样,在Centos跟Solaris系统中,/lib其实就是软连接到此目录
/usr/lib64 存放64位的库文件,在Centos中,/lib64也是软连接到此目录
/usr/sbin 很多daemon程序都是放在此目录下,在Centos中,/sbin也是软连接到此目录
/usr/local 此目录通常用来安装一些本地的应用
/usr/share 此目录通常用来存放各种体系无关的数据。/usr/share/man就是用来存放man命令用到的帮助文档
/usr/src 此目录通常存放内核的代码文件

/var目录

/var目录用来存放可变的数据,如日志,数据库文件等。

目录 说明
/var/log 此目录用来存放各种日志文件,包括系统跟应用的日志
/var/log/messages 在RedHat系列系统中,此文件用来记录系统刚刚发生的事情。在Debian和Ubuntu系统中,对应的文件是/var/log/syslog
/var/cache 此目录存放很多应用的缓存数据,如yum命令可能会缓存部分数据在此目录
/var/spool 一般情况下,该目录会存放邮件cron任务等数据
/var/lib 通常此目录下会存放应用的状态信息,如/var/lib/mysql存放mysql数据库,/var/lib/docker存放docker的数据

转载于:https://www.cnblogs.com/treasure716/p/9668441.html

Linux系统介绍(二)文件系统结构相关推荐

  1. Linux嵌入式开发——文件系统结构

    文章目录 Linux嵌入式开发--文件系统结构 一.根目录"/" 二.Ubuntu文件系统结构 三.绝对路径和相对路径 Linux嵌入式开发--文件系统结构 一.根目录" ...

  2. linux文件系统、文件系统结构、虚拟文件系统

    参考:linux文件系统及其目录结构.虚拟文件系统 作者:丶PURSUING 发布时间: 2021-02-15 09:33:29 网址:https://blog.csdn.net/weixin_447 ...

  3. Linux 文件系统类型 文件系统结构 与Windows文件系统的比较

    Linux 文件系统类型 磁盘文件系统. 包括硬盘.CD-ROM.DVD.USB存储器.磁盘阵列等.常见文件系统格式有:autofs.coda.Ext(Extended File sytem,扩展文件 ...

  4. linux实验二文件与文件夹操作

    1.使用用户root登录linux,创建目录/姓名全拼(如:于翔同学,创建目录/yuxiang),/姓名全拼目录下创建文件姓名首字母(如于翔同学:创建文件yx),授予目录/姓名全拼是有用户都有rwx权 ...

  5. 淮海工学院linux实验二文件IO操作,淮海工学院计算机科学系

    <淮海工学院计算机科学系>由会员分享,可在线阅读,更多相关<淮海工学院计算机科学系(15页珍藏版)>请在技术文库上搜索. 1.淮海工学院计算机科学系实验报告书课 程名: 数据结 ...

  6. Linux系统中文件系统管理

       一.文件系统的基本组成和文件系统结构    1.Linux 系统的基本组成 图例:    Linux系统由Linux内核和一系列GNU库及程序组成.根据其所处的位置,从内向外依次分为:内核.运行 ...

  7. linux+网络根文件系统,认识Linux根文件系统结构

    INTRO 认识Linux根文件系统结构,尽管Linux的根文件系统在形式表现上是一体的(所有数据目录均为根目录下的子目录),但实际它们是多个不同的[逻辑主体](为了实现不同的逻辑 功能)组合在一起的 ...

  8. linux sed 测试文件夹,测试开发笔记二(Linux与Shell脚本)

    01 | Linux系统和Shell环境准备 运行shell test.sh #!/bin/bash echo "hello" 运行脚本 方式一: chmod+x ./test.s ...

  9. Linux根文件系统结构再认识

    Linux根文件系统结构再认识 刘建文(http://blog.csdn.net/keminlau ) INTRO 尽管Linux的根文件系统在形式表现上是一体的(所有数据目录均为根目录下的子目录), ...

最新文章

  1. 创建节约内存的JavaBean
  2. Redis 系统学习目录
  3. 基于动态代码生成技术的动态对象工厂
  4. Visual Studio 即时窗口实用技巧
  5. stm32f103c8t6 AD DMA连续采集8个通道
  6. ehcache常用API整理
  7. sublime html乱码,HTML5 sublime 编码出现乱码怎么处理
  8. 终极人机大战要来了?AI打星际2即将直播,DeepMind暴雪发出神秘预告
  9. C 中细节问题的试题
  10. c语言 和 运算顺序,二 如何学习C语言的运算符和运算顺序
  11. mysql修改最大连接数笔记
  12. php实现mkv视频播放,mkv怎么合并视频文件
  13. tp-link与台式计算机连接教程,【详细图解】TP-Link TL-WDR6510路由器电脑设置教程...
  14. 移植Python3到TQ2440(二)
  15. C6能比C8快多少(Altera的FPGA速度等级)
  16. 心流体验:专注的快乐--读书笔记
  17. via自定义搜索引擎代码_Via浏览器自定义主页
  18. 洛谷P1282 多米诺骨牌 题解
  19. Spring获取上下文的四种方式方式
  20. 微信开放平台 错误码61007: api is unauthorized to component

热门文章

  1. [转]Linux 进程间通信:共享内存
  2. Node.js获取本机IP
  3. STM32单片机SIM800C创客GSM短信GPRS可编程模块SDK二次开发DIY
  4. 个人博客满血复活,求测试~~~
  5. matlab 基础知识class lt; superclass_name
  6. 《学习opencv》笔记——矩阵和图像处理——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize...
  7. SQLServer学习笔记系列6
  8. S01E05 Android体系结构
  9. #100天计划# 2013年10月1日
  10. php下扩展php_curl.dll的安装