Linux文件系统结构

本文将会对Linux文件与目录结构进行介绍,示例为红帽centos7我们可以先来看一下他的默认文件目录结构

[root@hadoop102 /]# cd /
[root@hadoop102 /]# ll
total 88
lrwxrwxrwx.  1 root root     7 May 18  2022 bin -> usr/bin
dr-xr-xr-x.  6 root root  4096 May 18  2022 boot
drwxr-xr-x. 19 root root  3180 Mar  5 08:02 dev
drwxr-xr-x. 81 root root  4096 Mar  5 08:02 etc
drwxr-xr-x.  3 root root  4096 May 18  2022 home
lrwxrwxrwx.  1 root root     7 May 18  2022 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 May 18  2022 lib64 -> usr/lib64
drwx------.  2 root root 16384 May 18  2022 lost+found
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.  4 root root  4096 May 18  2022 opt
dr-xr-xr-x. 93 root root     0 Mar  5 08:02 proc
dr-xr-x---.  3 root root  4096 Mar  3 01:36 root
drwxr-xr-x. 23 root root   580 Mar  5 08:02 run
lrwxrwxrwx.  1 root root     8 May 18  2022 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x. 13 root root     0 Mar  5 08:02 sys
drwxr-xr-x.  2 root root  4096 Feb 21 20:59 text
drwxrwxrwt. 10 root root 24576 Mar  5 08:02 tmp
drwxr-xr-x. 13 root root  4096 May 18  2022 usr
drwxr-xr-x. 19 root root  4096 May 18  2022 var
[root@hadoop102 /]# 

