Linux系统的文件结构

1.总结构

1.1结构特点

  • 使用树形目录结构来组织和管理文件。

  • 整个系统只有一个根目录(树根),Linux的根目录用“/”表示

  • 其他所有分区以及外部设备(如硬盘、光驱等)都是以根目录为起点,挂接在目录树的某个目录中的,通过访问挂载点目录,即可实现对这些分区的访问。

2.各部分文件

2.1/bin

作用:存放基本用户命令(二进制可执行文件),这些命令是系统运行和维护所必需的,所有用户均可使用。

示例命令

ls:列出目录内容

cp:复制文件或目录

mv:移动或重命名文件或目录

cat:连接文件并显示输出

rm:删除文件或目录

这些命令通常是静态链接的,确保在系统启动时不依赖于其他库文件。

2.2 /boot

作用:存放的是系统启动所需的文件,包括一些连接文件以及镜像文件。

常见文件

  • vmlinuz:压缩的 Linux 内核镜像文件。

  • initrd.img:初始 RAM 盘,用于启动时加载必要的驱动程序和文件系统。

  • grub:GRUB 启动加载程序的配置文件和模块。

2.3/dev

作用:包含设备文件,Linux将硬件设备(如磁盘、键盘、USB等)抽象为文件。

常见文件

  • /dev/sda:第一个 SCSI 硬盘。

  • /dev/tty:终端设备。

  • /dev/null:空设备,丢弃所有写入其中的数据。

  • /dev/random:随机数生成器

这些设备文件允许用户和应用程序以文件的方式访问硬件设备。

2.4 /etc

包含所有的系统全局配置文件。这些文件定义了系统的各种设置和参数。

常见的配置文件和目录

  • /etc/passwd:用户账号信息文件。

  • /etc/fstab:文件系统挂载表。

  • /etc/hosts:主机名和 IP 地址对应表。

  • /etc/hostname:定义系统的主机名。

  • /etc/network/interfaces:网络接口配置文件(在基于 Debian 的系统中)

2.5/home

/home 目录是用户的主目录,每个用户在 /home 目录下都有一个以其用户名命名的子目录。用户的所有个人文件和配置文件都存放在这个子目录中。

常见的文件和子目录包括

  • ~/Documents:用户的文档目录。

  • ~/Downloads:用户的下载目录。

  • ~/Pictures:用户的图片目录。

  • ~/.bashrc:Bash Shell 配置文件。

  • ~/.profile:用户的环境设置文件。

用户目录的权限设置通常是这样的,只有该用户和超级用户(root)可以访问和修改其内容。这可以保护用户的隐私和数据安全。

2.6 /lib和/lib64

存放系统库文件(动态链接库,.so文件)和内核模块,供/bin/sbin中的程序使用。

常见的库文件包括 C 标准库(libc.so)、动态链接器(ld-linux.so)等。内核模块(如文件系统驱动、硬件驱动)通常位于 /lib/modules 目录中。

区别

  • /lib:32位库(在64位系统中可能被/lib64替代)。

  • /lib64:64位库。

2.7 /media

用于自动挂载可移动设备,如光盘、U 盘等。当这些设备插入时,系统会自动将其挂载到 /media 下的一个子目录中。例如,插入一个 U 盘后,系统可能会在 /media/user/USB 下自动创建一个目录并挂载该设备。

2.8 /mnt

用于临时手动挂载文件系统。系统管理员可以将外部存储设备(如 USB 驱动器、网络文件系统等)挂载到 /mnt 下的某个子目录中。例如,可以使用 mount /dev/sdb1 /mnt/usb 将一个 USB 驱动器挂载到 /mnt/usb

2.9 /opt

用于安装附加软件包。通常,第三方软件或自定义应用程序会安装在此目录下。每个软件通常会在 /opt 下有一个独立的子目录,例如 /opt/software。这种方式可以避免与系统的其他部分产生冲突,并便于管理和卸载。

2.10 /proc

/proc 目录是一个虚拟文件系统,提供内核和进程信息的实时接口(非真实文件)。这个目录中的内容并不实际存在于磁盘上,而是由内核在运行时动态生成的。/proc 目录提供了一种方便的方式来访问系统信息和进程数据。

常见的文件和目录包括

  • /proc/cpuinfo:显示 CPU 的信息,包括型号、速度和核心数。

  • /proc/meminfo:显示内存使用情况,包括总内存、可用内存和缓存。

  • /proc/uptime:显示系统的运行时间和空闲时间。

  • /proc/[pid]/:每个运行中的进程都有一个以其 PID(进程标识符)命名的子目录,包含该进程的详细信息,如状态、内存映射、打开的文件等。

/proc 目录中的信息对于系统管理员和开发者来说非常重要,因为它提供了对系统运行状态的实时监控和调试工具。

2.11 /root

/root 目录是超级用户(root)的主目录。与普通用户的主目录位于 /home 下不同,root 用户的主目录直接位于根目录下。这是因为 root 用户需要在单用户模式下进行系统维护和修复,/root 目录可以在没有挂载其他文件系统的情况下访问

