Linux目录分类说明

  • Post author:
  • Post category:linux


在Linux根目录下一般包括如下目录,这里就这些目录的特点做一些归纳。(centos8为例)


一、/var目录

/var目录是一个包含经常变化的文件的目录。它是Variable的缩写,也有些人解释为Versioned Archives。通常包含以下内容:

日志文件(log files):各种系统、应用程序和任务的日志文件,比如/var/log/messages、/var/log/syslog等;

邮件(mail):发送和接收的电子邮件信息,保存在/var/mail目录下;

打印机(printer):打印相关的临时文件和spool目录,保存在/var/spool目录中,包括打印队列等;

数据库(databases):数据库的运行和存储文件,如MySQL等;

软件包(packages):包括已安装的软件和库文件,保存在/var/lib目录下;

Lock文件(locks):锁定文件、运行进程的pid文件等,保存在/var/lock目录下;

运行目录(run):保存正在运行的进程的PID文件,保存在/var/run目录下。

/var目录具有独特的目录结构和用途,在Linux系统中起着重要的作用。在维护Linux系统的过程中,/var目录的管理和维护非常重要,可以防止系统出现意外故障或数据丢失。


二、/etc目录

/etc目录包含的是系统的配置文件。这些文件是系统启动时需要读取的文件,也包含了许多系统中程序所需的配置信息,可以看作是计算机系统的“系统设置”页面。该目录下文件通常可以分为以下几类:

系统配置文件:各种硬件设备及系统所需的配置文件,如网络配置文件(/etc/sysconfig/network)、系统启动文件(/etc/rc.d/rc.local)等。

软件配置文件:各种软件所需的配置文件,如DNS配置文件(/etc/resolv.conf)、SSH配置文件(/etc/ssh/sshd_config)等。

安全文件:包括密码文件和shadow文件,他们存储了所有用户及相应的密码和加密信息,以及一些涉及系统安全的配置文件,如sudo配置文件(/etc/sudoers)、防火墙配置文件(/etc/sysconfig/iptables)等。

脚本文件:包括各种脚本文件,如启动脚本(/etc/init.d/)、定时任务脚本(/etc/crontab)等。

/etc目录是一个非常重要的目录,它包含了对计算机系统运行的每个方面都是必不可少的文件。同时,因为它们是系统和应用程序的配置文件,所以他们可能会表现出同样对系统运行健康的重要性。错误的配置可能导致系统出于不稳定状态,而正确的配置可以增强系统的安全性、性能和功能。因此,对于Linux系统管理员而言,及时备份、更新和管理/etc目录的文件非常重要。


三、/dev目录

/dev目录是用于存储设备驱动程序的虚拟文件系统。/dev是Device的缩写。

/dev目录下的每个文件都是内核虚拟文件系统的一个接口,它们表示了计算机系统上的硬件设备、磁盘分区、终端设备等等。

/dev目录中存放的设备文件通常可以分为以下三类:

块设备(Block Device):代表像硬盘、光驱、U盘等可以随机访问的储存设备。它们在/dev目录中的名称通常是以“sd”(SCSI硬盘)或“hd”(IDE硬盘)开头的文件名,如 /dev/sda1 表示第一个SCSI硬盘的第一个分区。

字符设备(Character Device):代表串口、调制解调器、输入输出设备等。它们在/dev目录中的名称通常是以“tty”(teletype)开头的文件名,如 /dev/ttyS0 表示第一个串口设备。

网络设备(Network Device):代表网络卡。它们在/dev目录中的名称通常是以“eth”(Ethernet)开头的文件名,如 /dev/eth0 表示第一块网络卡设备。

/dev目录中的设备文件是Linux系统中非常重要的一部分,因为它们提供了访问硬件设备的接口。任何与设备相关的操作,在Linux中都是通过这些设备文件进行的。因此,理解/dev目录的作用和结构是非常重要的,特别是对于系统管理员和开发人员。


四、/boot目录

用于存储Linux内核和启动加载程序(Bootloader)相关的文件。这些文件是让计算机启动和加载操作系统所必需的。/boot目录通常包括以下一些文件和目录:

