Linux基础——Linux系统文件树

本文档演示所使用的Linux信息

有图形化界面的配置
虚拟环境:VMware Workstation 15.x
Linux版本信息:deepin15.11

无图形化界面配置
虚拟环境:Azure-VM
Linux版本信息:centos 7.3

本文为了能更加清晰的体现linux文件结构,所以同时将有图形界面和五图形界面的Linux系统穿插进行演示,但不会影响本文章的演示结果,此文章不适合深度研究linux和IOT开发人员,如果发现文章存在问题或者需要补充,恳请大佬积极发言,谢谢。
前言:不知道作为一个linux小白刚上手linux的时候有没有被linux复杂的文件路径管理给吓着,其实linux文件目录只不过是一个十分庞大的套娃结构,在很久之前就有一群人给目录名称划分了具体的功能和名称,并沿用至今,如今已经成为了开发人员心中的标准,因此,只要了解文件目录名称所赋予的含义,对于理解linux文件结构来讲就不会有手忙脚乱的现象。

Linux文件树结构

文件目录 内容简介
/boot 系统引导驱动文件夹,如果PC电脑是uefi启动的话,在linux安装的时候会将此文件夹复制到硬盘的efi分区内,同样如果系统引导出问题的话,也是修改此文件夹。
/bin 存放系统基础常用可执行文件,其中也包括常用的linux指令集如ls,mkdir,free等都存放在此目录中新手勿动
/sbin 和bin目录同样功能,但是只能是超级管理员才能调用里面的程序,如reboot,lvs,update等指令新手勿动
/lib,/lib64 存放跟文件系统中的程序运行所需要的共享库及内核模块,不清楚是什么文件的时候勿动
/tmp 系统缓存文件夹,用来存放从各种程序产生的临时文件平时可以不用管
/mnt 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统
/dev linux基础设备文件夹,存放硬件管理接口和硬件信息(如磁盘,CPU,显示串口等),如果不是搞硬件开发或者是研究linux内核建议不要随意乱动,出问题是要发疯的!!!
/opt 存放不通过linux源管理的第三方软件,如tomcat,nginx
/usr 存放几乎所有的linux软件,但是内部结构大部分都和根目录差不多。
/usr/local 存放本地安装的linux软件,即不通过linux包管理安装的Linux源中存在的软件,如python3,而Linux自带的python2.7则存放在/usr/bin目录中
/usr/bin 与跟目录的bin同样的功能,存放linux系统软件,如python2.7
/usr/sbin 与根目录sbin同样功能,功能相同,但是存放的基本上都是扩展指令集,也就是说/sbin中没有用的都放到了这里面
/usr/src linux内核源码就在这里面
/var 系统一般运行时要改变的数据,可以是用户信息,也有缓存文件的存放
/var/log 存放各个成勋运行的日志文件
/var/lock 锁定文件.许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件.其他程序注意到这个锁定文件,将不试图使用这个设备或文件当然,平时解锁占用删除的也是此文件里面的.lock文件
/home 存放用户产生的基础信息文件,所有创建的用户都会以用户名为文件夹名存放在home目录中,而用户文件夹的目录结构与root文件夹是一样的
/root 超级用户文件夹,在一些系统的安装中,会将root放到home目录中,有些会独立分开,但是文件结构和home目录里面的用户目录是相同的,区别在于,root用户本身自带管理员权限
/proc 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
  • 通过上述介绍可以不难发现
    • 如果只是想要使用linux进行简单软件开发(研究linux系统除外),需要去了解的文件目录只有
      • /usr
      • /home
      • /root
      • /opt
      • /etc

etc文件目录

  • etc存放了系统环境变量和各种配置文件,同样如果是要修改全局环境变量只需要修改以下文件即可
    • etc\profile:有关Linux环境变量的东西,常在/etc/profile文件中修改环境变量,在这里修改的内容是对所有用户起作用的。
    • etc\bashrc:修改.bashrc可以改变环境变量PATH、别名alias和提示符。当然个人建议,如果是添加全局环境变量建议修改profile,如果添加全局指令集,可以通过修改bashrc。


  • 需要注意的是在root文件和home里的用户文件中都存在.bashrc文件,如果修改那些文件只能是当前用户可以使用环境,其他用户无法使用,即无法全局共享。

