发新帖

讲清Linux操作系统的目录结构

berners / 2019-11-9 00:36
浏览: 809 / 回复: 9
查看: 809|回复: 10

讲清Linux操作系统的目录结构

[复制链接]
收藏
跳转到指定楼层
本帖最后由 berners 于 2019-11-10 22:17 编辑

minimalistic-and-clean-home-office-cumputer-setup-picjumbo-com.jpg
经常在Windows环境下工作的同学在初次使用Linux操作系统的时候可能有种不知所措的感觉。 Linux操作系统理念是一切皆文件。因此当我们登入Linux操作系统内部的时候看到的是各种目录和文件。特别是进入非桌面版时,看到的只是一个命令行提示符。


微信截图_20191110221238.png

Linux交互界面
这就给大家造成了很大的学习障碍。其实如果登录桌面版(比如Ubuntu)会发现其实跟Windows还是很像的。学习门槛也低很多。
微信截图_20191110220852.png
图形界面目录结构
桌面版只是对底层做了一些封装,本质上来说,Linux操作系统中一切皆文件。不仅仅存储数据的磁盘是文件,其它设备也是文件。操作系统内部的信息也是以文件的形式呈现的,比如CPU信息、内存信息和进程信息等等。
因此,如果想学习Linux操作系统,非常有比较了解一下整个文件系统。其实有一个专门的文档来介绍Linux的目录结构,这个文档名为文件系统层次标准(Filesystem Hierarchy Standard,简称FHS)。但是这个文档非常长, 而且在Linux的目录结构中有些目录并不在该文档中,因此本文简要介绍一下Linux的核心目录。
/ – 根目录
首先我们介绍一下Linux下的根目录。Linux的目录结构就像一棵倒着的大树,最底层是树干,然后是分支,层层细分。而根目录是Linux最底层的目录,就像一棵大树的树干一样。
任何内容都位于根目录之下,根目录通过一个路径符号/表示。如果非要找个类比的话,可以将根目录理解为Windows下面的C:\目录。但是严格来说并不一样,Linux下的"/"是所有内容(包括文件目录、设备和文件等)的根,而Windows下的C:\并不是,因为如果有多个磁盘或者多个分区,那Windows下可能还有D:\或者E:\。
我们可以通过执行命令cd /将当前工作路径切换到根目录。(先通过输入命令 sudo apt-get install tree 输入密码安装tree)并通过命令tree -L 1显示根目录的所有下一级目录。具体如图3所示。本例中只显示了一级子目录,当然也可以通过-L 2显示二级子目录,但结果可能会占满整个屏幕。
TIM图片20191110133658.png
根目录示例
/bin – 用户基础二进制文件目录
目录/bin是根目录的一级子目录。在该目录中包含着最为基础的用户二进制文件,也就是应用程序。这个目录非常像Windows下的Programs目录。
并非所有的应用程序都存储在这个目录下面,有些不是特别基础的程序会存储在/usr/bin目录下面。比如Chrome浏览器等,或者用户自己安装的一些程序通常会在/usr/bin下面。而系统应用程序则通常会在该目录下面,比如ls、mkdir和cp等等。

用户的主目录下面包含这数据文件和用户相关的配置文件。通常一个用户只能修改其目录下的文件,只有获得授权的情况下才能访问其它文件。
TIM截图20191110135110.png
图7 zhangsn的主目录
/lib – 基础共享库
在/lib目录中存储的是/bin和/sbin中二进制文件(应用程序)需要的库文件。在/usr/bin下的应用程序依赖的库通常在/usr/lib目录下面。
/lost+found – 可恢复的文件
每一个文件系统都有一个lost+found目录。如果文件系统崩溃,在系统下次启动的时候会进行数据检查。在检查的过程中如果发现有数据冲突的文件就会将其放入该目录中。这样,你就可以试着手动恢复该文件。
/media – Removable Media
在目录/media下面包含的子目录是一些可插拔设备的挂载点。当一些可插拔设备插入电脑时,在该目录下会自动创建子目录,并进行挂载。
/mnt – 临时挂载点目录
该目录通常是空的。主要用于临时挂载一些外部文件系统。比如有多个数据磁盘的情况下,会将格式化的磁盘挂载到该目录下面。mnt字符是mount的缩写,也就是挂载的意思。
/opt – 自选软件包(Optional Packages)
自行安装的非常规软件通常会安装在该目录。
/proc – Kernel & Process Files
该目录也是一个虚拟目录,也就是并不是存储文件数据的目录。这个目录中存储的文件通常是用来获取操作系统内核内部信息或者进程内部信息的。

比如每个进程在该目录下都有一个子目录,而字母的名字就是进程ID。通过cat命令对该目录下的文件进行读取,可以获取进程的详细信息。例如我们进入目录/proc/25下面,这个是进程ID为25的进程的信息,通过ls命令可以看到如下内容。
TIM图片20191110140744.png
图8 进程详细信息
/root – root主目录
目录/root是root用户的主目录。root用户的主目录并不是在/home下面,而是在根目录下面。这一点需要注意。
/run – 应用程序状态文件
这个目录是比较新的目录,用于应用程序存储经常变化的文件,比如文件锁、进程ID或者套接字等等。
/sbin – 系统管理二进制文件
该目录与/bin目录类似,用于存储二进制文件。与/bin目录不同的地方是这个目录存储的是用于系统管理的二进制文件,比如磁盘格式化(mkfs)、磁盘分区(fdisk)和网络配置(ifconfig)等命令。

88

主题

1448

帖子

6196

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
6196
berners 发表于 6 天前 | 显示全部楼层
本帖最后由 berners 于 2019-11-10 22:21 编辑

微信截图_20191110213100.png
/selinux – SELinux虚拟文件系统(deepin无此文件夹
如果你的Linux发行版使用SELinux作为安全管理,那么该目录包含着SELinux使用的相关文件。
/srv – 服务数据
该目录存储具体服务提供的数据。通常该目录是空的。这个目录中的数据通常是提供给外部的,比如Web网站存储的用户信息。这里需要注意与/var和/tmp的区别,前者是提供给外部用户的,而两者则是应用自己使用的,而且/tmp中的数据重启后会丢失。
1573393812(1).png
/tmp – 临时文件
应用程序产生的临时数据通常存储在该目录中。该目录有一个特点,就是系统重启后目录中的数据将被清理。
/usr – User Binaries & Read-Only Data
与系统使用的应用程序和文件不同,在/usr目录下存储的是用户使用的应用程序的文件。比如/bin下面存储的系统二进制文件,而/usr/bin下面则是用户使用的二进制文件。/lib下面存储的系统库文件,而/usr/lib下面存储的是用于应用程序使用的库文件。
/var – 变量数据文件
/var目录是/usr目录对应的可写目录,在/usr目录中的内容只读的,而/var则是可写的。日志文件和正常操作中的一些写入操作通常会写入/var目录。例如,日志文件通常存储在/var/log中。
好了,关于Linux目录的内容就介绍到这里,相信通过本次介绍,大家对Linux的目录和文件会有更加深刻和细致的了解。在以后的工作中也能更加合理的使用这些目录了。


linux根目录:.png

评分

参与人数 3贡献 +9 收起 理由
aida + 3 加分鼓励 : )
jzc + 3 加分鼓励 : )
wtz + 3 加分鼓励 : )

查看全部评分

0

主题

5

帖子

98

积分

-r--------

Rank: 1

积分
98
losenper 发表于 6 天前 来自移动端 | 显示全部楼层
安卓基于Linux,多玩手机这些目录都有

3

主题

54

帖子

707

积分

-r--r--r--

Rank: 3Rank: 3

积分
707
loaden 发表于 6 天前 | 显示全部楼层
感谢分享,写的很好,学习了。

0

主题

69

帖子

221

积分

-r--r-----

Rank: 2

积分
221
cdh 志愿者 发表于 6 天前 | 显示全部楼层
干货,顶起来
OS:DEEPIN 15.11
CPU  I5-6500,
内存8G,
硬盘120G+1T,
显卡N卡  GTX1050TI ,
显示器:海信 55寸
13818778688

45

主题

863

帖子

2631

积分

-rw-rw-r--

Rank: 5Rank: 5

积分
2631
QQ
wcswcs4 志愿者 发表于 5 天前 | 显示全部楼层
好料要支持一下。

10

主题

449

帖子

1833

积分

-rw-rw-r--

Rank: 5Rank: 5

积分
1833
QQ
cuixiaofei 志愿者 发表于 4 天前 | 显示全部楼层
大佬,可以转载吗,注明出处的?

点评

不要转载,这样子引流到deepin论坛,增加用户量  发表于 4 天前

3

主题

29

帖子

97

积分

-r--------

Rank: 1

积分
97
wangjun1026 发表于 4 天前 | 显示全部楼层
顶一下

9

主题

68

帖子

248

积分

-r--r-----

Rank: 2

积分
248
kubol 发表于 4 天前 | 显示全部楼层
很好,顶顶顶~

37

主题

2216

帖子

8062

积分

-rw-rw-rw-

Rank: 6Rank: 6

积分
8062
QQ
Guumi 志愿者 发表于 4 天前 | 显示全部楼层
很详细,不错,顶一下!
深度  deepin OS  双硬盘单系统
桃: Lenovo V480sA-IFI
源: Intel Core I5-3210M @2.50GHz X 4
渔: Intel(R) HD Graphics 4000 + NVIDIA GeForce GT 635M(2GB)
具: 4G DDR3L + 0G DDR3 1600MHz   mSATA SSD 128G + 1T HDD
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回版块 返回顶部