linux目录结构
Linux 系统哲学思想
1.一切皆是文件(包括设备,所以/dev下可以有设备文件)
2.小型,单一用途的程序
3.配置数据存放在文本中
Windows 系统哲学思想
1.一切皆图形
2.考虑用户体验性
3.尽可能的隐藏实现过程
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设备提供了一种统一模型的接口
swap交换空间:当内存不够使用时候,Linux会使用磁盘的一部分空间来当做内存使用,当然磁盘的速度远小于内存的速度,此时会使系统运行效率极低;Windows中也有此概念,只不过叫做虚拟内存。如图所示: