本文档演示所使用的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
- 如果只是想要使用linux进行简单软件开发(研究linux系统除外),需要去了解的文件目录只有
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同样也可以修改环境变量,但是其他用户不会受到你修改的环境的影响,也就是说你改的环境只能你自己用。
- .bash_history 记录之前输入的命令
- 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\bin:存放Linux源安装的软件,如gcc,python等(
- 需要注意的是\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文件