Linux目录树(directory tree)
分层结构(不同于数据库文件系统),单个文件/目录的最大长度为255个字符,完整路径为4096个字符
特殊的文件系统
文件系统 | 挂载点 | 说明 |
Root | / | Linux系统运行的基点 |
Proc | /proc | 以文件系统的方式为访问系统内核数据的操作接口(2.4,2.6) |
Sysfs | /sys | 以文件系统的方式为访问系统内核数据的操作接口(2.6) |
Tmpfs | /dev,/var/run,/var/lock | 程序访问共享内存资源时使用的文件系统 |
Usbfs | /proc/bus/usb | 访问usb设备时使用的文件系统 |
Devpts | /dev/pts | 内核用来与伪终端进行交互的文件系统 |
Swap | 内核使用的特殊文件系统,无挂载点 | 创建虚拟内存 |
/(root,根目录):目录树的起始点,衍生其它目录并与开机,还原,系统修复有关,因此根目录越小越好
/bin | 单用户维护模式下操作命令/执行文件,一般用户即可执行的命令 基本系统所需的命令。功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。 |
/sbin | 开机过程中所需要的设置系统环境/系统维护文件,需要root权限 |
/dev | 设备和接口以文件形式存放于这个目录,读写文件相当于操作接口/设备 |
/etc | 系统主要的配置文件(不要放置可执行文件binary) |
/lib | 执行文件所需的函数库与内核所需的模块 库文件和内核模块 |
/boot | 开机所用文件,Linux内核(加载)文件/开机菜单/开机配置文件等(vmlinuz/grub) 内核和加载内核所需的文件。一般情况下,GRUB 或 LILO 系统引导管理器也位于这个目录。 |
/home | 用户主文件夹(home directory) |
/media | 可删除的设备软盘/media/floppy,光盘/media/cdrom 即插即用型存储设备的挂载点自动在这个目录下创建,比如 USB盘、CDROM/DVD自动挂载后,也会在这个目录中创建一个目录。 |
/mnt | 暂时挂载 |
/opt | 第三方软件配置 |
/root | 系统管理员主文件夹 |
/srv | 网络服务所需的数据 存放本系统提供的站点服务数据。 |
/tmp | 临时文件夹 |
/lost+found | 这个目录通常在ext2/ext3分区的最顶层,目的在于文件系统发生错误时,将一些丢失的片段放置到这个目录下 |
/proc | 虚拟文件系统(virtual filesystem),在内存中记录内核,进程,设备状态等 |
/sys | 虚拟文件系统,记录内核相关信息,加载的内核模块/检测到的硬件设备等 |
/usr | Unix操作系统软件资源(UNIX Software Resource)类似于Program file 存放用户使用系统命令和应用程序等信息,比如命令、帮助文件等。 |
/var | 运行时产生的动态文件,包括缓存(cache),登陆文件(log file),程序文件(lock file,run file),数据库文件等 存放经常变动的数据。 |
其它重要目录
/usr/X11R6 存放 X Window 的目录/usr/bin 存放了许多用户命令/usr/games 存放游戏和教育类软件/usr/include 存放Linux下开发和编译应用程序所需要的头文件/usr/lib 放一些常用的动态链接共享库和静态档案库/usr/local 供给本地用户的/usr目录,在这里安装本地的应用软件/usr/sbin 存放root超级用户使用的管理程序/usr/share 系统共用的东西存放地,如:手册、文档、字体等/usr/src 是内核源码存放的目录
/usr/X11R6/ | X Windows系统重要数据放置目录 |
/usr/bin/ | 绝大部分用户可以使用的命令(有别于/bin 是否与开机过程有关) |
/usr/include/ | C/C++等语音的头文件与包含文件 |
/usr/lib/ | 应用软件函数库,目标文件,不被一般用户惯用的执行文件或脚本 |
/usr/local/ | 系统管理员自行安装下载软件的目录 |
/usr/sbin/ | 非系统正常运行所需要的系统命令 |
/usr/share/ | 共享文件,几乎不分硬件架构均可读取的数据 |
/usr/src/ | 源码目录(内核源码放于/usr/src/linux下) |
/var/cache/ | 程序运行过程中的暂存文件 |
/var/lib/ | 数据文件放置的目录,如MySQL:/var/lib/mysql,rpm:/var/lib/rpm |
/var/lock/ | 设备/文件只能被一个程序所访问(Lock),如刻录机,打印机等 |
/var/log/ | 登陆文件,如:/var/log/messages,/var/log/wtmp(登陆者信息)等 |
/var/mail/ | 个人信箱目录,通常与/var/spool/mail/互为链接文件 |
/var/run/ | 服务启动的pid存放目录 |
/var/spool/ | 队列数据,如新信件/var/spool/mail,发信件/var/spool/mqueque等 |
/etc/X11/ | X Windows的设置目录 |
/etc/altermatives | 存储具有相同功能程序的二/多选一的链接目录 |
/etc/apm | 高级电源管理的配置目录 |
/etc/init.d | 守护进程启动脚本目录 |
/etc/logrotate.d | 日志滚动脚本的配置目录 |
/etc/lvm | LVM2配置目录 |
/etc/opt | /opt应用程序的配置目录 |
/etc/pam.d | PAM配置目录 |
/etc/pcmcia | Pcmcia设备配置目录 |
/etc/ppp | Ppp设备配置目录 |
/etc/rc?.d | 启动,改变运行时的scripts目录 |
/etc/skel | 普通用户初始化环境目录 |
/etc/ssh | Ssh的配置目录 |
/etc/vim | Vim的配置目录 |
/etc/w3m | W3m的配置目录 |
/etc/yum | Yum的配置目录 |
/etc/yum.repos.d | Yum源的配置目录 |
/proc/n | N为PID,每个进程在/proc下有一个名为其进程号的目录 |
/proc/cpuinfo | 处理器信息,如:类型,制造商,型号,性能 |
/proc/devices | 当前运行的核心配置的设备驱动列表 |
/proc/dma | 当前使用的DMA通道 |
/proc/filesystems | 核心配置的文件系统 |
/proc/interrupts | 使用的中断 |
/proc/ioports | 使用的I/O端口 |
/proc/kcore | 系统物理内存映像,与物理内存大小完全一样,但不实际占用内存 |
/proc/kmsg | 核心输出的消息,也被送到syslog |
/proc/ksyms | 核心符号表 |
/proc/loadavg | 系统负载均衡:3个指示器指出当前的工作量 |
/proc/meminfo | 存储器使用信息,包括物理内存和虚拟内存 |
/proc/modules | 当前加载的核心模块 |
/proc/net | 网络协议状态 |
/proc/self | 查看/proc目录的程序的符号链接, |
/proc/stat | 系统状态 |
/proc/uptime | 系统启动的时间长度 |
/proc/version | 内核版本信息 |
绝对目录&相对路径
绝对路径以根目录(/)开始,如:/home等,相对路径,如:cd var/log cd ../../home等
Linux文件
Linux系统并不刻意区分文件的类型,但可以按照管理添加后缀,文件名最长为255个字符,完整路径长度为4096个字符,文件名避免特殊字符 *?<>;&![]|\(){}
文件种类(ls -l第一个字符)
- 普通文件(regular file):纯文本文件(ASCII cat可查看)/二进制文件(binary可执行文件)/数据格式文件(data如日志文件等特殊文件cat时会乱码)/源代码/shell脚本等:
d 目录文件(directory):目录是一种特殊类型的文件,存储其下的文件名和节点,由linux管理维护,用户可以访问但无法直接修改目录文件的内容
l 链接(link)文件:是那个不同的文件名引用同一个数据或程序,(指向同一个block节点)也称为硬连接(适用于同一文件系统),任何一个文件更新都会反映到其它文件中.符号链接文件能够跨越不同的物理文件系统建立连接文件,符号连接文件本身也是一种单独的数据文件,其内容是指向文件或目录的路径名
设备文件(device)/特殊文件(special type):
b 块(block)设备文件:采用与数据块组织结构和处理方式的设备(磁盘)相关联,以固定长度的数据块传输数据,也能够随机访问其中的任何数据块的存储设备,如磁盘与内存之间通常以数据块的方式传输数据,借助文件系统,可以在磁盘的任何位置读写热议的字节的数据
c 字符(character)设备文件:任何非数据块组织的设备均为字符设备,字符设备无法随机访问(不能对键盘随机截取),其最底层的I/O接口一次只能处理一个字符,鼠标,键盘,控制台终端,打印机等串口设备都是字符特殊文件
s 套接字(sockets) :用于网络上数据的连接,以及进行数据通信
p 管道(FIFO,pipe):First-in-first-out先进先出,主要目的是解决多个程序同时访问一个文件所造成的错误问题,Linux系统存在两种管道:普通管道/管道文件,普通管道是一个可用文件描述符标识和存取的数据缓冲区,当程序执行结束后自动消失,管道文件作为一个特殊文件存在于系统文件系统中,故管道文件也被称谓命名的管道(named pipe)