Linux - 系统文件目录说明

/ - 根目录

老街头的猫。

linux有四种基本文件系统类型:

  • 普通文件:如文本文件、c语言源代码、shell脚本等,可以用cat、less、more、vi等来察看内容,用mv来改名;
  • 目录文件:包括文件名、子目录名及其指针,可以用ls列出目录文件;
  • 链接文件:是指向一索引节点的那些目录条目,用ls来查看时,链接文件的标志用l开头,而文件后以"->"指向所链接的文件;
  • 特殊文件:如磁盘、终端、打印机等都在文件系统中表示出来,常放在/dev目录内;

/bin - 用户基础二进制文件目录

bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令,比如cd,ls等命令。Linux根目录下的bin目录其实是一个快捷方式,指向的是/usr/bin
老街头的猫。

/boot - 静态启动文件

存放开机时所要用的文件,包括linux核心文件、开机菜单和开机所要的配置文件。
老街头的猫。

/dev - 设备文件

为设备目录,用于储存硬件设备信息,通过其下的目录可以直接访问硬件,在Linux下设备被当成文件,这样一来硬件被抽象化、便于读写、网络共享以及需要临时装载到文件系统中,正常情况下,设备会有一个独立的子目录,这些设备的内容会出现在独立的子目录下。设备文件分为2种类型:字符设备文件和块设备文件(目录中基本上都是设备文件,如硬盘设备文件/dev/sda)
老街头的猫。
内存设备:

  • /dev/mem:物理内存的全镜像。可以用来直接存取物理内存。
  • /dev/kmem:内核看到的虚拟内存的全镜像。可以用来访问内核中的内容(查看内核变量或用作rootkit之类)。
  • /dev/null:空设备。任何写入都将被直接丢弃(但返回"成功");任何读取都将得到EOF(文件结束标志)。
  • /dev/port:存取I/O端口
  • /dev/zero:零流源。任何写入都将被直接丢弃(但返回"成功");任何读取都将得到无限多的二进制零流。
  • /dev/full:满设备。任何写入都将失败,并把errno设为ENOSPC(没有剩余空间);任何读取都将得到无限多的二进制零流。
  • /dev/random:真随机数发生器。以背景噪声数据或硬件随机数发生器作为熵池,读取时会返回小于熵池噪声总数的随机字节。
  • /dev/aio:异步I/O通知接口
  • /dev/kmsg:任何对该文件的写入都将作为printk的输出;而读取则得到printk的输出缓冲区内容

TTY(终端)设备:

  • /dev/tty0:当前虚拟控制台
  • /dev/tty1:第1个虚拟控制台
  • ……
  • /dev/tty63:第63个虚拟控制台
  • /dev/ttyS0:第1个UART串口
  • ……
  • /dev/ttyS3 第3个UART串口

辅助 TTY 设备

  • /dev/tty:当前 TTY 设备
  • /dev/console 系统控制台(一般是/dev/tty0)
  • /dev/ptmx 所有 Unix98 PTY master 的复用器
  • /dev/ttyprintk 内核通过此设备使用printk发送内嵌的用户消息(依赖于CONFIG_TTY_PRINTK)
  • /dev/cua0 对应于 ttyS0 的呼出(Callout)设备

虚拟控制台捕捉设备(这些设备既允许读也允许写)

  • /dev/vcs:当前虚拟控制台(vc)的文本内容
  • /dev/vcs1:tty1 的文本内容
  • ……
  • /dev/vcs63:tty63 的文本内容
  • /dev/vcsa:当前虚拟控制台(vc)的文本/属性内容
  • /dev/vcsa1:tty1 的文本/属性内容
  • ……
  • /dev/vcsa63:tty63 的文本/属性内容

各种杂项设备(含非串口鼠标)

  • /dev/psaux: PS/2鼠标
  • /dev/beep: 能够让主板的蜂鸣器发出不同频率声音的设备(Fancy Beeper Daemon)
  • /dev/watchdog: 看门狗(CONFIG_WATCHDOG)
  • /dev/temperature:机器内部温度
  • /dev/rtc: 实时时钟(Real Time Clock)
  • /dev/pciconf: PCI配置空间
  • /dev/nvram: 非易失配置RAM
  • /dev/led: 发光二极管(LED)灯
  • /dev/kpoll: 内核轮询(Poll)驱动
  • /dev/lcd: 液晶(LCD)显示屏
  • /dev/userdma:用户空间DMA访问
  • /dev/smbus: 系统管理总线(System Management Bus)
  • /dev/ipmo:Intel的智能平台管理(Intelligent Platform Management)接口
  • /dev/vmmon:VMware虚拟机监视器
  • /dev/thinkpad/thinkpad:Thinkpad设备
  • /dev/ipmikcs:智能平台管理(Intelligent Platform Management)接口
  • /dev/agpgart:AGP图形地址重映射表(Graphics Address Remapping Table)
  • /dev/perfctr:性能监视计数器
  • /dev/hwrng:通用硬件随机数发生器
  • /dev/cpu/microcode:CPU微代码更新接口(依赖于CONFIG_MICROCODE)
  • /dev/atomicps:进程状态数据的原子快照
  • /dev/smbusbios:SMBus(系统管理总线) BIOS
  • /dev/ussp_ctl:用户空间串口控制器
  • /dev/net/tun:TAP/TUN 网络设备(TAP/TUN以软件的方式实现了网络设备),TAP模拟了以太网帧(第二层),TUN模拟了IP包(第三层)。
  • /dev/emd/ctl:增强型 Metadisk RAID (EMD) 控制器
  • /dev/cuse:用户空间的字符设备(Character device in user-space)
  • /dev/watchdogs/0:第一只看门狗
  • /dev/watchdogs/1:第二只看门狗
  • /dev/watchdogs/2:第三只看门狗
  • /dev/watchdogs/3:第四只看门狗
  • /dev/mptctl:Message passing technology (MPT) control
  • /dev/input/uinput:用户层输入设备
  • /dev/tpm:TCPA TPM driver
  • /dev/mcelog:X86_64 Machine Check Exception driver
  • /dev/hpet:高精度事件定时器(HPET)
  • /dev/fuse:Fuse(用户空间的虚拟文件系统)
  • /dev/snapshot:系统内存快照
  • /dev/kvm:内核虚构机(基于AMD SVM和Intel VT硬件虚拟技术)
  • /dev/btrfs-control:Btrfs文件系统控制设备
  • /dev/autofs:Autofs控制设备
  • /dev/mapper/control:设备映射(Device-Mapper)控制器
  • /dev/loop-control:回环设备控制器
  • /dev/vhost-net:用于 virtio net 的宿主内核加速器

核心输入设备

  • /dev/input/js0 第一个游戏杆(joystick)
  • /dev/input/js1 第二个游戏杆(joystick)
  • ……
  • /dev/input/mouse0 第1个鼠标
  • /dev/input/mouse1 第2个鼠标
  • ……
  • /dev/input/mice 所有鼠标的合体
  • /dev/input/event0 第1个事件队列
  • /dev/input/event1 第2个事件队列

通用帧缓冲(frame buffer)设备

  • /dev/fb0:第1个帧缓冲设备
  • /dev/fb1:第2个帧缓冲设备
  • ……
  • /dev/fb31:第32个帧缓冲设备

网络块设备(Network block devices)

  • /dev/nb0:第1个网络块设备
  • /dev/nb1:第2个网络块设备

特定于CPU模式的寄存器(model-specific register,MSR)

  • /dev/cpu/0/msr:CPU 0 的 MSRs
  • /dev/cpu/1/msr:CPU 1 的 MSRs

CPU CPUID 信息

  • /dev/cpu/0/cpuid:CPU0的CPUID
  • /dev/cpu/1/cpuid:CPU1的CPUID

必须的链接

链接 目标 链接类型 简要说明
/dev/fd /proc/self/fd symbolic 文件描述符
/dev/stdin fd/0 symbolic stdin(标准输入)文件描述符
/dev/stdout fd/1 symbolic stdout(标准输出)文件描述符
/dev/stderr fd/2 symbolic stderr(标准错误)文件描述符
/dev/nfsd socksys symbolic 仅为 iBCS-2 所必须
/dev/X0R null symbolic 仅为 iBCS-2 所必须

套接字和管道

  • /dev/printer: lpd 本地套接字
  • /dev/log:syslog 本地套接字
  • /dev/gpmdata:gpm 鼠标多路复用器(multiplexer)
  • /dev/initctl:init 监听它并从中获取信息(用户与 init 进程交互的通道)

/etc - 配置文件

为操作系统的配置文件目录(防火墙、启动项)
老街头的猫。
基本文件:所有直接放在/etc目录下的文件归类为基本文件;

  • aliases:用于设置邮件别名;
  • auto.*:代表的是一系列autofs服务所需要的配置文件,这个服务主要是让管理员可以事先定义出一些网络、本机或光驱等默认的路径;
  • auto.master:负责规划目录的分配与使用,目前默认提供三种自动挂载模式;
  • auto.misc:文件中的配置都以实体连接本机的磁盘驱动器为主;
  • auto.net:并不是一个配置文件,而是一个脚本文件,在使用上其实不须做任何调整;;
  • auto.smb:与auto.net一样,都是以个脚本文件;
  • bashrc:用户登录功能配置,全局配置,对所有用户生效,主要配置别名;
  • profile:与系统环境配置或初始化软件的相关配置,全局配置,对所有用户生效,主要配置变量;
  • DIR_COLORS:用于配置ls命令的颜色,主要针对tty登录的用户;
  • DIR_COLORS.xterm:用于配置ls命令的颜色,主要针对xterm登录的用户;
  • fstab:系统启动时自动挂载文件系统的配置文件;
  • inittab:启动时系统所需要的第一个配置文件;也即是init进程的配置文件;
  • issue:用户本机登录时,看到的欢迎信息;
  • issue.net:用户网络登录时,看到的欢迎信息;
  • ld.so.conf:包含ld.so.conf.d/.conf配置;主要是ld.so.conf.d/.conf目录的作用;
  • localtime:系统所使用的时区对应的配置文件;对应的时区文件都存在于/usr/share/zoneinfo/
  • motd:登录成功的用户显示的信息对应的配置文件;
  • mtab:可以当做是检查当前文件系统挂载情况的配置文件;与mount命令结果一致;
  • prelink.conf:定义哪些执行文件和函数库是需要预先连接的;
  • securetty:主要是login程序在使用的,只要是列在该文件中的接口,就表示是可以使用的接口,相反,若从列表中删除,则无法使用该接口;
  • shells:记录目前系统所拥有shell种类的路径,通过cssh命令使用;
  • sudoers:sudo命令对应的配置文件,用于配置权限的分配方式;
  • sysctl.conf:主要是帮助用户配置/proc/sys目录下所有文件的值,与sysctl命令对应;
  • syslogd.conf:是syslogd服务的配置文件
  • host.conf:主机名解析配置文件,主要说明解析的方式及顺序;
  • hosts:主机名解析配置文件,主要列出所有需要本地解析的主机名与IP地址的对应关系;
  • hosts.allow和hosts.deny:linux网络安全机制TCP Wrapper对应的配置文件;
  • nsswitch.conf:主要记录系统应如何查询主机名、密码、用户组、网络等,或是查询顺序的编排;
  • resolv.conf:记录DNS服务器地址,用于DNS域名解析;
  • services:定义了网络服务的默认端口号;
  • xinetd.conf:xinetd的主配置文件,目的是为xinetd.d下的所有子服务建立一个标准的规范使其可以遵循;
  • anacrontab:属于一种任务计划软件的配置文件,anacrontab软件和crond其实有点相辅相成,crond负责任务计划,而anacrontab则是负责以"间隔多久"为主要的目标;
  • at.deny:该文件属于拒绝列表,只要被记录在其中的用户,就无法使用at所提供的任务计划服务;
  • at.allow:与at.deny刚好相反;
  • crontab:crontab的主配置文件,crond默认会执行的文件可以参考此配置文件;
  • cron.deny:该文件属于拒绝列表,只要被记录在其中的用户,就无法使用crond所提供的任务计划服务;
  • cron.allow:与cron.deny刚好相反;
  • exports:是NFS服务的主配置文件,主要目的就是将本机的目录共享到网络上,供其他人使用;
  • group与gshadow:用户组配置文件,group主要保存用户组信息,gshadow主要保存群组密码;
  • login.defs:设置系统在建立账号时所参考的配置;
  • passwd:主要保存系统用户账号的信息;
  • shadow:linux系统通常包经过"hash"处理后的密码存储在这个文件中;
  • protocols:通信协议对应端口号的一个对照表,包含协议名称、协议号码、注释等;
  • wgetrc:wget程序对应的配置文件,其中有quota、mail header、重传文件的预设次数、firewall和proxy等相关设置;
  • init.d:RHEL中所有服务的默认启动脚本都存放在这里;这个是链接文件,链接到/etc/rc.d/init.d;
  • csh.cshrc和csh.login: 用户启动c shells执行的初始化配置文件;
  • printcap:linux系统中打印机设备对应的配置文件;

服务器目录:如samba、http、vsftpd等服务器配置相关目录;

  • cups:linux下的打印机服务器,目录下存放的是打印机服务的配置文件;
  • dnsmasq.d:dnsmasq是一种DNS的"轻薄机种",转为区域或小型网络所设计,拥有比一般DNS更为方便简易的配置;
  • httpd:apache网页服务器的配置文件所在目录;
  • mail:Mail Server组件的主要配置目录,如sendmail;
  • ntp:网络时间服务器的配置目录,其主要配置文件为/etc/ntp.conf;
  • openldap:目录明显是LDAP的配置目录,软件名称为OpenLDAP;
  • postfix:postfix组件所提供的主要配置文件目录;
  • samba:文件共享服务samba的主要配置文件目录;
  • smrsh:这是sendmail为了限制用户可使用的命令设计的程序,将原本用户所使用的/bin/sh替换为/usr/sbin/smrsh;
  • snmp:简单网络管理软件的配置文件目录,存在snmpd.conf主配置文件;
  • squid:这是linux下的代理服务器squid的配置文件目录,主配置文件是squid.conf;
  • ssh:SSH服务的主要配置目录,主配置文件是sshd_config;
  • vsftpd:vsftpd服务器的主要配置目录,主配置文件是vsftpd.conf;
  • xinetd.d:xinetd是一个管理多个服务的daemon,这个目录下列出的服务都是由xinetd进程管理的,其主配置文件是/etc/xinetd.conf;

系统目录:如sysconfig、xen或网络配置等与系统运行相关的目录;

  • blkid:此目录所存放的其实是一个块设备ID的临时文件,主要是记录系统中所有区块设备的标签名称、硬件的唯一识别码、文件系统的格式等基本信息;
  • bluetooth:linux下使用蓝牙设备所需的配置文件;启动蓝牙检测的主要服务仍是/etc/rc.d/init.d/bluetooth,该程序使用的是hcid.conf配置文件;
  • cron.X:cron.X的目录都是给cron软件存放其需要任务计划的文件所使用的,按任务计划时间的长短及配置特性分为cron.d、cron.daily、cron.hourly、cron.monthly、cron.weekly五个主要目录;
  • dbus-1:D-BUS的主要配置目录,D-BUS也是一种IPC交流的方式;
  • default:这里是存放一些系统软件默认值的目录,存放某些软件执行时的基本参数;
  • firmware:这个目录所存放的东西是非常底层的信息,是CPU所需的microcode的实体文件;
  • foomatic:与打印机相关的配置目录,实现打印一对多的方式,在foomatic中,可以记录多条打印机数据,让用户只在使用前先行配置所有需要使用的打印机即可;
  • hal:全名Hardware Abstraction Layer,是linux一种管理硬件的机制,它会帮所有的应用程序或用户搜集所有PCI及USB等硬件信息,因此,用户可以很简单并实时地通过HAL的方式取得硬件的相关数据;
  • isdn:ISDN服务的主要配置目录,里面包含可拨号的用户、电话、联机方式等;
  • ld.so.conf.d:这个目录是ldconfig所使用的,更准确的说,它是由/etc/ld.so.conf文件所决定的;ldconfig命令的目的在于将系统中的一些函数库预先存放到内存中,让系统使用时可以比以往通过硬盘的读取速度来的更快,这样可以大幅提高系统性能,尤其当要重复读取时更明显;ldconfig要将哪些函数库丢到内存中,则须看/etc/ld.so.conf文件中所记录的信息;
  • logrotate.d:此目录对系统管理员来说,是十分重要的一个目录,因为目录中的文件,记录了如何定期备份系统所需要备份的系统或软件日志文件及备份方式,目录是由logrotate组件所提供的,而里面所有文件是由各软件各自产生的;其主要配置文件是/etc/logrotate.conf;
  • logwatch:logrotate主要是实现如何备份日志文件,这个目录就是记载如何分析日志文件并告诉用户的软件logwatch的配置目录;
  • lsb-release.d:LSB是一个由很多人所执行的项目,其目的是将所有的Linux发行版定义为一些共同的标准;
  • lvm:这个目录是LVM的基本配置文件,但配置或操作一般都只需要通过LVM提供的命令,而不会用到这个目录,除非要使用到很高级的配置才会更改此文件;
  • makedev.d:MAKEDEV软件对应的配置文件目录,MAKEDEV主要用来产生设备文件,也就是说,在/dev目录下的文件都由这个命令产生的,此目录下的文件主要是针对设备文件的定义或属性,目录中存在的设备文件可以由MAKEDEV来创建,否则需要使用mknod命令了;
  • modprobe.d:是modprobe命令的住配置目录,一般系统启动默认要加载的模块放在/etc/modprobe.conf中;
  • netplug和netplug.d:这两个目录和网络接口的联机与否由直接关系,因为主要是控制联机时的接口操作;
  • pcmcia:这是PCMCIA的配置文件目录,PCMCIA是笔记本电脑不可或缺的接口,需要即插即用的方式,此接口使用较少;
  • pm:由pm-utils组件所提供的目录,pm-utils是一套电源管理的工具软件,其中/usr/lib/pm-utils也是主要目录之一;
  • ppp:ppp相关的配置文件都放在这个目录中;
  • profile.d:这个目录存放的是系统部分的软件配置,但会按不同的shell执行不同的文件,默认所使用的bash会直接执行该目录下所有扩展名为.sh的文件;
  • rc.d:主要用来定义在每一个执行阶段必须要执行哪些系统服务或程序,在目录中主要分为三个重要的部分:
    • rc.sysinit:系统一开始启动时所遇到的第一个文件,此脚本文件记录服务启动之前所需准备的所有事情,包括启动时看到的欢迎画面;
    • rcX.d:在rc.sysinit文件之后所要执行的,X是系统启动时的initdefault值,值为几则会转到那个目录下,并执行其中的所有文件,在此目录中,文件一律都由两个英文字母开始K和S,K代表kill,S代表Start;
    • rc.local:系统初始化过程中最后一个执行的脚本文件,可以将需要开机启动的程序或脚本放置在这个脚本文件中,以实现自动运行的目的;
  • readahead.d:是readahead程序的主要配置目录,为了加速操作系统的使用速度,readahead_early和readahead_later这两个进程在系统加载时,直接将日常所需要的一些文件,全部先放到硬盘的高速缓存中;
  • redhat-lsb:都lsb-release.d目录都是由程序redhat-lsb所提供的;
  • rwtab.d:这个目录是一个在启动时会去参考的目录,主要的文件在/etc/rwtab;这是一个系统初期的备份机制;
  • sane.d:这是在系统下要使用扫描仪所需的配置目录,主要配置文件是sane.conf,sane为了方便用户在各式的扫描仪连接时都可以使用,因此,在这一目录中放置了很多种不同类型扫描仪的硬件信息,让系统在检测到扫描仪时可以直接使用;
  • setuptool.d:这个目录是"setup"系统配置工具的主要配置目录;
  • skel:用于初始化用户宿主目录的配置目录,当建立一个用户时,会把此目录下的所有文件复制一份到用户的宿主目录,作为用户的初始化配置;
  • sysconfig:非常重要的系统配置文件的存放目录,里面放置了大量系统启动及运行相关的配置文件;
  • sysconfig/network-scripts/ifcfg-eth0:网卡eth0对应的配置文件,设置内容包括设备名称、IP地址、广播地址、网关地址、网段、开机是否激活等参数
  • udev:udev程序本身是一套设备的管理机制,udev通过sysfs的文件系统,可以正确地掌握目前系统上存在的硬件设备,以及针对每一个硬件设备做出不同的判断与执行;
  • yum和yum.repos.d:这两个都是yum的配置目录,是一套在linux下可以自动帮助用户安装、更新、移除等的管理组件,可用来替代rpm包管理方式,主配置文件是/etc/yum.conf;yum是更新方式及外挂程序的配置目录,yum.repos.d是存放定期更新组件内容的信息;

安全性目录:如selinux或pam.d等管理系统安全性的目录;

  • audit:这个目录所代表的是一种和目录名称一致的audit安全机制,主要以服务的方式协助管理员持续监控各文件被存取的情况;目录下的audit.rules文件主要是定义一些必要的监控规则;
  • pam.d:此目录是Linux-PAM的所有配置文件,配合/lib/security目录中所有觉得函数库,提供Linux下的应用程序认证的机制;
  • pam_pkcs11:PAM机制中的一种登录模块,可以让用户通过smart card做登录的操作;
  • pki:PKI是一种公开密钥的管理方式,通过这样的管理模式,可以让所有网络传输有更多保障;
  • racoon:这个目录是由ipsec-tools组件所提供的,ipsec的主要目的是让系统实现VPN的网路技术,在racoon目录的主配置文件racoon.conf中,定义在ipsec操作中所需要的加密算法种类以及其他细节的配置;
  • security:与pam.d目录相辅相成,pam.d中的所有PAM的规则都要用到/lib/security下的PAM函数库,而/etc/security目录中,就是针对这些函数库,提供以配置文件的方式进行细节配置,对希望调整系统安全性部分增加了非常大的方便性;
  • selinux:selinux是一个很新的安全性方案,它是一种针对各种文件、目录、设备或daemon等在linux所需使用到的安全性机制,而且其安全性的数据时直接记录在文件系统中;
  • wpa_supplicant:这个目录被归类到安全性目录中,是因为其属于无线中安全认证的部分,存在wpa_supplicant.conf配置文件,用户可以在这个目录中加入已知可登陆的AP;

X Windows目录:如X11或gdm管理X windows启动或使用上的配置目录;

  • alternatives:linux下可辨识扩展名的"文件类型"选项,可以针对同一类型的文件,选出一个默认用户所要使用的程序去执行;/etc/alternatives目录下有所有目前已经定义的程序名称,都以软链接的方式存在,里面每一个文件其实都有定义好的默认执行程序,可以使用alternatives命令查看及修改配置;
  • fonts:这个目录就是fontconfig软件的最主要配置目录,其中/etc/fonts/fonts.conf就是对应的配置文件,/etc/fonts目录下的配置都是以XML的方式配置的;
  • gconf:这一目录是GConf2的组件所建立的,GConf的作用就是提供GNOME下的应用程序注册的机制,有些类似于windows下的regedit;
  • gdm:全名为GNOME Display Manger,也就是协助X Windows启动的管理软件,在GDM中的主配置文件是custom.conf,在X windows下可以利用gdmsetup命令对这个文件进行配置;
  • gnome-vfs-2.0:GNOME VFS机制,让GNOME的系统可以知道每一种文件格式要如何开启或浏览,而所有的配置都需要有相对应的函数库;
  • gtk-2.0:由gtk+组件提供的目录,主要是提供X Windows窗口的颜色、按钮或图案,包含软件选项的画面、选项的按钮、滚动轴的样式等;
  • kde:KDE Desktop Manager的主要配置目录;主配置文件是kdmrc;
  • NetworkManager:此目录的目的是让用户不需要做任何操作和配置,只要用户曾经登陆过无线AP,系统就可以记录下来,以后再次登陆时就可以方便的登陆;
  • pango:pango是一套协助GTK+将字体描绘出来的函数库,不论任何的字体或语言,都可以通过pango描绘出来;
  • rhgb:系统在进入X Windows之前,有一个前置配置的图形接口,这个接口就是rhgb,其主要目的是让系统启动变得漂亮;
  • scim:是Linux下目前很好用的输入法;
  • sound:GNOME下有许多的应用软件,很多都会有其特殊的声音,这个目录中存放所有声音的命令路径;
  • X11:X windows的核心配置目录;该目录下比较重要的文件有prefdm(判断X windows使用哪一个Display Manager)、主配置文件xorg.conf(定了X windows所需使用的键盘、鼠标、显卡等相关硬件设备,重点是关于显卡的配置)、xinit子目录(里面都是一些X windows资源相关的配置)
  • xdg:X windows上的菜单画面,就是从这里出来的,所有在X windows中使用的菜单文字及分类,都可以在这个目录下做配置,其下的子目录menu,可以通过配置里面的文件自定义应用程序、系统管理、外观等菜单内容;

其他目录:针对单一特殊软件的配置或未能按以上分类方式则放在此目录中;

  • a2ps.cfg和a2ps-site.cfg:用于将一份文件格式转换为postscript的格式,在某些打印机或要将文件输出成一份标准格式的文件时,它会被用到;
  • alsa:主要任务在于提供linux声音及声音的功能,并试着让其性能达到最佳化;
  • ghostscript:在linux下要读取Adobe格式文件(如pdf),最方便的方式就是使用ghostscript命令,这个目录主要用于设置在显示时使用哪种字体作为默认字体;
  • gre.d:GRE是Mozilla注册的一种机制,目录中的配置文件gre.conf会注明所使用的Mozilla软件的路径和版本;
  • iproute2:iproute2是一套非常强大的网络管理软件,iproute2提供的功能有很多种,此目录中存放一些网络的基本配置值;
  • java:这个目录是由jpackage-utils软件提供的,这个目录是这个软件的主要配置目录,除此之外还有maven、jvm、jvm-common都是由jpackage-utils软件产生的,jpackage是一个专门为了提供java程序与函数库所存在的软件;
  • mgetty+sendfax:主要用于使用linux架构一台fax server,可以使用mgetty.config来配置需要有关传真接收和发送的操作;
  • php.d:主要存放的各软件(如dbase、ldap、mysql等)与php相关的配置文件;
  • reader.conf.d:存放smart card配置文件的目录,由程序pcsc-lite提供,这个程序的主配置文件是/etc/reader.conf;
  • dumpdates:存放dump命令的执行日期,dump命令可以对ext2/ext3文件系统进行检查备份;

/home - 主目录

用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名。其中包含用户的文件:参数设置文件、个性化文件、文档、数据、EMALL、缓存数据等,每增加一个用户,系统就会根据其用户名在 home 目录下新建和其他用户同名的文件夹,用于保存其用户配置。
老街头的猫。

  • /home/~/.bashrc:提供bash环境中所需使用的别名;
  • /home/~/.bash_profile:提供bash环境所需的变量;一般先执行.bashrc后,才会再执行.bash_profile;
  • /home/~/.bash_history:用户历史命令文件,记录用户曾经输入过的所有命令;(默认为1000条,可以通过HISTSIZE变量更改)
  • /home/~/.bash_logout:当用户注销的同时,系统会自动执行.bash_logout文件,如果管理员需要记录用户注销的一些额外记录、动作或其他信息,就可以利用这个机制去完成;

/lib - 基础共享库

lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,作用类似windows里的.dll文件。在/lib目录中存储的是/bin和/sbin中二进制文件(应用程序)需要的库文件。在/usr/bin下的应用程序依赖的库通常在/usr/lib目录下面;
老街头的猫。

  • /lib/modules 目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)。

/lib64 - 64位基础共享库

inux 64位(可以uname -a查看下内核是否位64位的)用的lib库,和/lib是一样的。
老街头的猫。
……

/lost+found - 可恢复的文件

当系统在运行时,有时会无法避免宕机、断电或不正常重启动,在这样的情况下,当系统重新启动时,发现某些文件写入未完成或其他问题产生,一般会使用fsck进行文件修复,而这些被修复或救回的文件,就会被放在这个目录下,只要是一个文件系统,系统就会自动在该文件系统所在的目录下建立"lost+found"目录。
老街头的猫。

/media - 可移动媒体

linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
老街头的猫。

/mnt - 临时挂载点目录

系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了(如磁盘分区,网络共享)。
老街头的猫。

/opt - 自选软件包

optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个oracle数据库则就可以放到这个目录下。默认是空的。
老街头的猫。

/proc - 内核 & 进程文件

Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。他们实际上并不存在于磁盘上,也不占用任何空间(用 ls-l 可以显示它们的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访问系统。
主要作用可以整理为:

  • 整理系统内部的信息
  • 存放主机硬件信息
  • 调整系统执行时的参数
  • 检查及修改网络和主机的参数
  • 检查及调整系统的内存和性能
老街头的猫。

每个进程在该目录下都有一个子目录,而字母的名字就是进程ID。通过cat命令对该目录下的文件进行读取,可以获取进程的详细信息。例如我们进入目录/proc/3029下面,这个是进程ID为3029的进程的信息,通过ls命令可以看到如下内容。
老街头的猫。
/proc常用的信息文件有

  • /proc/cmdline:系统启动时输入给内核命令行参数
  • /proc/cpuinfo:cpu的硬件信息,如类型、厂家、型号和性能等
  • /proc/devices:记录所有在/dev目录中相关的设备文件分类方式
  • /proc/filesystems:当前运行内核所配置的文件系统
  • /proc/interrupts:中断的使用及触发次数,调试中断时很有用
  • /proc/loadavg:负载均衡,平均负载数给出了在过去的 1、 5,、15 分钟里在运行队列里的任务数、总作业数以及正在运行的作业总数。
  • /proc/dma:当前正在使用的DMA通道
  • /proc/ioports I/O:当前在用的已注册 I/O 端口范围
  • /proc/kcore:该伪文件以 core 文件格式给出了系统的物理内存映象(比较有用),可以用 GDB 查探当前内核的任意数据结构。该文件的总长度是物理内存 (RAM) 的大小再加上 4KB
  • /proc/kmsg:可以用该文件取代系统调用 syslog(2) 来记录内核日志信息,对应dmesg命令
  • /proc/kallsym:内核符号表,该文件保存了内核输出的符号定义, modules(X)使用该文件动态地连接和捆绑可装载的模块
  • /proc/locks:内核锁 。
  • /proc/meminfo:物理内存、交换空间等的信息,系统内存占用情况,对应df命令。
  • /proc/modules:已经加载的模块列表,对应lsmod命令
  • /proc/mounts:已加载的文件系统的列表,对应mount命令,无参数。
  • /proc/misc:杂项
  • /proc/mtrr:负责内存配置的机制
  • /proc/iomem:主要用于储存配置后所有内存储存的明细信息
  • /proc/partitions:这个文件可以实时呈现系统目前看到的分区
  • /proc/数字目录:数字目录很多,它们代表所有目前正在系统中运行的所有程序
  • /proc/bus:有关该主机上现有总线的所有信息,如输入设备、PCI接口、PCMCIA扩展卡及USB接口信息
  • /proc/net目录:存放的都是一些网络相关的虚拟配置文件,都是ASCII文件,可以查看(与ifconfig、arp、netstat等有关)
  • /proc/scsi:保存系统上所有的scsi设备信息(包括sata和usb设备的信息)
  • /proc/sys目录:存放系统核心所使用的一些变量,根据不同性质的文件而存放在不同的子目录中,可以通过/etc/sysctl.conf文件设置和更改其默认值;变量时实时的变更,有很多设置很象是开关,设置后马上生效;
  • /proc/tty:存放有关目前可用的正在使用的tty设备的信息
  • /proc/self:存放到查看/proc的程序的进程目录的符号连接,当2个进程查看proc时,这将会是不同的连接;主要便于程序得到它自己的进程目录;
  • /proc/stat:系统的不同状态信息;
  • /proc/slabinfo:sla池信息。
  • /proc/stat:全面统计状态表,CPU内存的利用率等都是从这里提取数据。对应ps命令。
  • /proc/swaps:对换空间的利用情况。
  • /proc/uptime:系统启动的时间长度;
  • /proc/version:当前正在运行的内核版本;

比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

进程目录中的常见文件介绍

  • cmdline:启动当前进程的完整命令,但僵尸进程目录中的此文件不包含任何信息;
  • cwd:指向当前进程运行目录的一个符号链接
  • environ:当前进程的环境变量列表,彼此之间用空字符NULL隔开,变量用大写字母表示,其值用小写字母表示
  • exe:指向启动当前进程的可执行文件(完整路径)的符号链接,通过/proc/N/exe 可以启动当前进程的一个拷贝, 这个文件是二进制文件。
  • fd:这是个目录,包含当前进程打开的每一个文件的文件描述符(file descriptor),这些文件描述符是指向实际文件的一个符号链接
  • limits:当前进程所使用的每一个受限资源的软限制、硬限制和管理单元;此文件仅可由实际启动当前进程的UID用户读取;(2.6.24以后的内核版本支持此功能);
  • maps:当前进程关联到的每个可执行文件和库文件在内存中的映射区域及其访问权限所组成的列表
  • mem:当前进程所占用的内存空间,由open,read和seek等系统调用使用,不能被用户读取
  • root:指向当前进程运行根目录的符号链接;在Unix和Linux系统上,通常采用chroot命令使每个进程运行于独立的根目录;
  • stat:当前进程的状态信息,包含一系列格式化后的数据列,可读性差,通常由ps命令使用。
  • statm:当前进程占用内存的状态信息,通常以”页面(page)“表示
  • status:与stat所提供的信息类似,但可读性好,如下所示,每行表示一个属性信息,详细介绍参见proc的man手册
  • task:目录文件,包含由当前进程所运行的每一个线程的相关信息,每个线程的相关信息文件均保存在一个由线程号(tid)命名的目录中,这类似于其内容类似于每个进程目录中的内容;(内核2.6版本以后支持此功能)

/root - root主目录

为系统管理员(也叫超级用户或根用户)的 Home 目录。
老街头的猫。

/run - 应用程序状态文件

是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。用于应用程序存储经常变化的文件,比如文件锁、进程ID或者套接字等等。
老街头的猫。

/sbin - 系统管理二进制文件

s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
老街头的猫。
……

/srv - 服务器数据

默认为空,主要用于存放一些软件的配置文件,某些软件可能会把配置文件默认存放在这个目录下,多数都是/etc目录下,此目录没有被具体的定义;
老街头的猫。

/sys - 虚拟文件系统

虚拟文件系统,被建立在内存中,是在2.6版的kernel之后才被加入到正式的文件系统中,以分类的方式将系统的信息存放在这个目录中,以方便linux用户通过不同的分类找出系统相关的信息;
老街头的猫。

  • /sys/devices:系统中所有设备存放的目录,也就是系统中的所有设备在 sysfs 中的呈现、表达,也是 sysfs 管理设备的最重要的目录结构。
  • /sys/block:块设备的存放目录,这是一个过时的接口,按照 sysfs 的设计理念,系统所有的设备都存放在/sys/devices 目录下,所以/sys/block 目录下的文件通常是链接到/sys/devices 目录下的文件。
  • /sys/bus:系统中的所有设备按照总线类型分类放置的目录结构,/sys/devices 目录下每一种设备都是挂在某种总线下的,譬如 i2c 设备挂在 I2C 总线下。同样,/sys/bus 目录下的文件通常也是链接到了/sys/devices 目录。
  • /sys/class:系统中的所有设备按照其功能分类放置的目录结构,同样该目录下的文件也是链接到了/sys/devices 目录。按照设备的功能划分组织在/sys/class 目录下,譬如/sys/class/leds目录中存放了所有的 LED 设备,/sys/class/input 目录中存放了所有的输入类设备。
  • /sys/dev:按照设备号的方式放置的目录结构,同样该目录下的文件也是链接到了/sys/devices 目录。该目录下有很多以主设备号:次设备号(major:minor)命名的文件,这些文件都是链接文件,链接到/sys/devices 目录下对应的设备。
  • /sys/firmware:描述了内核中的固件。
  • /sys/fs:用于描述系统中所有文件系统,包括文件系统本身和按文件系统分类存放的已挂载点。
  • /sys/kernel:内核中所有可调参数的位置。
  • /sys/module:有系统中所有模块的信息。
  • /sys/power:系统中电源选项,有一些属性可以用于控制整个系统的电源状态。

/tmp - 临时文件

是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
老街头的猫。

/usr - 用户二进制文件 & 只读数据

usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
老街头的猫。

  • /usr/bin:一般用户有机会使用到的程序,或者该软件默认就是要让所有用户使用才会放在该目录中;
  • /usr/sbin:一些系统有可能会用到的系统命令,与/sbin比起来,都是一些较次要的文件;
  • /usr/etc:自行安装或非系统主要的配置文件目录;
  • /usr/games:只要是电脑游戏相关的软件,就都安装到这个目录;
  • /usr/include:存放的文件都是一些系统中用户所会使用到的C语言header文件,保存的都是".h"的文件;
  • /usr/kerberos:kerberos是一种安全机制,让用户可以直接使用支持kerberos机制系统上的部分资源;
  • /usr/lib:存放一些函数库、执行文件及连接文件,特别的是,存放在这里面的文件都是不希望直接被用户或shell脚本所使用的文件,在/usr/lib中有非常多的子目录,每一个软件都有其各自所需的函数库;
  • /usr/libexec:这个目录下的文件及文件夹应该都可以放置在/usr/lib下;
  • /usr/local:linux系统中安装的共享软件程序最好的方式是安装在/usr/local下,按照linux标准目录结构,新建立的软件都应该放在/usr/local下;
  • /usr/local/bin:存放软件执行文件的目录;
  • /usr/local/sbin:同样存放软件执行文件的目录,但此目录专门针对系统所使用的文件;
  • /usr/local/lib:软件相关的函数库;
  • /usr/local/share:当文件性质不好归属时就会放在此,man手册就放在这个目录下;
  • /usr/local/src:所安装软件的源代码放置在此;
  • /usr/share:此目录都是一些共享信息,最常被用到的就是/usr/share/man这个目录,/usr/share里的信息时跨平台的;
  • /usr/share/doc:放置一些系统帮助文件的地方;
  • /usr/share/man:manpage的文件存放目录,也是使用man查看手册页时查询的路径;
  • /usr/src:主要储存内核源代码的文件;
  • /usr/X11R6:存放一些X windows系统的相关文件;

/var - 变量数据文件

包含在正常操作中被改变的文件、假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。
老街头的猫。

子目录 说明
/var/account 是linux系统下的审核机制(psacct)对应的目录
/var/cache 该目录下的文件时所有程序所产生的缓存数据,也就是当应用程序启动时,会将数据留一份在这个目录中
/var/empty 默认是sshd程序用到的这个目录,当建立ssh连接,ssh服务器必须使用该目录下的sshd子目录
/var/ftp ftp服务器软件一般默认会将匿名登陆的用户的宿主目录
/var/gdm gdm所使用的目录,里面存放一些系统当前所占用的console记录及通过gdm执行的X windows记录,只有通过gdm窗口的日志才会存放在此
/var/lib 该目录下存放很多与应用程序名称同名的子目录,每个子目录下都是应用执行的状态信息
/var/lock 每个服务一开始都会在这个目录下产生一个该服务的空文件,主要是避免服务启动冲突
/var/log 常用目录,专门用来存放所有日志文件的目录,里面存放很多系统、软件、用户等相关的日志信息;里面有一些文件是比较常用的:
● lastlog:记录用户最后一次登录的信息,使用lastlog命令读取;
● message:记录系统的几乎所有信息,主要包括启动信息,syslogd服务记录的信息等;
● wtmp:记录所有用户登陆及注销的信息,使用last命令读取;
● secure:记录登录系统访问数据的文件,如ssh pop3 telnet ftp等都会记录在此文件中;
● /var/log/httpd/access_log:httpd访问日志
● /var/log/httpd/error_log:httpd错误日志
● btmp:记录失败的用户登录
● utmp: 纪录当前登录的每个用户
● xferlog:ftp会话日志
● boot.log:记录开机或一些服务启动时所显示的启动和关闭信息
● /var/log/maillog或/var/log/mail/*:记录邮件访问或往来的用户信息
● cron: 记录crontab例行性服务的内容
● dmesg:开机引导日志信息
● sudolog:记录使用sudo发出的命令
● sulog: 纪录使用su命令的使用
/var/named bind软件实现的DNS服务器的区域数据文件都存放在这个目录下
/var/nis NIS服务机制所使用的目录,nis主要记录所有网络中每一个client的连接信息
/var/yp NIS服务机制所使用的目录,是linux的nis服务的日志文件存放的目录
/var/run 此目录中的大部分文件都记载目前系统正在执行程序的PID值,每一个文件都是以个独立的PID记录;此目录下存放一个特殊文件utmp,此文件记录目前谁在使用系统,必须使用utmpdump命令才能看到其中的内容
/var/spool 里面主要都是一些临时存放,随时会被用户所调用的数据;打印机、邮件、代理服务器等假脱机目录存放在该目录下
/var/tmp 专门为了一些应用程序在安装或执行时,需要在重启后使用的某些文件时,能将该文件暂时存放在这个目录中,完成后再行删除
/var/www apache网页服务器的宿主目录

猜你喜欢

转载自blog.csdn.net/weixin_44988085/article/details/128603352
今日推荐