vmlinuz:它是内核的压缩镜像,是Linux操作系统的核心。它包含了操作系统启动的时候需要的所有驱动程序和其他的核心组件。

initrd.img:它是一个初始内存文件系统,包含了系统启动过程中可能需要的文件和驱动程序等。

grub目录:GRUB(GNU GRand Unified Bootloader)是最常用的启动加载程序,它允许用户选择并启动多个操作系统或内核版本。/boot/grub目录包含了GRUB配置文件和相关的引导加载程序。

memtest86+:它是一种系统内存测试工具,可以检测计算机硬件中的内存故障。

/boot目录是Linux系统启动所必需的,如果/boot目录中的文件或目录被修改或删除,操作系统可能无法正常启动。因此,管理员应该非常小心地处理/boot目录,尤其是在系统更新和升级时。

需要注意的是,/boot目录通常只用于存储引导和内核文件,不应存储其他数据文件。这是因为/boot文件系统通常很小,而且是在计算机启动时加载的,如果/boot目录被填满了其他文件,这可能会影响系统启动加载时间。


五、/srv目录

/srv目录是一种用于存储服务数据的标准化目录。其中,srv是“service”的缩写。

在Linux系统中,服务数据通常包括网站文件、文件共享、FTP上传目录等等。这些服务数据的路径通常是在服务配置文件中指定的,而/srv目录则提供了一种标准化的目录结构,使得管理员和开发人员能够轻松找到和管理这些服务数据。

/srv目录通常是空的,并不包含实际的服务数据,而是作为服务数据的根目录,在其中创建和管理服务数据的子目录。例如,/srv/http是一个常见的网站文件根目录,/srv/samba是一个常见的Samba文件共享根目录。

在标准化的Linux文件系统中,/srv目录是规定的标准目录之一,它独立于操作系统和软件安装的位置。这意味着无论您在哪个Linux系统上使用服务,都应该能够在/srv目录中找到相应的服务数据。此外,/srv目录的使用也有助于文件系统的整洁和简洁。

总的来说,/srv目录是一种用于存储服务数据的标准化目录结构,在Linux系统中广泛使用,有助于管理服务数据和文件系统的整洁性。


六、/usr目录

/usr目录是用于存储系统的次要文件、应用程序、库文件等。其中,usr是Unix Software Resource(Unix软件资源)的缩写。主要包括以下几个子目录:

/usr/bin:用于存储普通用户使用的命令和应用程序,如ls、cp等;

/usr/sbin:用于存储系统管理员使用的命令和应用程序,如fdisk、iptables等;

/usr/include:存放用于编译程序的头文件;

/usr/lib:存储和操作系统有关的库文件,包括动态链接库(.so文件)、共享对象文件(.a文件)等;

/usr/local:用于存储与操作系统无关的程序和文件,这些程序和文件是管理员自己或其他人编译的,而不是通过操作系统的标准包管理系统安装的;

/usr/share:包含其他程序、文档、图标、背景等共享文件;

/usr/games:存放游戏程序。

总的来说,/usr目录对于系统的正常运行并没有太大的影响,但它是Linux系统中重要的部分,对于管理员和程序员来说也是很重要的。/usr目录中的文件往往是系统安装时默认没有安装的或者许多软件共有的,而这些文件又是运行软件必须用到的,所以管理好/usr目录下的文件和子目录是非常有必要的。


七、/opt目录

/opt目录一般用于安装大型、独立的第三方软件,例如Java Runtime Environment(JRE)、.NET Core Framework等等。

/opt目录下的顶级目录通常是与软件包或其供应商的名称无关和无特定的命名方案有关的子目录。通常,这些软件包是以压缩文件或二进制文件的形式发布的,管理员可以将它们解压缩或在/opt目录中创建一个新目录,并将所有文件和目录复制到该目录中。

/opt目录是Linux版本的“Program Files”目录,它有助于将应用程序和数据分开,使系统更整洁。它还可以帮助管理多个不同版本的同一软件包或不同供应商的软件,使管理员的工作更加容易。

除了大型第三方软件之外,/opt目录也可以用于存储其他目录可写而不属于标准系统管理的软件和数据,例如虚拟机映像、分享数据等。但是,如果/opt目录被用于存储不属于系统管理的其他文件,则应将其妥善保护起来以防止未经授权的读取和修改。

