一、Linux文件系统简介

在任何一个操作系统中,文件管理是其基本功能之一,而文件的管理是由文件系统来完成的。文件系统主要用于组织和管理计算机存储设备上的大量文件, 并提供用户交互接口。Linux同样具备完善的文件系统。

操作系统是处理各种数据的,而数据在硬盘上是二进制的,文件系统就是用来将这些二进制数据还原为相应文件形式的,并实现数据的查询和存储。Linux有多种文件系统,不同的文件系统支持不同的体系。文件系统是管理数据的,而存储数据的物理设备有硬盘、 U盘、 SD卡、 NAND FLASH、 NOR FLASH、网络存储设备等。不同的存储设备有不同的物理结构,因此就需要不同的文件系统去管理,比如管理 NAND FLASH使用YAFFS文件系统,管理硬盘/SD卡使用ext文件系统等。

linux是一种兼容性很高的操作系统,支持的文件系统格式很多,大体可分以下几类:

  • 磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。常见格式有:Ext2、Ext3、Ext4、JFS、NTFS、UFS、FAT、FAT16、FAT32等
  • 网络文件系统:是可以远程访问的文件系统,在服务器端仍是本地磁盘文件系统,客户机通过网络远程访问数据。 常见格式有:NFS、Samba等
  • 专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS、PROCFS等

二、 Linux磁盘文件系统

接下来主要介绍磁盘文件系统。目前Ext4(Extended File sytem,扩展文件系统)是广泛使用的一种磁盘文件系统格式。是在Ext3基础上发展起来的,对有效性保护、数据完整性、数据访问速度、向下兼容性等方面做了改进,其特点是日志文件系统:可将整个磁盘的写入动作完整地记录在磁盘的某个区域上,以便在必要时回溯追踪。

磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地被读取和改写。磁盘主要分为一下几类:

  • IDE磁盘:Integrated Drive Electronics,价格低廉,兼容性强,性价比高,但是数据传输慢,不支持热插拔等
  • SCSI磁盘:Small Computer System Interface,传输速率高,读写性能好,运行稳定,可连接多个设备,支持热插拔,占用CPU低,但是价格相对较贵,一般用于工作站或服务器上
  • SATA磁盘:Serial Advanced Technology Attachment,结构简单、支持热插拔

Linux中硬盘以及分区等设备均表示为文件,其命名规则如下:

  • IDE磁盘的文件名为        /dev/hdxxx
  • SCSI/SATA/USB磁盘文件名为    /dev/sdxxx

下面是一些具体的命名实例:

/dev/hda          #表示第一个IDE硬盘
/dev/hda1         #表示第一块IDE硬盘的第一个主分区
/dev/hda2         #表示第一块IDE硬盘的扩展分区(或第二个主分区)
/dev/hda5         #表示第一块IDE硬盘的第一个逻辑分区
/dev/hda8         #表示第一块IDE硬盘的第四个逻辑分区
/dev/hdb          #表示第二个IDE硬盘
/dev/sda          #表示第一个SCSI硬盘
/dev/sda1         #表示第一个SCSI硬盘的第一个主分区
/dev/sdd3         #表示第四个SCSI硬盘的第三个主分区

为了便于管理和使用,通常会对磁盘进行分区。

  • 主分区:必须要存在的分区,最多能创建4个,最少1个,编号只能是1 - 4 (比如sda1、sda2、sda3、sda4),可以直接格式化,然后安装系统,直接存放文件
  • 扩展分区:会占用主分区位置,即主分区+扩展分区之和最多4个。相当于独立的磁盘,有独立的分区表,但不能独立的存放数据
  • 逻辑分区:扩展分区不能直接存放数据,必须经过再次分割成为逻辑分区后才能存放数据。一个扩展分区中的逻辑分区可以有任意多个,编号只能从5开始

下图中的分区方案为:2个主分区 + 1个扩展分区的结构,其中扩展分区又分割出了2个逻辑分区

交换分区(swap):安装系统时建立的,一块特殊的硬盘空间,当实际内存不够用时,操作系统会从内存中取出部分暂时不用的数据,放在swap中,为当前程序腾出足够的内存空间。swap不会使用到目录树的挂载,无需指定挂载点(即cd无法进入)

三、Linux文件系统结构

