【Linux操作系统】探秘Linux奥秘:文件系统的管理与使用

🌈个人主页:Sarapines Programmer
🔥 系列专栏:《操作系统实验室》
🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。

目录

🪐1 初识Linux OS

🪐2 文件系统的管理与使用

🌍1. 实验目的

🌍2. 实验准备

🌍3. 实验内容

🌍4. 实验心得

📝总结


🪐1 初识Linux OS

Linux是一种开源的Unix-like操作系统内核,它是基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。Linux内核最初是由芬兰程序员Linus Torvalds在1991年创建的,之后成为自由软件和开源社区的一个主要项目。

以下是Linux操作系统的一些主要特点和组成部分:

  1. 内核(Kernel): Linux内核是操作系统的核心,它管理系统资源,如处理器、内存、设备驱动程序等。Linus Torvalds最初编写了Linux内核,它是Linux操作系统的基础。

  2. Shell(命令解释器): Linux操作系统使用命令行界面(CLI),用户与系统交互通过Shell。用户可以通过输入命令执行各种任务,管理文件、进程、权限等。常见的Shell包括Bash(Bourne Again SHell)和Zsh。

  3. 文件系统: Linux支持多种文件系统,包括Ext4、XFS、Btrfs等。文件系统负责管理存储设备上的文件和目录,以及文件的权限、所有权等信息。

  4. 用户界面: 虽然Linux以CLI为主,但也支持图形用户界面(GUI)。常见的Linux桌面环境有GNOME、KDE、XFCE等,它们提供了直观的用户体验。

  5. 软件包管理系统: 大多数Linux发行版都有自己的软件包管理系统,用于安装、更新和删除软件。常见的包管理工具有APT(Debian/Ubuntu)、YUM(Red Hat/CentOS)、Pacman(Arch Linux)等。

  6. 网络功能: Linux具有强大的网络功能,支持各种网络协议和服务。它可以作为服务器运行各种网络服务,如Web服务器(Apache、Nginx)、邮件服务器(Postfix、Sendmail)、文件服务器(Samba)等。

  7. 多用户和多任务: Linux是一个多用户系统,多个用户可以同时访问同一台机器。它也是一个多任务系统,可以同时运行多个进程。

  8. 安全性: Linux以安全性而闻名,系统管理员可以设置用户权限、访问控制列表(ACLs)等来确保系统的安全性。

  9. 开源和自由: Linux是开源软件,其源代码可以被任何人查看、修改和分发。大多数Linux发行版是免费提供的,用户可以自由选择、使用和分发。

  10. 发行版(Distribution): 由于Linux内核是开源的,不同的组织和社区创建了各种Linux发行版,例如Ubuntu、Debian、Fedora、CentOS、Arch Linux等。每个发行版都有自己的特点和包管理系统。

总体而言,Linux操作系统是一个强大、灵活且可定制的操作系统,广泛应用于服务器、嵌入式系统、超级计算机等各种领域。


🪐2 文件系统的管理与使用

🌍1. 实验目的

  •  理解磁盘分区、挂载、卸载的基本概念。

  • 掌握与文件系统管理相关的命令操作。

  • 提高对操作系统存储管理原理的实际应用能力。 


🌍2. 实验准备

  • 获取 Linux 镜像文 件:下载适用于虚拟机的 Linux 镜像文件,比如 Ubuntu 21.04,从 Ubuntu 官方网站 获取。

  • 安装虚拟化软件:安装 VMware Workstation 或 Virtualbox,两者提供简便的虚拟机管理和配置。

  • 创建 Linux 虚拟机:打开虚拟化软件,按照指引创建新虚拟机。设置内存为 2GB 或更多,其余选项选择默认 值。加载下载好的 Linux 系统 ISO 镜像文件,启动虚拟机完成 Linux 系统安装。


🌍3. 实验内容

(1)按以下步骤,增加一块硬盘

a.虚拟机添加硬盘

1. 首先关闭linux,然后点击编辑虚拟机设置,在点击添加,在选择硬盘,点击下一步:

   

b.分区

输入fdisk /dev/sda依此输入

   

c.格式化(创建文件系统)

输入“mkfs.xfs /dev/sda1”

报错:Command 'mkfs.xfs' not found, but can be installed with:

apt install xfsprogs

解决:使用apt install xfsprogs安装即可。

  

d.挂载

在终端输入:mkdir /media ,创建新的硬盘的挂载点

在终端键入:mount /dev/sdb1 linux_lab4

e.设置可自动挂载

打开/etc/fstab,添加/dev/sdb1   linux_lab4      ext3    defaults,        0       1

   

f.卸载

g.删除分区

使用lsblk –f 查看系统的分区和挂载情况

  

再使用umount命令将分区挂载的路径卸载掉

命令:umount /dev/sda1,卸载后再用lsblk –f 查看相关信息

卸载完以后,删除分区

输入fdisk /dev/sda

(2)练习与文件系统管理相关的命令:find、locate、dd、ln、mknod、mkfifo、df、du

a. find命令用于文件的查找,从而定位文件在指定文件系统中的位置.

# find /tmp /home -mtime -1 -print   #在/tmp和/home下查找24小时内没有更改的文件

$ find $HOME -mtime 0 #在/home下查找24小时内被更改的文件

在/home下查找属于用户gjshao的C语言程序

# find /home -user gjshao -name "*.c" -print

将当前目录内的所有*.c和*.h的文件打成tar包/tmp/mych.tar

# tar -cvf /tmp/mych.tar `find  . -name "*.[ch]" -type f -print

在/home下查找所有权限为0644用户主为test的文件

# find /home -perm 0644 -user test -print

b. locate命令用于按名查找文件,它需要一个或多个数据库支持,这些数据库由每天的例行工作(crontab)程序来建立和更新.

# locate passwd #查找含passwd者,即*passwd*

# locate -b '\passwd'   #精确匹配passwd

c. dd功能是复制指定的输入文件到指定的输出文件,默认时使用标准I/O。

(1)构造软盘映像文件。

# dd if=/dev/fd0 of=/tmp/fd_img bs=36b   #设I/O块为36b,映像文件为/tmp/fd_img

(2)介质复制。

复制软盘或U盘等,可以使用临时文件,按以下方法进行:

# dd if=/dev/fd0 of=/tmp/mytmpf  bs=36k  #构造映像文件,交换磁盘

# dd if=/tmp/mytmpf of=/dev/fd0 bs=36k   #输出映像文件

# rm -f /tmp/mytmpf    #删除临时文件

d. ln的功能是链接管理,可用于创建文件的硬链接和符号链接。

##在当前目录内建立/tmp/myf的符号链接my_link

# ln -s /tmp/myf  my_link

##在目录/usr/bin内为/bin/ls创建一个硬链接l

# ln /bin/ls  /usr/bin/l

    

e.用于设备文件创建的命令是mknod,专用于命名管道创建的命令是mkfifo.

f. df功能是按指定格式显示系统中已安装文件系统的使用情况, du的功能是按指定单位统计文件或目录的大小。

# df -v   #显示文件系统的使用情况

# df -i   #显示系统i节点的使用情况

# du -h /home/zhangsan    #列出每个子目录的大小

# du -hs /home/zhangsan    #列出整个目录的大小

  


🌍4. 实验心得

  1. 磁盘管理概念理解: 通过本次实验,我深刻理解了磁盘分区、挂载、卸载的核心概念。磁盘分区的灵活运用使得文件系统得以有序组织,而挂载和卸载的操作则决定了文件系统的可访问性,为数据的有效管理提供了基础支持。

  2. 文件系统命令掌握: 在实验中,我熟悉了一系列与文件系统管理相关的命令,包括find、locate、dd、ln、mknod、mkfifo、df、du。通过find命令,我能够高效定位文件在指定文件系统中的位置,而locate命令则在文件名查找上发挥了巨大的便利。同时,了解和掌握dd、ln、mknod、mkfifo等命令的功能,进一步提升了我对文件系统管理的全面认知。

  3. 问题总结与细致注意: 尽管这次实验相对简单,但我也认真记录了实验过程中的一些细节,包括对问题的及时解决。这让我认识到,在实验过程中稍微注意细节,能够更加高效地完成任务,确保实验的顺利进行。


📝总结

Linux操作系统的领域就像一片未被勘探的信息大海,引领你勇敢踏入开源系统的神秘领域。这是一场独特的学习冒险,从基本概念到系统架构,逐步揭示更深层次的操作系统原理、命令行工具和高级系统管理的奥秘。

渴望挑战Linux操作系统的学习路径和掌握系统管理技术?不妨点击下方链接,一同探讨更多Linux操作系统的奇迹吧。我们推出了引领趋势的💻 Linux专栏:《探秘Linux | 操作系统解密》,旨在深度探索Linux的实际应用和创新。🌐🔍

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ACES 增强版不丹水稻作物地图(2016-2022 年)

ACES 增强版不丹水稻作物地图(2016-2022 年) 用于改善粮食安全决策的 2016-2022 年年度作物类型稻米地图仍然是不丹的一项挑战。这些地图是与不丹农业部和 SERVIR 合作开发的。通过专注于发展不丹的科学、技术、工程和数学 (STEM),我们共同开…

【瞎折腾/3D】无父物体下物体的旋转与移动

目录 说在前面移动World SpaceLocal Space 旋转World SpaceLocal Space 代码 说在前面 测试环境:Microsoft Edge 120.0.2210.91three.js版本:0.160.0其他:本篇文章中只探讨了无父对象下的移动与旋转,有父对象的情况将在下篇文章中…

Oracle merge into 语句用法 Oracle merge into 批量更新 关联更新 批量修改 关联修改

Oracle merge into 语句用法 Oracle merge into 批量更新 关联更新 批量修改 关联修改 一、概述 在开发任务中,遇到一个需求,同一批次的名单;根据一定的条件判断是否存在,若存在,则进行更新操作;若不存在&a…

