
本文介绍下 Linux 系统中各个目录都起到一个什么样的作用。对于初次接触 Linux 系统的时候,打开终端输入 ls /,面对满屏的目录名一脸茫然:/bin、/boot、/etc……这些名字像密码一样,让人摸不着头脑。
其实 Linux 的目录结构就像一棵倒挂的大树,根目录/是树干,其他目录是树枝和树叶。每个用户的家目录(比如/home/你的用户名)则是树上的一个‘鸟巢’,你的私人文件、照片、代码都在这里安家。而系统文件则像树的‘根系’,藏在/usr、/bin 等目录中,默默支撑着整个系统的运行。
Linux 文件系统采用层次化的结构来组织文件和目录,其中每个目录都有特定的用途。下面是由码云笔记 Linux 文件系统中各个主要目录及其详细用途的讲解:
根目录 /
- 描述:根目录是整个文件系统的起始点,所有其他文件和目录都是从这个目录派生出来的。
- 用途:作为系统的基础,所有文件和目录都在此目录下形成树状结构。
/bin
- 描述:这个目录包含用户在系统启动和运行过程中需要的基本命令的可执行文件。
- 用途:存放常用的用户命令,例如:
ls:列出目录内容。 cp:复制文件。 mv:移动或重命名文件。 rm:删除文件。/sbin
- 描述:与 /bin 类似,但包含系统管理命令,通常只有超级用户(root)可以使用。
- 用途:存放用于系统管理的命令,例如:
shutdown:关机命令。 reboot:重启命令。 ifconfig:网络接口配置命令。/etc
- 描述:这个目录包含系统的全局配置文件。
- 用途:存放各种程序和服务的配置文件,例如:
/etc/passwd:存储用户账户信息。 /etc/fstab:定义文件系统的挂载点。 /etc/hosts:本地主机名解析配置。 /etc/network/interfaces:网络接口配置。/dev
- 描述:设备文件目录,包含对系统中硬件设备的访问接口。
- 用途:存放设备文件,这些文件表示内存、硬盘、USB 设备等。例如:
/dev/sda:第一个 SATA 硬盘。 /dev/null:空设备,任何写入其中的数据都会被丢弃。/proc
- 描述:一个虚拟文件系统,它提供了关于系统和内核运行时状态的信息。
- 用途:存放进程和系统信息的接口,包括:
/proc/cpuinfo:CPU 信息。 /proc/meminfo:内存使用情况。 /proc/[pid]:特定进程的相关信息,其中[pid]是进程 ID。/sys
- 描述:另一个虚拟文件系统,提供内核及其设备的详细信息和管理接口。
- 用途:主要用于内核空间和用户空间之间的交互,提供有关设备驱动和硬件信息。例如:
/sys/class:设备类别。 /sys/block:块设备信息。/usr
- 描述:包含用户程序和只读数据,是系统中大多数用户应用和工具的存放位置。
- 用途:存放更高级别的用户命令和库,包含多个子目录:
/usr/bin:大多数用户命令的可执行文件。 /usr/sbin:系统管理员命令,不同于/sbin,该目录中的命令通常不用于正常操作。 /usr/lib:用户程序的共享库。 /usr/share:共享数据和文档,如帮助文件和图标。/var
- 描述:可变数据文件目录,包含不断变化的数据。
- 用途:存放日志文件、邮件队列、缓存等,例如:
/var/log:系统和服务的日志文件。 /var/tmp:临时文件,可以跨重启保存。 /var/spool:邮件和打印任务的存储位置。/tmp
- 描述:临时文件存放目录,通常系统重启后会清空。
- 用途:用于存放短期使用的临时文件,所有用户都可以访问。
/home
- 描述:普通用户的主目录,每个用户在此目录下有自己的子目录。
- 用途:存储用户的个人文件和设置,例如:
/home/user1:用户 user1 的主目录。 用户的文档、下载、桌面等文件都存放在其主目录下。/root
- 描述:超级用户(root)的主目录。
- 用途:存放 root 用户的个人文件和配置,类似于普通用户的/home 目录。
/media
- 描述:临时挂载点,用于自动挂载可移动媒体,如 USB 闪存驱动器和 CD/DVD。
- 用途:当插入 USB 或光盘时,系统通常会在此目录下创建相应的子目录来访问这些媒体。
/mnt
- 描述:通常用于临时挂载文件系统的目录。
- 用途:系统管理员可以手动在该目录下挂载其他文件系统。
/lib
- 描述:/lib 目录包含系统运行所需的共享库文件和内核模块。
- 用途:
- 存放由 /bin 和 /sbin 中的可执行文件所依赖的共享库(例如 .so 文件)。
- 在 32 位系统中,通常会有一个子目录 /lib/i386 或 /lib/x86_64 用于存放特定架构的库文件。
- 动态链接库(如标准 C 库 libc.so)在这里提供给其他程序调用,确保程序可以正确运行。
- 除了共享库外,某些设备驱动模块也会存放在 /lib/modules 下。
/boot
- 描述:/boot 目录用于存放引导加载程序和内核文件。
- 用途:
- 包含用于启动操作系统的重要文件,如 Linux 内核 (vmlinuz) 和初始 RAM 磁盘镜像 (initrd 或 initramfs),这些文件是系统启动时所需的。
- 引导加载器(如 GRUB)配置文件也存放在此目录下,通常为 grub/ 子目录。
- config-*文件则保存了内核的配置信息,便于用户查看。
/opt
- 描述:/opt 目录用于安装附加的第三方应用程序。
- 用途:
- 适用于那些不属于系统标准软件包管理的巨型应用或商业软件。
- 每个应用程序通常会在此目录下有一个独立的子目录,例如/opt/mysql或/opt/google/chrome,以便于管理和维护。
- 这种结构使得不同软件之间的依赖关系更加清晰,并且方便卸载。
/lost+found
- 描述:/lost+found是用于存放丢失文件的特殊目录。
- 用途:
- 在文件系统检查(如运行 fsck 命令)时,如果发现一些文件系统的结构损坏或者文件丢失,系统会将这些文件恢复到 /lost+found 目录中。
- 丢失的文件会被重命名为数字(代表其 inode 号),用户可以根据需要尝试恢复这些文件。
- 这个目录通常是空的,但在文件系统遭遇问题时,对数据恢复具有重要意义。
除了上述目录,还有一些其他常见的目录:/srv
- 描述:该目录用于存放服务数据,特定于某个服务的数据。
- 用途:例如,Web 服务(如 Apache 或 Nginx)可能会在/srv/www下存放网站文件。FTP 服务可能在/srv/ftp下存放文件。
/run
- 描述:/run是一个临时文件系统,存放运行时数据。
- 用途:包含当前运行的服务和系统状态的信息,例如 PID 文件、锁文件等。
- 在系统启动时创建,系统关闭时会被清空。
/snap
- 描述:用于存放通过 Snaps 安装的应用程序。
- 用途:Snap 是一种软件包管理系统,允许用户从 Snap Store 下载和安装应用程序。每个 Snap 包会在此目录下有自己的子目录。
在 Linux 的世界里,目录不仅是文件的容器,更是逻辑的起点。掌握它,你就握住了通往系统深处的钥匙。https://mybj123.com/28670.html