Linux 目录结构说明

博客作者:联系请点击,搬运不易,希望请作者喝咖啡,可以点击联系博客作者

Linux 根目录(/)

Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:

  1. 所有目录都是由根目录衍生出来的;

  2. 根目录与系统的开机、修复、还原密切相关;

在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示。

  • . :代表当前的目录,也可以使用 ./ 来表示;

  • .. :代表上一层目录,也可以 ../ 来代表。

如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。

Linux一级目录及其作用

系统启动必须:

  • /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。

  • /etc:存放所有的系统需要的配置文件子目录列表,更改目录下的文件可能会导致系统不能启动。

  • /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中

指令集合:

  • /bin:存放着最常用的程序和指令

  • /sbin:只有系统管理员能使用的程序和指令。

外部文件管理:

  • /dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。

  • /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。

  • /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

临时文件:

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

  • /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。

  • /tmp:这个目录是用来存放一些临时文件的。

账户:

  • /root:系统管理员的用户主目录。

  • /home:用户的主目录,以用户的账号命名的。

  • /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

  • /usr/bin:系统用户使用的应用程序与指令。

  • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:内核源代码默认的放置目录。

运行过程中要用:

  • /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。

  • /proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。

扩展用的:

  • /opt:默认是空的,我们安装额外软件可以放在这个里面。

  • /srv:存放服务启动后需要提取的数据(不用服务器就是空)

因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件,如表 1 所示。

表 1

Linux一级目录及其作用

一级目录

功能(作用)

/

linux的最高目录,所有目录的父目录

/bin/

存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行

/boot/

系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等

/dev/

设备文件保存位置

/etc/

配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等

/home/

普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming

/lib/

动态库,系统调用的函数库保存位置

/lib64/

64位的动态库

/media/

挂载目录。系统建议用来挂载媒体设备,如软盘和光盘

/mnt/

挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区

/opt/

第三方安装的软件保存位置,这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中,一般习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件

/root/

超级管理员的家目录,普通用户主目录在 /home/ 下,root 主目录直接在“/”下

/run/

是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

/sbin/

保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看

/srv/

服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据

/tmp/

临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入,建议此目录中不能保存重要数据,最好每次开机都把该目录清空

/usr/

usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录

/var/

var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,一般习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

针对根目录中包含的子目录仅限于表 1,但除此之外,Linux 系统根目录下通常还包含表 2 中的几个一级目录。

表 2

其他一级目录及功能

一级目录

功能(作用)

/lost+found/

当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录

/proc/

虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的......

/sys/

虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息

Linux /usr目录

usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。 Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。

建议:/usr 目录应具备表 3 所示的子目录。

表 3

/usr 子目录及其功能

子目录

功能(作用)

/usr/bin/

存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行

/usr/sbin/

存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。

/usr/lib/

应用程序调用的函数库保存位置

/usr/XllR6/

图形界面系统保存位置

/usr/local/

手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置

/usr/share/

应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录

/usr/src/

源码包保存位置。手工下载的源码包和内核源码包都可以保存到这里,一般更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中

/usr/src/kernels/

内核源码保存位置,默认在没有安装Development Tools的时候,这个目录下是空的,可以通过yum install kernel-devel来安装对应的内核的devel

/usr/src/debug/

在进行系统调试的时候,放置自动生成的调试信息文件

/usr/include

C/C++ 等编程语言头文件的放置目录

Linux /var 目录

/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表 4 所示的这些子目录。

表 4

/var子目录及其功能

/var子目录

功能(作用)

/var/lib/

程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中

/var/log/

登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。

/var/run/

一些服务和程序运行后,它们的 PID(进程 ID)保存位置

/var/spool/

里面主要都是一些临时存放,随时会被用户所调用的数据

/var/spool/mail/

存放新收到的邮件

/var/spool/cron/

存放系统定时计划任务

/var/www/html/

RPM 包安装的 Apache 的网页主目录

/var/nis和/var/yp

NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录

/var/tmp

一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除

最后更新于