位置: 编程技术 - 正文

Linux文件系统面面观(linux 文件)

编辑:rootadmin

推荐整理分享Linux文件系统面面观(linux 文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux 文件,linux文件系统inode,linux 文件系统,linux 文件系统详解,linux 文件系统详解,linux文件系统inode,linux系统文件在哪个目录,linux 文件系统,内容如对您有帮助,希望把文章链接给更多的朋友!

对于计算机来说,所谓的数据就是0和1的序列。这样的一个序列可以存储在内存中,但内存中的数据会随着关机而消失。为了将数据长久保存,我们把数据存储在光盘或者硬盘中。根据我们的需要,我们通常会将数据分开保存到文件这样一个个的小单位中(所谓的小,是相对于所有的数据而言)。但如果数据只能组织为文件的话,而不能分类的话,文件还是会杂乱无章。每次我们搜索某一个文件,就要一个文件又一个文件地检查,太过麻烦。文件系统(file system)是就是文件在逻辑上组织形式,它以一种更加清晰的方式来存放各个文件。

路径与文件简介

文件被组织到文件系统(file system)中,通常会成为一个树状(tree)结构。Linux有一个根目录/, 也就是树状结构的最顶端。这个树的分叉的最末端都代表一个文件,而这个树的分叉处则是一个目录(directory, 相当于我们在windows界面中看到的文件夹)。在图1中看到的是整个的一个文件树。如果我们从该树中截取一部分,比如说从目录vamei开始往下,实际上也构成一个文件系统。

要找到一个文件,除了要知道该文件的文件名,还需要知道从树根到该文件的所有目录名。从根目录开始的所有途径的目录名和文件名构成一个路径(path)。比如说,我们在Linux中寻找一个文件file.txt,不仅要知道文件名(file.txt),还要知道完整路径,也就是绝对路径(/home/vamei/doc/file.txt)。从根目录录/, 也就是树状结构的最顶端出发,经过目录home, vamei, doc,最终才看到文件file.txt。整个文件系统层层分级(hierarchy),vamei是home的子目录,而home是vamei的父目录。

在Linux中,我们用ls命令来显示目录下的所有文件,比如 $ls /home/vamei/doc

图1 文件树

如该图中所示的文件系统,即绿色构成的树。最顶端的根目录(/),沿红色箭头标出的路径,我们最终找到文件file.txt。

目录

在Linux系统中,目录也是一种文件。所以/home/vamei是指向目录文件vamei的绝对路径。

这个文件中至少包含有以下条目:复制代码代码如下:. 指向当前目录.. 指向父目录除此之外,目录文件中还包含有属于该目录的文件的文件名,比如vamei中就还要有如下条目,指向属于该目录的文件:复制代码代码如下:docmoviephoto

Linux解释一个绝对路径的方式如下:先找到根目录文件,从该目录文件中读取home目录文件的位置,然后从home文件中读取vamei的位置……直到找到目录doc中的file.txt的位置。

由于目录文件中都有.和..的条目,我们可以在路径中加入.或者..来表示当前目录或者父目录,比如/home/vamei/doc/..与/home/vamei等同。

此外,Linux会在进程中,维护一个工作目录(present working directory)的变量。在shell中,你可以随时查询到到工作目录(在命令行输入$pwd)。这是为了省去每次都输入很长的绝对路径的麻烦。比如说我们将工作目录更改为/home/vamei ($cd /home/vamei),那么此时我们再去找file.txt就可以省去/home/vamei/ ($ls doc/file.txt),这样得到的路径叫相对路径(relative path),上面的doc/file.txt就是这样一个相对路径。

当文件出现在一个目录文件中时,我们就把文件接入到文件系统中,我们称建立一个到文件的硬链接(hard link)。一个文件允许出现在多个目录中,这样,它就有多个硬链接。当硬链接的数目(link count)降为0时,文件会被Linux删除。所以很多时候,unlink与remove在Linux操作系统中是一个意思。由于软链接(soft link)的广泛使用(soft link不会影响link count,而且可以跨越文件系统),现在较少手动建立硬连接。

文件操作

对于文件,我们可以读取(read),写入(write)和运行(execute)。读取是从已经存在的文件中获得数据。写入是向新的文件或者旧的文件写入数据。如果文件储存的是可执行的二进制码,那么它可以被载入内存,作为一个程序运行。在Linux的文件系统中,如果某个用户想对某个文件执行某一种操作,那么该用户必须拥有对该文件进行这一操作的权限。文件权限的信息保存在文件信息(metadata)中, 见下一节。

Linux文件系统面面观(linux 文件)

文件附加信息 (metadata)

文件自身包含的只有数据。文件名实际上储存在目录文件。除了这些之外,还有操作系统维护的文件附加信息,比如文件类型,文件尺寸,文件权限,文件修改时间,文件读取时间等。可以用ls命令查询文件信息($ls -l file.txt),得到如下结果:复制代码代码如下:-rw-r--r-- 1 vamei vamei Sep 8 : file1.txt

各个部分的含义如下:

1.我们先介绍最开始的-,它表示文件类型,说明file1.txt是常规文件(如果是目录文件,则应显示d)。

2.随后有九个字符,为rw-r--r--,它们用于表示文件权限。这九个字符分为三组,rw-, r--, r--,分别对应拥有者(owner),拥有组(owner group)和所有其他人(other)。回顾Linux开机启动 ,登录后,我会有一个用户身份和一个组身份, 相当于我的名片。第一组表示,如果我的名片上的用户身份证明我是该文件的拥有者,那么我就可以对该文件有读取(r),写入(w)该文件的权限,但不拥有执行(-,如果拥有执行权限,则为x)该文件的权限。第二组表示,如果我的名片上的组身份证明我所在的组是该文件的拥有组的一员,那么我有从该文件读入的权限。第三组表示,如果我的名片显示我既不是拥有者,也不是拥有组的一员,那么我只有读入的权限。当我想要进行一个读取操作时,Linux会先看我是否是拥有者下文会进一步解释拥有者和拥有组。

3.后面的1是硬连接(hard link)数目(link count)。

4.之后的vamei表示用户vamei是文件的拥有者(owner),文件的拥有者有权更改文件权限(比如改为rwxrwxrwx)。而后面的vamei文件的拥有组是组vamei。文件的拥有者和拥有组在文件创建时就附加在文件上(相当于给文件上锁,只有有合适名片的用户才能打开操作)。要注意,Linux有一个超级用户root (也叫做根用户),该用户拥有所有的文件。

5.随后的表示文件大小,单位为字节(byte)。

6.Sep 8 :表示文件的上一次写入的时间(modification time)。实际上在文件附加信息中还包含有文件的上一次读取时间(access time),没有显示出来。软链接 (soft link, or symbolic link)

如上讨论硬链接时说到的,软链接不会影响文件的link count。如果还记得windows系统的快捷方式的话,Linux的软链接(soft link,也叫做symbolic link)就是linux的快捷方式。软链接本质上是一个文件,它的文件类型是symbolic link。在这个文件中,包含有链接指向的文件的绝对路径。当你从这个文件读取数据时,linux会把你导向所指向的文件,然后从那个文件中读取(就好像你双击快捷方式的效果一样)。软链接可以方便的在任何地方建立,并指向任何一个绝对路径。

软链接本身也是一个文件,也可以执行文件所可以进行的操作。当我们对软链接操作时,要注意我们是对软链接本身操作,还是对软链接指向的目标操作。如果是后者,我们就说该操作跟随链接指引(follow the link)。

umask

当我们创建文件的时候,比如使用touch,它会尝试将新建文件创建为权限,也就是rw-rw-rw-。但操作系统要参照权限mask来看是否真正将文件创建为。权限mask表示操作系统不允许设置的权限位,比如说(----wxrwx)的权限mask意味着不允许设置设置group的wx位和other的rwx位。如果是这个权限mask的话,最终的文件权限是rw-r----- (group的w位和other的rw位被mask)。

我们可以通过复制代码代码如下:$umask 的方式改变权限mask。

总结

计算机本质上是对数据进行处理的工具,而文件是数据储存的逻辑载体,所以了解Linux文件系统很重要。对于文件系统的了解要结合Linux的其他方面(比如用户管理)进行有机的学习。

文件权限,拥有者,拥有组,超级用户root

硬链接,软链接,follow the link

Linux文本流和标准输入、标准输出、标准错误与重定向介绍 文本流文件用于数据的存储,相当于一个个存储数据的房子。我们之前说,所谓的数据是0或者1的序列,但严格来说,Linux以字节(byte)来作为数据的单位

Linux命令和命令行详解 Linux的命令是很重要的工具,也往往是初学者最大的瓶颈。有朋友用了很长时间的Linux图形界面,基本不使用命令行输入命令执行,所以装的Linux最终成

图解Linux系统的系统架构 我以下图为基础,说明Linux的架构(architecture)。(该图参考《AdvancedProgramminginUnixEnvironment》)最内层是硬件,最外层是用户常用的应用,比如说firefox浏览器

标签: linux 文件

本文链接地址:https://www.jiuchutong.com/biancheng/353490.html 转载请保留说明!

上一篇:Linux开机启动过程详解(bootstrap)(linux开机启动过程图解)

下一篇:Linux文本流和标准输入、标准输出、标准错误与重定向介绍(linux文本处理常用命令)

  • 什么是应交增值税
  • 软件使用权收入怎么计算
  • 转登小规模以前的留抵税额能申请退吗
  • 扣缴义务人怎么删除
  • 免抵退税办法不得抵扣的进项税额包含了什么业务
  • 账簿保管期满如何销毁
  • 租金收入需要缴增值税吗
  • 企业进行税收筹划
  • 固定资产盘亏是营业外支出吗
  • 其他应付款重分类到哪个科目
  • 砂石加工行业交什么税
  • 地税纳税人编码是什么
  • 增值税5%的税率怎么算
  • 统借统还账务处理流程
  • 综合所得收入包括哪些所得项目
  • 笔记本怎么清理D盘
  • 怎么保存win10锁屏界面
  • win11升级卡66
  • widows11预览版
  • 退回多缴的所得税怎么算
  • 无偿调入固定资产
  • auepuc.exe是什么软件
  • 车船使用税凭证还要过户吗怎么办
  • 购入未抵扣的固定成本
  • php运用的技术php开发有哪些实用的技术
  • 企业所得税汇算清缴扣除标准2023
  • nginx配置tp5
  • 股权名称应该填什么?
  • 小规模纳税人进项票可以抵扣吗
  • 运输费属于燃料费用吗
  • ctu指令
  • thinkphp update方法
  • chrome os安装到u盘
  • 怎样申请土地增值税补贴
  • 织梦怎么采集文章
  • 织梦怎么用模板建站
  • 小规模申请一般纳税人怎么申请
  • 费用分割单使用范围
  • 当月没有发放工资是不是就不用申报个税
  • sql server安装出现值不能为null
  • 暂估成本账务处理
  • 利润表中其他业务利润怎么算
  • 备用金怎么回冲
  • 物流费属于什么会计科目
  • 销售折让的会计分录怎么做
  • 坏账核销在企业所得税汇算清缴的填写
  • 房屋租赁费如何缴纳个税
  • 现金日记账里
  • 利润与所有者权益的区别
  • 付给销售人员的佣金会计分录
  • 公司账户的钱怎么合理的转出来
  • 赠送货物金额为多少
  • 小规模纳税人季报网上申报流程
  • 残保金计算公式2023年
  • 在岗职工平均工资在哪里查询
  • 一般纳税人抵扣进项税有时间要求吗
  • mysql索引用法
  • win10预览版21277
  • 系统停止工作
  • Windows Server 2008制作密码重设盘
  • macbookpro 钥匙串
  • 系统问题怎么处理
  • linux带桌面
  • 电脑出现win 7 界面 然后就不动了
  • win8怎么外接屏幕
  • windows7 读不了u盘怎么解决
  • w10操作系统内部版本
  • win10自带绘画
  • shell中创建文件
  • json的用法
  • 应用web标准实例是什么
  • js四舍五入两位小数
  • 使用Android Go的手机
  • css弹性布局是什么
  • 职工教育经费可以结转吗
  • 南京市税务局举报中心电话
  • 地税局基层税务工作总结
  • 中税网讲师
  • 国家税务总局令第52号 ,税务稽查案件办理程序规定
  • 河南电子税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设