Linux文件系统常见常用目录学习总结

在这里插入图片描述
如图所示,linux根目录/下有诸多文件系统,它们大多数都不止是简简单单用来一个放文件的文件夹或者说目录,都有自己独特的功能与作用,是整个文件系统不可或缺的。
深入学习,理解它们每个的功能,可以帮助Linux菜鸟小白门更加好的入门后面的学习,理解Linux很多功能的本质原理

而我想总结这么一篇文章的原因也是发现,在最近学习了一些它们的相关知识后,之前很多无脑敲的命令,或Linux之前一些迷迷糊糊的知识都迎刃而解了,所以希望这篇文章对你也有所帮助。
我会先总结其中相对更常用,更基础的文件系统,以后可能还会继续完善。

建议:大家学习的时候可以自己也打开虚拟机,点开相应的文件系统看一看,相应的命令敲一敲

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

目录:

  • /proc目录
  • /bin与/sbin目录
  • /usr目录
  • /var目录
  • /lost and found目录

一。/proc

proc文件系统其实是一个伪文件系统,它只存在内存当中,而不占用外存空间。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数
在这里插入图片描述
其中数字命名的目录,是进程目录。每一个进程都对应一个进程目录
/proc 就是这样一种文件,它并不存在于硬盘上,每当系统启动的时候,操作系统自动创建 /proc 下的内容,
你可以查看这些文件的列表,但是你会发现大部分文件的大小都是 0 ,这并不奇怪,因为这些文件属于“virtual files“,也就是说,
当你读取这些文件的时候,系统内核为你即时生成文件中的内容

例如:
1.查看cpu信息 cat /proc/cpuinfo
2.内存详细信息 cat /proc/meminfo (free,top这些命令都是通过读取/proc/meminfo来实现的)
3.内核,系统版本信息 cat /proc/version (uname -a命令就是通过读取/proc/version来实现的)
4. 显示当前内核模块装载的模块。cat proc/modules(lsmod 命令的原理)

二。/bin 与 /sbin

当我们点开这两个文件夹时,我们会发现这里面大多是一些二进制命令执行文件
在这里插入图片描述
在这里插入图片描述
实际上当我们点开/usr 与/usr/local 后 我们会发现,里面也会都有一个/bin 一个/sbin
它们也正是存放我们平时使用到的命令的地方,当我们使用whereis或者which命令查看一个命令的时候,就可以看到
如:
在这里插入图片描述
下面就介绍一下 /bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,usr/local/sbin的区别

  • /bin(binary):通常是存放普通用户和超级用户都会用到的必要的命令,或者理解为系统的一些指令,例如ls,pwd,kill等等。
  • /sbin(system binary):通常是系统管理员(root)使用的必要的来管理系统的命令,例如shutdown,ifconfig等等。
  • /usr/bin:通常是一些非必要的,但是普通用户和超级用户都可能使用到的命令,例如gcc,ldd等等。也可以理解为是你在后期安装的一些软件的运行脚本
  • /usr/sbin:通常是一些非必要的,由系统管理员来使用的管理系统的命令,例如crond,httpd等等。
  • /usr/local/bin:通常是用户后来安装的软件(如使用源码安装),可能被普通用户或超级用户使用。
  • /usr/local/sbin:通常是用户后来安装的软件,一般是用来管理系统的,被系统管理员使用。

以上所说的并不是绝对的,例如ifconfig在/sbin下,但是普通用户一般具有可执行权限。

大概总结就是:
十分重要的二进制程序放置在/bin以及/sbin中;
不是十分重要的二进制程序放置在/usr/bin以及/usr/sbin中。
进行这样子的分隔是为了尽可能地缩小根分区。

我们可以使用 echo $PATH 命令或export命令查看一下自己的环境变量

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。

当我们执行命令遇到 bash:command not found的错误提示的时候,我们就要检查一下自己PATH中是否缺少对应命令的环境变量(存放这个命令的位置路径)。
我们可以修改/etc/profile文件或/etc/bashrc文件来修改添加环境变量。

三。/usr

它的缩写是Unix Software Resource 我初学的时候总把它和user联想到一起,这是不对的
也就是Unix操作系统软件资源所放置的目录,而不是存放用户的数据。
通常这一文件系统很大,因为所有程序安装在这里

/ (root, 根目录):与开机系统有关;

/usr (unix software resource):与软件安装/执行有关;

/var (variable):与系统运作过程有关。

所有文件一般来自l i n u x发行版( d i s t r i b u t i o n);本地安装的程序和其他文件在/usr/local 下

/usr/include:包含了c语言的头文件,这些文件多以. h结尾,用来描述c语言程序中用到的数据结构、子过程和常量。为了保持一致性,这实际上应该放在/usr/lib 下,但习惯上一直沿用了这个名字。

四。/var

/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。 因为**/var目录主要针对常态性变动的文件**,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等,包含系统一般运行时要改变的数据。

需要关注的子目录:

  • /var/log 存放各种程序的消息日志的地方
  • /var/spool/mail&/var/mail是保存用户邮件信息的文件夹,新建用户会自动在这个目录中建一个该用户的邮件文件,记录其收到的邮件;这两个目录互为链接文件,内容一样
  • var/tmp:比/tmp 允许更大的或需要存在较长时间的临时文件。

五。lost and found

/根目录下有这个目录,但其实我们会发现/boot下也有
在这里插入图片描述
在这里插入图片描述
这个目录其实是一个备份目录,是挂载分区的备份目录。我们可以查看/etc/fstab文件,这里记录了硬盘分区的挂载信息,我第二个字段,也就是我圈起来的就是挂载分区目录,而后面 第一个数字1代表它们都是每天备份的,备份的位置就是lost and found。

在这里插入图片描述

写在后面

要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分区则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分区去。那哪些目录不可与根目录分开呢?有底下这些:

  • /etc:配置文件
  • /bin:重要执行档
  • /dev:所需要的装置文件
  • /lib:执行档所需的函式库与核心所需的模块
  • /sbin:重要的系统执行文件

这五个目录千万不可与根目录分开在不同的分区。

最后,放一个总览图,有一些没有介绍到的目录,可以大概参考一下
FHS认为根目录(/)下应该包含如下子目录
在这里插入图片描述
除了上面的,还有我们需要了解的目录如下:
在这里插入图片描述

本文中一些内容引用了其他博主的内容与网上查阅内容,如有影响,请指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值