Linux中分区属于目录结构,采用载入/挂载的方式将分区与目录联系起来,通过访问目录就可以访问分区的存储空间。挂载点就是硬盘分区挂载到文件系统的某目录后,该目录就是相应分区的挂载点。在挂载点创建的文件,实际上是存储到硬盘的分区上,通过挂载点可以访问分区上的文件,若将硬盘分区与目录的挂载关系删除,分区上的文件不会被删除,只是原挂载点不能访问到分区上的文件

除了swap分区外,其他主分区、扩展分区、逻辑分区都是在根分区(/)目录上操作的。Linux文件系统是一个树形的分层组织结构,根作为整个文件系统的惟一起点,其他所有目录都从该点出发。如下图:

由于Linux是完全开源的软件,因此众多Linux发行版本的目录结构也不尽相同。为了规范文件目录命名和存放标准,颁发了文件层次结构标准(FHS),Ubuntu系统也遵循该标准。

四、文件系统与磁盘管理相关命令

文件系统与磁盘管理相关命令非常多,下面仅对几个较常用的命令做简单介绍

4.1 df命令

disk free的缩写,用于列出文件系统的整体磁盘使用量。命令的格式为:

df [-a -h -i -k -H -T -m] [目录或文件名]

不加参数使用时,默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来。常用的选项如下示:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示

4.2 du命令

disk used的缩写,用于查看文件和目录磁盘使用空间的。命令的格式为:

du [-a -h -s -k -m] 文件或目录名称

不加参数使用时,默认会分析当前所在目录里的子目录所占用的硬盘空间。常用的选项如下示:

  • -a :列出所有的文件与目录容量
  • -h :以人们较易读的容量格式 (G/M) 显示
  • -s :列出总量,而不是单个目录占用容量
  • -S :不包括子目录下的总计
  • -k :以KB列出容量显示
  • -m :以MB列出容量显示

4.3 fdisk命令

磁盘分区表操作工具。命令的格式为:

fdisk [-l] 装置名称

常用的选项如下示:

  • -l :输出后面接的装置所有的分区内容。若装置名称为空,则会把系统内能够搜寻到的装置的分区都列出来

4.4 file命令

file命令用于辨识文件类型。命令的格式为:

file [-b -c -L -v -z][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

常用的选项如下示:

  • -b  列出辨识结果时,不显示文件名称。
  • -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
  • -L  直接显示符号连接所指向的文件的类别。
  • -m<魔法数字文件>  指定魔法数字文件。
  • -v  显示版本信息。
  • -z  尝试去解读压缩文件的内容。
  • [文件或目录…] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

4.5 mkdir命令

make directory的缩写,用于创建目录。命令的格式为:

mkdir [-p] dirName

常用的选项如下示:

  • -p 确保目录名称存在,不存在的就建一个

4.6 ln命令

link files的缩写,是为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。命令的格式为:

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

常用的选项如下示:

  • -b 删除,覆盖以前建立的链接
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程
  • -S "-S<字尾备份字符串> "或 “–suffix=<字尾备份字符串>”
  • -V “-V<备份方式>“或”–version-control=<备份方式>”
  • –help 显示帮助信息
  • –version 显示版本信息

看完就明白/dev/sda、/dev/hda是什么了相关推荐

  1. linux中的hda分区,请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别?...

    1. 请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别? 答:hda一般是指IDE接口的硬盘,hda指第一块硬盘,hdb指第二块 ...

  2. /dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别?

    请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别? 答:hda一般是指IDE接口的硬盘,hda指第一块硬盘,hdb指第二块硬盘, ...

  3. 【Linux】设备和磁盘分区|磁盘管理|/dev/sda|/dev/sdb

    目录 查看命令 df 查看磁盘分区 显示块设备信息 lsblk 查看是否是固态硬盘SSD /dev/hda, /dev/hdb, /dev/sda, /dev/sdb是什么? 磁盘 分区 HDD,SS ...

  4. 不愿意和别人打交道_不想麻烦别人,也不希望别人麻烦我,是什么心理?看完就明白...

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 注:本文转载自网络,侵删 ...

  5. 医院计算机管理在品管圈中的应用,品管圈在医院管理中怎么用?看完就明白了...

    原标题:品管圈在医院管理中怎么用?看完就明白了 品管圈(Quality Circle,QCC),又称"质量小组",是一种企业对基层员工的自主管理.全员品管及持续改善最佳的管理活动, ...

  6. android重置系统,安卓手机越用越卡,恢复出厂设置真有用?别瞎搞,看完就明白了!...

    安卓手机越用越卡,恢复出厂设置真有用?别瞎搞,看完就明白了! 现在手机的价格逐渐的开始上升,一部好一点的手机价格还是比较贵的,所以很多人想要节省更多的换机支出,都会想要购买到一款可以使用的比较久的手机 ...

  7. android8卡顿,看完就明白为什么安卓手机卡顿,这个技巧教你解决卡顿

    原标题:看完就明白为什么安卓手机卡顿,这个技巧教你解决卡顿 Android由源代码开放,所以安卓手机拥有更多的黑科技功能.很多安卓用户觉得手机卡顿,其实是没有好好利用这些神奇功能.下面笔者就为大家介绍 ...

  8. 联通鸿蒙卡怎么样,联通腾讯大王卡对比百度大神卡:到底选谁看完就明白了

    联通腾讯大王卡对比百度大神卡:到底选谁看完就明白了最近几个月内,运营商三巨头之一的联通突然宣布与互联网三巨头(百度.阿里.腾讯)合作,推出适用不同消费群体的定制型号卡产品,令人惊喜的是在套餐资费优惠力 ...

  9. 苹果微信王者荣耀哪个服务器人多,王者荣耀:QQ区和微信区哪个玩家多?看完会明白...

    原标题:王者荣耀:QQ区和微信区哪个玩家多?看完会明白 导读:王者荣耀:QQ区和微信区哪个玩家多?看完会明白 文|刺激小宇哥 阅读到这篇文章的各位趣友大家好!游戏无时无刻的丰富着我们的生活,也成为了我 ...

  10. 一次调频二次调频matlab仿真,一次调频二次调频的原理及作用,看完终于明白了!...

    原标题:一次调频二次调频的原理及作用,看完终于明白了! 关注 在电网并列运行的机组当外界负荷变化引起电网频率改变时,网内各运行机组的调节系统将根据各自的静态特性改变机组的功率,以适应外界负荷变化的需要 ...

最新文章

  1. R绘制发散型条形图(Diverging Bars)
  2. MVC Razor模板引擎
  3. python下载代码-python下载大文件代码
  4. linux跳出循环的三种方式,shell study-13day--跳出循环(break、continue)
  5. GTKmm 学习资料
  6. linux ubuntu mysql 安装_1.MySQL的安装(linux Ubuntu环境下)
  7. resultJP在Java中_java result是如何直接变为对象的
  8. java备忘录模式应用场景_Java描述设计模式(24):备忘录模式
  9. docker增加端口映射_docker配置lamp环境笔记
  10. 计算机组成与结构1800题,最新版数据结构1800题含完整答案详解
  11. Python之shp文件
  12. spring手动控制事务开启_手动控制spring事务
  13. 美女老师,大数据直播,老师做了什么,让全场尴尬。
  14. gulp编译sass
  15. 前端工作日记day2
  16. (翻译)社会认同模式(Social proof)
  17. html中if函数的使用方法,if函数的使用方法 if函数怎么使用
  18. 【科创人】白山云科技CTO童剑:积极是态度更是方法,怀念4点起床敲代码的日子...
  19. 39《黑客与画家 : 硅谷创业之父Paul Graham文集》 -豆瓣评分8.8
  20. 1.3.随机变量,随机向量的自相关与自协方差

热门文章

  1. lavarel5.2中多表联查 搜索后分页
  2. 计算机页面添加文字水印在哪,怎么添加水印-Word小技巧-快速添加高大上的水印...
  3. SQL 中的时间格式
  4. 关于两个数相乘, 求其为多少进制
  5. 【机器学习】逻辑斯蒂回归原理推导与求解
  6. Java并发编程之 Excutor
  7. vscode c#代码格式化
  8. 原始集体主义、威权集体主义和敏捷集体主义
  9. 2018计算机二级c语言通过率,计算机二级各科通过率是多少
  10. 【经验总结】“投”——如何寻找适合投递的期刊或者会议