Linux学习:Linux目录结构

435 阅读6分钟

Linux学习:Linux目录结构

目录结构基本介绍:

    linux的文件系统采用级层式的树状目录结构,在此结构中的最上层是根目录`/`,
然后在此目录下再创建其它目录。
    深刻理解linux树状文件目录是非常重要的
    在linux世界里,一切皆文件

树状图示意图

image.png

目录结构详解

image.png / - 根目录

顾名思义,根目录就是所有目录所在的目录,它是Linux中所有目录的根,从某种概念上讲,它有点类似于Windows中的磁盘驱动器符号。之后将会看到,所有其他目录都是以/开头的。

 

/bin - 存放重要的用户二进制文件目录

bin是binary的缩写,/bin目录存放了非常重要的用户二进制文件,其实就是一些程序。需要特别说明的是,/bin中存放的都是在单用户维护模式下还能被操作的命令,这些命令可以被root和普通用户使用。在/bin中我们可以看到例如chmod、du这些我们经常使用的Linux命令程序。

 

/boot - 存放系统启动时需要文件的目录

/boot中存放的主要是系统启动时需要用到的文件,比如EFI、GRUB以及Linux内核。

 

/dev - 设备文件目录

Linux将所有东西都看成文件,设备也不例外,不论是实体的硬件设备还是虚拟设备。实体硬件比如第一块被检测到的硬盘会被挂载到/dev/sda,第二块会被挂载到/dev/sdb,以此类推。虚拟设备比如null、random、stderr、stdin和stdout。

 

/etc - 配置文件目录

etc的含义是Et cetera,表示一些相关的其他东西,/etc从UNIX早期开始就被用来存放配置文件,一直沿用至今。需要注意的是,/etc中存放的是系统配置文件,特定用户的配置文件放在每个用户的/home目录下。

 

/home - 用户目录

/home目录中存放的是每个用户的用户目录,比如有一个用户叫tom,/home/tom就是他的用户目录,每个用户的用户目录中存放的用户数据和用户配置文件,比如每个用户的.bashrc文件、.ssh目录等。普通用户只能访问自己的用户目录而不能访问别人的,root用户则没有此限制。

 

/lib - 重要的共享库目录

/lib目录中存放的是/bin和/sbin中那些重要的二进制文件(程序)需要的共享库。另外/usr/bin中二进制文件(程序)需要的共享库都存放在/usr/lib。

 

/lost+found - 恢复文件目录

每个Linux文件系统都有/lost+found目录,当文件系统崩溃时,在下次启动时将会进行文件系统自检,任何在崩溃过程中损坏的文件都将被放入/lost+found,你可以尝试找到并恢复这些文件。

 

/media - 可删除媒介目录

当你将一些可删除媒介挂(比如CD,U盘,光驱等)载到计算机上时,系统会在/media下自动创建子目录,之后就可以通过访问这个子目录来访问媒介。比如你在电脑上插入CD,在/media目录下就会自动生成一个子目录,你可以通过访问这个子目录来访问CD的内容。

 

/mnt - 临时挂载点目录

mnt是mount的缩写,各种设备挂载到系统后,会在/mnt目录下生成相应设备的目录,比如挂载光驱、文件系统、CD等。

 

/opt - 可选包目录

opt是Optional的意思,系统中安装的可选软件包被存放在/opt目录中。

 

/proc - 内核和进程文件目录

/proc是一个虚拟目录,并不包含任何标准文件。当系统启动后,会对当前内核和硬件信息进行检测,并将这些信息放在这个目录中(其实都在内存中)。你可以使用cat /proc/meminfo来查看关于内存的一些信息,或者使用cat /proc/version来查看Linux内核信息。

 

/root - root用户的home目录

和一般用户的home目录放在/home/{用户名}不同,root用户的home目录专门被放在/root。

 

/run - 应用程序状态目录

/run目录用来存放应用程序在运行期间需要的一些短暂存在的文件,比如socket和pid文件,这些文件对这些应用程序的运行很重要,因此不能把他们放在/tmp目录下,因为/tmp目录下的文件有可能会被系统清空。

 

/sbin - 系统管理员用的二进制文件目录

/sbin目录和/bin目录有些类似,都是存放二进制文件。比较特殊的是,/sbin目录存放的都是系统管理的命令程序,一般只有root用户能使用。

 

/srv - 服务数据目录

/srv目录主要用来存放一些系统提供的网络服务的数据,如果你在机器上运行一个HTTP服务器来对外提供静态文件时,/srv/http目录将存放这些静态文件,如果你运行一个FTP服务器对外提供文件,则/srv/ftp目录将存放这些文件。

 

/tmp - 临时文件目录

应用程序会将一些临时文件存放在/tmp目录中,一般来说当系统重启后,/tmp下的文件会被自动清空,也会被一些监控程序清空。

 

/usr - 用户二进制文件和只读文件目录

/usr目录下存放的是用户使用的程序,可以很明显地发现,Linux将普通用户和系统使用的程序分开存放,比如上面提到过,系统使用的一些重要程序存放在/bin,而那些不重要的程序就被放在/usr/bin。不太重要的系统管理程序存放在/usr/sbin而不是/sbin。usr也被称为UNIX Software Resource,这是比较早期的说法。下面是/usr目录下常见的几个子目录的含义:

 

/usr/bin 存放用户命令

/usr/include 存放编程语言的头文件和包含文件

/usr/lib 存放各个应用程序的库函数和目标文件

/usr/local 存放系统管理员下载的软件的安装目录

/usr/sbin 存放不常用的系统命令

/usr/src 存放源码

/var - 变动数据目录

/var一般用来存放经常变动的数据,比如日志文件和缓存文件。下面是/var目录下常见的几个子目录的含义:

  /var/cache 存放应用程序运行产生的临时文件

/var/lib 存放程序在执行过程中需要使用到的数据文件,每个软件在此目录下都有自己独自的目录

/var/lock 存放程序的锁状态

/var/log 存放各种日志文件

/var/mail 存放个人电子邮箱

/var/run 有些程序在运行后,会将他们的pid、socket文件放置到这个目录中

Linux小结

Linux的目录中有且只有一个根目录

Linux的各个目录存放的内容是规划好的,不用乱放文件

Linux是以文件的形式管理我们的设备,因此Linux系统一切皆文件

Linux的各个文件目录下存放什么内容,要有认识

文档更新日期

2022/07/19