linux目录结构
Linux 系统哲学思想
一切皆是文件(包括设备,所以/dev下可以有设备文件)
小型,单一用途的程序
配置数据存放在文本中
Windows 系统哲学思想
- 一切皆图形
- 考虑用户体验性
- 尽可能的隐藏实现过程
Linux Foundation有一套标准规范:
-
/
:系统的根目录Windows和Linux这一点不太一样,Windows习惯上有盘符(C盘,D盘等)的概念,以盘符作为系统分区,而linux其实也有分区,只不过是Linux的分区是挂载(相当于给设备一个目录入口)在“/”上的,所以分区在linux目录结构上看不出来。
其实Windows也可以实现"挂载"到"根分区"的。
步骤1、在c盘建立"挂载点"(创建几个目录这里建立目录名称为G)
2、计算机》管理》磁盘管理,找到磁盘0,在分区上右击,点击"更改驱动器号和路径(C)...",如图所示:
3、此时也可以将盘符删掉,如图:
4、查看C盘的G文件夹,是否很出乎意料^_^.
/bin
:所有用户可用的基本命令程序文件;类比Windows中除了c盘的Program Files文件夹,存放用户安装的程序。-
/sbin
:系统用户管理命令;类比c盘的Program Files文件夹,存放系统程序。 -
/boot
:系统的启动文件,类似于Windows的mbr,boot loader的静态文件(kernel,initramfs(initrd),grub等) -
/dev
:存储特殊文件(tty虚拟终端之类)和设备文件(字符设备(键盘、显示器)、块设备(硬盘、光盘))。类似Windows中驱动盘(DVD驱动器,U盘驱动器) -
/etc
:存放系统或者程序的配置文件;类似windows中注册表的功能 -
/home
:非root用户的家目录,windows中也有自己的家目录。 -
/root
:root用户的家目录;Windows中C:\Users\Administrator目录 -
/lib
:可以理解为"library"的缩写,为系统启动或者根文件系统上的应用程序(/bin,/sbin)等提供共享库,以及为内核提供内核模块。-
libc.so.*
:动态链接的c库 -
ld*
:运行时链接器/加载器 -
modules
:用于存储内核模块的目录
-
-
/lib64
:为64位系统共享文件库 -
/media
:便携式设备的挂载点(如光盘cdrom、u盘floppy) -
/mnt
:临时文件系统的挂载点。 -
/opt
:附加程序的安装位置;相当于用户新建目录以存放安装程序。 -
/srv
:当前主机为服务提供的数据 -
/tmp
:临时文件(temporary files)(可供所有用户执行写入操作) -
/usr
:全局共享只读文件(Universial Shareable Read-only)(类似于Windows中的"C:\Windows"目录)-
bin
:非系统启动时用到的程序 -
sbin
:系统启动时用到的程序 -
include
:c程序的头文件(header files) -
lib
:程序依赖的库-
lib64
:程序依赖的库 (64位)
-
-
local
:用来安装本地应用程序(又一个层级目录),第三方程序 (比如在MacOS下,brew安装都会安装在usr/local/bin下) -
share
:命令手册页,命令自带文档 -
src
:某些程序的源代码
-
-
/var
:可变数据文件(系统日志、缓存文件) -
/proc
:基于内存的虚拟文件系统(一切皆文件,把实时的内核参数和进程的信息进行可视化)(系统调优经常用到) /sys
:sysfs虚拟文件系统,提供了一种比proc更为理想的访问内存数据的途径,为管理Linux设备提供了一种统一模型的接口(see also: https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/)(系统调优经常用到)-
swap交换空间:当内存不够使用时候,Linux会使用磁盘的一部分空间来当做内存使用,当然磁盘的速度远小于内存的速度,此时会使系统运行效率极低;Windows中也有此概念,只不过叫做虚拟内存。如图所示: