Linux文件与目录管理
------------------------------------------------------------
一、目录结构
在控制台输入ls /查看根目录。Linux有着将一切视为文件的原则, 根目录就是所有文件的起始点。
其拥有树状的目录结构,下面开始介绍各个根目录下文件夹的作用。
/:根目录
/bin:普通用户可执行的命令,任何用户都可以执行该目录的命令
/boot:系统内核启动需要的文件
/home:用户的主目录.每个用户都有一个自己的目录,在该目录下
/root:超级权限者用户的主目录
/lib:用户存放各种库文件
/etc:系统中的配置文件
/usr:应用目录(类似windows的program files)
/usr/bin:系统使用的应用程序
/usr/sbin:root用户使用的高级管理程序和系统守护程序
/usr/src:系统内核源代码
/var:缓存或者运行产生的文件
/dev:外设
/tmp:临时文件
/run:临时文件系统,存放系统启动以来的信息,系统重启就会别清清除
1、bin目录
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着Linux经常使用的命令,是/usr/bin的软链接
2、boot目录
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件、开机所需要的配置文件以及镜像文件。
3、dev目录
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
4、etc目录
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
5、home目录
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve
6、root目录
root用户的主目录。
7、run目录
/run 中的文件和目录没有存储在磁盘上,而只存储在内存中。它们表示保存在内存(或基于磁盘的交换空间)中的数据,是一个临时文件系统,存储系统启动以来的信息。
8、sbin目录
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统命令和可执行的二进制文件。同时它也是软链接,链接/usr/sbin目录。
9、tmp目录
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。例如:浏览器下载的文件,程序产生的临时文件。
10、usr目录
usr 是 unix system resources(unix 系统资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
11、var目录
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
12、lib目录
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
13、srv目录
该目录存放一些服务启动之后需要提取的数据。
14、proc目录
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
15、sys目录
存储硬件设备的驱动程序信息,是sysfs 文件系统的挂载点!
16、opt目录
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
17、mnt目录
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
18、media目录
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
19、/lost+found目录
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
------------------------bin------------------------------------
在 Linux 系统中,bin 目录通常用于存放可执行文件,也就是二进制文件。这是 "binary" 的缩写,因此得名 bin。以下是一般放在 bin 目录中的文件类型:
系统命令:大多数系统命令,如 ls、cp、mv、rm、chmod 等,都位于 /bin 目录中。这些命令是操作系统的基础组成部分。
用户程序:用户安装的程序,如果它们是可执行的,也可以放在 bin 目录中。
脚本:Shell 脚本或其他类型的脚本,如果被设置为可执行,也可以放在这个目录中。
编译器:如 gcc、g++、javac 等编译器的可执行文件通常也放在 bin 目录中。
解释器:如 python、perl、ruby 等语言的解释器。
文本处理工具:如 grep、sed、awk 等。
网络工具:如 ping、ssh、scp、ifconfig(在一些新系统中被 ip 命令取代)等。
系统管理工具:如 systemctl、service、cron、at 等。
文件操作工具:如 tar、gzip、unzip 等。
开发工具:如 make、cmake、git 等。
在 Linux 系统中,/bin 是一个非常重要的目录,因为它包含了系统启动和运行所必需的最基本的命令。用户通常不需要手动管理这个目录,因为安装的软件包管理器会自动处理这些文件的安装和更新。
此外,用户的主目录下也可以有一个 bin 目录,用于存放用户个人常用的脚本和程序。这个目录的路径通常会被添加到用户的 PATH 环境变量中,使得用户可以方便地从任何位置调用这些程序。
/sbin
/sbin目录是存放系统管理员(root用户)使用的系统管理命令的目录。与/bin目录类似,/sbin目录中的命令也是可执行的,但这些命令通常只有超级用户(root)才能执行。
/sbin目录中的命令主要用于系统管理和维护,包括:
系统启动和关机相关的命令 如/sbin/reboot(重启系统)、/sbin/shutdown(关机系统)等
硬件设备管理相关的命令 如/sbin/ifconfig(配置网络接口)、/sbin/fdisk(磁盘分区工具)等
系统服务管理相关的命令 如/sbin/service(管理系统服务)、/sbin/chkconfig(配置系统服务启动项)等
文件系统管理相关的命令 如/sbin/mkfs(创建文件系统)、/sbin/fsck(检查和修复文件系统)等
系统日志管理相关的命令 如/sbin/syslogd(系统日志守护进程)等
系统安全管理相关的命令 如/sbin/iptables(配置防火墙规则)等
总之,/sbin目录中的命令是用于系统管理和维护的工具,提供了对系统底层和关键功能的管理和控制。这些命令通常只有超级用户(root)才能执行,用于进行系统配置、故障排查、性能调优等任务
----------------------------boot--------------------------------
Linux的boot目录主要存放与系统启动和引导相关的文件和目录。具体来说,boot目录中通常包含以下文件和目录:
- 内核映像文件(如vmlinuz或bzImage):这是系统启动时实际使用的内核文件12。
- 引导加载程序:如GRUB的配置文件(如grub.conf)和其他阶段文件(如stage1, stage1.5, stage2)3。
- 初始RAM磁盘(initrd):这是在系统启动过程中用于挂载根文件系统的初始内存磁盘映像3。
- 系统映射文件(System.map):这是内核符号表,用于内核调试和分析3。
这些文件和目录对于系统的启动和正常运行至关重要。例如,内核映像文件包含了操作系统核心的代码和数据,而引导加载程序则负责在系统启动时加载内核映像并对其进行初始化。初始RAM磁盘则用于在内核加载之前提供必要的驱动程序和初始化脚本。
在Linux系统中,/boot
目录扮演着至关重要的角色。下面是对/boot
目录的详细解释:
1. /boot目录的作用
/boot
目录用于存放系统启动时所需的文件,主要包括内核映像(vmlinuz)、引导加载程序(如GRUB)的配置文件等。这些文件是系统启动过程中必不可少的,它们确保系统能够正确加载内核并启动。
2. /boot目录下通常包含的文件类型
- 内核映像(vmlinuz):这是Linux操作系统的核心部分,负责管理系统资源、硬件抽象、进程调度等。
- 引导加载程序(bootloader):如GRUB(GRand Unified Bootloader),负责在系统启动时显示启动菜单,并加载选定的内核映像。
- 配置文件:如GRUB的配置文件(通常是
/boot/grub/grub.cfg
),用于定义启动菜单项和加载内核时的参数。 - initramfs映像:这是一个初始内存文件系统映像,包含了在内核完全加载之前需要的一些驱动和工具。
3. /boot目录在Linux系统启动过程中的重要性
在系统启动时,BIOS或UEFI固件会首先加载引导加载程序(如GRUB)。GRUB随后会显示启动菜单,并允许用户选择要启动的操作系统。一旦用户做出选择,GRUB就会加载相应的内核映像和initramfs映像到内存中,并开始启动过程。如果/boot
目录中的文件损坏或缺失,系统将无法启动。
4. 管理/boot目录的大小和空间使用
由于/boot
目录中的文件对于系统启动至关重要,因此应确保它们得到妥善保护。以下是一些管理/boot
目录大小和空间使用的方法:
- 定期清理旧的内核映像:随着系统的更新,旧的内核映像可能会积累在
/boot
目录中。可以使用包管理器(如apt
、yum
等)提供的工具来删除这些旧的内核映像。 - 调整initramfs的大小:通过调整initramfs中包含的驱动和工具,可以控制其大小。这可以通过编辑initramfs的构建脚本来实现。
- 监控空间使用情况:使用
df -h
命令可以监控/boot
目录的空间使用情况,确保它不会耗尽磁盘空间。
5. 备份和恢复/boot目录的建议
备份/boot
目录是系统维护的重要部分,以防止文件损坏或丢失导致系统无法启动。以下是一些备份和恢复/boot
目录的建议:
- 定期备份:使用
tar
、rsync
等工具定期备份/boot
目录到外部存储介质(如USB驱动器、网络存储等)。 - 使用Live CD/USB进行恢复:如果系统无法启动,可以使用Linux Live CD/USB启动系统,并挂载损坏的系统分区。然后,可以将备份的
/boot
目录内容恢复到原位置。 - 保持备份的更新:每次对
/boot
目录进行重大更改(如更新内核)后,都应更新备份以确保其包含最新的文件。
通过遵循以上建议,可以确保/boot
目录的安全性和可靠性,从而维护Linux系统的稳定运行。
/boot
存放引导相关文件的目录。在该目录中,通常会包含以下文件
vmlinuz Linux内核的可执行文件。它负责加载操作系统并提供系统的基本功能
initrd.img 一个初始化RAM磁盘映像文件,用于在系统引导过程中加载并运行
grub GRUB(GRand Unified Bootloader)引导程序的配置文件。它包含了引导菜单的配置信息,可以选择启动哪个操作系统
config- 内核的配置文件,包含了编译内核时使用的配置选项
System.map- 内核符号表文件,它包含了内核中所有符号的地址信息
memtest86+ 一个用于测试计算机内存的工具。可以在引导菜单中选择运行
除了上述文件,boot目录还可能包含其他与引导相关的文件和目录。在不同的Linux发行版中,boot目录的具体内容和结构可能会有所不同
---------------------------------------dev----------------------------------------------
/dev
设备文件目录,存放了系统中所有的设备文件。在Linux中,一切设备都被视为文件,而这些设备文件就存放在/dev目录下;
1.设备文件类型:
字符设备文件(Character Device Files) 以字符为单位进行读写的设备文件,例如键盘、鼠标、串口等。
块设备文件(Block Device Files) 以块为单位进行读写的设备文件,例如硬盘、U盘等
虚拟设备文件(Virtual Device Files) 用于与内核进行交互的设备文件,例如/dev/null(空设备)、/dev/zero(全零设备)等
符号链接(Symbolic Links) 指向其他设备文件或目录的软链接
2.常见设备文件:
/dev/sda 硬盘设备(sda为第一个硬盘)
/dev/tty 终端设备
/dev/ram 虚拟内存设备
/dev/null 空设备,接收数据后将其丢弃
/dev/zero 全零设备,读取时将输出全零字符
dev目录中的设备文件在系统启动时会被自动创建,访问这些设备文件可以与硬件交互或进行系统配置
在Linux系统中,/dev
目录是一个非常重要的目录,它包含了设备文件。这些设备文件代表了系统中的各种硬件设备,以及某些特殊的文件(如伪终端和管道)。
2.常见设备文件:
/dev/sda 硬盘设备(sda为第一个硬盘)
/dev/tty 终端设备
/dev/ram 虚拟内存设备
/dev/null 空设备,接收数据后将其丢弃
/dev/zero 全零设备,读取时将输出全零字符
/dev/hd[a-t] IDE设备
/dev/sd[a-z] SCSI设备
/dev/fd[0-7] 标准软驱
/dev/md[0-31] 软raid设备
/dev/loop[0-7] 本地回环设备
/dev/ram[0-15] 内存
/dev/tty[0-63] 虚拟终端
/dev/ttyS[0-3] 串口
/dev/lp[0-3] 并口
/dev/console 控制台
/dev/fb[0-31] framebuffer
/dev/cdrom /dev/hdc
/dev/modem /dev/ttyS[0-9]
/dev/pilot /dev/ttyS[0-9]
/dev/random 随机数设备
/dev/urandom 随机数设备
dev目录中的设备文件在系统启动时会被自动创建,访问这些设备文件可以与硬件交互或进行系统配置
/dev 目录的作用
/dev
目录的主要作用是提供对系统硬件设备的访问接口。通过访问这些设备文件,应用程序可以与硬件设备进行交互。例如,当你打开一个终端设备(如/dev/tty1
)时,你实际上是在与系统的物理或虚拟终端进行交互。
/dev 目录包含的内容
/dev
目录通常包含以下几类设备文件:
-
字符设备:这些设备以字符为单位进行数据传输,如终端、串行端口等。它们的文件权限通常以
c
开头。 -
块设备:这些设备以块为单位进行数据传输,如硬盘、CD-ROM等。它们的文件权限通常以
b
开头。 -
网络设备:这些设备代表网络接口,如以太网卡。在Linux中,它们通常以
eth0
、wlan0
等形式命名(尽管现代Linux系统可能使用不同的命名规则)。 -
特殊文件:这些文件包括管道(FIFO)、命名管道、套接字等。它们不是直接对应硬件设备的文件,而是用于进程间通信或网络编程等特殊用途。
-
伪终端:伪终端是一种软件实现的终端,它允许用户通过图形界面或远程连接来访问系统。伪终端设备文件通常以
pts/
子目录中的形式存在。
示例
以下是一些/dev
目录中常见设备文件的示例:
/dev/sda
:表示第一个SCSI硬盘。/dev/sda1
:表示第一个SCSI硬盘的第一个分区。/dev/tty
:表示系统的控制台终端。/dev/pts/0
:表示第一个伪终端设备。
--------------------------etc----------------------------------
Linux系统的/etc目录是系统全局配置文件的集中地,包含了几乎所有的系统配置文件和应用程序的配置文件。这个目录下的文件通常是纯文本格式,系统管理员通过对这些文件的修改来调整系统的整体行为和各个服务的配置。1
/etc目录的主要内容
-
用户信息文件:
:ml-search[passwd]
:存储用户名、用户ID等信息。shadow
:存储加密后的用户密码信息。group
:存储用户组信息。
-
系统服务管理:
:ml-search[init.d]
或:ml-search[systemd]
:存放系统服务的启动脚本和服务单元文件。:ml-search[fstab]
:定义系统启动时自动挂载的文件系统列表。:ml-search[resolv.conf]
:设置DNS域名解析服务器的信息。:ml-search[hostname]
:定义主机名。
-
网络配置:
:ml-search[network]
或:ml-search[sysconfig/network-scripts]
:存放网络接口配置文件。:ml-search[services]
:列出网络服务名称与其所使用的端口号和协议对照表。
-
其他重要配置文件:
:ml-search[sudoers]
:配置sudo命令,定义哪些用户可以以何种权限运行哪些命令。:ml-search[apt/sources.list]
(Debian系)或:ml-search[yum.repos.d]
(RHEL系):存储软件仓库列表,用于软件包管理工具获取和安装软件。
/etc目录的结构和特点
- 只存放配置文件:通常只包含文本文件(如.conf文件),而不存储二进制可执行文件。
- 系统管理员操作权限:只有超级用户(root)有权限对该目录下的文件进行修改。
- 系统级配置:对/etc中文件的更改会影响整个系统的运行。
Linux系统的etc目录介绍
1. /etc 的主要作用
配置文件存放地:几乎所有系统级别的配置文件都存放在此目录中,例如网络设置、用户权限、服务管理等。
服务启动脚本:包括许多服务的初始化脚本或配置文件。
系统行为控制:决定系统的运行方式,例如开机启动项、登录设置等。
2. /etc 目录的主要特点
只存放配置文件:通常只包含文本文件(如 .conf 文件),而不会存储二进制可执行文件。
系统管理员操作权限:通常只有超级用户(root)有权限对该目录下的文件进行修改。
系统级配置:对 /etc 中文件的更改会影响整个系统的运行。
3. /etc 目录中的常见文件和子目录
a) 常见子目录
/etc/init.d/:旧的 SysV 风格的启动脚本目录,用于管理系统服务。
/etc/systemd/:systemd 服务管理器的配置文件目录。
/etc/network/:存储网络配置文件(如 IP、DNS 设置)。
/etc/cron.d/:与定时任务(cron)相关的配置。
/etc/skel/:新用户的默认配置文件模板。
/etc/ssl/:SSL/TLS 证书和密钥文件存放目录。
b) 常见文件
/etc/passwd:用户信息文件,存储用户名、用户 ID 等。
/etc/shadow:用户密码的加密信息文件(需 root 权限查看)。
/etc/hosts:本地的 IP 地址与主机名映射表。
/etc/resolv.conf:DNS 服务器配置文件。
/etc/fstab:定义文件系统挂载信息。
/etc/hostname:定义主机名。
/etc/profile:系统全局环境变量设置。
/etc/sudoers:配置哪些用户有 sudo 权限。
4. /etc 中的其他常见用途
服务配置:许多服务(如 Apache、Nginx、MySQL)的配置文件通常存储在 /etc 下的子目录中,例如 /etc/nginx/nginx.conf。
包管理工具的配置:软件包管理器(如 APT、YUM)的配置也通常存放在 /etc 下,例如 /etc/apt/。
设备配置:一些硬件设备的初始化或驱动配置文件。
5. 管理 /etc 目录的最佳实践
备份:在修改任何配置文件之前,建议先备份原始文件。
cp /etc/filename /etc/filename.bak
小心编辑:一些配置错误可能导致系统无法正常启动。例如,编辑 /etc/fstab 时要格外注意。
用专用工具修改:某些文件(如 /etc/sudoers)建议通过特定工具(如 visudo)编辑以避免错误。
保持一致性:尽量通过包管理器安装软件,以便配置文件自动存放在标准位置。
6. /etc 名字的由来
在 Linux 系统中,/etc 并不是一个标准的缩写词,它的起源和含义有一些历史背景。最初的 Unix 文档中,etc 表示 “et cetera”(等等) 的缩写,用来表示系统中存放“其他”配置文件的地方。
更具体的解释
原始含义:
早期 Unix 系统将 /etc 定义为存放系统中无法归类到其他目录的配置文件。可以简单理解为 “其他配置文件的集合”。
后来的解释:
随着 Unix 和 Linux 的发展,/etc 逐渐演变成一个专门用于存放配置文件的目录。虽然它不再只是“其他文件”的意思,但名称沿用了下来。
尽管没有统一的官方全称,/etc 一直被约定俗成地用作配置文件的存放地。它的实际意义更多是系统传统和习惯的一部分,而不是基于缩写的严格定义。
/etc
存放系统配置文件的目录。它包含了许多重要的配置文件,用于设置系统的各种参数和选项。以下是一些常见的/etc目录下的配置文件:
/etc/passwd 存储系统用户的基本信息,如用户名、用户ID、用户主目录等
/etc/group 存储用户组的信息,如组名、组ID、组成员等
/etc/shadow 存储用户的加密密码和密码过期信息
/etc/hosts 用于设置主机名与IP地址的映射关系
/etc/hostname 存储主机名
/etc/resolv.conf 配置系统的DNS解析器
/etc/fstab 定义了系统的文件系统挂载点和选项
/etc/network/interfaces 配置网络接口的信息
/etc/apt/sources.list 用于配置系统的软件源
/etc/sudoers 定义了哪些用户可以以超级用户身份执行命令
/etc/sysconfig 包含很多文件.许多网络配置文件也在/etc 中.
/etc/rc 启动运行级时运行的scripts或scripts的目录.
/etc/rc.d 改变运行级时运行的scripts或scripts的目录.
/etc/rc*.d 改变运行级时运行的scripts或scripts的目录.
/etc/fdprm 软盘参数表.说明不同的软盘格式.用setfdprm 设置.
/etc/inittab init 的配置文件.
/etc/issue getty在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定.
/etc/magic file 的配置文件.包含不同文件格式的说明,file 基于它猜测文件类型.
/etc/motd Message Of TheDay,成功登录后自动输出.内容由系统管理员确定.经常用于通告信息,如计划关机时间的警告.
/etc/mtab 当前安装的文件系统列表.由scripts初始化,并由mount 命令自动更新.需要一个当前安装的文件系统的列表时使用,例如df命令.
/etc/shadow 在安装了影子口令软件的系统上的影子口令文件.影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow中,而后者只对root可读.这使破译口令更困难.
/etc/login.defs login 命令的配置文件.
/etc/printcap 类似/etc/termcap ,但针对打印机.语法不同.
/etc/profile , /etc/csh.login ,/etc/csh.cshrc 登录或启动时Bourne或Cshells执行的文件.这允许系统管理员为所有用户建立全局缺省环境.
/etc/securetty 确认安全终端,即哪个终端允许root登录.一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权.
/etc/shells 列出可信任的shell.chsh 命令允许用户在本文件指定范围内改变登录shell.提供一台机器FTP服务的服务进程ftpd检查用户shell是否列在 /etc/shells 文件中,如果不是将不允许该用户登录.
除了上述文件,/etc目录还包含了许多其他的配置文件,用于设置系统的不同方面。这些配置文件对于系统的正常运行和用户的定制化设置非常重要
--------------------------home---------------------------
/home
/home目录是用于存放用户个人文件和配置的目录。每个用户在系统中都会有一个独立的子目录,以其用户名命名,位于/home目录下。例如,如果有一个用户的用户名是"john",则该用户的个人目录路径就是/home/john
每个用户的个人目录通常包含以下一些常见的子目录和文件:
/home/user/Documents 用户的文档文件夹,用于存放文档和文件
/home/user/Downloads 用户的下载文件夹,用于存放从互联网上下载的文件
/home/user/Desktop 用户的桌面文件夹,用于存放桌面上的快捷方式和文件
/home/user/Pictures 用户的图片文件夹,用于存放照片和图像文件
/home/user/Music 用户的音乐文件夹,用于存放音乐文件
/home/user/Videos 用户的视频文件夹,用于存放视频文件
此外,用户还可以根据需要在自己的个人目录下创建其他自定义的子目录和文件,以组织和管理自己的个人文件。用户的个人目录通常具有对应用户的权限,只有该用户和超级用户(root)才能访问和修改其中的文件
在Linux系统中,/home
目录是一个非常重要的用户数据目录。它通常用于存储系统中各个用户的个人文件和配置信息。
/home 目录的用途
/home
目录的主要用途是为系统中的每个用户提供一个独立的、私有的文件存储空间。当用户登录到系统时,他们的主目录(通常是/home/username
,其中username
是用户的登录名)就是他们的个人工作环境。用户可以在这里存储文件、创建目录、安装软件(通常是在用户的主目录下的子目录中)等。
/home 目录包含的内容
/home
目录通常包含以下类型的内容:
-
用户主目录:每个用户都有一个以他们的登录名命名的子目录,如
/home/alice
、/home/bob
等。这些子目录是用户的个人工作环境,包含了用户的个人文件、配置文件、桌面环境设置等。 -
共享目录(可选):有时,系统中可能还存在一些共享目录,如
/home/shared
,用于存储多个用户需要共同访问的文件。这些共享目录的访问权限通常会被特别设置,以确保只有授权的用户才能访问。 -
特殊目录(如
.local
、.cache
等):现代Linux系统可能会在用户的主目录下创建一些特殊目录,用于存储应用程序的本地数据、缓存文件等。这些目录的命名通常以点(.
)开头,表示它们是隐藏目录。
注意事项
/home
目录通常不包含系统级的配置文件或可执行文件。这些文件通常存储在/etc
、/bin
、/usr
等其他目录中。- 用户对自己的主目录拥有完全的控制权,可以自由地创建、删除、修改其中的文件和目录。但是,他们通常没有权限修改其他用户的主目录或
/home
目录本身。 - 在多用户环境中,保护
/home
目录及其子目录的安全性至关重要。系统管理员应该采取适当的措施来确保只有授权的用户才能访问他们的个人数据。
----------------------------root-----------------------------
/root
/root目录是系统管理员(root用户)的个人主目录。它是Linux系统中的超级用户(root)的默认主目录,类似于普通用户的/home目录。
/root目录通常包含以下一些常见的子目录和文件
/root/Documents root用户的文档文件夹,用于存放文档和文件
/root/Downloads root用户的下载文件夹,用于存放从互联网上下载的文件
/root/Desktop root用户的桌面文件夹,用于存放桌面上的快捷方式和文件
/root/Pictures root用户的图片文件夹,用于存放照片和图像文件
/root/Music root用户的音乐文件夹,用于存放音乐文件
/root/Videos root用户的视频文件夹,用于存放视频文件
/root目录下的文件和子目录只有root用户才能访问和修改。作为系统的超级用户,root用户具有最高的权限,可以对系统进行任何操作。因此,/root目录通常被用来存放root用户的个人文件和配置,以及一些系统级别的脚本和配置文件
在Linux系统中,/root
目录是一个具有特殊意义的目录,它是系统超级用户(root用户)的主目录。
/root 目录的用途
/root
目录的主要用途是为root用户提供一个私有的、安全的文件存储空间。root用户是Linux系统中的最高权限用户,能够执行系统中的任何操作。因此,/root
目录中的文件通常包含敏感信息,如系统配置文件、安全密钥、个人文档等。
/root 目录包含的内容
/root
目录通常包含以下类型的内容:
-
系统配置文件:root用户可能会在系统配置文件中存储对系统全局设置所做的更改。这些文件通常位于
/etc
目录中,但root用户可能会将某些配置文件复制到/root
目录下以便于访问和修改。 -
个人文档和脚本:root用户可能会将个人文档、脚本或其他文件存储在
/root
目录中。这些文件对于root用户来说是私有的,并且只有root用户才能访问。 -
应用程序和数据:有时,root用户可能会在
/root
目录下安装一些特殊的应用程序或存储一些敏感数据。这些应用程序和数据通常对于系统的其他用户是不可见的。
注意事项
/root
目录是root用户的私有目录,其他用户通常没有权限访问其中的内容。- 由于
/root
目录包含敏感信息,因此保护其安全性至关重要。系统管理员应该采取适当的措施来确保只有root用户才能访问和修改/root
目录及其内容。 - 在进行系统维护或故障排除时,可能需要访问
/root
目录中的某些文件。但是,除非确实需要,否则不建议普通用户或管理员频繁访问或修改/root
目录中的内容。
------------------------------run------------------------------
/run
run目录是一个临时文件系统(tmpfs),用于存放运行时的临时文件、进程相关文件和运行时数据。它是在系统启动时由initramfs(初始RAM文件系统)挂载的。
/run目录的用途包括但不限于以下几个方面:
进程相关的文件 /run目录存放了一些与正在运行的进程相关的文件,如进程ID文件(pid file)和套接字文件(socket file)。这些文件用于进程间通信和进程管理
锁文件 run目录也可以存放一些进程锁文件,用于协调多个进程之间的操作
临时文件 /run目录可以用于存放临时文件,这些文件在系统重启后会被清除。临时文件可以是任何需要在系统运行时储的数据
运行时数据 一些系统和服务可能会将一些运行时数据存放在/run目录中,例如运行时状态文件、运行时配置文件等
总之,/run目录是用于存放运行时临时文件和数据的目录,它提供了一个临时性的存储空间,用于系统和进程之间的通信和数据交互。由于是一个临时文件系统,系统重启后,/run目录中的文件将会被清空并重新创建
在Linux系统中,/run
目录是一个临时文件系统挂载点,用于存储系统运行时产生的临时数据。这个目录通常是在系统启动时由tmpfs
(或类似的临时文件系统)挂载的,意味着它存储在内存中,因此访问速度非常快。
/run 目录的用途
/run
目录的主要用途包括:
-
存储系统运行时产生的临时文件:这些文件可能包括套接字文件、进程ID文件、锁文件等。这些文件通常是系统运行时必需的,但在系统重启后会丢失。
-
提供进程间通信的机制:通过套接字文件等机制,
/run
目录支持进程间的通信和数据交换。 -
存储系统状态信息:某些系统服务或守护进程可能会在
/run
目录中创建文件来存储其状态信息,以便其他进程或服务可以查询或修改这些状态。
/run 目录包含的内容
/run
目录通常包含以下类型的内容:
- 套接字文件:用于进程间通信的套接字文件,通常位于
/run/systemd/private
、/run/user/$UID
等子目录中。 - 进程ID文件:包含进程ID的文件,这些文件通常由系统服务或守护进程创建,用于标识正在运行的进程。
- 锁文件:用于实现文件锁机制的文件,以防止多个进程同时访问或修改同一个文件。
- 系统状态文件:由系统服务或守护进程创建的文件,用于存储系统状态信息。
注意事项
/run
目录的内容在系统重启后会丢失,因此不应将需要持久保存的数据存储在此目录中。- 由于
/run
目录存储在内存中,因此它的访问速度非常快,这对于需要频繁读写临时文件的系统服务或应用程序来说是非常有利的。 - 系统管理员应该定期检查
/run
目录中的内容,以确保没有不必要的或潜在的安全风险的文件存在。
------------------------------sbin------------------------------
/sbin
/sbin目录是存放系统管理员(root用户)使用的系统管理命令的目录。与/bin目录类似,/sbin目录中的命令也是可执行的,但这些命令通常只有超级用户(root)才能执行。
/sbin目录中的命令主要用于系统管理和维护,包括:
系统启动和关机相关的命令 如/sbin/reboot(重启系统)、/sbin/shutdown(关机系统)等
硬件设备管理相关的命令 如/sbin/ifconfig(配置网络接口)、/sbin/fdisk(磁盘分区工具)等
系统服务管理相关的命令 如/sbin/service(管理系统服务)、/sbin/chkconfig(配置系统服务启动项)等
文件系统管理相关的命令 如/sbin/mkfs(创建文件系统)、/sbin/fsck(检查和修复文件系统)等
系统日志管理相关的命令 如/sbin/syslogd(系统日志守护进程)等
系统安全管理相关的命令 如/sbin/iptables(配置防火墙规则)等
总之,/sbin目录中的命令是用于系统管理和维护的工具,提供了对系统底层和关键功能的管理和控制。这些命令通常只有超级用户(root)才能执行,用于进行系统配置、故障排查、性能调优等任务
在Linux系统中,/sbin
目录是一个非常重要的系统二进制文件目录,它包含了系统管理员和系统维护任务所需的程序和工具。
/sbin 目录的用途
/sbin
目录的主要用途是存储系统级的二进制可执行文件,这些文件通常由系统管理员使用,用于执行系统维护和管理任务。与 /bin
目录不同,/sbin
目录中的程序通常不是为普通用户设计的,而是针对系统级的操作。
/sbin 目录包含的内容
/sbin
目录通常包含以下类型的程序和工具:
-
系统启动和恢复工具:如
init
(在某些Linux发行版中已被systemd
替代)、fsck
(文件系统检查工具)等,这些工具在系统启动或恢复过程中起着关键作用。 -
设备管理工具:如
mkfs
(创建文件系统工具)、mount
(挂载文件系统工具)、umount
(卸载文件系统工具)等,这些工具用于管理系统的存储设备。 -
网络管理工具:如
ifconfig
(网络接口配置工具,尽管在现代Linux发行版中可能已被ip
命令替代)、route
(路由表管理工具)等,这些工具用于配置和管理系统的网络接口。 -
系统监控和调试工具:如
vmstat
(虚拟内存统计工具)、iostat
(I/O统计工具)等,这些工具用于监控系统的性能和调试系统问题。
注意事项
/sbin
目录中的程序通常需要超级用户权限才能执行,因为它们涉及系统级的操作和管理。- 在某些Linux发行版中,
/sbin
目录中的部分程序可能也被链接到/usr/sbin
目录中,以便于在需要时可以从不同的位置访问这些程序。 - 由于
/sbin
目录中的程序是系统级的,因此不建议普通用户随意修改或删除其中的文件。
---------------------------tmp---------------------------------
/tmp
/tmp目录是用于存放临时文件的目录。它是一个公共的临时文件夹,供所有用户和程序共享使用。
/tmp目录的特点是存放的文件会在系统重启时被清空,因此它适合用于存放临时数据和临时文件。一些常见的用途包括:
程序临时文件 许多程序在运行过程中需要创建临时文件,例如某些编辑器的临时保存文件、临时下载文件等
临时缓存 某些应用程序可能会将一些临时数据缓存到/tmp目录中,以提高性能
临时传输文件 当需要在不同用户之间传递文件时,可以将文件放在/tmp目录中,供其他用户临时访问
/tmp目录对于所有用户都是可读可写的,因此请注意确保敏感数据不被存放在/tmp目录中,以防止数据泄露。此外,由于/tmp目录的文件在系统重启时会被清空,因此请注意在使用之后及时删除不再需要的临时文件,以释放磁盘空间
在Linux系统中,/tmp
目录是一个用于存储临时文件的目录。它通常由所有用户共享,用于存放系统或应用程序在运行时产生的临时数据。
/tmp
目录的用途
/tmp
目录的主要用途包括:
-
存储临时文件:系统或应用程序在运行时可能需要创建一些临时文件,这些文件通常被存储在
/tmp
目录中。这些文件可能是用于数据缓存、进程间通信或其他临时用途。 -
提供临时存储空间:对于一些需要临时存储空间的操作,如解压缩文件、创建临时工作目录等,
/tmp
目录提供了一个方便的位置。
/tmp
目录包含的内容
/tmp
目录通常包含各种类型的临时文件,这些文件可能是由系统服务、应用程序或用户创建的。由于/tmp
目录对所有用户都是可写的,因此它可能包含来自不同用户和进程的临时文件。
注意事项
-
安全性:由于
/tmp
目录对所有用户都是可访问的,因此它可能存在安全风险。恶意用户可能会尝试在/tmp
目录中创建恶意文件或执行恶意操作。因此,系统管理员应该定期清理/tmp
目录中的文件,并确保只有授权的用户和进程才能访问其中的内容。 -
磁盘空间管理:
/tmp
目录中的文件可能会占用大量的磁盘空间。如果/tmp
目录被填满,可能会导致系统性能下降或无法创建新的临时文件。因此,系统管理员应该监控/tmp
目录的磁盘使用情况,并采取措施来管理其中的文件。 -
清理策略:许多Linux系统都配置了自动清理
/tmp
目录中文件的策略,如使用tmpwatch
或systemd-tmpfiles
等工具来定期删除旧文件。这些策略有助于确保/tmp
目录不会变得过于庞大或混乱。
------------------------------usr------------------------------
- /usr目录是Unix Shared Resources(Unix共享资源)的缩写,它是用于存放用户可共享的应用程序、文件和数据的目录。/usr目录是一个非常重要的目录,通常包含了系统的大部分软件包和应用程序。
在Linux系统中,/usr
目录是一个非常重要的目录,它包含了大量的用户级文件和应用程序。这个目录通常用于存储那些在系统安装后不会频繁更改的文件。
/usr
目录的用途
/usr
目录的主要用途包括:
-
存储应用程序:许多Linux发行版都将应用程序安装在
/usr/bin
、/usr/sbin
等子目录中。这些应用程序通常是由系统管理员或普通用户使用的。 -
包含共享库:
/usr/lib
和/usr/lib64
等子目录通常包含了系统或应用程序所需的共享库文件。这些库文件允许不同的应用程序共享相同的代码,从而节省磁盘空间和内存。 -
存储文档和手册页:
/usr/share/doc
和/usr/share/man
等子目录通常包含了应用程序的文档和手册页。这些文档对于了解如何使用应用程序或解决应用程序问题是非常有帮助的。 -
包含系统级配置文件:虽然系统的主要配置文件通常位于
/etc
目录中,但/usr/local/etc
或/usr/share/defaults
等子目录可能包含一些系统级或应用程序特定的配置文件。 -
提供本地化支持:
/usr/share/locale
等子目录包含了用于本地化支持的文件,如语言翻译和字符集映射等。
/usr
目录包含的内容
/usr
目录通常包含以下类型的子目录和文件:
- bin:包含用户级的可执行文件。
- sbin:包含系统管理员使用的系统管理程序。
- lib 和 lib64:包含共享库文件。
- share:包含文档、手册页、本地化支持文件等。
- include:包含C/C++等编程语言的头文件。
- local:通常用于存储本地安装的软件和文件。
注意事项
/usr
目录中的内容通常在系统安装后不会频繁更改,因此它被视为一个相对稳定的目录。- 由于
/usr
目录包含了大量的应用程序和库文件,因此它的磁盘使用量可能会相对较大。 - 系统管理员应该谨慎地在
/usr
目录中创建或删除文件,以避免破坏系统或应用程序的完整性。
-------------------------------var-----------------------------
在Linux系统中,/var
目录是一个用于存储系统运行时需要改变数据的目录。这些数据通常包括日志文件、邮件、打印队列等。与 /etc
、/usr
等目录不同,/var
目录中的内容会经常发生变化,因为系统或应用程序在运行时需要不断地向其写入数据。
/var
目录的用途
/var
目录的主要用途包括:
-
存储日志文件:系统或应用程序在运行时会产生大量的日志信息,这些信息通常被存储在
/var/log
目录中。日志文件对于系统管理员来说是非常重要的,因为它们可以帮助诊断系统问题或了解系统的运行状态。 -
存储邮件:对于运行邮件服务器的系统来说,
/var/mail
目录通常用于存储用户的邮件。这个目录中的每个文件都对应一个用户的邮件箱。 -
存储打印队列:当系统连接到打印机时,
/var/spool/print
(或类似的目录)通常用于存储打印队列中的文件。这些文件包含了待打印的数据。 -
存储临时文件:虽然
/tmp
目录也用于存储临时文件,但某些系统可能会将一部分临时文件存储在/var/tmp
目录中。与/tmp
目录相比,/var/tmp
目录中的文件可能会在系统重启后仍然存在。 -
存储其他可变数据:除了上述用途外,
/var
目录还可能包含其他类型的可变数据,如数据库文件、Web服务器的内容等。
/var
目录包含的内容
/var
目录通常包含以下类型的子目录和文件:
- cache:包含应用程序的缓存文件。
- lib:包含系统或应用程序的状态信息库。
- local:通常用于存储本地安装的软件产生的可变数据。
- lock:包含文件锁文件,用于防止多个进程同时访问同一资源。
- log:包含系统或应用程序的日志文件。
- mail:包含用户的邮件文件。
- opt:通常用于存储第三方软件的可变数据。
- run:包含系统运行时产生的信息,如当前登录的用户、正在运行的进程等(在某些Linux发行版中,这个目录可能被命名为
/var/spool/run
或/run
)。 - spool:包含打印队列、邮件队列等待处理的数据。
- tmp:可能包含一些临时文件(尽管
/tmp
目录也用于此目的)。
注意事项
- 由于
/var
目录中的内容会经常发生变化,因此系统管理员应该定期清理其中的旧文件或不需要的文件,以避免磁盘空间被耗尽。 - 访问
/var
目录中的某些文件可能需要超级用户权限,因为这些文件可能包含敏感信息或涉及系统级操作。
/var
/var目录是变量文件目录。如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。
因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file,run file),或者例如MySQL数据库的文件等等。
/var/crash 系统崩溃时转储的文件,可以通过该文件分析down机的原因
/var/cache 存放应用程序的缓存数据,保存在该目录中的数据应用程序可以再生成,所以该目录中的数据丢失后不会影响系统
/var/lib 程序本身执行的过程中需要使用到的数据文件放置的目录。再次目录下各自的软件应该要有各自的目录。举例来说,Mysql的数据库放置到/var/lib/mysql,而rpm的数据库则放到/var/lib/rpm目录下
/var/lock 某些设备或者是文件资源一次只能被一个应用程序所使用 ,如当系统中有一个刻录机两个人都要使用,那么需要在一个人使用的时候上锁,那么第一个人使用完毕后,第二个人才可以继续使用
/var/log 这个是登录文件放置日志的的目录。里面比较重要的文件/var/log/messages,/var/log/harry(记录登陆者信息)等
/var/log/dmesg 核心启动日志
/var/log/messages 系统报错日志
/var/log/mail.log 邮件系统日志
/var/log/xferl.og FTP系统日志
/var/log/secure 安全信息和系统登录与网络连接的信息
/var/log/wtmp 记录登录者讯录,二进制文件,须用last来读取内容 who -u /var/log/wtmp 查看信息
/var/log/spooler News日志
/var/log/rpmpkgs RPM软件包
/var/log/XFree86.0.log XFree86日志
/var/log/boot.log 记录开机启动讯息,dmesg
/var/log/cron cron(定制任务日志)日志
/var/log/secure 安全信息和系统登录与网络连接的信息
/var/run/ 某些程序启动服务后,会将他们PID放置在这个目录下
-------------------------------lib-----------------------------
在Linux系统中,/lib
目录是一个非常重要的系统目录,它包含了系统运行时所需的库文件。这些库文件是系统或应用程序在运行时所依赖的共享代码,它们允许不同的程序共享相同的函数和数据结构,从而节省内存和磁盘空间。
/lib
目录的用途
/lib
目录的主要用途是存储系统级的库文件。这些库文件通常由操作系统提供,用于支持系统的基本功能和应用程序的运行。它们包括标准C库、数学库、线程库等,这些库为系统上的所有程序提供了必要的底层支持。
/lib
目录包含的内容
/lib
目录通常包含以下类型的文件:
- 共享库文件:这些文件以
.so
(Shared Object)为后缀,是系统或应用程序在运行时所依赖的共享代码。它们允许不同的程序共享相同的函数和数据结构,从而节省内存和磁盘空间。 - 静态库文件:这些文件以
.a
(Archive)为后缀,是编译时链接到程序中的库文件。与共享库不同,静态库在程序编译时被复制到程序中,因此每个使用静态库的程序都会有一份库代码的副本。 - 其他支持文件:除了库文件外,
/lib
目录还可能包含一些其他支持文件,如配置文件、模块文件等。
注意事项
- 由于
/lib
目录中的文件是系统级的库文件,因此它们通常由系统管理员或具有相应权限的用户进行管理和维护。 - 在某些Linux发行版中,可能会存在多个与
/lib
类似的目录,如/usr/lib
、/lib64
等。这些目录通常用于存储不同类型的库文件或不同架构的库文件。 - 在对
/lib
目录中的文件进行更改或删除之前,请务必确保了解这些文件的作用和重要性,以避免对系统的正常运行造成影响。
-------------------------------srv----------------------------
在Linux系统中,/srv
目录是一个用于存储服务数据的目录。这个目录通常用于存放那些由系统提供服务时所需要访问的数据。与 /etc
、/usr
等目录不同,/srv
目录中的内容更侧重于服务数据,而不是系统配置或应用程序代码。
/srv
目录的用途
/srv
目录的主要用途包括:
-
存储服务数据:当系统提供服务时,可能需要访问一些数据。这些数据可以存储在
/srv
目录中,以便服务能够轻松地找到它们。例如,Web服务器可能会将网站内容存储在/srv/www
目录中。 -
提供数据共享:在某些情况下,
/srv
目录也可以用于在不同的系统或应用程序之间共享数据。通过将数据存储在/srv
目录中,可以确保多个系统或应用程序都能够访问到相同的数据集。
/srv
目录包含的内容
/srv
目录的结构和内容可能会因服务的不同而有所差异。但通常,它可能包含以下类型的子目录和文件:
- www:用于存放Web服务器的内容,如HTML文件、图片、脚本等。
- ftp:用于存放FTP服务器的内容,供用户通过FTP协议访问。
- samba:用于存放Samba服务器共享的文件和目录。
- 其他服务特定的子目录:根据所运行的服务类型,
/srv
目录还可能包含其他服务特定的子目录和文件。
注意事项
- 由于
/srv
目录中的内容通常是服务数据,因此系统管理员应该谨慎地管理这个目录中的文件。避免不必要的删除或更改,以确保服务的正常运行。 - 访问
/srv
目录中的某些文件可能需要超级用户权限,因为这些文件可能包含敏感信息或涉及系统级操作。
------------------------------proc------------------------------
在Linux系统中,/proc
目录是一个特殊的虚拟文件系统(procfs)的挂载点,它提供了一个接口来访问内核数据结构。这个目录中的内容不是存储在磁盘上的,而是在访问时由内核动态生成的。因此,它通常用于提供系统信息和运行状态。
/proc
目录的用途
/proc
目录的主要用途包括:
-
提供系统信息:通过读取
/proc
目录中的文件,用户可以获取有关系统硬件、内存、进程、网络等方面的信息。这些信息对于系统管理员来说是非常重要的,因为它们可以帮助诊断系统问题或了解系统的运行状态。 -
监控进程:
/proc
目录中的每个子目录都对应一个正在运行的进程。通过访问这些子目录中的文件,用户可以获取有关进程的详细信息,如命令行参数、环境变量、内存使用情况等。 -
调整系统配置:在某些情况下,用户可以通过向
/proc
目录中的文件写入数据来调整系统配置或控制内核行为。例如,可以通过写入/proc/sys/vm/swappiness
文件来调整系统的交换空间使用策略。
/proc
目录包含的内容
/proc
目录通常包含以下类型的文件和子目录:
- 数字命名的子目录:每个数字命名的子目录都对应一个正在运行的进程。这些子目录中的文件提供了有关该进程的详细信息。
- 非数字命名的文件和子目录:这些文件和子目录提供了有关系统整体的信息和配置。例如,
/proc/cpuinfo
提供了CPU的信息,/proc/meminfo
提供了内存的信息,/proc/mounts
提供了当前挂载的文件系统的信息,等等。
注意事项
- 由于
/proc
目录中的内容是由内核动态生成的,因此它的大小和内容可能会随着系统的运行而发生变化。 - 访问
/proc
目录中的某些文件可能需要超级用户权限,因为这些文件可能包含敏感信息或涉及系统级操作。
/proc
/proc目录是进程信息及内核信息目录,这个目录本身是一个虚拟文件系统(virtual filesystem), 他放置的资料都是在内存当中,例如系统核心、行程资讯(process)、周边装置的状态及网络状态等等。因为这个目录下的资料都是在记忆体(内存)当中,所以本身不占任何硬盘空间。比较重要的档案(目录)例如: /proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*等等。
/proc 目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件
/proc/buddyinfo 用于诊断内存碎片问题的相关信息文件
/proc/cmdline 在启动时传递至内核的相关参数信息,这些信息通常由lilo或grub等启动管理工具进行传递
/proc/cpuinfo 处理器的相关信息的文件
/proc/crypto 系统上已安装的内核使用的密码算法及每个算法的详细信息列表
/proc/devices 系统已经加载的所有块设备和字符设备的信息,包含主设备号和设备组(与主设备号对应的设备类型)名
/proc/diskstats 每块磁盘设备的磁盘I/O统计信息列表;(内核2.5.69以后的版本支持此功能)
/proc/dma 每个正在使用且注册的ISA DMA通道的信息列表
/proc/execdomains 内核当前支持的执行域(每种操作系统独特“个性”)信息列表
/proc/fb 帧缓冲设备列表文件,包含帧缓冲设备的设备号和相关驱动信息
/proc/filesystems 当前被内核支持的文件系统类型列表文件,被标示为nodev的文件系统表示不需要块设备的支持;通常mount一个设备时,如果没有指定文件系统类型将通过此文件来决定其所需文件系统的类型
/proc/interrupts X86或X86_64体系架构系统上每个IRQ相关的中断号列表;多路处理器平台上每个CPU对于每个I/O设备均有自己的中断号
/proc/iomem 每个物理设备上的记忆体(RAM或者ROM)在系统内存中的映射信息
/proc/ioports 当前正在使用且已经注册过的与物理设备进行通讯的输入-输出端口范围信息列表
/proc/kallsyms 模块管理工具用来动态链接或绑定可装载模块的符号定义,由内核输出;(内核2.5.71以后的版本支持此功能);通常这个文件中的信息量相当大
/proc/kcore 系统使用的物理内存,以ELF核心文件(core file)格式存储,其文件大小为已使用的物理内存(RAM)加上4KB;这个文件用来检查内核数据结构的当前状态,因此,通常由GBD通常调试工具使用,但不能使用文件查看命令打开此文件
/proc/kmsg 此文件用来保存由内核输出的信息,通常由/sbin/klogd或/bin/dmsg等程序使用,不要试图使用查看命令打开此文件
/proc/loadavg 保存关于CPU和磁盘I/O的负载平均值,其前三列分别表示每1秒钟、每5秒钟及每15秒的负载平均值,类似于uptime命令输出的相关信息;第四列是由斜线隔开的两个数值,前者表示当前正由内核调度的实体(进程和线程)的数目,后者表示系统当前存活的内核调度实体的数目;第五列表示此文件被查看前最近一个由内核创建的进程的PID
/proc/locks 保存当前由内核锁定的文件的相关信息,包含内核内部的调试数据;每个锁定占据一行,且具有一个惟一的编号;如下输出信息中每行的第二列表示当前锁定使用的锁定类别,POSIX表示目前较新类型的文件锁,由lockf系统调用产生,FLOCK是传统的UNIX文件锁,由flock系统调用产生;第三列也通常由两种类型,ADVISORY表示不允许其他用户锁定此文件,但允许读取,MANDATORY表示此文件锁定期间不允许其他用户任何形式的访问
proc/mdstat 保存RAID相关的多块磁盘的当前状态信息
/proc/meminfo 系统中关于当前内存的利用状况等的信息,常由free命令使用;可以使用文件查看命令直接读取此文件,其内容显示为两列,前者为统计属性,后者为对应的值
/proc/mounts 在内核2.4.29版本以前,此文件的内容为系统当前挂载的所有文件系统,在2.4.19以后的内核中引进了每个进程使用独立挂载名称空间的方式,此文件则随之变成了指向/proc/self/mounts(每个进程自身挂载名称空间中的所有挂载点列表)文件的符号链接
/proc/modules 当前装入内核的所有模块名称列表,可以由lsmod命令使用,也可以直接查看
/proc/partitions 块设备每个分区的主设备号(major)和次设备号(minor)等信息,同时包括每个分区所包含的块(block)数目
/proc/pci(/proc/bus/pci) 内核初始化时发现的所有PCI设备及其配置信息列表,其配置信息多为某PCI设备相关IRQ信息,可读性不高,可以用“/sbin/lspci –vb”命令获得较易理解的相关信息;在2.6内核以后,此文件已为/proc/bus/pci目录及其下的文件代替
/proc/slabinfo 在内核中频繁使用的对象(如inode、dentry等)都有自己的cache,即slab pool,而/proc/slabinfo文件列出了这些对象相关slap的信息;详情可以参见内核文档中slapinfo的手册页
/proc/sys 与/proc下其它文件的“只读”属性不同的是,管理员可对/proc/sys子目录中的许多文件内容进行修改以更改内核的运行特性
/proc/sys/dev 为系统上特殊设备提供参数信息文件的目录,其不同设备的信息文件分别存储于不同的子目录中,如大多数系统上都会具有的/proc/sys/dev/cdrom和/proc/sys/dev/raid(如果内核编译时开启了支持raid的功能) 目录,其内存储的通常是系统上cdrom和raid的相关参数信息文件
/proc/stat 实时追踪自系统上次启动以来的多种统计信息
/proc/swaps 当前系统上的交换分区及其空间利用信息,如果有多个交换分区的话,则会每个交换分区的信息分别存储于/proc/swap目录中的单独文件中,而其优先级数字越低,被使用到的可能性越大
/proc/uptime 系统上次启动以来的运行时间
/proc/version 当前系统运行的内核版本号
/proc/vmstat 当前系统虚拟内存的多种统计数据,信息量可能会比较大,这因系统而有所不同,可读性较好
/proc/zoneinfo 内存区域(zone)的详细信息列表,信息量较大
--------------------------------sys----------------------------
在Linux系统中,/sys
目录是一个提供对内核对象进行访问的虚拟文件系统(sysfs)的挂载点。与 /proc
目录类似,/sys
目录中的内容也不是存储在磁盘上的,而是在访问时由内核动态生成的。它提供了一个接口,允许用户空间程序访问和修改内核数据结构。
/sys
目录的用途
/sys
目录的主要用途包括:
-
提供内核对象信息:通过读取
/sys
目录中的文件和子目录,用户可以获取有关内核对象(如设备、文件系统、模块等)的信息。这些信息对于系统管理员和开发人员来说是非常重要的,因为它们有助于了解系统的内部结构和行为。 -
调整内核配置:在某些情况下,用户可以通过向
/sys
目录中的文件写入数据来调整内核配置或控制内核行为。这种机制提供了一种灵活的方式来修改系统行为,而无需重启系统或重新编译内核。 -
监控系统状态:
/sys
目录中的文件还可以用于监控系统状态。例如,可以读取某些文件来获取有关CPU使用率、内存使用情况、磁盘I/O等方面的信息。
/sys
目录包含的内容
/sys
目录的结构和内容反映了内核对象的层次结构。它通常包含以下类型的文件和子目录:
- 设备文件:代表系统中的硬件设备。这些文件提供了有关设备的详细信息,如设备号、驱动程序等。
- 类文件:代表设备类。这些文件提供了有关设备类的信息,以及类中设备的列表。
- 属性文件:提供有关内核对象的属性信息。这些文件通常包含只读或可写的数据,用于获取或设置对象的属性。
- 子系统目录:代表内核子系统(如块设备、网络设备等)。这些目录包含有关子系统中对象的文件和子目录。
注意事项
- 由于
/sys
目录中的内容是由内核动态生成的,因此它的大小和内容可能会随着系统的运行而发生变化。 - 访问
/sys
目录中的某些文件可能需要超级用户权限,因为这些文件可能包含敏感信息或涉及系统级操作。 - 在对
/sys
目录中的文件进行更改之前,请务必了解这些文件的作用和重要性,以避免对系统的正常运行造成影响。
/sys
/sys是硬件设备的驱动程序信息目录。
/sys/devices (/sys文件系统最重要的目录结构)该目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备。一般来说,所有的物理设备都按其在总线上的拓扑结构来显示,但有两个例外,即platform devices和system devices。platform devices一般是挂在芯片内部的高速或者低速总线上的各种控制器和外设,它们能被CPU直接寻址;system devices不是外设,而是芯片内部的核心结构,比如CPU,timer等,它们一般没有相关的驱动,但是会有一些体系结构相关的代码来配置它们。
/sys/dev 该目录下有字符设备(block)和块设备(char)两个子目录,里面全是以主次设备号(major:minor)命名的链接文件,链接到/sys/devices。
/sys/class (按功能分类设备)该目录下包含所有注册在kernel里面的设备类型,每个设备类型表达具有一种功能的设备。每个设备类型子目录下是具体设备的符号链接,这些链接指向/sys/devices/…下的具体设备。设备类型和设备并没有一一对应的关系,一个物理设备可能具备多种设备类型;一个设备类型只表达具有一种功能的设备,比如:系统所有输入设备都会出现在/sys/class/input之下,而不论它们是以何种总线连接到系统的。(/sys/class也是构成linux统一设备模型的一部分)
/sys/block (从linux2.6.26版本开始已经移到了/sys/class/block)代表着系统中当前被发现的所有块设备。按照功能来说防止在/sys/class下会更合适,但由于历史遗留因素而一直存在于/sys/block,但从linux2.6.22内核开始这部分就已经标记为过去时,只有打开了CONFIG_SYSFS_DEPRECATED配置编译才会有这个目录存在,并且其中的内容在从linux2.6.26版本开始已经正式移到了/sys/class/block,旧的接口/sys/block为了向后兼容而保留存在,但其中的内容已经变为了指向它们在/sys/devices/中真实设备的符号链接文件。
/sys/bus (按总线类型分类设备)一般来说每个子目录(总线类型)下包含两个子目录,一个是devices,另一个是drivers;其中devices下是这个总线类型下的所有设备,这些设备都是符号链接,它们分别指向真正的设备(/sys/devices/…下);而drivers下是所有注册在这个总线上的驱动,每个driver子目录下 是一些可以观察和修改的driver参数。 (它也是构成linux统一设备模型的一部分)
/sys/module 该目录包含所有被载入Kernel的模块,无论这些模块是以内联(inlined)方式编译到内核映像文件中还是编译为外模块(.ko文件)
/sys/fs 该目录用来描述系统中所有的文件系统,包括文件系统本身和按照文件系统分类存放的已挂载点。
/sys/kernel 该目录下存放的是内核中所有可调整的参数
/sys/firmware 该目录下包含对固件对象(firmware object)和属性进行操作和观察的接口,即这里是系统加载固件机制的对用户空间的接口.(关于固件有专用于固件加载的一套API)
/sys/power 该目录下有几个属性文件可以用于控制整个机器的电源状态,如向其中写入控制命令让机器关机/重启等等。
---------------------------------opt---------------------------
在Linux系统中,/opt
目录通常用于存放第三方软件或可选软件包。这个目录的用途和包含的内容与系统的其他目录有所不同,它提供了一个灵活的方式来安装和管理非系统默认的软件。
/opt
目录的用途
/opt
目录的主要用途包括:
-
存放第三方软件:许多第三方软件和应用程序都会将它们的安装文件放在
/opt
目录中。这样做的好处是,这些软件不会与系统默认的软件包管理器产生冲突,也不会干扰到系统的核心功能。 -
提供可选软件包:除了第三方软件外,
/opt
目录还可以用于存放可选软件包。这些软件包可能不是系统必需的,但提供了额外的功能或工具,用户可以根据需要选择安装。 -
支持多版本共存:在
/opt
目录中安装软件时,可以很容易地实现多个版本的共存。这对于需要测试不同版本软件的用户来说是非常有用的。
/opt
目录包含的内容
/opt
目录的结构和内容可能会因安装的软件而异。但通常,它可能包含以下类型的子目录和文件:
- 软件名称的子目录:每个安装在
/opt
目录中的软件都会有一个以其名称命名的子目录。这个子目录通常包含了软件的二进制文件、配置文件、库文件等。 - README 和 LICENSE 文件:许多软件在安装时会在
/opt
目录下的相应子目录中提供 README 和 LICENSE 文件。这些文件提供了有关软件的安装、使用和许可的信息。
注意事项
- 在
/opt
目录中安装软件时,建议遵循一定的命名规范和目录结构,以便于管理和维护。 - 访问
/opt
目录中的某些文件可能需要超级用户权限,因为这些文件可能包含敏感信息或涉及系统级操作。 - 在卸载或更新安装在
/opt
目录中的软件时,需要手动进行,因为系统默认的软件包管理器通常不会管理这个目录中的软件。
--------------------------------mnt----------------------------
在Linux系统中,/mnt
目录通常用于临时挂载文件系统。这个目录提供了一个方便的位置,供系统管理员在需要时挂载新的文件系统,如CD-ROM、USB驱动器或其他类型的存储设备。
/mnt
目录的用途
/mnt
目录的主要用途包括:
-
临时挂载文件系统:当需要将新的存储设备连接到系统时,可以将该设备挂载到
/mnt
目录或其子目录中。这样,用户就可以通过文件系统访问存储设备上的内容。 -
系统维护和恢复:在某些情况下,系统管理员可能会使用
/mnt
目录来挂载备份文件系统或执行系统恢复操作。通过将备份挂载到/mnt
目录,可以轻松地访问和恢复系统文件。
/mnt
目录包含的内容
/mnt
目录的内容通常是由系统管理员根据需要创建的。它可能包含以下类型的子目录和文件:
- cdrom:用于挂载CD-ROM驱动器。
- usb:用于挂载USB存储设备。
- 其他自定义子目录:根据具体需求创建的子目录,用于挂载其他类型的文件系统。
需要注意的是,/mnt
目录并不是用于存储持久数据的合适位置。一旦挂载的文件系统被卸载,存储在 /mnt
目录中的数据将不可访问。因此,对于需要长期保存的数据,应该存储在系统的其他位置,如 /home
、/var
或 /opt
等目录。
------------------------------media------------------------------
在Linux系统中,/media
目录通常用于挂载可移动媒体设备,如USB驱动器、CD-ROM、DVD以及外部硬盘等。这个目录提供了一个统一的位置,方便用户访问这些设备上的文件。
/media
目录的用途
/media
目录的主要用途是作为一个挂载点,用于临时挂载可移动媒体设备。当这些设备连接到系统时,系统会自动或手动地将它们挂载到 /media
目录下的某个子目录中。这样,用户就可以通过文件系统浏览器或命令行界面轻松地访问这些设备上的内容。
/media
目录包含的内容
/media
目录的内容通常是由系统自动创建的,具体取决于连接到系统的可移动媒体设备。它可能包含以下类型的子目录:
- 以用户名命名的子目录:在某些Linux发行版中,当可移动媒体设备被挂载时,系统会自动在
/media
目录下创建一个以当前用户名命名的子目录,并将设备挂载到这个子目录中。这种方式提供了对每个用户私有挂载点的支持。 - 以设备标签或UUID命名的子目录:在其他Linux发行版中,系统可能会使用设备的标签(label)或唯一标识符(UUID)来创建挂载点。这种方式使得挂载点与具体的设备相关联,而不是与用户名相关联。
无论采用哪种方式,/media
目录都提供了一个方便的位置来访问可移动媒体设备上的文件。用户可以通过文件系统浏览器导航到 /media
目录,然后找到相应的子目录来访问设备内容。
需要注意的是,/media
目录并不是用于存储持久数据的合适位置。一旦可移动媒体设备被卸载,存储在 /media
目录中的数据将不可访问。因此,对于需要长期保存的数据,应该存储在系统的其他位置,如用户的家目录(/home
)或其他持久存储区域。
------------------------------/lost+found------------------------------
在Linux系统中,/lost+found
目录是一个特殊的目录,用于存放文件系统在不正常关机或发生错误后恢复的一些孤立文件或片段。这个目录的作用和包含的内容如下:
/lost+found
目录的用途
-
存放孤立文件:当文件系统在异常情况下(如突然断电、系统崩溃等)未能正常卸载时,可能会导致一些文件或文件片段丢失其原有的目录结构。这些孤立的文件或片段会被系统自动收集并存放到
/lost+found
目录中。 -
数据恢复:系统管理员或用户可以通过检查
/lost+found
目录,尝试恢复这些孤立文件。虽然这些文件可能已经无法完全恢复其原始状态,但其中可能仍然包含一些有用的数据或信息。
/lost+found
目录包含的内容
/lost+found
目录的内容通常包括一些孤立的文件和目录,这些文件和目录的名称可能是由系统自动生成的,以便于区分和识别。这些文件可能来自于系统中的任何位置,因为它们在异常情况下失去了其原有的目录结构。
需要注意的是,由于 /lost+found
目录中的文件可能已经无法完全恢复其原始状态,因此在尝试恢复这些文件时可能会遇到一些困难。此外,由于这个目录中的文件可能会占用大量的磁盘空间,因此系统管理员可能需要定期清理这个目录,以释放不必要的磁盘空间。
----------------------------------------------------------------------------