区块链阶段1-Linux基础- 2 Linux文件系统

2.1 什么是文件系统

  文件系统是操作系统在磁盘或分区上组织文件的方法和数据结构。负责对磁盘空间进行组织和分配,存储文件数据,并对其提供保护和检索服务。学习Linux,首先需要了解整个 Linux 文件系统的目录结构以及各个目录的功能。

  为了避免不同的发行版本使用不同的目录结构,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。FHSFilesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr /var)的用途。

2.2 与windows文件系统的不同

  1.   Windows 系统不同的是Linux 系统没有 C 盘、D 盘、E 盘那么多的盘符,只有一个根目录(/),所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中
  2. 文件的扩展名对 Linux 操作系统没有特殊的含义,换句话说,Linux 系统并不以文件的扩展名开分区文件类型。例如,dog.exe 只是一个文件,其扩展名 .exe 并不代表此文件就一定是可执行文件。
  3. 目录名或文件名是区分大小写的

2.3 Linux 根目录(/)

  在Linux系统中,有一个重要思想:一切都是文件。即Linux系统将几乎所有的设备、配置、软件全部抽象为文件,而这些文件都保存在/目录下。/ 目录以下为级目录这些目录都是系统装机时系统自动创建的。

2.4 Linux一级目录及其作用

  • /bin/  #存放系统命令,普通用户和 root 都可以执行。
  • /boot/ #系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
  • /dev/ #设备文件保存位置
  • /etc/ #配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
  • /home/ #普通用户的主目录(也称为家目录)。所有普通用户的主目录是在/home/ 下建立一个和用户名相同的目录。如用户 mzg的主目录就是 /home/mzg
  • /lib/ #系统库文件保存位置
  • /media/ #挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
  • /mnt/  #挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
  • /misc/ #挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media//mnt//misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,早期 Linux 默认挂载目录只有 /mnt/,所以更多的程序员 /mnt/ 下建立不同目录挂载不同设备,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 等。
  • /opt/ #第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。更多的程序员习惯也可以把软件放到 /usr/local/ 目录中
  • /root/ #root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”
  • /sbin/ #保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置
  • /srv/ #服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
  • /tmp/ #临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据

  以上是FHS 针对根目录中包含的子目录,除此之外,Linux 系统根目录下通常还包含以下几个一级目录。

  • /lost+found/ #当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。
  • /proc/  #虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的
  • /sys/ #虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息

2.5 Linux级目录及其作用

  /usr目录usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:Windows + C:Program files 两个目录的综合体。

  • /usr/local/ #手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
  • /usr/share/ #应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录 
  • /usr/src/ #源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。很多人习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
  • /usr/include #C/C++等编程语言头文件的放置目录
  • /usr/lib/ #应用程序调用的函数库保存位置
  • /usr/XllR6/ #图形界面系统保存位置

  /var 目录于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如这些子目录。

  • /var/lib/ #程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
  • /var/log/ #登录文件放置的目录
  • /var/run/ #一些服务和程序运行后,它们的 PID(进程 ID)保存位置

  有些目录中不能直接修改和保存数据,比如 /proc/fn/sys/ 目录,因为它们是保存在内存中的,如果在这里写入数据,那么你的内存会越来越小,直至死机;/boot/ 目录也不能保存额外数据,因为 /boot/ 目录会单独分区作为启动分区,如果没有空闲空间,则会导致系统不能正常启动。一般不要修改根目录下的文件和目录,每个用户的文件都放到自己的家目录中。

原文地址:https://www.cnblogs.com/mazg/p/11426688.html