Ubuntu学习笔记

308 阅读6分钟

Ubuntu文件系统基础介绍

1、一切皆文件

  • 在遵循LSB(linux standard base)标准的Ubuntu中,一切软硬件资源都被抽象成了文件,这意味着在Ubuntu中,对文件的操作(读写创建删除)也等于是对设备的操作。

  • 文件分两类,1、块设备文件如:磁盘,2、字符设备如:键盘、鼠标显示器等

Ubuntu文件层次结构

  • 文件系统是一个树形层次组织结构的目录文件树,所有的目录最终都挂载在根目录(/)上。除了文件组织外,文件安全也是文件系统的设计要点。

深入Ubuntu文件系统

  • 根目录是整个文件系统的逻辑终点,用"/"表示

  • 一级目录

  1. /bin:包含普通用户和系统、系统管理员可以共享的通用程序。如:bash、dd等基本命令

  2. /boot:包含系统引导程序GRUB及其配置文件、Linux内核文件vmlinuz和磁盘内存映像文件initrd.img等重要引导文件

  3. /dev:包含系统支持的所有设备文件。如:console表示系统控制台,lp0表示打印机,mem表示系统的物理内存

  4. /etc:包含系统管理和维护方面的所有配置文件,如:host.conf、resolv.conf、sysctl.conf等,需要定期使用Backups备份工具备份这个目录中的重要配置文件,以便在需要时快速恢复系统

  5. /home:包含所有普通用户的家目录。每增加一个新用户,系统将会在/home目录下创建一个和用户名相同的子目录作为该用户的家目录

  6. /lib:包含系统引导过程,以及运行系统命令所需要的内核模块和各种动态链接共享文件(扩展名为.so)

  7. /lost+found:每个文件系统分区都存在一个lost+found目录,用于存储fsck命令在检测与修复文件系统时删除的文件或目录

  8. /media:包含移动存储介质的挂载点

  9. /mnt:包含所有自定义的文件系统的挂载点,可以挂载任何文件系统,如NFS或CIFS网络文件系统

  10. /opt:应用程序的等附加软件的安装目录

  11. /proc:虚拟文件系统,系统关闭时为空目录,系统运行时进程文件系统根目录,其中的部分文件分别对应当前正在运行的进程,可用于访问当前进程的地址空间

  12. /root:超级用户root的家目录

  13. /sbin:包含超级管理员的常用工具,如管理和维护、系统引导和修复命令集合

  14. /srv:分担了/var目录的一些功能,保存一些网络服务所用的数据文件

  15. /sys:和proc一样是虚拟目录,系统各种设备配置信息的根目录,如block子目录中含有磁盘及磁盘分区的配置信息

  16. /tmp:临时文件目录,用于存储系统运行过程中生成的临时文件,也可以共用户存储自己的临时文件。只有文件创建者才能删除相应文件

  17. /usr:此目录既可以作为根目录下的一个子目录,其中保存系统提供的各种共享数据(如:用户命令、库函数、头文件和文档等),有可以作为一个单独的文件系统,可以认为是对根目录的一个递归目录,使得文件系统具有更大的灵活性

  18. /var:和/usr类似,首先是根目录下的一个子目录,也可以作为一个单独的文件系统,用于存储各种可变长的数据文件(如:日志文件)、暂存文件或代处理的临时文件等

  • 重要的二级目录
  1. /boot/grub:其中存有GRUB配置文件,以及3种不同类型的初始引导程序等

  2. /etc/apt:其中包含软件管理工具使用的配置文件,如sources.list等

  3. /etc/cron.d:用于存储cron进程调度运行后台进程所用的配置和控制文件。其他有关目录包括cron.hourly、cron.daily、cron.weekly和cron.monthly4个目录

  4. /etc/init.d:用于存储系统启动过程中需要由init调度执行脚本文件

  5. /etc/network:其中包含网络接口的配置文件interfaces,以及相关配置工具

  6. /etc/X11:其中包含X服务器使用的各种配置文件,如xorg.conf等

  7. /usr/bin:其中包含用户经常使用的各种命令

  8. /usr/include:用于存储各种C语言头文件。这个目录及其子目录中的头文件是C开发人员需要经常引用的文件,其中sys、linux和bits等子目录中定义的数据结构,对于深入学习,理解和掌握Linux系统具有极大的参考价值

  9. /usr/lib:其中包含各种共享的库函数,可共程序员以静态或动态的方式连接自己开发的应用程序

  10. /usr/sbin:其中包含系统引导完成后系统管理员经常使用的各种系统管理和维护命令

  11. /usr/share:共享目录,其中包含man(联机文档的根目录)、info(GNU info文档的根目录)、doc(各种软件包特定的文档)、local(语言环境)、vim(用户指南)及zoneinfo(时区定义)等子目录

  12. /usr/src:用于存放Linux系统内核的源代码和文档等

  13. /var/lib:用于存储软件包特定的动态连接共享库、配置文件、数据文件和状态信息等

  14. /var/log:系统守护进程日志文件的存储目录,其中包含lastlog(每个用户最后一次注册的时间记录)、messages(由syslogd记录的所有内核和系统程序的日志消息)及wtmp(所有用户的注册/注销记录)等文件,位于/var/log目录中的文件会不断增长,因而要求定期备份或清除

  15. /var/lock:用于存储各种服务进程或应用程序访问特定的设备文件时设置的封锁文件

  16. /var/run:系统运行信息文件的根目录,其中的各种.pid文件有相应守护过程的PID,/var/run/utmp文件中含有当前系统中的用户注册信息

  17. /var/spool:用于缓存各种等待处理的文件,如打印任务等。通常每类带处理的缓存文件,均位于各自的子目录中。

  18. /var/tmp:用于存储各种临时文件