第二章、文件操作
1. Linux 文件系统简介
文件系统(File System)是操作系统用于存储数据、挂载设备而设计的一种数据结构,目的是存储数据和管理设备。如硬盘、U盘等上的数据文件的组织和存储都是用文件系统来实现的。
一般现代操作系统的文件系统都是树形结构。就是一个文件夹内可以存放多个文件或文件夹,文件夹内部还可以存储其他文件和文件夹,这就形成了一种树形结构,也称作目录树。
所谓 目录 你就理解成 文件夹 就行了。
在 UNIX 和 Linux 操作系统中,一切文件系统的起点都是 "根"(你可以理解成大树的根,向上可以有分支和叶子),用 字符 / 来表示。
根 是最顶层的文件夹,是访问一切文件或文件夹的起点位置。
MacOS 系统源于 UNIX 系统,因此 MacOS 的文件系统的目录结构也是和 Linux 一样,如下图所示。
我们要想到达 "share" 这个文件夹要从 根 开始,然后进入 usr 文件夹,才能进入到 share 这个文件名。我们把从根开始,经过各个文件夹到达 share 的过程叫做"路径"。
路径
路径是描述一个文件或文件夹位置的字符串,如上图中 "share" 文件夹的路径就是 /usr/share,第一个 / 代表根,后面再出现 / 都代表路径的分隔符。
需要注意的是 Windows 的路径分隔符是 反斜杠 \,而 Linux 和 UNIX 的路径分隔符是 斜杠 /。
路径分为两种:
- 绝对路径:指从 根
/ 开始的路径,如:/usr/share。第一个字符一定是斜杠 /(根)。 - 相对路径:指从 根 以外的其他文件夹开始的路径,如:
man1/php.1,相对路径要根据 当前工作目录 来确定具体位置(具体内容我们后面再讲)。
当我们向一个计算机内插入U盘或光盘时,这是通常在某个文件夹下多出一个文件夹,这个多出来的文件夹,我们称之为挂载点。而U盘的文件系统将作为一个子分支挂载在这个挂载点上。在 Ubuntu 24.04 系统下插入 U 盘通常会挂载到 /media/你的用户名/ 这个文件下。你自己找个 U 盘试一下吧。
以下是根下的文件夹的说明和作用:
| |
|---|
/ | 根,UNIX/Linux 文件系统最顶层的文件夹。 |
/bin/ | 用来存储用户命令的文件夹。文件夹 /usr/bin 也被用来存储用户命令。 |
/sbin/ | 用于存储系统命令(例如 shutdown)的文件夹。 |
/home/ | 默认是存储每个用户自己数据的文件夹(称为用户主目录),每个用户都会在这个文件夹下有一个子文件夹,用于存储此用户的数据(root用户除外)。 |
/root/ | |
/mnt/ | 该文件夹中通常包括系统引导后被挂载的文件系统的挂载点。如,光盘挂载点可以选择 /mnt/cdrom。 |
/boot/ | 存放 Linux 内核和系统启动期间使用的文件的文件夹。 |
/lost+found/ | |
/lib/ | |
/dev/ | |
/etc/ | |
/var/ | 用于存储 variable(或不断改变的)文件,例如日志文件和打印机假脱机文件的文件夹。 |
/usr/ | 这是存储 UNIX 系统命令的文件夹。用户的很多应用程序和文件都存放在这个文件夹下。 |
/proc/ | 一个虚拟的系统文件夹,可以在这个文件夹下获取系统信息。这些信息是在内存中,由系统运行时自己产生的。 |
/tmp/ | 用户和程序的临时文件夹。用来存放不同程序执行时产生的临时文件。 |
/opt/ | 可选文件和程序的存储文件夹。该文件夹主要被第三方开发者用来简易地安装和卸装他们的软件包。 |
在上述安装的 Ubuntu 26.04 系统当中,当我们使用 weimz这个用户登录的时。我们只能对/home/weimz/这个文件进行修改。上述 根/下的文件夹有些只能查看(如:/etc/),甚至有些连看都不能看(如:/root),这源于 Linux 的权限管理。weimz是普通用户,要管理上述文件夹需要使用root用户登录或切换到root用户。 这也是很多苹果手机或安卓手机在刷机之前必须要想办法root的原因之一,只有拿到root 用户的权限才能对操作系统的核心进行修改。
Linux/UNIX 的文件名是区分大小写的(和 Windows 不同),例如 /home/weimingze/、/home/WEIMINGZE/ 和 /home/Weimingze/ 是三个不同的文件夹。文件名也是如此。在工作时,如果没有特殊要求,建议要把文件名的英文部分用小写字母编写。
下面我们来学习一下文件系统常用的操作命令。
练习: