您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

一篇文章讲清Linux操作系统的目录结构

时间:2021-03-11 13:58:09  来源:  作者:

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

一篇文章讲清Linux操作系统的目录结构

图1 Linux交互界面

这就给大家造成了很大的学习障碍。其实如果登录桌面版(比如Ubuntu)会发现其实跟Windows还是很像的。学习门槛也低很多。

一篇文章讲清Linux操作系统的目录结构

图2 图形界面目录结构

桌面版只是对底层做了一些封装,本质上来说,Linux操作系统中一切皆文件。不仅仅存储数据的磁盘是文件,其它设备也是文件。操作系统内部的信息也是以文件的形式呈现的,比如CPU信息、内存信息和进程信息等等。

因此,如果想学习Linux操作系统,非常有比较了解一下整个文件系统。其实有一个专门的文档来介绍Linux的目录结构,这个文档名为文件系统层次标准(Filesystem Hierarchy Standard,简称FHS)。但是这个文档非常长, 而且在Linux的目录结构中有些目录并不在该文档中,因此本文简要介绍一下Linux的核心目录。

/ – 根目录

首先我们介绍一下Linux下的根目录。Linux的目录结构就像一棵倒着的大树,最底层是树干,然后是分支,层层细分。而根目录是Linux最底层的目录,就像一棵大树的树干一样。

任何内容都位于根目录之下,根目录通过一个路径符号/表示。如果非要找个类比的话,可以将根目录理解为Windows下面的C:目录。但是严格来说并不一样,Linux下的"/"是所有内容(包括文件目录、设备和文件等)的根,而Windows下的C:并不是,因为如果有多个磁盘或者多个分区,那Windows下可能还有D:或者E:。

我们可以通过执行命令cd /将当前工作路径切换到根目录。并通过命令tree -L 1显示根目录的所有下一级目录。具体如图3所示。本例中只显示了一级子目录,当然也可以通过-L 2显示二级子目录,但结果可能会占满整个屏幕。

一篇文章讲清Linux操作系统的目录结构

图3 根目录示例

/bin – 用户基础二进制文件目录

目录/bin是根目录的一级子目录。在该目录中包含着最为基础的用户二进制文件,也就是应用程序。这个目录非常像Windows下的Programs目录。

并非所有的应用程序都存储在这个目录下面,有些不是特别基础的程序会存储在/usr/bin目录下面。比如Chrome浏览器等,或者用户自己安装的一些程序通常会在/usr/bin下面。而系统应用程序则通常会在该目录下面,比如ls、mkdir和cp等等。

如果你使用的桌面版的操作系统,可以通过GUI看到该目录下的内容。下面这张图是一个具体的例子。

一篇文章讲清Linux操作系统的目录结构

图4 二进制目录

/boot – 静态启动文件

在目录/boot下面包含的文件是用于启动操作系统的文件。比如GRUB boot loader文件和操作系统内核等。但是boot loader的配置文件并没有在这里,而是在/etc目录中。

/cdrom – 光盘安装点

目录/cdrom并不是FHS标准的一部分,但是我们在绝大多数发行版中都可以看到。该目录是光盘的临时挂载点。

/dev – 设备文件

在Linux下面,设备也是一个文件,比如磁盘、优盘或者光盘等。包括无线网卡、摄像头和串口等都是一个文件。而通常这些文件都是在/dev目录下面,大家可以切换到该目录下看看具体的内容。

一篇文章讲清Linux操作系统的目录结构

图5 设备目录

其中图是/dev目录的一个局部截图。在该目录下面最常见的可能就是/dev/sda这种文件,该文件表示一个SCSI磁盘。

处理实体设备外,在该目录下面还有很多伪设备。比如/dev/random表示一个产生随机数的设备,/dev/loop0则是一个将本地文件映射为磁盘的虚拟设备。这些伪设备有的时候非常用于,我们经常使用这些设备做一些测试。

一篇文章讲清Linux操作系统的目录结构

图6 GUI目录

/etc – 配置文件

操作系统和应用程序的配置文件通常都统一存储在一个目录下面,这个目录就是/etc。很多配置文件都已文本文件的形式存储在这里。我们可以通过文本编辑器修改配置项。比如网络的IP地址、Nginx的配置和系统日志的配置等等都可以在这里找到。

/home –主目录

这个目录称为主目录。在Linux操作系统下面通常每个用户都有一个自己的目录,该目录就在/home下面。例如本例中有一个名为zhangsn的用户,该用户的主目录在/home下如图7所示。

用户的主目录下面包含这数据文件和用户相关的配置文件。通常一个用户只能修改其目录下的文件,只有获得授权的情况下才能访问其它文件。

一篇文章讲清Linux操作系统的目录结构

图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

该目录也是一个虚拟目录,也就是并不是存储文件数据的目录。这个目录中存储的文件通常是用来获取操作系统内核内部信息或者进程内部信息的。

一篇文章讲清Linux操作系统的目录结构

图8 proc目录

比如每个进程在该目录下都有一个子目录,而字母的名字就是进程ID。通过cat命令对该目录下的文件进行读取,可以获取进程的详细信息。例如我们进入目录/proc/258下面,这个是进程ID为258的进程的信息,通过ls命令可以看到如下内容。

一篇文章讲清Linux操作系统的目录结构

图8 进程详细信息

/root – root主目录

目录/root是root用户的主目录。root用户的主目录并不是在/home下面,而是在根目录下面。这一点需要注意。

/run – 应用程序状态文件

这个目录是比较新的目录,用于应用程序存储经常变化的文件,比如文件锁、进程ID或者套接字等等。

/sbin – 系统管理二进制文件

该目录与/bin目录类似,用于存储二进制文件。与/bin目录不同的地方是这个目录存储的是用于系统管理的二进制文件,比如磁盘格式化(mkfs)、磁盘分区(fdisk)和网络配置(ifconfig)等命令。

一篇文章讲清Linux操作系统的目录结构

图9 系统命令

/selinux – SELinux虚拟文件系统

如果你的Linux发行版使用SELinux作为安全管理,那么该目录包含着SELinux使用的相关文件。

/srv – 服务数据

该目录存储具体服务提供的数据。通常该目录是空的。这个目录中的数据通常是提供给外部的,比如Web网站存储的用户信息。这里需要注意与/var和/tmp的区别,前者是提供给外部用户的,而两者则是应用自己使用的,而且/tmp中的数据重启后会丢失。

/tmp – 临时文件

应用程序产生的临时数据通常存储在该目录中。该目录有一个特点,就是系统重启后目录中的数据将被清理。

/usr – User Binaries & Read-Only Data

与系统使用的应用程序和文件不同,在/usr目录下存储的是用户使用的应用程序的文件。比如/bin下面存储的系统二进制文件,而/usr/bin下面则是用户使用的二进制文件。/lib下面存储的系统库文件,而/usr/lib下面存储的是用于应用程序使用的库文件。

/var – 变量数据文件

/var目录是/usr目录对应的可写目录,在/usr目录中的内容只读的,而/var则是可写的。日志文件和正常操作中的一些写入操作通常会写入/var目录。例如,日志文件通常存储在/var/log中。

好了,关于Linux目录的内容就介绍到这里,相信通过本次介绍,大家对Linux的目录和文件会有更加深刻和细致的了解。在以后的工作中也能更加合理的使用这些目录了。



Tags:Linux操作系统   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、背景介绍作为一名渗透测试工作人员(或者小白),在我们的日常工作或者学习中,我们不可能时时刻刻将自己的个人电脑(安装好Kali Linux的个人主机)带在身边,当我们没有带自己的个人...【详细内容】
2021-12-27  Tags: Linux操作系统  点击:(3)  评论:(0)  加入收藏
程序和硬件之间隔了一个内核,比如程序要想加载磁盘上的数据,那么需要内核来完成,将程序加载到内核的pagecache中(4k),然后用户空间的所有程序都可以访问这个pagecache,如果有程序...【详细内容】
2021-03-22  Tags: Linux操作系统  点击:(256)  评论:(0)  加入收藏
经常在Windows环境下工作的同学在初次使用Linux操作系统的时候可能有种不知所措的感觉。 Linux操作系统理念是一切皆文件。因此当我们登入Linux操作系统内部的时候看到的是...【详细内容】
2021-03-11  Tags: Linux操作系统  点击:(267)  评论:(0)  加入收藏
1、sudo yum install -y yum-utils device-mapper-persistent-data lvm2 注释:yum-utils 安装的工具包,主要是为了简化我们安装过程中设置安装源的配置过程device-mapper-pers...【详细内容】
2020-08-31  Tags: Linux操作系统  点击:(97)  评论:(0)  加入收藏
常用逻辑组织方式有两种,即无结构文件和有结构文件1.无结构文件无结构文件是指文件内部不再划分记录,是由一组相关信息组成的有序字符流,又称为流式文件其长度直接按字节计算。...【详细内容】
2020-08-16  Tags: Linux操作系统  点击:(148)  评论:(0)  加入收藏
CAD软件作为工程类专业必不可少的生产力工具,但是,在Linux系统下的CAD软件有哪些可以推荐呢?我们收集了五款可以在深度deepin、UOS、麒麟等国产Linux系统下可以用的CAD软件:(1)中...【详细内容】
2020-08-10  Tags: Linux操作系统  点击:(621)  评论:(0)  加入收藏
用户程序的地址空间内存也称主存,是指CPU能直接存取指令和数据的存储器,是现代计算机系统进行操作的中心。外存也称辅存,是指一些外部的存储设备,例如硬盘、软盘和磁带等存储器...【详细内容】
2020-08-04  Tags: Linux操作系统  点击:(129)  评论:(0)  加入收藏
作业状态作业从提交给系统、直到它完成任务后退出系统前,在整个活动过程中它会处于不同的状态。通常,作业状态分为四种:提交、后备、执行和完成,如图所示。作业的基本状态1.提交...【详细内容】
2020-07-28  Tags: Linux操作系统  点击:(181)  评论:(0)  加入收藏
明确先来先服务FCFS、时间片轮转RR、优先级三种常用的调度算法的实现思想,并在此基础上计算周转时间、带权周转时间、平均周转时间和平均带权周转时间。(一)先来先服务先来先服...【详细内容】
2020-07-27  Tags: Linux操作系统  点击:(141)  评论:(0)  加入收藏
如果你目前正在运行Windows 10,而最近开始考虑切换到Linux,有可能你仍然没有决定在设备上安装什么发行版。虽然Ubuntu、Linux Mint或elementary OS操作系统都可以很好地工作,但...【详细内容】
2020-07-14  Tags: Linux操作系统  点击:(78)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(13)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(21)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(21)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(34)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(26)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(16)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(24)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条