写这篇文章的目的是想把Linux 目录相关的知识做个整合,因为自己对于这方面了解的还不是很细(尤其是/proc 目录),内容均整合自网络。
目录作用简述
以下内容来自维基百科 【Filesystem Hierarchy Standard】 词条
目录 | 描述 |
---|---|
/ | 第一层次结构 的根、 整个文件系统层次结构的根目录。 |
/bin/ | 需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如:cat、ls、cp。 |
/boot/ | 引导程序文件,例如:kernel、initrd;时常是一个单独的分区[6] |
/dev/ | 必要设备,例如:,/dev/null. |
/etc/ | 特定主机,系统范围内的配置文件。 关于这个名称目前有争议。在贝尔实验室关于UNIX实现文档的早期版本中,/etc 被称为/etcetra 目录,[7] 这是由于过去此目录中存放所有不属于别处的所有东西(然而,FHS限制/etc存放静态配置文件,不能包含二进制文件)。[8] 自从早期文档出版以来,目录名称已被以各种方式重新称呼。最近的解释包括反向缩略语如:"可编辑的文本配置"(英文 "Editable Text Configuration")或"扩展工具箱"(英文 "Extended Tool Chest")。 [9] |
| /opt/的配置文件 |
| X_Window系统(版本11)的配置文件 |
| SGML的配置文件 |
| XML的配置文件 |
/home/ | 用户的家目录,包含保存的文件、个人设置等,一般为单独的分区。 |
/lib/ | /bin/ and /sbin/中二进制文件必要的库文件。 |
/media/ | 可移除媒体(如CD-ROM)的挂载点 (在FHS-2.3中出现)。 |
/mnt/ | 临时挂载的文件系统。 |
/opt/ | 可选应用软件包。[10] |
/proc/ | 虚拟文件系统,将内核与进程状态归档为文本文件。例如:uptime、 network。在Linux中,对应Procfs格式挂载。 |
/root/ | 超级用户的家目录 |
/sbin/ | 必要的系统二进制文件,例如: init、 ip、 mount。 |
/srv/ | 站点的具体数据,由系统提供。 |
/tmp/ | 临时文件(参见 /var/tmp),在系统重启时目录中文件不会被保留。 |
/usr/ | 用于存储只读用户数据的第二层次; 包含绝大多数的(多)用户工具和应用程序。[11] |
| 非必要可执行文件 (在单用户模式中不需要);面向所有用户。 |
| 标准包含文件。 |
| /usr/bin/和/usr/sbin/中二进制文件的库。 |
| 非必要的系统二进制文件,例如:大量网络服务的守护进程。 |
| 体系结构无关(共享)数据。 |
| 源代码,例如:内核源代码及其头文件。 |
| X Window系统 版本 11, Release 6. |
| 本地数据的第三层次, 具体到本台主机。通常而言有进一步的子目录, 例如:bin/、lib/、share/. |
/var/ | 变量文件——在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。有时是一个单独的分区。 |
| 应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。 |
| 状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。 |
| 锁文件,一类跟踪当前使用中资源的文件。 |
| 日志文件,包含大量日志文件。 |
| 用户的电子邮箱。 |
| 自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run代替[13]。 |
| 等待处理的任务的脱机文件,例如:打印队列和未读的邮件。 |
| 用户的邮箱(不鼓励的存储位置) |
| 在系统重启过程中可以保留的临时文件。 |
| 代替/var/run目录。 |
目录作用详细
以下内容来自网络,原作者早已无法查证,但是正确性没有确认,光目测的就有不少错误,可能因为年岁已多吧,有空(蛋疼的时候,可能得好几个月)再给统一改了。
/etc 目录
/etc/rc /etc/rc.d /etc/rc*.d
启动、或改变运行级时运行的scripts或scripts的目录./etc/passwd
用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息.
/etc/fdprm
软盘参数表.说明不同的软盘格式.用setfdprm 设置.
/etc/fstab
启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表.Linux下,也包括用swapon -a启用的swap区的信息.
/etc/group
类似/etc/passwd ,但说明的不是用户而是组.
/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/termcap
终端性能数据库.说明不同的终端用什么"转义序列"控制.写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap中查找要做的工作的正确序列.这样,多数的程序可以在多数终端上运行
/usr 目录
/usr/X11R6 X Window系统的所有文件.为简化X的开发和安装,X的文件没有集成到系统中. X自己在/usr/X11R6 下类似/usr .
/usr/X386
类似/usr/X11R6 ,但是给X11 Release 5的.
/usr/bin
几乎所有用户命令.有些命令在/bin 或/usr/local/bin 中.
/usr/sbin
根文件系统不必要的系统管理命令,例如多数服务程序.
/usr/man , /usr/info , /usr/doc
手册页、GNU信息文档和各种其他文档文件.
/usr/include
C编程语言的头文件.为了一致性这实际上应该在/usr/lib 下,但传统上支持这个名字.
/usr/lib
程序或子系统的不变的数据文件,包括一些site-wide配置文件.名字lib来源于库(library); 编程的原始库存在/usr/lib 里.
/usr/local
本地安装的软件和其他文件放在这里.
/var 目录
/var/catman 当要求格式化时的man页的cache.man页的源文件一般存在/usr/man/man* 中;有些man页可能有预格式化的版本,存在/usr/man/cat* 中.而其他的man页在第一次看时需要格式化,格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了. (/var/catman 经常被清除,就象清除临时目录一样.)
/var/lib
系统正常运行时要改变的文件.
/var/local
/usr/local 中安装的程序的可变数据(即系统管理员安装的程序).注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock .
/var/lock
锁定文件.许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件.其他程序注意到这个锁定文件,将不试图使用这个设备或文件.
/var/log
各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息. /var/log 里的文件经常不确定地增长,应该定期清除.
/var/run
保存到下次引导前有效的关于系统的信息文件.例如, /var/run/utmp 包含当前登录的用户的信息.
/var/spool
mail, news, 打印队列和其他队列工作的目录.每个不同的spool在/var/spool 下有自己的子目录,例如,用户的邮箱在/var/spool/mail 中.
/var/tmp
比/tmp 允许的大或需要存在较长时间的临时文件. (虽然系统管理员可能不允许/var/tmp 有很旧的文件.)
/proc 目录
/proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关
/proc/cmdline
启动时传递给kernel的参数信息
/proc/cpuinfo
cpu的信息
/proc/crypto
内核使用的所有已安装的加密密码及细节
/proc/devices
已经加载的设备并分类
/proc/dma
已注册使用的ISA DMA频道列表
/proc/execdomains
Linux内核当前支持的execution domains
/proc/fb
帧缓冲设备列表,包括数量和控制它的驱动
/proc/filesystems
内核当前支持的文件系统类型
/proc/interrupts
x86架构中的每个IRQ中断数
/proc/iomem
每个物理设备当前在系统内存中的映射
/proc/ioports
一个设备的输入输出所使用的注册端口范围
/proc/kcore
代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb
/proc/kmsg
记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理
/proc/loadavg
根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关
/proc/locks
内核锁住的文件列表
/proc/mdstat
多硬盘,RAID配置信息(md=multiple disks)
/proc/meminfo
RAM使用的相关信息
/proc/misc
其他的主要设备(设备号为10)上注册的驱动
/proc/modules
所有加载到内核的模块列表
/proc/mounts
系统中使用的所有挂载
/proc/mtrr
系统使用的Memory Type Range Registers (MTRRs)
/proc/partitions
分区中的块分配信息
/proc/pci
系统中的PCI设备列表
/proc/slabinfo
系统中所有活动的 slab 缓存信息
/proc/stat
所有的CPU活动信息
/proc/sysrq-trigger
使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的
/proc/uptime
系统已经运行了多久
/proc/swaps
交换空间的使用情况
/proc/version
Linux内核版本和gcc版本
/proc/bus
系统总线(Bus)信息,例如pci/usb等
/proc/driver
驱动信息
/proc/fs
文件系统信息
/proc/ide
ide设备信息
/proc/irq
中断请求设备信息
/proc/net
网卡设备信息
/proc/scsi
scsi设备信息
/proc/tty
tty设备信息
/proc/net/dev
显示网络适配器及统计信息
/proc/vmstat
虚拟内存统计信息
/proc/vmcore
内核panic时的内存映像
/proc/diskstats
取得磁盘信息
/proc/schedstat
kernel调度器的统计信息
/proc/zoneinfo
显示内存空间的统计信息,对分析虚拟内存行为很有用
/proc/N
pid为N的进程信息
/proc/N/cmdline
pid为N的进程启动命令
/proc/N/cwd
链接到pid为N的进程当前工作目录
/proc/N/environ
pid为N的进程环境变量列表
/proc/N/exe
链接到pid为N的进程的执行命令文件
/proc/N/fd
包含pid为N的进程相关的所有的文件描述符
/proc/N/maps
与pid为N的进程相关的内存映射信息
/proc/N/mem
指代pid为N的进程持有的内存,不可读
/proc/N/root
链接到pid为N的进程的根目录
/proc/N/stat
pid为N的进程的状态
/proc/N/statm
pid为N的进程使用的内存的状态
/proc/N/status
pid为N的进程状态信息,比stat/statm更具可读性
/proc/self
链接到当前正在运行的pid为N的进程
/dev 目录
/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/null
无限数据接收设备,相当于黑洞
/dev/zero
无限零资源
/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
随机数设备