Linux file system tree basis --Linux

Linux Information This document demonstrates the use of

There are graphical interface to configure
virtual environments: VMware Workstation 15.x
Linux version information: deepin15.11

No graphical interface to configure
virtual environment: Azure VM-
Linux version information: centos 7.3

本文为了能更加清晰的体现linux文件结构,所以同时将有图形界面和五图形界面的Linux系统穿插进行演示,但不会影响本文章的演示结果,此文章不适合深度研究linux和IOT开发人员,如果发现文章存在问题或者需要补充,恳请大佬积极发言,谢谢。
Preface: I do not know just to get started as a small white linux linux linux when there is no complex file management path scared, in fact, linux file directory is just a very large 套娃结构, long time ago there is a group of people to divide the directory name specific function and name, and still in use, has now become the standard hearts of developers, so, if we can understand the meaning of the name given to the file directory for understanding linux file structure is concerned there would be no rush phenomenon.

Linux file tree structure

File Directory brief introduction
/boot System boot drive folder, if the computer is a PC uefi start, then, when linux install this folder will be copied to the hard disk efi partition, boot the system if the same problem, then, is to modify this folder.
/bin The storage system executable common base, which also include conventional instruction set as linux ls, mkdir, free so stored in this directory新手勿动
/sbin Bin directory and the same functions, but only a super administrator can call inside the program, such as reboot, lvs, update instructions, etc.新手勿动
/lib,/lib64 Stored with the file system to run the required shared libraries and kernel modules,不清楚是什么文件的时候勿动
/tmp System cache folder used to store temporary files created from a variety of programs平时可以不用管
/ mnt System administrators install the temporary file system mount point, the system provides this directory is to enable users to temporarily mount other file systems
/dev linux infrastructure folders, storage hardware management interfaces and hardware information (such as disk, CPU, display serial ports, etc.), if not to engage in hardware development or research linux kernel is recommended not arbitrarily tamper with, the problem is to be crazy! ! !
/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万+

Guess you like

Origin blog.csdn.net/day_to_die/article/details/104247092