首页 > 代码库 > linux目录及重要文件(持续更新)

linux目录及重要文件(持续更新)

linux目录及重要目录文件详细解析

第一部分 linux根目录及其子目录

1.1概览


1.2根目录及子目录详细解析

目录

内容

 

 

 

 

/

  • 根文件系统的内容必须足以启动、还原、恢复和/或修复系统。

  • 要启动系统,根分区上必须存在足以挂载其他分区的内容。这包括工具、配置、引导装载程序信息  和其他启动必需的数据。/usr、/opt和/var的设计使得它们可以位于其他的分区或文件系统。

  • 要能够恢复根/或修复系统,诊断和重建损坏系统所需要的工具必须放置在根文件系统中。

  • 要还原系统,从系统备份(软盘、磁带等等)还原的工具必须放置在根文件系统中

/bin

bin(binary缩写)文件夹存放必需的用户命令二进制文件,即在单用户模式下非root权限用户也可以使用的命令。例如,cat,cp,date,echo,ls,mv等等。

/boot

存放引导载入程序的静态文件。包括:

  • 系统内核kernel的配置文件;

  • 启动管理程序GRUB的目录;

  • 系统启动时的模块供应的主要来源;

  • 系统Kernel中的变量对应表;

  • 系统内核。

/dev

/dev(device缩写)文件夹存放设备文件。一个文件指向一个系统设备,用户的程序可以通过使用这些设备文件,对真实的硬件设备进行访问操作。

/etc

存放系统配置文件,几乎所有配置文件都存放于/etc目录下。

/home

非root用户家目录。创建一个非root用户时,/home目录下也会相应的创建一个/home/用户名的目录,用于存放用户自己的数据。

/lib、/lib64

Lib(libraries的缩写)目录存放必须的共享库和内核模块。

 

 

/media

可移动媒介(如软盘、光盘和zip磁盘)挂载点。历史上有多个不同的地方用来挂载可移动媒质,如 /cdrom 、/mnt 或 /mnt/cdrom。将可移动媒质的挂 载点直接放置在根文件夹下可能导致 / 下大量的额外文件夹。尽管以 /mnt 下的文件夹作为挂载点近来变得普遍,但是比这更早是直接使用/mnt 作为临时挂载点。

/mnt

临时挂载文件的挂载点。为了使系统管理员能够在需要时临时地挂载某个文件系统。

/opt

保留用于安装外部应用程序软件包。要安装在/opt 中的软件包,必须将其静态文件放置在单独的一个/opt/<package>或 /opt/<provider>文件夹树下,其中<package>是描述软件包的名称,<provider>是软件提供者的Linux分配名称和数字授权(LANANA)的注册名称。

/root

root用户默认家目录(也称,主文件夹)。root账户的主文件夹可以由开发者或本地偏好设置来决定,但这是推荐的默认位置。

/sbin

存放系统二进制文件。系统管理员使用的工具(和其他有 root 使用权限的命令)保存在/sbin、/usr/sbin 和 /usr/local/sbin中。/sbin包含除了/bin中之外其他的启动、还原、恢复和修复系统所必需的二进制文件。在已知/usr 已经挂载(并且没有问题)的情况下执行的程序通常位于 /usr/sbin下。本地安装的系统管理程序应该位于/usr/local/sbin下。

/srv

存放系统提供服务的特定站点的数据。

规定这一目录的目的是使用户可以找到特定服务的数据文件的位置,因而要求单独的树来存放只读 数据、可写数据和脚本(如  cgi 脚本)的服务可以放这里。只与某位用户相关的数据应该放入该用户 的主文件夹下。

/srv 下子文件夹的命名方法尚未规定,因为目前还没有就这方面规定的一致意见。对 /srv 下数据进 行归类的一个办法是按协议,如 /srv/ftp 、  /srv/rsync 、 /srv/www 和 /srv/cvs 。

/tmp

/tmp文件夹必须能够为要求临时文件的程序使用。 程序必须假设/tmp中的任何文件或文件夹仅用于在程序中引用。尽管 /tmp 中的文件可以站点指定的方式保存,我们依然建议在每次系统启动时删除  /tmp 下的文件 和文件夹。

/usr

存放可共享的只读数据。专门存放各种程序和数据。

/var

/var文件夹存放可变数据文件。这包括spool文件夹和文件、管理和日志数据,及过渡和临时文件。/var中有一些部分不能在不同的系统间共享。例如,/var/log和/var/run。另外的部分可以共享,尤其像/var/mail/、var/cache/man、/var/cache/fonts 和/var/spool/news。

 

 

第二部分 linux中重要文件分析


 FHS(Filesystem Hierarchy Standard)文件系统层次标准给出一些重要目录建立的参考标准,详细的参考文献在本文后上传的FHS的英文版和中文版(由Yinghua Wang翻译, wantinghard@gmail.com)的PDF文档里,若有需要,可以在下方下载。这里主要介绍一些对运维来说比较重要的目录文件。

2.1 /boot 引导装载程序的静态文件

文件

说明

/boot/config

系统内核kernel的配置文件

/boot/initramfs

系统启动时提供暂时的虚拟根文件系统

/boot/vmlinuz

系统内核文件

/boot/System.map

系统Kernel中的变量对应表

/boot/grub/grub.conf

启动管理程序GRUB的配置文件

/boot/grub/stage1

主引导扇区(MBR)的备份文件

/boot/grub/*_stage1_5

连接stage1到stage2的一个通道,里面唯一存放的是该系统文件的格式

 

/boot/grub/stage2

是GRUB的核心程序,它的主要功能是:

  • 提供菜单

  • 读取配置文件

  • 连接下一个boot sector

 

2.2 /dev 设备文件:分为块设备文件(b)和字符设备文件(c)

文件

说明

/dev/sd[a-z]

SCSI设备

/dev/fd

标准软驱

/dev/console

控制台

/dev/loop

本地回环设备

/dev/md

软raid设备

/dev/ram

内存

/dev/tty

虚拟终端

/dev/ttyS

串口

/dev/lp

并口

 

 

/etc 系统配置文件

文件

说明

/etc/exports

NFS文件系统访问控制表。

/etc/fstab

文件系统的静态信息。开机自动挂载的文件系统。

/etc/group

用户组文件,与passwd类似,只是说明对象是组。

/etc/host.conf

解析器配置文件。

/etc/hosts

有关主机名的静态信息。

/etc/inittab

init的配置文件,设置系统运行级别,加载启动相关配置。

/etc/issue

预登录消息,即认证前的输出信息,默认输出内核版本信息。

/etc/moth

认证后的输出信息。

/etc/passwd

用户数据库,保存用户名、家目录、加密口令等等的账户信息。

/etc/profile

全局系统环境配置变量

/etc/resolv.conf

Dns服务器的配置文件。标识dns域名服务器主机的位置,使用TCP/IP协议的时候需要通过DNS服务将因特网上的主机名装换为ip地址。

/etc/rsyslog.conf

系统日志文件的配置信息。

/etc/rc /etc/rc.d

/etc/rc*.d

启动或改变运行级别时运行的scripts或scripts目录

/etc/shadow

/etc/gshadow

安装影子口令软件的系统的影子加密口令文件。文件将/etc/passwd

文件中的加密口令移动到/ec/shadow中,而后者只对root可读

/etc/skel

默认创建用户时,把该目录拷贝到家目录下

/etc/sudoers

设置通过sudo命令,可以让用户运行一些本无权运行的命令可以设置某用户可使用root权限。

 

2.3 /proc  伪文件系统(存在于内存中),为访问系统内核数据的操作提供接口

目录

说明

/proc/cpuinfo

关于cpu的信息,如类型、厂商、型号和性能参数。

/proc/filesystems

系统已加载的文件系统。

/proc/meminfo

内存的相关信息。

/proc/modules

系统已加载的内核模块。

/proc/mounts

系统已挂载的设备或文件系统。

/proc/partitions

系统的分区情况。

/proc/swaps

交换分区swap的信息。

 

 

2.4 /sys  以拓扑结构表示linux资源

文件

说明

/sys/block

存放指向在 /sys/devices/ 中真实设备的符号链接文件。

/sys/dev

存放字符设备和块设备文件,以主次设备号排列。

/sys/devices

以树形结构存放系统所有的设备文件。

 

 

 

/sys/bus

内核设备按照总线类型分层放置的目录结构,/sys/devices中的所有设备都是连接于某种总线之下的,bus子目录下的每种具体总线之下可以找到每个具体设备的符号链接,一般来说每个子目录(总线类型)下包含两个子目录,一个是devices,另一个是drivers;其中devices下是这个总线类型下的所有设备,这些设备都是符号链接,它们分别指向真正的设备(/sys/devices/name/下);而drivers下是所有注册在这个总线上的驱动,每个driver子目录下是一些可以观察和修改的driver参数。

 

 

 

/sys/class

包含所有注册在kernel里面的设备类型,按照设备功能分类的设备模型,每个设备类型表达具有一种功能的设备。每个设备类型子目录下都是这种设备类型的各种具体设备的符号链接,这些链接指向/sys/devices/name下的具体设备。设备类型和设备并没有一一对应的关系,一个物理设备可能具备多种设备类型;一个设备类型只表达具有一种功能的设备,比如:系统所有输入设备都会出现在/sys/class/input之下,而不论它们是以何种总线连接到系统的。(/sys/class也是构成linux统一设备模型的一部分)

 

/etc/firmware

包含对固件对象(firmware object)和属性进行操作和观察的接口,即这里是系统加载固件机制的对用户空间的接口.(关于固件有专用于固件加载的一套API)

/etc/fs

描述系统中所有的文件系统,包括文件系统本身和按照文件系统分类存放的已挂载点。

/etc/kernel

存放内核中所有可调整的参数

/etc/module

系统中所有的模块信息,不论这些模块是以内联(inlined)方式编译到内核映像文件中还是编译为外模块(.ko文件),都可能出现在/sys/module中。即module目录下包含了所有的被载入kernel的模块。

/etc/power

系统中的电源选项,对正在使用的power子系统的描述。

 

 

2.5 /usr 存放各种程序和数据

文件

目录

/usr/bin

存放非必需用户命令二进制文件

/usr/share

包含了各种程序间的共享文件,如字体,图标,文档等。

/usr/src

Linux 内核的源码和说明文档等

/usr/local

主要存放那些手动安装的软件。它和/usr目录具有相类似的目录结构 。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面。

 

 

2.6 /var  可变数据文件。包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。

文件

目录

/var/log

存放系统和各种服务的日志文件

/var/log/messages

系统日志信息,包含系统启动期间的日志。

/var/log/dmesg

内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。

var/log/boot.log

系统启动时的日志。

/var/log/yum.log

使用yum安装的软件包信息。

/var/secure-日期

验证和授权方面信息。

/var/log/wtmp

记录登陆者信息,是last、who命令的信息来源。

/var/log/mail-日期

邮件服务器的额外日志。

 


本文出自 “零容忍” 博客,请务必保留此出处http://lingrongren.blog.51cto.com/12744457/1924746

linux目录及重要文件(持续更新)