《Linux操作系统编程》 第五章 文件和文件系统: 了解文件和文件系统的概念和特性,掌握Linux文件系统的基本操作

简介: 《Linux操作系统编程》 第五章 文件和文件系统: 了解文件和文件系统的概念和特性,掌握Linux文件系统的基本操作

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁

🦄 个人主页——libin9iOak的博客🎐
🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐
🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥


第五章 文件和文件系统

学习目的

让学生了解文件和文件系统的概念和特性,掌握Linux文件系统的基本操作。

学习要求

了解:文件系统的特性,文件系统架构,文件系统的物理组织结构,文件的类型。

理解:文件访问时的使用方式;

掌握:文件的访问权限及表示方式,目录操作(当前路径、读取目录项),属性获取以及文件类型。

学习方法

通过对文件操作与权限管理相关知识的编程学习和锻炼,提升学生的编程能力。

概念和原理

5.1 文件和文件系统

5.1.1 文件系统

(1) 定义:

操作系统中的各类文件、管理文件的软件,以及管理文件所涉及到的数据结构等信息的集合。

(2) 功能:

▪ 有效地管理文件的存储空间;

▪ 管理文件目录;

▪ 完成文件的读/写操作;

▪ 实现文件共享与保护;

▪ 为用户提供交互式命令接口和程序调用接口。

5.1.2 文件、记录和数据项

(1) 数据项

▪ 基本数据项:用于描述一个对象的某种属性的字符集,可以命名的最小数据单位, 包括数据名和数据类型两个属性

▪ 组合数据项:若干基本数据项的组合

(2) 记录

记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。关键字是能够唯一标识一个记录的数据项。

(3) 文件

▪ 定义:

文件是具有文件名的一组相关元素(即记录)的集合,是文件系统中最大的数据单位。

▪ 分类:

- 有结构文件:文件由若干相关记录组成

- 无结构文件:看作字符流的集合

▪ 属性

- 文件类型。

- 文件长度。

- 文件的物理位置。

- 文件的建立时间。

图5-1 文件、记录和数据项之间的层次关系

▪ 文件的组织形式

- 目录:

用来容纳文件,目录可以包含子目录,层层嵌套以形成路径。(以斜线分隔的文件名序列构成路径名)

- 标准目录和文件:

/ 根目录,所有其他文件在根文件系统的子目录下

/bin 基本命令的二进制文件,存放Linux下常用的命令和工具

/boot 引导加载器的固有文件,Linux就是从这里启动的

/dev 设备文件,存放着Linux下的所有设备文件

/etc 本地系统配置文件

/etc/X11 本地X窗口系统配置文件

/etc/opt 保存在/opt中的附加软件包配置文件

/home 用户本地目录,每建立一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己空间

/lib 共享系统库文件和核心模块

/mnt 系统文件的临时挂载点

/root 根用户的本地目录

/sbin 基本系统二进制文件,这里存放着系统级的命令

/usr 次重要的分级文件系统,通常用来安装各种软件的位置

- 路径名

相对路径是指起始点是当前工作目录的路径名。路径的写法不是由根目录/ 写起的。

绝对路径是指起始点是根目录( / )的路径名。路径的写法一定是由根目录/写起的

5.2 文件类型和权限

5.2.1 Linux文件系统特性

▪ 普通文件,目录、字符设备、块设备、 套接字等在 Linux 中都是文件。

▪ 类型不同的文件都是通过相同的API对其进行操作

5.2.2 文件类型
标识 文件类型
- 普通文件
d 目录文件
c 字符设备文件
b 块设备文件
p 管道或FIFO
l 符号链接
s 套接字
5.2.3 权限

(1) 文件访问权限

▪ 读取权限 r:

- 浏览文件/目录中内容的权限;

▪ 写入权限 w:

- 对文件而言是修改文件内容的权限

- 对目录而言是删除、添加和重命名目录内文件的权限;

▪ 执行权限 x:

- 对可执行文件而言是允许执行的权限

- 对目录而言是进入目录的权限。

(2) 目录权限的特殊性

▪ 当打开一个任意类型的文件时,对该文件路径名中包含的每一个目录都应具有执行权限

▪ 为了在一个目录中创建一个新文件,必须对该目录具有写权限和执行权限

▪ 为了删除一个文件,必须对包含该文件的目录具有写权限和执行权限,对该文件本身则不需要有读、写权限

(3) 基于用户的文件权限管理

▪ 文件所有者:建立文件和目录的用户;

▪ 文件所有者所在组用户:文件所有者所属用户组中的其他用户;

▪ 其他用户:既不是文件所有者,又不是文件所有组所在组的其他所有用户。

图5-2 基于用户的文件权限管理-字母和数字表示法

图5-3 字母和数字表示法示例

(4) 修改文件权限的chmod命令

▪ 功能:修改文件的访问权限

▪ 格式:chmod <模式> <文件>

▪ 模式:

- 对象:u 文件所有者 、g 同组用户、o 其他用户

- 操作符:+增加、-删除、=赋予

- 权限:r 读、w 写、x 执行、s设置用户ID

▪ 举例:

- 取消同组用户对file文件的写入权限

chmod g-w file

- 将pict目录的访问权限设置为775

chmod 755 pict

5.3 目录和文件的操作

5.3.1 目录操作命令

(1) 创建目录

mkdir命令:创建目录,其后可接目录的绝对路径和相对路径,以及多个目录。

(2) 删除目录

rmdir命令:删除目录,其后可接目录的绝对路径和相对路径,以及多个目录。

(3) 切换目录

cd命令:切换当前的工作目录,其后的命令行参数可以是目录的相对和绝对路径,缺省的状态下返回用户主目录。

(4) 查看当前目录

pwd命令:查看当前目录。

(5) 列出指定目录和文件的属性

ls命令:列出指定目录和文件的属性。用户在任何一个目录下执行ls ,就能将当前目录中的所有文件、子目录、符号链接等以列表的方式显示出来,同时还可以借助ls –l了解到文件类型、权限等一些重要的文件属性。

5.3.2 文件操作命令

(1) 显示文件内容

cat命令:显示文件内容,文件的内容一次被打开,显示在屏幕上。

more命令:逐屏显示文件内容,与cat命令不同在显示方式,more并不是一次性显示完,若文件长度大于23行,屏幕底部会显示“more”或“more+已显示百分比”。

(2) 复制文件

cp命令:复制命令

基本语法格式为cp [-i][-r] oldfile newfile

可选项:

-i表示请求确认;

-r表示复制目录及其内部的所有文件到新的目录下。

(3) 移动文件

mv命令:可将文件移至新的目录下。若在同一目录下操作,就是给文件重命名。

(4) 删除文件

rm命令:成功执行该命令将永久删除文件。

基本语法格式: rm [-i][-r] file [file1 file2 …]

可选项: -i表示删除文件前确认;-r表示强制删除文件,包括目录文件。

(5) 打印文件

lp命令:打印命令

基本语法格式:lp [-options] file [file1 file2 …] 成功执行该命令并有可操作打印机连接,打印任务交予后台,屏幕出现shell命令提示符继续前台工作。

(6) 格式化输出文件

pr命令:格式化输出命令,将文本内容以标准打印格式显示在屏幕上。

(7) 链接文件

▪ ln命令:为某一个文件在另外一个位置建立一个同步的链接。

▪ 基本语法格式:

▪ ln [参数][源文件或目录][目标文件或目录]

▪ ln命令会保持每一处链接文件的同步性;

▪ ln的链接又分软链接和硬链接两种。

- 软链接:“ln –s 源文件 目标文件”,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间

- 硬链接 :“ln 源文件 目标文件”,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件。

重点

文件操作和目录操作。

难点

文件操作和目录操作。

习题

  1. Linux 文件系统的文件大致可以分成哪几类?分别是什么?

答:

标识 文件类型
- 普通文件
d 目录文件
c 字符设备文件
b 块设备文件
p 管道或FIFO
l 符号链接
s 套接字

2.常用的目录操作命令有哪些?各自的功能分别是什么?

答:

(1) 创建目录

mkdir命令:创建目录,其后可接目录的绝对路径和相对路径,以及多个目录。

(2) 删除目录

rmdir命令:删除目录,其后可接目录的绝对路径和相对路径,以及多个目录。

(3) 切换目录

cd命令:切换当前的工作目录,其后的命令行参数可以是目录的相对和绝对路径,缺省的状态下返回用户主目录。

(4) 查看当前目录

pwd命令:查看当前目录。

(5) 列出指定目录和文件的属性

ls命令:列出指定目录和文件的属性。用户在任何一个目录下执行ls ,就能将当前目录中的所有文件、子目录、符号链接等以列表的方式显示出来,同时还可以借助ls –l了解到文件类型、权限等一些重要的文件属性。

3.文件系统的功能是什么?

答:

(1) 有效地管理文件的存储空间;

(2) 管理文件目录;

(3) 完成文件的读/写操作;

(4) 实现文件共享与保护;

(5) 为用户提供交互式命令接口和程序调用接口。

原创声明

=======

作者: [ libin9iOak ]


本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任。

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。


目录
相关文章
|
传感器 人工智能 物联网
HarmonyOS NEXT~鸿蒙操作系统功耗优化特性深度解析
本文深入解析了华为鸿蒙(HarmonyOS)操作系统的功耗优化特性,涵盖低功耗设计原理、核心技术及实际应用效果。通过与Android对比,展现其在待机功耗、CPU调度效率和内存占用上的优势。文章重点阐述分布式任务调度、微内核架构及智能感知技术,并针对智能穿戴、物联网和智能手机等场景优化进行分析,同时为开发者提供优化建议。未来,鸿蒙将探索AI预测性管理等新技术,进一步提升能效表现。
2633 30
|
11月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
存储 Linux API
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
在计算机系统的底层架构中,操作系统肩负着资源管理与任务调度的重任。当我们启动各类应用程序时,其背后复杂的运作机制便悄然展开。程序,作为静态的指令集合,如何在系统中实现动态执行?本文带你一探究竟!
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
|
存储 Linux iOS开发
【Linux】冯诺依曼体系与操作系统理解
本文深入浅出地讲解了计算机体系的两大核心概念:冯诺依曼体系结构与操作系统。冯诺依曼体系作为现代计算机的基础架构,通过中央处理器、存储器和输入输出设备协同工作,解决了硬件性能瓶颈问题。操作系统则是连接硬件与用户的桥梁,管理软硬件资源,提供运行环境。文章还详细解析了操作系统的分类、意义及管理方式,并重点阐述了系统调用的作用,为学习Linux系统编程打下坚实基础。适合希望深入了解计算机原理和技术内幕的读者。
410 1
|
11月前
|
监控 Ubuntu Linux
什么Linux,Linux内核及Linux操作系统
上面只是简单的介绍了一下Linux操作系统的几个核心组件,其实Linux的整体架构要复杂的多。单纯从Linux内核的角度,它要管理CPU、内存、网卡、硬盘和输入输出等设备,因此内核本身分为进程调度,内存管理,虚拟文件系统,网络接口等4个核心子系统。
1064 0
|
11月前
|
Unix 物联网 Linux
都什么年代了,你还不懂啥是Linux操作系统
至于华为鸿蒙操作系统是不是独树一帜,这个留给各位阅读本文的网友们来讨论
556 0
|
11月前
|
安全 Linux iOS开发
linux属于什么操作系统
Linux是一种自由和开放源代码的操作系统,具有高度的灵活性和可定制性。与常见的操作系统如Windows和macOS相比,Linux具有自由、安全和稳定等优势。Linux已广泛应用于服务器、桌面电脑、超级计算机和嵌入式设备等领域,并且在未来的发展前景广阔。由于其自由和开放源代码的特性,Linux还促进了计算机技术和社区的发展,为全球的计算机用户提供了更多的选择和可能性。
|
11月前
|
安全 Ubuntu Unix
关于Linux操作系统,你必须要知道的事
我们可以看到无论是Debian还是Buildroot都有各自的特点,为客户提供了更大的选择空间和灵活性,大家可以根据自己的需求选择合适的版本来满足终端用户的体验和功能需求。从平技术将会一直关注更多更安全、灵敏、易于开发的Linux版本,做好适配工作,不断为客户带来“简单开发、方便应用”的使用体验。
|
11月前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
11月前
|
Ubuntu Linux 开发者
Linux发行版比较:选择适合你的操作系统
在做出选择之前,建议您先在虚拟机或双系统环境中尝试不同的发行版,根据自己的体验和需求做出决策。选择适合自己的Linux发行版是一个个人化和主观的过程,最重要的是找到符合自己需求和喜好的发行版,让您在使用Linux系统时感到舒适和方便。