常见的文件和目录包括

  • /root/.bashrc:root 用户的 Bash Shell 配置文件。

  • /root/.profile:root 用户的环境设置文件。

root 用户拥有系统的最高权限,因此 /root 目录中的文件和配置通常只有 root 用户本身可以访问和修改。

2.12 /run

/run 目录是一个临时文件系统,用于存放系统运行时的状态文件和进程信息。它是在系统启动时动态创建的,并且其内容在每次启动时都会被清空。

常见的文件和目录包括

  • /run/lock:用于锁文件,防止多个进程同时访问同一个资源。

  • /run/user/:用于用户相关的运行时数据,每个用户都有一个以其 UID 命名的子目录。

/run 目录中的文件和目录通常由系统服务和守护进程使用,提供了一种轻量级的进程间通信方式。

2.13 /sbin

存放系统管理命令,这些命令通常需要超级用户权限(root)执行。它们用于系统启动、维护和修复。

常见命令

  • ifconfig:配置网络接口。

  • reboot:重启系统。

  • shutdown:关闭系统。

  • fdisk:磁盘分区工具。

  • mkfs:创建文件系统。

2.14 /srv

/srv 目录用于存放服务相关的数据。srv 是 "service" 的缩写,表示该目录用于存放系统提供的各种服务的数据。例如,Web 服务器的文件可以存放在 /srv/www 下,FTP 服务器的文件可以存放在 /srv/ftp 下。/srv 目录结构可以根据具体服务的需求进行自定义。

2.15 /sys

/sys 目录是另一个虚拟文件系统,提供内核设备、驱动和系统特性的配置接口。与 /proc 类似,/sys 目录中的内容也是由内核在运行时动态生成的。/sys 目录主要用于提供内核与用户空间之间的接口,允许用户查看和配置硬件设备。

常见的文件和目录包括

  • /sys/class/:分类显示不同类型的设备,如网络设备(/sys/class/net)、块设备(/sys/class/block)等。

  • /sys/devices/:显示系统中的所有设备,以设备树的形式组织。

  • /sys/module/:显示已加载的内核模块及其参数。

通过 /sys 目录,用户和管理员可以方便地管理和配置系统硬件,进行性能调优和故障排除。

2.16 /tmp

/tmp 目录用于存放临时文件。系统和应用程序在运行过程中可能会在此目录下创建临时文件。通常,系统会在每次启动时清理 /tmp 目录,以防止磁盘空间被临时文件占用过多。

/tmp 目录中的文件通常对所有用户可读写,但应注意临时文件的权限和安全性。

2.17 /usr

/usr 目录用于存放用户程序和只读数据。这是一个非常重要的目录,包含了大量的二进制文件、库文件、文档和其他资源。

常见的子目录包括

  • /usr/bin:用户级命令的二进制文件。常见的命令有 gcc(GNU 编译器)、perl(Perl 解释器)等。

  • /usr/sbin:系统管理命令的二进制文件。与 /sbin 类似,但这些命令不是启动时必须的。

  • /usr/lib:库文件目录,存放应用程序和系统所需的共享库。

  • /usr/share:共享数据目录,存放不特定于某个用户或系统的共享数据,如文档、图标、声音等。

  • /usr/local:本地安装的软件和文件。用户可以在不影响系统其他部分的情况下安装和管理软件。

2.18 /var

用于存放系统运行时产生的可变数据。不同于 /etc 目录中的配置文件,/var 中的数据是动态变化的。

常见的子目录和文件包括

  • /var/log:系统日志文件目录。常见的日志文件有 /var/log/syslog(系统日志)、/var/log/auth.log(认证日志)、/var/log/kern.log(内核日志)等。

  • /var/mail:用户邮件存放目录。

  • /var/spool:队列目录,用于存放打印任务、邮件队列等。

  • /var/cache:应用程序缓存文件。

  • /var/www:Web 服务器的根目录,存放网站文件。

/var 目录中的数据可能会迅速增长,因此需要定期清理和维护,以防止磁盘空间不足

3.常见目录用途总结

文件名描述
/Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录
/boot存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动
/root超级用户的个人目录,普通用户没有权限访问
/home存放一般用户的个人目录
/binBinary的缩写,存放普通用户可执行的程序或命令(二进制文件)
/sbin和/bin类似,这些文件往往用来进行系统管理,只有root可使用
/lib是库(library)英文缩写,存放系统的各种库文件
/lib64存放系统本身需要用到64位程序的共享函数库(library)
/usr一般用户程序安装所在的目录,用于安装各种应用程序
/opt该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、Corel WordPerfect,这可避免将文件分散至整个文件系统
/etc存放了系统管理时要用到的各种配置文件和子目录
/var通常各种系统日志文件放在这里
/run保存自系统启动以来描述系统信息的文件
/devdev 是设备(device)的英文缩写。包含所有的设备文件
/mnt和/media可以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点
/tmp用来存放不同程序执行时产生的临时文件
/srvsrv 是服务(server)的简写,服务启动之后需要访问的数据目录
/sys本目录是将内核的一些信息映射文件,以供应用程序所用
/proc可以在这个目录下获取系统信息。这些信息是在内存中由系统自己产生的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值