第二节:文件系统

理论知识

  1. 文件系统的基本概念:文件系统是操作系统中负责管理持久数据的子系统,它将数据组织成文件和目录的形式,方便用户存储和访问数据。
  2. Linux文件系统的类型:常见的 Linux 文件系统类型有 Ext2、Ext3、Ext4、XFS、Btrfs 等。Ext4 是目前使用最广泛的文件系统,它具有高性能、可靠性和扩展性等优点。XFS 则在大文件和高并发场景下表现出色。
  3. 文件系统的挂载:在 Linux 系统中,文件系统需要挂载到某个目录才能使用。挂载点是一个目录,文件系统会被挂载到该目录下。例如,将一个硬盘分区挂载到 /mnt 目录:
sudo mount /dev/sdb1 /mnt
  1. 文件系统的卸载:使用 umount 命令可以卸载一个挂载的文件系统。例如,卸载 /mnt 目录下的文件系统:
sudo umount /mnt
  1. 文件系统的格式化:在使用一个新的硬盘分区之前,需要对其进行格式化。使用 mkfs 命令可以格式化一个分区。例如,将 /dev/sdb1 分区格式化为 Ext4 文件系统:
sudo mkfs.ext4 /dev/sdb1
  1. 文件系统的inode:inode 是文件系统中用于存储文件元信息的数据结构,每个文件都有一个唯一的 inode 编号。inode 包含了文件的大小、权限、创建时间、修改时间等信息。
  2. 文件系统的块和扇区:磁盘的最小读写单位是扇区,通常为 512 字节。文件系统将多个扇区组合成一个块,块是文件系统的基本读写单位。常见的块大小有 4KB、8KB 等。
  3. 文件系统的目录结构:Linux 文件系统采用树形目录结构,根目录为 /。所有的文件和目录都位于根目录下或其子目录中。常见的目录有 /bin(存放系统命令)、/etc(存放系统配置文件)、/home(存放用户主目录)等。
  4. 文件系统的软链接和硬链接:软链接是一个指向另一个文件或目录的特殊文件,它类似于 Windows 系统中的快捷方式。硬链接则是多个文件名指向同一个 inode,它们共享同一个文件数据。
  5. 文件系统的权限管理:文件系统的权限分为读(r)、写(w)、执行(x)三种,分别对应不同的操作权限。权限可以针对文件所有者、所属组和其他用户进行设置。
  6. 文件系统的配额管理:配额管理可以限制用户或组对文件系统的使用空间。通过设置配额,可以防止用户滥用系统资源。
  7. 文件系统的备份和恢复:定期对文件系统进行备份是非常重要的,可以防止数据丢失。常见的备份工具包括 tarrsync 等。

实践案例

  1. 查看文件的inode编号:使用 ls -i 命令可以查看文件的 inode 编号。例如:
ls -i test.txt
  1. 创建一个软链接:使用 ln -s 命令可以创建一个软链接。例如,创建一个指向 test.txt 文件的软链接 test_link
ln -s test.txt test_link
  1. 创建一个硬链接:使用 ln 命令可以创建一个硬链接。例如,创建一个指向 test.txt 文件的硬链接 test_hard_link
ln test.txt test_hard_link
  1. 查看文件系统的挂载情况:使用 df -h 命令可以查看文件系统的挂载情况。例如:
df -h
  1. 挂载一个新的文件系统:假设 /dev/sdb1 是一个新的硬盘分区,将其挂载到 /mnt 目录:
sudo mount /dev/sdb1 /mnt
  1. 卸载一个挂载的文件系统:卸载 /mnt 目录下的文件系统:
sudo umount /mnt
  1. 格式化一个硬盘分区:将 /dev/sdb1 分区格式化为 Ext4 文件系统:
sudo mkfs.ext4 /dev/sdb1
  1. 修改文件的权限:使用 chmod 命令可以修改文件的权限。例如,将 test.txt 文件的所有者添加执行权限:
chmod u+x test.txt
  1. 修改文件的所有者和所属组:使用 chown 命令可以修改文件的所有者和所属组。例如,将 test.txt 文件的所有者改为 testuser,所属组改为 testgroup
