zoukankan      html  css  js  c++  java
  • Linux 文件系统简介(FHS:Filesystem Hierarchy Standard)

    一,linux的目录结构

    • /bin:所有用户都可以使用的可执行程序

    • /sbin:系统管理员使用的可执行程序

    • /boot:引导加载器必须用到的静态文件:kernel,initramfs,grub等。

    • /dev:设备文件和特殊文件(虚拟设备等)。设备有2种

      • 字符设备(线性设备,有顺序依次处理):逐个字符处理。比如,显示器,键盘等
      • 块设备(随机设备,无顺序跳跃处理):多个字符一起处理。比如,硬盘等
    • /etc:进程的配置文件。必须是文本文件。它下面必须有以下4个目录

      • opt:Configuration for /opt
      • X11:Configuration for the X Window system(optional)
      • sgml:Configuration for SGML(optional)
      • xml:Configuration for XML(optional)
    • /home:用户使用的家目录的集中位置。

    • /root:管理员的家目录。

    • /lib:为系统启动或者/bin和/sbin目录下的可执行程序提供共享库,以及为内核提供内核模块。

      • libc.so.*:动态链接的C库。
      • ld*:运行时的链接器/加载器
      • /lib/modules目录:用于存放内核模块的目录。
    • /lib64:64系统的动态库文件

    • /media:便携式设备挂载点,比如cdrom,软盘,u盘等

    • /mnt:其他文件系统的临时挂载点。

    • /opt:Add-on application software packages。第三方程序的安装目录。

    • /srv:当前主机为服务提供的数据,一般不使用。

    • /tmp:为那些会产生临时文件的进程,提供用于存储临时文件的目录。可供所有用户提供写入操作。

    • /usr:全局共享的只读数据路径。

      • /bin,/sbin
      • /lib,/lib4
      • /include:c的头文件
      • /share:命令手册和自带文档
      • /local:第三方的安装程序的存放目录。让系统管理人员安装新版本的程序,并保留老版本的程序。
      • /src:程序源码文件
    • /var:数据经常发生的目录。比如日志。

      • /cache:application cache data
      • /lib:variable state information
      • /local:variable data for /usr/local
      • /lock:Lock files
      • /log:Log files and directories
      • /opt:variable data for /opt
      • /run:data relevant to running processes
      • spool:application spool data
      • tmp:temporary files preserved between system reboots
    • /proc:基于内存的虚拟文件系统。内核是有属性信息(版本号等)的,那么如何查看,正在运行中的内核的属性信息呢?内核把它的属性信息抽象成filesystem。比如内核属性:net.ipv4.ip_forward,抽象成了/proc/sys/net/ipv4/ip_forward文件,这个文件里的内容就是此属性的值。进程和内核一样,也把自己的属性信息,抽象成了filesystem。符合Linux里,一切都是文件的理念。

    • /sys:sysfs虚拟文件系统提供了比/proc更好的访问内核属性数据的途径,其主要作用:为管理linux设备提供了统一的接口。以后有可能取代/opt。从2.6内核开始才有此目录。

      # ls /sys
      block  class  devices   fs          kernel  power
      bus    dev    firmware  hypervisor  module
      

    二,文件类型

    ls -l后,

    # ls -lrt /dev
    total 0
    drwxrwxrwt. 2 root    root          40 Dec 14 18:26 shm
    lrwxrwxrwx. 1 root    root          15 Dec 14 18:26 stdout -> /proc/self/fd/1
    crw-------. 1 root    root     10, 239 Dec 14 18:26 uhid
    brw-rw----+ 1 root    cdrom    11,   0 Dec 14 18:26 sr0
    drwxr-xr-x. 3 root    root          60 Dec 14 18:26 bus
    
    • ls -lrt /dev的输出结果中的第一个数字10:major number:主设备号,用于标识设备类型的,进而确定要加载的驱动程序。
    • ls -lrt /dev的输出结果中的第二个数字239:minor number:次设备号,用于标识同一类型中的不同设备。
    • -:常规文件
    • d:目录
    • b:block device,块设备文件,可以以block单位,进行随机访问
    • c:character device,字符设备文件,以字符为单位,进行线性访问
    • l:symolic link,符号链接,软链接文件
    • p:pipe,有名字的管道文件
    • s:socket,套接字文件,用于本地进程间通信

    ps:用file命令可以查看文件的类型。

    c/c++ 学习互助QQ群:877684253

    本人微信:xiaoshitou5854

  • 相关阅读:
    根据当前日期转目的国地区时间戳
    时间戳转换作用域问题
    字符串拼接问题
    input全选和取消全选
    循环遍历渲染模块
    jQuery实现获取选中复选框的值
    React组件
    underscore.js依赖库函数分析二(查找)
    underscore.js依赖库函数分析一(遍历)
    React入门
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/12041828.html
Copyright © 2011-2022 走看看