Linux
操作系统(Deepin
、Ubuntu
)操作系统中,硬盘分区的管理与Windows操作系统不同;
在Linux
系统中维护着一个统一的文件目录体系,而硬盘和分区是以资源的形式由操作系统挂接和调度;此外Linux
系统中连接(硬连接/软连接/别名)到处都是,需要对其有一定的理解;
以下对Linux
系统的硬盘/分区和文件目录体系以及连接分别进行说明。
- 硬盘/分区和文件目录体系
Linux
中的磁盘和Window
系统一样,都属于物理存储设备,都需要进行分区之后再使用。但是硬盘【或移动硬盘、U盘等】插入并识别成功后,是不可能点开移动硬盘的盘符来进行访问的。如下图所示,Deepin
的“计算机”能看到硬盘但不能到分区盘符;
Linux
的文件目录体系就像是一个完整的世界;需要在Linux
系统的文件目录体系中开辟挂载点,将硬盘的分区挂接到这个世界的入口【挂载点】,才能通过这个挂载点来访问硬盘分区。所以Linux
系统的一个文件夹下面,可以挂接多个硬盘分区,剩余的空间为这几个硬盘分区剩余空间之和。如下图所示:
所有在Linux
系统挂接的存储设备,都是在/dev/
这个位置下面【这个位置不能像文件夹一样访问】,比如第一块硬盘一般是/dev/sda
,第二块硬盘一般是/dev/sdb
;【相关文章:Deepin/Ubuntu第二块硬盘配置管理】
- 查看磁盘和分区
lsblk # 列出块设备的信息,如硬盘、分区等
# 执行结果 sda1即为第一块硬盘的第一个分区
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1.5G 0 part /boot
├─sda2 8:2 0 1K 0 part
......
sudo fdisk -l # 查看磁盘分区表, 也可以用fdisk来对硬盘进行分区操作
# 执行结果
Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
......
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 3147775 3145728 1.5G 83 Linux
/dev/sda2 3147776 174063615 170915840 81.5G 5 Extended
......
- 查看
Linux
文件目录体系
df # 显示已挂载的磁盘的文件系统使用情况
# 执行结果 挂载点即为文件目录体系,其中/dev是不可使用的
文件系统 1K-块 已用 可用 已用% 挂载点
udev 1947292 0 1947292 0% /dev
tmpfs 399020 3216 395804 1% /run
/dev/sda5 30786468 9049016 20148256 31% /
......
df -h # 以人类易读的格式显示已挂载的磁盘的文件系统使用情况
# 执行结果 挂载点即为文件目录体系,其中/dev是不可使用的
文件系统 容量 已用 可用 已用% 挂载点
udev 1.9G 0 1.9G 0% /dev
tmpfs 390M 3.2M 387M 1% /run
/dev/sda5 30G 8.7G 20G 31% /
......
- 将硬盘分区挂接到
Linux
文件目录体系
# 创建挂载点
sudo mkdir /mnt/sdb # 创建挂载点/mnt/sdb
sudo mount /dev/sdb /mnt/sdb # 将/dev/sdb挂接到挂载点,接下来可以在目录/mnt/sdb中访问了【第二块硬盘只有一个分区】
sudo unmount /mnt/sdb # 将挂载点离线,硬盘分区就不可访问了
冷知识:Linux
中隐身的文件/文件夹
1. 可以使用已经存在的目录DIR_A创建挂载点A
2. 使用mount将硬盘分区挂接到挂载点A,则原始DIR_A中的文件/文件夹将会隐身
3. 使用umount将硬盘分区离线,则原始DIR_A中的文件/文件夹再次出现
Linux
文件目录体系基本操作
# 创建和删除文件夹
mkdir test # 创建文件夹
rmdir test # 删除空文件夹
rm -r test # 删除文件夹【无论是否空】
# 文件复制和移动、改名、删除
cp test.dat testbak.dat # 复制文件test.dat为testbak.dat
mv test.dat test_bak.dat # 将test.dat改名/移动为test_bak.dat
rm test_bak.dat # 删除文件test_bak.dat
- 查看文件/目录占用磁盘空间
sudo du /var --max-depth=1
# 查看目录/var下文件或文件夹占用磁盘空间,展开层级为1
# 执行结果
4 /var/public
539244 /var/log
4 /var/local
......
sudo du -h /var --max-depth=1
# 执行结果
4.0K /var/public
527M /var/log
4.0K /var/local
......
- 连接(硬连接/软连接)
在Linux
系统中,硬连接和软连接是两种不同的文件连接方式,它们在实现方式和用途上有所区别。
硬连接是指通过索引节点进行的连接,类似于复制多份文件;只有文件才能建立硬连接,而目录则不能。硬连接可以用于防止“误删”的功能,只有当最后一个硬连接被删除后,才能真正删除硬连接相关的文件。
软连接则是一种特殊类型的文件,文件或目录都可以建立软连接文件。软连接文件中包含的是另一文件或目录的位置信息。软连接可以跨越文件系统,即使目标文件或目录已经被删除,软连接仍然存在,但指向的是一个不存在的文件或目录,所以软连接可能是失效的。
下面是硬连接和软连接相关的shell示例【硬连接和软连接都是使用ln
命令创建】
- 创建硬连接
ln /path/to/original_file hardlink_name
# 使用ln命令创建一个指向original_file的硬连接,命名为hardlink_name
- 创建软连接
ln -s /path/to/original_file symlink_name
# 使用ln命令创建一个指向original_file的软连接,命名为symlink_name
- 删除硬连接、软连接
rm hardlink_name # 删除硬连接
rm symlink_name # 删除软连接
# 可以看到,删除硬连接、软连接的shell命令和删除文件是一样的
- 查看软连接信息
ls -l symlink_name # 查看软连接的内容,将显示原始文件或目录的路径
# 如果目标文件或目录不存在,则软连接失效
注意:Deepin桌面系统,ls命令的输出结果中,失效的软连接显示为红色
may the odds be ever in your favor ~