sudo chown testuser:testgroup test.txt
  1. 设置文件系统的配额:使用 quota 命令可以设置文件系统的配额。例如,为用户 testuser 设置 /home 目录的磁盘配额为 100MB:
sudo edquota -u testuser

在打开的文件中设置配额信息,保存并退出。
11. 备份一个目录:使用 tar 命令可以备份一个目录。例如,将 /home/testuser 目录备份到 /backup 目录:

sudo tar -cvzf /backup/testuser_backup.tar.gz /home/testuser
  1. 恢复一个备份文件:使用 tar 命令可以恢复一个备份文件。例如,将 /backup/testuser_backup.tar.gz 备份文件恢复到 /home/testuser 目录:
sudo tar -xvzf /backup/testuser_backup.tar.gz -C /home

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python数据结构与算法(5)——动态规划

Python数据结构与算法(5)——动态规划 0. 学习目标1. 动态规划的基本概念1.1 什么是动态规划1.2 动态规划的核心思想1.3 动态规划的适用条件2. 动态规划的实现思路2.1 自顶向下:备忘录法 (Memoization)2.2 自底向上:表格法(Tabulation)3. 0/1 背包问题4. 最长公共子序列5…

【JAVA ee初阶】多线程(3)

一、出现线程安全的原因 1.【根本原因】线程的调度执行时随机的(抢占式执行)->罪魁祸首 2.多个线程同时修改同一个变量 如果是一个线程修改一个变量 或者 多个线程读取同一个变量 或者 多个线程修改不同变量 这些都没事。 3.修改操作不是原子的&a…

Halcon 3D 表面匹配基于形状

文章目录 prepare_object_model_3d 准备 3D 物体模型read_shape_model_3d — 读取3D匹配模型create_shape_model_3d 准备要匹配的3D模型find_shape_model_3d ——发现匹配模型project_shape_model_3d 将三维形状模型的边缘投影到图像坐标中。示例ignore_part_polarity&#xff…

【Linux】Java 开发者的 Linux 常用命令指南

Java 开发者的 Linux 常用命令指南 目录标题 Java 开发者的 Linux 常用命令指南1. Linux 目录结构2. 系统信息命令3. 服务管理系统服务防火墙管理 4. 文本编辑 (vi/vim)常用模式 5. 文件和目录操作查看与导航创建与删除查看文件内容查找文件 6. 用户管理7. 压缩和解压8. 权限管…

每日c/c++题 备战蓝桥杯(P1252洛谷 马拉松接力赛)

洛谷P1060 马拉松接力赛题解:贪心算法在资源分配中的巧妙应用 题目描述 P1060 马拉松接力赛是一道结合贪心策略与动态规划思想的资源分配问题。题目要求将25公里的马拉松接力赛合理分配给5名选手,使得总耗时最短。每位选手可跑1-10公里的整数距离&…

Nginx 中间件

Nginx(发音为 "engine-x")是一款开源的高性能 HTTP 服务器和反向代理服务器,最初由 Igor Sysoev 开发。 它以其高性能、稳定性、丰富的功能集和低资源消耗而闻名,广泛应用于全球的 Web 服务架构中。 作为中间件&#…

Neo4j在win下安装教程(docker环境)

1. 安装命令 1.1 基于正式neo4j安装–不用 docker run --name neo4j-container -p 7474:7474 -p 7687:7687 -d neo4j1.2 基于community安装 需要部署两个Neo4j,一个正式库prod,一个测试库dev。 neo4j默认监听7474(HTTP-也就是浏览器端口&…

kylin v10 + argo + ascend 310p多机多卡 pytorch distributed 训练

最近接了个模型训练编排多机多卡的改造需求,要求使用argo dag task启动多个节点,同时多个节点能实现 torch.distributed.launch 这样多机多卡的训练模式 简述技术 torch.distributed.launch命令介绍 我们在训练分布式时候,会使用到 torch.d…

[Mac] 使用homebrew安装miniconda

使用虚拟环境可以对不同项目的依赖进行隔离。可以使用venv或者conda来创建和使用虚拟环境。 venv是Python内置的虚拟环境管理模块,适合纯Python项目以及快速轻量级的开发和部署。conda具备更强大的版本管理能力,但是占用较大的磁盘空间。 考虑到我基本不…

CMU-15445(1)——环境搭建

前言 最近在找完暑期实习之后,终于有了一些干项目外的空余时间学习新的知识,在这么多轮面试中,数据库的考察非常多,但孱弱的数据库基础导致我有很多次面试被问住,因此我希望在学习CMU-15445(Fall 2024&…

CSS元素动画篇:基于当前位置的变换动画(四)

基于当前位置的变换动画(四) 前言透明效果类元素动画闪烁动画效果效果预览代码实现 淡入动画效果效果预览代码实现 淡出动画效果效果预览代码实现 结语 前言 CSS元素动画一般分为两种:一种是元素基于当前位置的变换动画,通过不明…

STM32驱动AD5318配置8通道DA详细讲解

目录 1. AD5318 芯片特性 2、AD5318寄存器概述 3、SPI数据帧格式 3.1 控制位(Bit15) 3.2 地址位(Bit14-Bit12,3 位) 3.3 数据 / 控制码(Bit11-Bit0) 4、控制功能寄存器(控制位 = 1 时激活) 4.1 参考与增益配置(MM = 00) 4.2. LDAC模式(MM = 01) 4.3 掉…

如何搭建spark yarn 模式的集群集群

以下是搭建Spark YARN模式集群的一般步骤: 准备工作 - 确保集群中各节点安装了Java环境,并配置好 JAVA_HOME 环境变量。 - 各节点间能通过SSH免密登录。 - 安装并配置好Hadoop集群,YARN作为Hadoop的资源管理器,Spark YARN模式需要…

SpringMVC处理请求映射路径和接收参数

目录 springmvc处理请求映射路径 案例:访问 OrderController类的pirntUser方法报错:java.lang.IllegalStateException:映射不明确 核心错误信息 springmvc接收参数 一 ,常见的字符串和数字类型的参数接收方式 1.1 请求路径的…

在 Windows 系统上升级 Node.js

一、查询电脑端已经安装的 Node.js 版本 1、通过【winR】 键,输入 cmd,点击【确定】按钮打开 cmd 窗口 2、命令行界面输入 node -v 查看目前 Node.js 版本 3、命令行界面输入 npm -v 查看目前 npm 版本 二、进入官网地址下载安装包 1、官网地址&#x…

深入详解人工智能数学基础——概率论中的马尔可夫链蒙特卡洛(MCMC)采样

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…

C++ 嵌套类 (详解 一站式讲解)

目录 嵌套类 嵌套类的定义 嵌套类结构的访问权限 pimpl模式(了解) 嵌套类 嵌套类的定义 首先介绍两个概念: 类作用域(Class Scope) 类作用域是指在类定义内部的范围。在这个作用域内定义的成员(包括…

tcp 和http 网络知识

1. 请简述TCP和HTTP的定义与基本概念 TCP:即传输控制协议(Transmission Control Protocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议。它为互联网中的数据通信提供稳定的传输机制,在不可靠的IP层之上&a…

MySQL安装的多个组件中无用组件卸载

在决定卸载MySQL的哪些组件前,需根据你的实际使用场景判断。以下是各组件的主要功能及卸载建议: 1. 核心组件卸载建议 组件名称作用是否可卸载MySQL Server数据库服务核心,存储数据、处理SQL请求的核心程序。不可卸载 (卸载会导致…

CosyVoice 技术全景解析:下一代语音生成模型的革命性突破

目录 一、CosyVoice 模型概述 1. 背景与定位 二、技术架构与创新 1. 核心架构设计 2. 关键技术亮点 三、行业地位与竞品对比 1. 市场定位分析 2. 竞争优势 四、部署方案与硬件成本 1. 硬件需求 2. 优化技巧 五、优势与挑战 1. 核心优势 2. 主要挑战 六、开源生态…