linux系统目录结构
/boot
该目录默认下存放的是Linux的启动文件和内核,引导程序文件。
- initramfs-* 系统启动时的模块供应的主要来源,启动系统所需加载的虚拟磁盘 System.map-* System.map文件是一个索引文件,它记录了kernel中的symbols的位置,symbols包括有变量或函数名称。
- vmlinuz-* 实际上就是系统的kernel
- kernel主要负责的是北桥、南桥、CPU及内存,可见它们都是整个主机最重要的硬件核心部分,kernel如果出了问题,系统肯定无法启动起来;
- config-* 为系统Kernel配置文件
/bin
该目录中存放Linux的常用命令,面向所有用户。linux bin目录,常用的命令应用程序:ls -l /bin
- at 将文件链接到标准输出
- chgrp 改变文件所在组
- chmod 改变文件访问权限
- chown 改变文件所有者和组
- cp 复制文件和目录
- date 打印或者设置系统日期和时间
- dd 转换和复制文件
- df 报告文件系统磁盘空间使用情况
- dmesg 打印或控制内核消息缓存区
- echo 显示一行文本
- false 什么也不做,只返回不成功的工具
- hostname 显示或者设置系统主机名
- kill 向进程发送消息
- ln 文件之间创建链接
- login 在系统上开启会话
- ls 列出目录文件
- mkdir 创建目录
- mknod 创建块或字符设备文件
- more 按页翻看文件
- mount 挂载文件系统
- mv 移动或重命名文件
- ps 查看系统进程状况
- pwd 打印当前工作目录路径
- rm 删除文件或目录
- rmdir 删除空目录
- sed 流文本编辑器
- sh Bourne 命令shell
- stty 改变和打印终端行设置
- su 切换用户ID
- sync 清理文件系统缓存
- true 什么也不做,只返回成功
- umount 卸载文件系统
- uname 打印系统信息
- tar 档案工具
- gzip GNU压缩工具
- gunzip GNU解压工具
- zcat GUN解压工具
- netsatart 网络统计工具
- ping ICMP网络测试工具
/sbin
该目录用来存放系统管理员使用的管理程序,必要的二进制文件,sbin目录下的命令,普通用户都执行不了。linux sbin目录,系统光临的常用命令:ls -l /sbin
- fsck.* 针对某一特定文件系统检查和修复
- shutdown 关闭系统
- fsck 文件系统检查和修复
- fdisk 操作分区表
- mkfs.* 创建特定的文件系统
- mkswap 设置交换分区命令
- init 初始化启动级别
- ifconfig 配置网络
- update 周期性清洗文件系统缓存的后台服务
- mkfs 创建文件系统
- halt 关机命令
- /sbin/sysctl -p 立即生效内核配置
- swapon 启用交换分区
- runlevel 查看系统启动级别
- reboot 重启系统
- swapoff 关闭交换分区
- route IP路由表
/var
变量文件——在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。
- /var/tmp 系统两次启动之间的临时数据
- /var/spool mail, news, 打印队列和其他队列工作的目录
- /var/run 有关正在运行的进程数据
- /var/log 各种程序的日志文件和目录
- /var/lock 锁定文件
- /var/local 是/usr/local中安装程序的可变数据
- /var/lib 系统运行时的改变的文件
- /var/cache 应用程序缓存
/etc
该目录存放系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。
- /etc/login.defs 设置用户帐号限制的文件
- /etc/skel/ 默认创建用户时,把该目录拷贝到家目录下
- /etc/redhat-release 查看系统版本
- /etc/exports 设置NFS系统用的配置文件路径
- /etc/init.d 这个目录来存放系统启动脚本
- /etc/profile /etc/csh.login /etc/csh.cshrc 全局系统环境配置变量
- /etc/sudoers sudo命令的配置文件
- /etc/syslog.conf 系统日志参数配置
- /etc/sysconfig/network-scripts/ifcfg-eth0 网卡设备eth0配置
- /etc/sysconfig/network IP、掩码、网关、主机名配置
- /etc/securetty root用户登录tty访问权限控制
- /etc/shadow 在安装了影子口令软件的系统上的影子口令文件.影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow 中,而后者只对root可读.这使破译口令更困难.
- /etc/printcap 打印机配置.不同打印机语法不同.
- /etc/shells 有效的登陆shell的路径名称
- /etc/resolv.conf DNS服务器配置
- /etc/mtab 文件系统的动态信息,例如df 命令
- /etc/hosts 本地域名解析文件
- /etc/issue 在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定.
- /etc/magic file 的配置文件.包含不同文件格式的说明,file 基于它猜测文件类型.
- /etc/motd 当天登录后的消息提示文件
- /etc/inittab 调整系统启动级别的配置文件
- /etc/group 类似/etc/passwd ,但说明的不是用户而是组
- /etc/modprobe.conf 内核模块的额外参数设定
- /etc/fstab 启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表. Linux下,也包括用swapon -a启用的swap区的信息.
- /etc/passwd 用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息.
- /etc/rc 或 /etc/rc.d 或 /etc/rc*.d 启动、或改变运行级时scripts或scripts的目录.
/dev
该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,访问这些外部设备与访问一个文件或一个目录没有区别。
- /dev/urandom:随机数设备
- /dev/pilot => /dev/ttyS[0-9]
- /dev/random:随机数设备
- /dev/modem => /dev/ttyS[0-9]
- /dev/cdrom => /dev/hdc
- /dev/fb[0-31]:framebuffer
- /dev/console:控制台
- /dev/lp[0-3]:并口
- /dev/ttyS[0-3]:串口
- /dev/tty[0-63]:虚拟终端
- /dev/zero:无限零资源
- /dev/null:无限数据接收设备,相当于黑洞
- /dev/ram[0-15]:内存
- /dev/loop[0-7]:本地回环设备
- /dev/md[0-31]:软raid设备
- /dev/fd[0-7]:标准软驱
- /dev/sd[a-z]:SCSI设备
- /dev/hd[a-t]:IDE设备
/mnt
临时将别的文件系统挂在该目录下。临时挂载的文件系统。比如cdrom,u盘等,直接插入光驱无法使用,要先挂载后使用
- #挂载光驱
- mount -t iso9660 /dev/cdrom /mnt/cdrom
- #挂载光驱,支持中文
- mount -t iso9660 -o codepage=936,iocharset=cp936 /dev/cdrom /mnt/cdrom
- #挂载 Windows 分区,FAT文件系统
- mount -t vfat /dev/hda3 /mnt/cdrom
- #挂载 Windows 分区,NTFS文件系统
- mount -t ntfs -o iocharset=cp936 /dev/hda7 /mnt/had7
- #挂载 ISO 文件
- mount -o loop /abc.iso /mnt/cdrom
- #挂载 软驱
- mount /dev/fd0 /mnt/floppy
- #挂载闪盘
- mount /dev/sda1 /mnt/cdrom
- #挂载 Windows 操作系统共享的文件夹
- mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom
/root
如果你是以超级用户的身份登录的,这个就是超级用户的主目录。
/home
如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。用户的家目录,包含保存的文件、个人设置等,一般为单独的分区
/usr
用户的应用程序和文件几乎都存放在该目录下。
- /X11R6 存放X window系统
- /bin 存放增加的用户程序
- /dict 存放字典
- /doc 存放追加的文档
- /etc 存放设置文件
- /games 存放游戏和教学文件
- /include 存放C开发工具的头文件
- /info 存放GNU信息文件
- /lib 存放库文件
- /local 存放本地产生的增加的应用程序
- /man 存放在线帮助文件
- /sbin 存放增加的管理程序
- /share 存放结构独立的数据
- /src 存放程序的源代码
/lib
该目录用来存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库。/bin/ and /sbin/中二进制文件必要的库文件。
/opt
第三方软件在安装时默认会找这个目录,所以你没有安装此类软件时它是空的,但如果你一旦把它删除了,以后在安装此类软件时就有可能碰到麻烦。可选应用软件包。
/tmp
用来存放不同程序执行时产生的临时文件,该目录会被系统自动清理干净。
/lost+found
该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在
/proc
可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里。虚拟文件系统,将内核与进程状态归档为文本文件(系统信息都存放这目录下)。例如:uptime、 network。在Linux中,对应Procfs格式挂载。该目录下文件只能看不能改(包括root)
- /proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关
- /proc/execdomains Linux内核当前支持的execution domains
- /proc/mdstat 多硬盘,RAID配置信息(md=multiple disks)
- /proc/ioports 一个设备的输入输出所使用的注册端口范围
- /proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb
- /proc/loadavg 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关
- /proc/meminfo RAM使用的相关信息
- /proc/misc 其他的主要设备(设备号为10)上注册的驱动
- /proc/modules 所有加载到内核的模块列表
- /proc/mounts 系统中使用的所有挂载
- /proc/mtrr 系统使用的Memory Type Range Registers (MTRRs)
- /proc/partitions 分区中的块分配信息
- /proc/slabinfo 系统中所有活动的 slab 缓存信息
- /proc/stat 所有的CPU活动信息
- /proc/fb 帧缓冲设备列表,包括数量和控制它的驱动
- /proc/sysrq-trigger 使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的
- /proc/filesystems 内核当前支持的文件系统类型
- /proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理
- /proc/locks 内核锁住的文件列表
- /proc/uptime 系统已经运行了多久
- /proc/swaps 交换空间的使用情况
- /proc/version Linux内核版本和gcc版本
- /proc/bus 目录下存放 系统总线(Bus)信息,例如pci/usb等
- /proc/driver 目录下存放驱动信息
- /proc/fs 目录下存放文件系统信息
- /proc/irq 中断请求设备信息
- /proc/net 目录下,网卡设备信息
- /proc/scsi scsi设备信息
- /proc/dma 已注册使用的ISA DMA频道列表
- /proc/tty tty设备信息
- /proc/net/dev 显示网络适配器及统计信息
- /proc/vmstat 虚拟内存统计信息
- /proc/vmcore 内核panic时的内存映像
- /proc/diskstats 取得磁盘信息
- /proc/schedstat kernel调度器的统计信息
- /proc/zoneinfo 显示内存空间的统计信息,对分析虚拟内存行为很有用
- /proc/cmdline 启动时传递给kernel的参数信息
- /proc/cpuinfo cpu的信息
- /proc/devices 已经加载的设备并分类
文件系统的类型
LINUX有四种基本文件系统类型:普通文件、目录文件、连接文件和特殊文件,可用file命令来识别。
- 普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、more、vi、emacs来察看内容,用mv来改名。
- 目录文件:包括文件名、子目录名及其指针。它是LINUX储存文件名的唯一地方,可用ls列出目录文件。
- 连接文件:是指向同一索引节点的那些目录条目。用ls来查看是,连接文件的标志用l开头,而文件面后以"->"指向所连接的文件。
- 特殊文件:LINUX的一些设备如磁盘、终端、打印机等都在文件系统中表示出来,则一类文件就是特殊文件,常放在/dev目录内。例如,软驱A称为/dev/fd0。LINUX无C:的概念,而是用/dev/had来自第一硬盘。