文件管理(以Unix系统为例)
文章目录
- 1) 什么是文件?
- 2)如何管理文件的信息?
- 3)什么是目录?
- 4)如何管理目录?
- 5)文件如何使用?
- 6)文件的权限管理
- 7)什么是文件系统?
- 8)使用文件系统
- 9)备份与恢复
- 10)硬盘的结构
图片均来自网络,如有侵权,请告知删除。
1) 什么是文件?
如何把数据长期的存储在外部储存介质之上(比如硬盘)
什么是文件
一组相关数据的集合。
在操作系统眼中,文件是一个字节流(或者是一个字符流)
文件的类型
- 普通文件(ordinary):习惯上简称文件
- 目录\文件夹(directory):能够容纳别的文件
- 设备(special file):输入输出设备,鼠标键盘等等,逻辑设备(null设备、硬盘分区)
文件的组成部分
名字
- unix中
\
不能做文件名,windows不能用:
和/
作为文件名 - unix中不区分扩展名
- unix中
属性
操作系统会设置一个单独的地方存储文件的属性
在unix中使用
i-node
存放文件的属性,通过i-node
可以找到文件的数据,所有i-node
会集中存放,与文件一一对应。
创建时间、修改时间、主人、大小
内容
2)如何管理文件的信息?
如何把文件的 数据、名字、属性 关联在一起呢?
文件系统的块
用数据块存放文件的内容
存储方式
链式(查找困难)
顺序存储(修改困难)
unix中的存储方式:多级索引
优点: 大文件大、小文件快
i-node(128字节,后60个字节存放15个指针)
前12个指针指向12k的数据
第13个指针(1级索引指针)指向256k数据
第14个指针(2级索引指针)指向64M数据
第15个指针(3级索引指针)指向16G数据
访问更大的数据 → \to → 改变数据块的大小
3)什么是目录?
目录的结构
目录也是一种文件,是一个树状结构。
- 一级目录:多个文件放在一起,文件不能重名
- 二级目录:区分user,每个用户的文件不能重名
- 多级目录:根目录 → \to → 多个子目录 → \to → … ,存放不同的文件
目录的内容
存放此目录下 文件名字 和
i-node
的编号,通过i-node
编号可以找到唯一的文件数据,但是i-node
没有文件的名字,unix中文件名字和文件内容 分开存放unix中文件共享(链接文件)
多个文件名字指向同一个
i-node
4)如何管理目录?
windows使用盘符,unix没有盘符的概念,下述以unix为例:
目录的表达形式
用
/
表示根目录下的文件,从根目录开始的叫 绝对路径,如:/home/tux1/doc/test
从当前目录开始的 相对路径
doc/mon_report (当前目录下有一个叫doc的文件夹)
…/tux3/pgms (…表示当前的父目录 )
./test (.表示当前目录)
~/test (~表示当前登陆者的主目录)
命令管理目录
pwd (Print Working Directory):打印当前目录
cd (Change Directory):在目录之间来回移动,后边可以跟相对路径或者绝对路径
cd doc (相对路径)
cd /home/tux1/doc (绝对路径)
cd ~tux1/doc (与上两个作用相同)
cd (不写参数代表回到主目录)
cd … (到上一级目录)
cd - (回退到以前的目录)
mkdir (Make Directory):添加目录
rmdir (Remove Directory):删除目录,要求目录必须是空目录,除了
..
(父目录别名)和.
(此目录别名)-p
选项用来操作多个目录,例:mkdir -p dir1/dir2/dir3 (一口气创建多个目录)
rmdir -p dir1/dir2/dir3(一口气删除多个目录)
ls:列出目录内容
-l
:以长方式显示文件详细属性-a
:显示所有文件(包括隐藏文件)-t
:按照修改日期排序文件-R
:递归的显示-i
:显示文件的 i-node
5)文件如何使用?
创建别名
硬连接:根据名字和
i-node
存在的对应关系,使得i-node
可以对应多个名字符号连接:相当于快捷方式,两个
i-node
不同目录不能建硬连接,只能创建符号连接。
硬连接不能跨文件系统,符号连接可以。
管理文件命令
touch:创建文件
cp:拷贝文件
两种格式
cp file1 file2 … dir (把file1,file2拷贝到dir,dir是已经存在的目录)
cp file1 file2 (把file1拷贝到file2中)
-R
:拷贝目录-i
:拷贝时如果已有同名文件则信息提示
mv:移动文件
mv file1 file2 (把file1重命名为file2)
rm:删除link
假如abc、xyz对应的
i-node
相同,则执行rm abc之后,xyz依然存在只有一个
i-node
的link
数降为0的时候,这个数据才真正从硬盘上被删掉cat:查看文件内容
6)文件的权限管理
文件、组、用户
- 用户(users):登陆系统的用户名、密码对应的用户
- 组(group):每个人属于多个组,每个组对应多个人(多对多的关系)。每个人都有一个基本的组(主要组),每个人仅有一个主要组。
- 文件有且仅有一个主人,属于且仅属于一个组,文件的主人(owner)为创建文件的人,文件的组为主人的主组。
对于一个文件来说,有三类人,他们的权限分别为:
- 主人
- 主组的其他人
- 主组之外的人
文件的权限只能由 root 或者 主人 修改,权限的查看:
ls -l
- file type中
d
代表目录,-
代表普通文件,后边的权限含义为:- 对于文件:
- r:读文件
- w:修改文件内容
- x:执行文件(unix中可执行文件有两种,1.文件本身是二进制可执行格式,2.文件是脚本格式)
- 对于目录(把目录比作房间):
- r:查看目录下有哪些文件,但是不能拿到
i-node
(看到房间的东西),可以ls
- w:删除或增加目录下的文件(从房间搬入搬出东西)
- x:进入目录,可以获得文件的详细信息(进入房间中来)
- r:查看目录下有哪些文件,但是不能拿到
- 对于文件:
指令 | 源目录所需权限 | 源文件所需权限 | 目标目录所需权限 |
---|---|---|---|
cd | x | N/A | N/A |
ls | x,r | N/A | N/A |
mkdir,rmdir | x,w | N/A | N/A |
cat,less | x | r | N/A |
cp | x | r | x,w |
cp -r | x,r | r | x,w |
mv | x,w | None | x,w |
vi | x,r | r,w | N/A |
rm | x,w | None | N/A |
权限的修改
符号表示法
chmod u+w,g-x,o= file (对file文件,user增加w,group减少x,other权限清空,替换为等号后边的权限)
chmod a-w (all 减少w权,也可以写成chmod -w)
二进制数表示法
> chmod 750 file
缺省权限的设置
umask:掩码
普通文件创建后的权限:rw-rw-rw(666)
创建后的权限:666-umask
普通目录创建后的权限:rwxrwxrwx(777)
创建后的权限:777-umask
7)什么是文件系统?
文件系统
存放文件和目录的地方,结构一般都是树状的目录树。
一个文件系统只有一个根目录。文件系统的容器用来存放文件系统,假设文件和目录是水,文件系统是塑料袋,那么容器就是装塑料袋的木桶。文件系统的容器一般都放在块设备上,典型的块设备有,硬盘、软盘、光盘,硬盘上的分区、内存中划分的区域等等。
文件系统有很多,操作系统会使用虚拟文件系统层,来屏蔽各种不同的文件系统的区别,为用户提供统一的接口来使用文件系统。
典型的unix文件系统:ext2
体现了unix管理文件的基本思想,整个系统会被分为大小相等的若干个块,块的大小初始化时指定,默认大小为1k。
块的用途:
- superblock:整个文件系统的基本属性(块的大小,根目录位置、空闲块的起点、空闲i-node的起点),ext2中规定每8192块会放一个superblock的备份,每次更新全部superblock。
i-node
:指向文件数据,块的大小假设为1k的话,每一个i-node
块中可以容纳8个i-node
块- indirect block:间接指针索引块
- data block:数据块
初始化时需要划分i-node块和存放数据的块(间接指针索引块和数据块)的比例,设置bytes-per-inode,假设为4096,表示每4096字节中有128字节为i-node块。
磁盘配合
一个用户或者一个组在文件系统中最多可以存放多少数据。超过硬限制报error,超过软限制报warning。
8)使用文件系统
unix中文件系统的挂载(mount)以及卸载
unix中只有一个虚拟的根目录,我们需要把文件系统挂载到已经存在的空目录上。
- 挂载并不是拷贝,只是把文件的根目录和文件系统的目录粘到一起。
如果挂载到非空目录上,原目录中的文件将暂时被隐藏。
> mount 设备名字 空目录名字(挂载文件系统,需要root权限)
>
> umount 设备的名字\mount点的名字 (卸载文件系统,相当于windows弹出u盘)
在unix中,根目录、home都是文件系统。
9)备份与恢复
备份的重要性
数据的重要性往往比存放数据的设备价值要大,常用的技术就是给数据 冷备份(就是把数据复制一份)。
备份的基本策略
根据备份的数据量可以分为:
- 数据备份:备份用户的数据
- 系统备份:备份系统的数据
如果数据量还是太大,就考虑其他的备份策略:
- 增量备份:每次都备份与前一天的差异,恢复速度比全备份块的多
- 差异备份:每次都备份与第一天的差异。
备份的工具
tar
tar -cvf home.tar.gz /home
c表示创建、v表示打包时同时显示文件的名字,f表示指定一个文件的名字
tar -xvf
x表示解压缩,提取
压缩时需要指定压缩算法
tar -cvf home.tar.gz /home (gzip)
tar -cvf home.tar.bz2 /home(bzip2)
dd
dd if= of= bs= (if是输入文件,of是输出文件)
dd if=/dev/zero of=/dev/sda bs=1M
dd if=/dev/urandom of=/dev/sda bs=1M 清空硬盘
10)硬盘的结构
串行硬盘
SAS串行硬盘一般用在服务器,SATA硬盘一般用在小型机,单碟比双碟的速度快,世面上并行硬盘已经少见。
传统硬盘速度慢的原因:读数据时采用磁头臂移动、盘片的旋转的方式,这都是机械运动,相对于光、电速度很慢。
硬盘臂调度算法
- 先到先服务:早提出的请求早响应,磁头臂来回运动。
- 最短寻道优先:先访问最近的扇区,离得比较远等待时间会很长。
- 电梯算法:一直沿着一个方向运动,接收所有请求,走到头后返回。由于中间的扇区要走两次,因此两边的响应延迟。
- c-scan:运动过程中响应所有请求,迅速回退到低地址,中间不回应任何请求,再从头响应请求。
硬盘的分区
最初只有四个分区,把分区信息记录在硬盘的第一个分区。后来这四个分区不够用,调整之后这四个变为主分区,可以拿出一个主分区转为扩展分区,可以分成更多小分区,叫逻辑分区。因此现在的硬盘结构可以划分为:主分区最多四个,扩展分区小于等于1个,如果有扩展分区就占了一个主分区的指标,逻辑分区可以多到几十个。
命名规则,四个主分区分别为1234,逻辑分区从5开始。
SDA1 :SD代表硬盘,A是第一个硬盘。
观察硬盘分区的命令
sudo fdisk -l /dev/sds
与逻辑卷管理的比较
- 分区式管理缺点:
- 空间大小划分后无法更改,初期对硬盘空间的规划带来困难,如果采用第三方的分区管理工具还会带来数据上的风险。
- 受硬盘大小的限制。
逻辑卷管理:逻辑卷取代了分区,成为文件系统的容器。
优点:可以动态调整大小,可以充分利用零散硬盘空间,可以跨硬盘存放等等。
物理卷:独立的硬盘,传统意义上的分区。
- 卷组:一个或多个物理卷组合在一起。
- 物理块:物理卷加入到卷组中, 把它上面的空间按照固定大小进行划分,划分出若干个大小相等的小块作为将来的储存空间。
逻辑卷的大小=逻辑块大小*逻辑块个数,逻辑块大小等于物理块大小。
文件管理(以Unix系统为例)相关推荐
- unix操作系统(360搜索百科)介绍unix系统产生的由来和发展是重点,而百度百科中没有仔细介绍这方面
unix操作系统 免费编辑 添加义项名 B 添加义项 ? 所属类别 : 软件 UNIX操作系统(尤尼斯),是一个强大的多用户.多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统, ...
- FreeBSD 6.0架设管理与应用-第三章 UNIX 系统入门
在开始进阶的 FreeBSD 设定之前,我们先来了解一下 UNIX 系统的架构及基本知识.这些知识对于我们之后管理.使用 FreeBSD 十分重要.如果您是 UNIX 新手,请务必详读本章. 本章将介 ...
- linux划分5t硬盘,关于磁盘分区(以linux系统为例)
一.关于硬盘种类.物理几何结构及硬盘容量.分区大小计算: 1.硬盘种类.物理几何结构 硬盘的种类主要是SCSI .IDE .以及现在流行的SATA等:任何一种硬盘的生产都要一定的标准:随着相应的标准的 ...
- 《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》——2.3 直接映射高速缓存...
本节书摘来自异步社区<现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)>一书中的第2章,第2.3节,作者:[美]Curt Schimmel著,更多章节内容可以访问云 ...
- itpt_TCPL 第五章:指针和数组 - 第八章:UNIX系统接口
2016.10.11 - 01.09 个人英文阅读练习笔记(极低水准). 10.11 第五章:指针和数组 指针是保存一个变量的地址的变量.指针在C中被大量使用,部分是因为有时候它是唯一表达计算的方法, ...
- 操作系统 第十章 UNIX系统
本章考核知识点 :1.UNIX系统结构 2.UNIX系统的进程 3.UNIX系统的存储管理 4.UNIX系统的文件系统 5.UNIX系统的I/O系统 自学要求 :在学习操作系统基本工作原理的基础上,了 ...
- unix系统操作系统_Unix操作系统| 第1部分
unix系统操作系统 Unix作业系统 (Unix Operating System) UNIX is a portable computer operating system originally ...
- 5w字总结 Unix系统编程学习笔记(面试向)(Unix环境高级编程/Unix环境程序设计)
文章目录 一.计算 C语言的数据表示与处理 计算 C语言的基本运算操作 内存表和符号表 类型转换 函数类型的分析 指令 复合指令 句法 函数 函数激活(Activation Record) 函数激活定 ...
- java字节对齐 32 64_【C语言】字节对齐问题(以32位系统为例)
1. 什么是对齐? 现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型 ...
最新文章
- 循环IRNNv2Layer实现
- 看到了商机,为什么赚不到钱?
- springBoot+springSecurity 数据库动态管理用户、角色、权限(二)
- keil5安装_keil5,软件安装包及安装教程
- ThinkPHP3.2.3快速入门 · 看云
- python实现共轭梯度算法(含误差与运算次数的折线图)
- zplane函数怎么用m文件调用_elastique.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
- HTTP异步链接池发送HTTP外部请求,获取本地ip导致HTTP外部请求很慢怎么解决?
- 【生信技能树2020-10-31】单细胞数据挖掘学习笔记-1.1 下载、探索数据
- ios-webkit-debug-proxy 说明
- 学习记录:jmeter添加jp@gc - Hits per Second
- 用EXCEL分析《亚马逊智能产品评论》
- 小程序毕设作品之微信疫苗预约小程序毕业设计(7)中期检查报告
- 视频编码零基础入门(1):视频编解码之理论概述
- C语言三角分解非奇异矩阵为L、U矩阵
- torch.nn.Transformer解读与应用
- 使用 MATLAB 编程,设计一个数字锁相环,用于数字通信系统同步, 并给出仿真结果
- “打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹“
- 链表、二叉树、图的建立与初始化C源代码
- 得到PCB板子的背景区域