上图我们可以看出Linux的系统文件目录还是很庞杂的,图示cetos7系统我们可以看到默认的系统文件夹很多,接下来我们把他们来拆分开来看

  • bin与sbin

    用于存放用户的可执行文件,脚本,命令等      
      
    -rwxr-xr-x.   1 root root        801 Oct  2  2020 yum
    -rwxr-xr-x.   1 root root       1941 Apr 11  2018 zcat
    -rwxr-xr-x.   1 root root       1760 Apr 11  2018 zcmp
    -rwxr-xr-x.   1 root root       5768 Apr 11  2018 zdiff
    -rwxr-xr-x.   1 root root        123 Apr 11  2018 zegrep
    -rwxr-xr-x.   1 root root        123 Apr 11  2018 zfgrep
    -rwxr-xr-x.   1 root root       2144 Apr 11  2018 zforce
    -rwxr-xr-x.   1 root root       6132 Apr 11  2018 zgrep
    -rwxr-xr-x.   1 root root       2041 Apr 11  2018 zless
    -rwxr-xr-x.   1 root root     136176 Sep 27  2019 zlib_decompress
    -rwxr-xr-x.   1 root root       2859 Apr 11  2018 zmore
    -rwxr-xr-x.   1 root root       5343 Apr 11  2018 znew
    lrwxrwxrwx.   1 root root          6 May 18  2022 zsoelim -> soelim
    

    如上图所示,从存放于/bin目录下的文件的详细信息显示可以看到,其文件普遍都具有"x"的属性,而"x"的意义就是为可执行的,下文将提到。而在工作中我们常常将一些编写的脚本放到该/bin目录下面以便于全局调用。
            而sbin则直译s为super,就是超级管理员的命令,本质上和/bin一样,但是多了许多只有root用户才能使用的命令,如"poweroff"关机这样重要的命令就在其中。这种一般情况只能是超级管理员才能够有权限使用的
     

  • boot
    boot里面装的我们的系统必备的引导文件(开机与核心文档),简单来说就是系统开机时需要加载他,在日常的开发或维护中我们基本上不会进去改动这些文件,所有没必要做过度研究
     

  • dev
    此文件目录下存档着我们的所有外接设备文件,Linux中我们所有的装置和所有接口设备都是以文件的方式存在系统中的,这也印证了"Linux中一切皆文件"的说法
     

  • etc
    此文件目录下存放了我们配置文件,在这个文件夹中的文件普通用户是无法修改的。
    例如我们常用的默认网卡配置文件就存放在/etc/sysconfig/network-scripts/ifcfg-ens33 目录中。如图中的ifcfg-ens33文件就记载了一张叫做"ens33"的网卡的网关,IP地址和DNS等网络配置信息

    [root@hadoop102 bin]# cat  /etc/sysconfig/network-scripts/ifcfg-ens33 
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=d6fd328e-6101-4be1-9fe9-285ca79f02d8
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.188.0
    GATEWAY=192.168.1.2
    DNS1=192.168.1.2
    
  • home
    home直译就为"家"的意思,我们也称之为"家目录"。Linux是一个多用户操作系统,而这个目录存放的是我们普通用户文件的目录。在我们在执行命令时可以用"~"来快速定位到该目录下,而超级管理员的用户家目录为"/",这也取决于我们通常将root和"/"放在同一磁盘分区槽以便于操作
     

  • lib与lib64
    lib和lib64这两个目录我们放在一起,他们的区别我们直接从字面意思理解。ib64就是64位,lib那就是32位。他们存放很多二进制函式库,至于什么叫函式库,而他们有什么作用,简单来说就是一些命令的"依赖",没有他们系统命令无法顺利完成
     

  • media
    media直译就为"流媒体",像我们日常使用的音乐,录音或者视频之类的文件可以放在里面,我们日常开发维护一般可能使用他作为挂载目录。而默认情况下这里面也没有什么东西的。

    [root@hadoop102 media]# ll
    total 0
  • mnt
    这个目录是为我们挂载设备使用的,如我们日常使用的U盘,硬盘和CD等设备接入系统就会挂入此目录。使用mount等命令可以对挂载设备进行操作
     

  • opt
    opt是我们日常使用频率很多的目录,他的主要用途是安装我们的软件。这就类似于我们win10中的Program Files文件夹,如楼主就安装了几个开发环境的软件在里面方便统一管理

    [root@hadoop102 module]# ls /opt/module/
    flume-1.9.0  hadoop-3.1.3  hive  jdk1.8.0_212  mysql  zookeeper-3.5.7
  • proc
    proc是存放进程的目录,此处注意区分进程和线程的概念。这里Linux所有的进程也以虚拟文件的形式存储,除此之外我们也可以通过"ps"和"top"命令来查看有关进程的信息

    [root@hadoop102 proc]# pwd
    /proc
    [root@hadoop102 proc]# ls
    1     19   245  354  473  768        bus          fs          locks         scsi           version
    10    2    247  386  494  769        cgroups      interrupts  mdstat        self           vmallocinfo
    1031  20   248  4    5    770        cmdline      iomem       meminfo       slabinfo       vmstat
    11    21   250  41   520  797        consoles     ioports     misc          softirqs       zoneinfo
    1129  22   254  43   527  798        cpuinfo      irq         modules       stat
    1138  23   255  437  529  8          crypto       kallsyms    mounts        swaps
    1142  232  256  44   530  9          devices      kcore       mpt           sys
    13    233  276  441  531  95         diskstats    keys        mtrr          sysrq-trigger
    14    234  277  445  535  990        dma          key-users   net           sysvipc
    15    235  30   448  543  996        driver       kmsg        pagetypeinfo  timer_list
    16    24   31   45   6    acpi       execdomains  kpagecount  partitions    timer_stats
    17    243  32   47   60   asound     fb           kpageflags  sched_debug   tty
    18    244  33   472  7    buddyinfo  filesystems  loadavg     schedstat     uptime
    
  • run
    用于存放系统开机后所产生的各项信息,如我们的系统变量常量信息都存放在此处
     

  • var与tmp
    var和tmp目录我们放在一起谈论,因为他们在本质上基本相同作用是存放一些临时文件。
    不同点就是tmp关机重启时会被清理,而var不会被主动清理仅此而已。临时文件内容大都数情况都是一些日志之类的东西
     

  • srv
    服务启动需要的数据支撑是"service"的缩写
     

  • root
    超级管理员的家目录,类似于普通用户的home目录,我们通常将root和"/"放在同一磁盘分区槽以便于我们操作,所以我们也常常称"/"目录为超级管理员的家目录
     

  • sys
    系统内核相关信息,记录了系统内核与重要硬件信息

     

  • 在开发看来,Linux的系统目录结构是一种非线性数据结构,"/"目录是所有的系统目录的前驱节点Root(数据结构中也有称节点父子关系的),所有的系统目录下面还有无数个子节点Branch,如果是目录,目录下面还可能有目录,像"俄罗斯套娃"一样。至于为什么使用这种结构呢,因为他的查找删除插入时间复杂度可以为O(lgn)这是比较可观的效率!

  • 接下来我们用一张简图来总结一下Linux的树型目录结构吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值