总之,/opt目录是一个用于存储大型独立软件包的合理目录,它可以帮助管理员更好地管理第三方应用程序,提供更好的系统整洁性,并使不同版本的软件、以及软件和数据分开存储更加容易。


八、/sys目录

/sys目录是一种虚拟文件系统,用于显示和修改系统的硬件和驱动程序信息。该目录提供了与/sys中显示的虚拟文件对应的内核设备树(Device Tree)的信息,它同样也是由内核来维护。这里包含了许多文件和目录,其中包括以下一些重要的文件和目录:

/sys/devices:包含了系统所有设备的信息,每个设备都有一个对应的目录,里面包含了设备的驱动程序、设备文件名,以及与该设备相关的其他信息。

/sys/bus:包含了所有总线的信息,每个总线都有一个对应的目录,里面包含了总线的驱动程序、设备文件名以及与该总线相关的其他信息。

/sys/class:包含了所有设备类的信息,每个设备类都有一个对应的目录,里面包含了该设备类的属性和与该设备类相关的其他信息。

/sys/block:包含了所有的块设备(硬盘、U盘等)的信息,每个块设备都有一个对应的目录,里面包含了块设备的驱动程序、设备文件名以及与该块设备相关的其他信息。

/sys目录是一个虚拟文件系统,其中显示了Linux内核的许多硬件、设备、模块和其它内核功能的信息。它作为Linux系统配置和管理的一部分,不应被用户或应用程序直接修改。管理/sys目录需要系统管理员具备一定的系统知识和相关经验。


九、/home和/root目录

用于存放普通用户的主目录的地方。在Linux中,每个普通用户有一个对应的主目录,以用户名命名,主目录通常位于“/home”目录下,如“/home/username”。

每个用户在自己的主目录下拥有完全的读、写、执行权限。用户可以在自己的主目录下存储个人文件、配置文件、桌面文件以及其他重要数据,这些数据通常是受到用户密码保护的,只有该用户可以读取和修改。用户也可以在主目录下创建文件夹,在其中管理和组织自己的文件。它也是用户在系统中的默认起始工作目录。

/home目录默认情况下是可写的,但该目录通常由系统管理员进行维护和管理。管理员可以对/home目录进行空间配额和权限管理,以确保系统的稳定性和安全性。

在多用户环境中,/home目录的使用非常重要,因为它允许管理员、用户和软件将不同用户的数据隔离开来,可以更好地维护系统的安全性和可靠性。

“/root”目录是系统管理员(即root用户)的主目录,与普通用户的“/home”目录类似。

具体来说,“/root”目录是root用户的主目录,只有root用户才有访问权限。通常,root用户不应该将重要数据存储在/root目录下,而应该使用其他目录,以避免系统被黑客攻击后可能泄漏的数据引起的损失。

/root目录通常包括一些系统级别的配置和数据文件,例如系统配置文件、日志文件、密码文件等等。管理员可以使用/root目录来管理和维护系统的软件和配置。

需要注意的是,“/”(根目录)和“/root”(root用户的主目录)是不同的目录。在Linux系统中,/根目录包含了所有其他目录和文件,而/root目录只包含root用户的文件和目录。因此,/root目录可以视为在根目录下的一个文件夹。


十、其他目录

/media目录:该目录用于自动挂载可移动设备,如U盘、CD/DVD等。当设备被插入计算机时,系统会自动将其挂载到/ media目录下的一个子目录中。

/mnt目录:该目录用于手动挂载文件系统,例如在安装新硬盘时挂载磁盘分区。

/proc目录:该目录是一个虚拟文件系统,它包含有关正在运行的进程的详细信息。该目录下的文件和子目录提供了进程、内存、网络、硬件等各种信息。

/run目录:该目录在许多Linux版本中用于存储运行时信息,如PID文件(进程号)、套接字文件(socket)和其他临时文件。它旨在代替/ var/run目录,并在开机时自动挂载。

/tmp目录:该目录用于存储临时文件,例如安装程序或解压文件等。通常,/tmp目录下的文件在系统重新启动后会被删除。



版权声明:本文为ryanzzzzz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。