home文件目录

  • home文件夹中存放的都是以用户名命名的用户文件夹,每个用户文件夹都存放着独立于用户的个人文件,如文档,视频,音频等。
  • 需要注意的是,当前用户只能访问自己的用户文件夹,其他用户文件夹均无法访问,除非登陆超级管理员模式,或者被赋予了超级管理员权限。


  • 用户文件夹中通常都会出现有着相同文件名的几个文件,分别是:
    • .bash_history 记录之前输入的命令
      • 此功能就是当你在终端通过上下方向键操纵,可以看见你以前输入过的指令。
    • .bash_logout 当你退出时执行的命令
    • .bash_profile 当你登入shell时执行(如果修改不能通过重启终端刷新
    • .bashrc 当你登入shell时执行(如果修改可以通过重启终端刷新
    • 需要注意的是,用户文件夹中的bashrc同样也可以修改环境变量,但是其他用户不会受到你修改的环境的影响,也就是说你改的环境只能你自己用。
  • root,用户文件目录与etc中的bashrc之间的关系图如下

root文件目录

  • root文件夹与home目录中的用户文件夹结构高度相似,同样也有环境配置文件.bashrc等,不过需要注意的是,普通用户可以借助登陆超级用户root访问root文件,而一旦登陆root用户,则其他所有用户文件均可通过root账户访问。
  • 需要注意的是输入sudo su登陆超级用户后,用户根目录即~ 指向的位置会发生变化,从原来的\home\用户文件转变为\root文件夹这在修改环境变量的时候需要注意的地方,你使用~\ 的时候到底是想修改root用户的环境还是自己本身的环境,如果稍不注意,会引发很严重的后果。



opt文件目录

  • 所有扩展软件均可以放在此文件目录中,建议此文件夹存放集成软件,如果是运行环境最好是存放在/usr/local中

usr文件目录

  • usr文件夹是一个十分庞大的文件目录,里面存放了基本上linux系统中绝大部分指令集和软件环境。
  • 可以看见usr文件夹中的结构与根目录有着类似的文件目录结构,但是因为在usr文件中所以也有一定的范围区别
    • \usr\bin:存放Linux源安装的软件,如gcc,python等(全局变量中已经将此文件夹纳入环境变量中


    • \usr\lib|lib64:软件或者环境所依赖的动态链接库或者配置文件。
    • \usr\sbin:和\sbin功能相同,\sbin存放基础指令集,\usr\sbin存放一些优化后的指令集
    • \usr\local:用户安装的本地软件,如自行下载的python3.8可以放在这里,local中有者和\usr相同的文件目录结构,因此就不再过多赘述。
    • \usr\share:共享文件夹。。这个没什么可以说明的吧。。。
    • \usr\src:存放源码文件,里面有linux内核源码
  • 需要注意的是\usr\local中最好存放环软件环境如python环境,java环境,mysql等,因为\usr\bin与\usr\local\bin已经自动写入系统环境,而tomcat,nginx需要依赖这些运行的软件最好放到opt文件目录中,当然这个仅仅是我个人的习惯,并不是强求。但是并不提倡在这两个文件夹之外安装可执行文件,即不方便管理,也不方便运行。

var文件目录

  • 此目录存放系统运行时数据变动的文件,文件结构与根目录很相似
    • \var\local:存放\usr\local中的软件的可变动的数据文件
    • \var\opt:opt中安装的程序的可变数据
    • \var\log:各种程序的Log文件,特别是login (\var\log\wtmp log所有到系统的登录和注销) 和syslog (\var\log\messages 里存储所有核心和系统程序信息. /var/log 里的文件经常不确定地增长,应该定期清除.
    • \var\run:保存到下次引导前有效的关于系统的信息文件.例如, \var\run\utmp 包含当前登录的用户的信息.
    • \var\tmp:比\tmp 允许的大或需要存在较长时间的临时文件. (虽然系统管理员可能不允许\var\tmp 有很旧的文件.)
    • \var\locak:锁定文件.许多程序遵循在\var\lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件.其他程序注意到这个锁定文件,将不试图使用这个设备或文件.
  • var,opt,usr三个文件夹之前的关系图

参考文章

Linux 下各个目录的作用及内容
Linux–/var目录详解
linux系统/var目录的作用
Linux 设备文件/dev/*详解、查询
Linux /etc/profile文件详解
Linux的环境配置文件----.bashrc文件

发布了10 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/day_to_die/article/details/104247092