ES6之Reflect详解

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…

MySQL基础入门(二)

多表内容 一对多 这个内容是黑马的入门问题,可以带大家思考一下这个怎么设计 我们要知道一个岗位可以对应很多用户,而一个用户只能对应一个岗位,这就属于一对多的类型 那么我们需要怎么将他们进行关联呢? 现在我们可以通过一个…

Visual Transformer (ViT)模型详解

1 Vit简介 1.1 Vit的由来 ViT是2020年Google团队提出的将Transformer应用在图像分类的模型,虽然不是第一篇将transformer应用在视觉任务的论文,但是因为其模型“简单”且效果好,可扩展性强(scalable,模型越大效果越好…

strlen的自定义函数的三种实现方法

文章目录 一,概要二,题目三,方法1,方法一2,方法二3,方法三 四,总结 一,概要 在求字符串长度的时候我们会遇到求解字符串的长度,此时我们想到的是strlen,头文件…

如何跨系统构建docker镜像?

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 1. 前言 docker镜像有基于amd64系统的,也有基于arm64系统的。 前段时间用了一个在x86_64的centos7服务器上构建的i…

SpringBoot自动配置原理和自定义启动器

1、自动配置的原理 项目在加载上下文时,会根据SpringBootApplication注解运行。该注解中有一个CompoentScan注解,会扫描和加载当前启动类所在的目录,以及所有的子目录;还有一个是EnableAutoConfiguration注解,这个注解…

huggingface的tokenizer解读

文章目录 前言一、huggingface的tokenizer含义1、含义2、整体概括 二、加载lmsys/vicuna-7b-v1.5模型的tokenizer三、调用tokernizer方法四、字符串的tokens应用1、tokenizer应用2、tokenizer进行token分词(tokenizer.tokenize)3、tokens转模型识别ids(tokenizer.convert_token…

Centos7:Jenkins+gitlab+node项目启动(2)

Centos7:Jenkinsgitlabnode项目启动(1) Centos7:Jenkinsgitlabnode项目启动(1)-CSDN博客 Centos7:Jenkinsgitlabnode项目启动(2) Centos7:Jenkinsgitlabnode项目启动(2)-CSDN博客 Centos7:Jenkinsgitlabnode项目启…

数据结构【线性表篇】(三)

数据结构【线性表篇】(三) 文章目录 数据结构【线性表篇】(三)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件? 目录一、双链表二、循环链表三、静态链表 结语 前言 为什么突然想学算法了? > 用较为“官方…

回溯法求不等式的所有整数解

这份代码本来是用来解决这个问题的 但是&#xff0c;修改之后即可用来解决任意多个xi组成的满足不等式的整数解 这里用真代码而不是伪代码来表示 源代码&#xff1a; #include<iostream> using namespace std; const int N1010; int p,q,r,goal,n; int cnt,sum,MIN; i…

ES6之生成器(Generator)

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

挑战Python100题(9)

100+ Python challenging programming exercises 9 Question 81 Please write a program to randomly print a integer number between 7 and 15 inclusive. Hints: Use random.randrange() to a random integer in a given range. 请编写一个程序,随机打印一个介于7和15之间…

Java学习,一文掌握Java之SpringBoot框架学习文集(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

2021-06-25 51蛋骗鸡按键切合LED

缘由ISIS 7 Professional_有问必答-CSDN问答 #include "REG52.h" sbit K1 P3^0; sbit K2 P3^1; sbit K3 P3^2; sbit K4 P3^3; void main() {unsigned char Xd0,xz0,cs0;unsigned int wei0;P1255;while(1){if(K10&&Xd0){P10;while(K10);}if(K20&&…

【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于预训练ESPCN的轻量化图像超分辨率模型TPU部署方案

2023 CCF 大数据与计算智能大赛 《基于TPU平台实现超分辨率重建模型部署》 作品名&#xff1a;基于预训练ESPCN的轻量化图像超分辨率模型TPU部署方案 队伍名&#xff1a;Absofastlutely 蒋松儒 计算机科学与技术系 硕士 南京大学 中国-江苏 kahsoltqq.com 吕欢欢 计算…

AI产品经理 - 如何做一款软硬协同AI产品

【背景】从0做一款软硬协同的AI产品&#xff0c;以智能医药保温箱 1.以智能医药保温箱 2.调研定义市场方向 地点&#xff1a;医药、实验室 场景&#xff1a;长宽高/装箱/运输/实验室 3.需求挖掘 4.如何进行软硬件AI产品工作 软硬件产品设计&#xff1a;功能/硬件外观设计、…

《数据库开发实践》之存储过程【知识点罗列+例题演练】

一、什么是存储过程&#xff1f; 1.概念理解&#xff1a; 存储过程是一组为了完成特定功能的SQL语句集。通过组成SQL语句和控制语句&#xff0c;提供一种封装任务的方法。因此在创建编译好某个存储过程后&#xff0c;因为存储过程中有可执行操作的sql语句&#xff0c;用户可以…