我们天天都和操作系统打交道,大多只停留在应用层面,对系统底层的一些目录和文件缺乏了解。以下部分选自《Linux 程序设计》
文件系统层次结构标准(Filesystem Hierarchy Standard),定义文件系统的标准路径,使得开发者和用户可以在合理的位置找到需要的东西
大体的想法是将文件和目录分为3组
对运行Linux的某一特定文件系统唯一的文件和目录,例如启动脚本配置文件
可以在运行Linux不同系统之间共享的只读文件和目录,例如可执行应用程序
可以在运行Linux或其他操作系统的不同系统之间共享的可读可写的目录,例如用户家目录
列表如下
目录 | 是否需要 | 用途 |
---|---|---|
/bin | * | 重要的系统二进制文件 |
/boot | * | 启动系统所需要的文件 |
/dev | * | 设备文件 |
/etc | * | 系统配置文件 |
/home | 用于放置用户文件的目录 | |
/lib | * | 标准函数库 |
/media | * | 装载在可移动媒体 |
/mnt | * | 临时装载设备的目录 |
/opt | * | 其他应用程序软件 |
/root | root用户的文件 | |
/sbin | * | 系统启动时需要的重要系统二进制文件 |
/srv | * | 用于系统提供的服务的只读数据 |
/tmp | * | 临时文件 |
/usr | * | 第二级目录层次 |
/var | * | 可变的数据,如日志文件 |
*目录/proc 是一个伪文件系统,提供对当前运行系统的一个映射
详细说明如下:(包含个人见解)
/bin 包含可以被所有用户使用的二进制文件,可以在单用户模式下运行。主要包含cat ls sh这类经常用到的命令
/boot 放置Linux系统启动时所需的文件,包含系统加载引导等,升级内核后默认配置/boot/grub/grub.conf就是在此
/dev 映射到硬件的特殊设备文件,如/dev/sda是硬盘设备,此外还有usb等。当然还包含伪设备zero null log 虚拟终端tty等,做文件驱动的时候可以遇到
/etc 放置配置文件,比较有名的是passwd,hosts,httpd等,即软件启动的相关设置信息。capfs文件系统也会在此设置
/home 这个比较常见,每个linux用户都在这里拥有自己的主目录,通常用户的桌面就是在该登录用户的子文件夹中
/lib 放置基本的共享函数库和内核模块,系统启动时会用到
/media 包含装载可移动媒体的其它子目录,比如插入CDROM后可以找到
/mnt 用于临时装载一些其它的文件系统, 也是“接触”最多的,分布式文件系统一般将其文件系统挂在/mnt或其子目录下
/opt 第三方厂商的应用程序目录,通常不包含Linux发行版软件
/root 放置root用户的文件,因为/home不是必须存在的,所以为最高权限root分配这个顶级目录
/sbin 只能由系统管理员使用的命令,及启动或进入其他模式需要的命令,与/bin相对应。如fsck halt swapon
/usr 包含一般系统类命令和函数库,是编译一般程序用到的头/库文件路径,比如解压的新内核一般放在此处
/var 一般存放经常改变的数据,如打印队列文件,日志文件等,经常调试内核的一定知道/var/log/messages 内核信息的记录,可用printk写入
----
说到Linux也顺便说说Windows吧,没有找到规范的Windows文件系统标准介绍,而且本身也非常庞大,但是win软件安装比Linux来的简单,用户不必管理太多。以下为系统重要和常用文件夹,自己经验总结,非技术
这里设WIN主盘符为X,具体以win7为例
一般X:下会有三个系统创建的文件夹,而非应用程序所创
Program Files 顾名思义,一般安装的用户软件都在此,也是比较规范的软件目录安装标准,可在安装时更改
Users 用户目录文件夹,同linux的home目录
一般在某个用户名目录下还包含AppData/Roaming/目录,里面存的是应用程序需要的相关数据或配置(部分软件是在安装目录下),一般软件启动会在此读取
Windows 显然这是系统的主要文件夹,下面分很多子目录,大部分是系统运行的语言包,主题,以及自带应用程序等
比较重要的当属
System 系统文件夹,用来存放系统虚拟设备文件
System32 最最重要的文件夹,包含几乎所有用户接口,GUI界面程序,以及配置信息,一般以exe和dll(类似so的动态库)
重要应用程序:
cmd.exe 命令提示符,即运行windows命令与C控制台应用程序的程序
explorer.exe windows运行的文件管理器,包含桌面,窗口管理等,一些软件可能会出现explorer未响应的情况
debug.exe 用于程序调试
regedt32.exe 注册表控制程序
此外还有很多系统工具,一般这个文件夹是受保护,不允许随意改变的
重要文件夹:
drivers 包含系统底层驱动程序及配置信息,如hosts文件在drivers/etc下
config 用户配置信息和密码信息