Skip to content

Linux 各个主要目录的意义

Linux 的目录繁多,下面一一介绍一下目录的作用:

dev  home  media opt  bin 
root srv   tmp   var  boot etc lost+found  
mnt  proc  run   snap sys  usr 
(bin -> /usr/bin) (sbin -> /usr/sbin) (各种libxxx ->usr/libxxx)

预备知识——文件系统的类型

Linux 有四种基本文件系统类型:普通文件、目录文件、连接文件和特殊文件,可用file命令来识别.

  1. 普通文件:

如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、more、vi、emacs来察看内容,用mv来改名。

  1. 目录文件:

包括文件名、子目录名及其指针。它是 Linux 储存文件名的唯一地方,可用ls列出目录文件。

  1. 连接文件:

是指向同一索引节点的那些目录条目。用ls来查看是,连接文件的标志用l开头,而文件面后以"->"指向所连接的文件。

  1. 特殊文件:

Linux 的一些设备如磁盘、终端、打印机等都在文件系统中表示出来,则一类文件就是特殊文件,常放在/dev目录内。例如,软驱A称为/dev/fd0。 Linux 无C:的概念,而是用/dev/had来自第一硬盘。

dev

/dev 目录是 devices 的缩写,它包含了所有的设备文件,包括硬件设备和虚拟设备。在 Linux 中,一切皆文件,设备也不例外。在 /dev 目录下,每个设备都有一个相应的设备文件,可以通过这些设备文件来操作设备。

例如,硬盘的设备文件是 /dev/sda,光驱的设备文件是 /dev/cdrom,鼠标的设备文件是 /dev/input/mice,键盘的设备文件是 /dev/input/eventX

home

/home 目录是 Linux 操作系统中的用户主目录,每个用户都有一个独立的目录,用于存储该用户的个人文件和配置信息。例如,用户 mtds 的主目录就是 /home/mtds

media

/media 目录是 Linux 操作系统中自动挂载可移动设备的目录。当插入 USB、SD 卡等可移动设备时,系统会自动将其挂载到 /media 目录下的相应子目录中。

opt

/opt 目录是 Linux 操作系统中的可选软件包目录,通常用于存放第三方软件。这些软件包通常不是系统默认安装的软件包,而是由用户自行安装的。

具体地,比如在Fedora Core 5.0中,OpenOffice 就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;

通过源码包安装的软件,可以通过如下命令行指定安装目录 :

./configure --prefix=/opt/ [ 自定义目录 ] //其中 [ 自定义目录 ] 替换为 你自己的 安装目录

bin

这里存放了标准的(或者说是缺省的)linux的工具,比如像“ls”、“vi”还有“more”等等。通常来说,这个目录已经包含在你的“path”系 统变量里面了。什么意思呢?就是:当你在终端里输入ls,系统就会去 /bin 目录下面查找是不是有ls这个程序。

Note

在 Ubuntu 20.04 中,/bin 是指向 /usr/bin 的链接,因此 /bin 目录实际不再存在。

sbin

大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和 /usr/sbin 或 /usr/local/sbin 目录是相似的;

我们记住一点就行,凡是目录sbin中包含的都是root权限才能执行的。

Note

在 Ubuntu 20.04 中,/sbin 是指向 /usr/sbin 的链接,因此 /sbin 目录实际不再存在。

root

/root 目录是 Linux 操作系统中的超级管理员 root 的主目录,用于存储 root 的个人文件和配置信息。

srv

/srv 目录是 Linux 操作系统中的服务目录,用于存放本地服务的数据。例如,Web 服务器的网页文件就可以存放在 /srv/www 目录中。

tmp

/tmp 目录是 Linux 操作系统中的临时文件目录,用于存放临时文件。这些文件通常是由程序在运行过程中产生的,不需要长期保存。比如,对于某些程序来说,有些文件被用了一次两次之后,就不会再被用到,像这样的文件就放在这里。

Warning

有些linux系统会定期自动对这个目录进行清理,因此,千万不要把重要的数据放在这里。

var

/var 目录是 Linux 操作系统中的可变数据目录,用于存放系统运行过程中产生的数据。例如,日志文件就可以存放在 /var/log 目录中。此外,还有 /var/cache 目录用于存放缓存文件,/var/lib 目录用于存放应用程序的数据文件等,/var/spool 目录为打印机、邮件、代理服务器等脱机目录等。

boot

/boot 目录是 Linux 操作系统中的启动目录,用于存放启动相关的文件,如内核文件和引导程序。

etc

/etc 目录是 Linux 操作系统中的配置文件目录,用于存放系统和应用程序的配置文件。

lost+found

/lost+found 目录是 Linux 操作系统中的恢复目录,用于存放文件系统恢复时找到的损坏文件和目录。

具体地,在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损 坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

mnt

/mnt 目录是另一个挂载点,用于挂载临时文件系统,例如 CD-ROM、NFS 网络文件系统等等。与 /media 目录类似,当挂载一个临时文件系统时,该文件系统会出现在 /mnt 目录下的一个子目录中。

proc

/proc 目录是一个虚拟文件系统,它不包含任何磁盘上的文件,而是由内核动态生成的。该目录下的文件提供了有关系统内核和进程的信息,例如系统内存使用情况、运行进程的信息等等。

run

/run 目录是一个临时文件系统,用于存储系统运行时的临时文件,例如 PID 文件、锁文件等等。该目录下的文件在系统启动时创建,在系统关闭时被删除。

sys

/sys 目录是一个虚拟文件系统,它提供了对系统硬件设备的访问和控制接口。该目录下的文件可以用于查看和修改硬件设备的状态,例如 CPU 和内存使用情况、硬件设备的驱动程序信息等等。

usr

/usr 目录是系统中最大的目录之一,它包含了许多用户程序和文件,例如系统命令、文档、库文件、头文件等等。该目录下的子目录通常按照程序类型进行组织,例如 /usr/bin 存储可执行文件,/usr/lib 存储库文件等等。

/usr/local

这里主要存放那些手动安装的软件,即不是通过 apt-get 等安装的软件。它和 /usr 目录具有相类似的目录结构。让软件包管理器来管理 /usr 目录,而把自定义的脚本(scripts)放到 /usr/local 目录下面,我想这应该是个不错的主意。

/usr/share

/usr/share 系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc/usr/share/man 帮助文件。

snap

/snap 目录是用于存储 Snap 包的目录。Snap 是一种跨 Linux 发行版的软件包格式,它包含了应用程序和所需的依赖项,可以在不同的 Linux 发行版之间移植。

lib, lib32, lib64, ...

在 Linux 操作系统中,lib 文件夹通常是用来存储共享库文件的。

共享库文件是一些可重用的代码模块,它们提供了一些常用的功能,例如输入输出、字符串处理、数学计算等等。

这些共享库文件可以被多个程序共享使用,从而减少了重复代码的开销,提高了程序的运行效率。在 Linux 系统中,共享库文件的命名方式通常是以 "lib" 开头,并以 ".so" 结尾。

  • 例如,"libpthread.so" 是一个 POSIX 线程库的共享库文件。

Note

在 Ubuntu 20.04 中,/libxxx 是指向 /usr/libxxx 的链接。