linux文件系统学习
linux系统支持很多种文件系统。
1. 如何确认当前系统挂载了哪些文件系统?
使用mount命令可以查看当前系统上已经挂载了哪些文件系统,
sh-# mount
rootfs on / type rootfs (rw)
none on /proc type proc (rw,relatime)
none on /sys type sysfs (rw,relatime)
none on /tmp type tmpfs (rw,relatime)
none on /opt type tmpfs (rw,relatime)
none on /proc/bus/usb type usbfs (rw,relatime)
/dev/sda1 on /tmp/mnt/usb/sda1 type vfat (rw,noatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=continue)
sh-#
sh-#
2. linux ext2文件系统?
ext2文件系统分区是由inode以及block这两个部分组成,
其中inode用来存储文件的属性信息;而block区域则用来存储实际的文件内容。
因为这个原因,所以可能会存在两个比较极端的情况:
磁盘中的文件size都很小,造成了磁盘上的inode都被用完但是block区域却仍然有大量剩余从而造成磁盘空间浪费;
磁盘上的文件size都很大,造成了磁盘上放了为数不多的几个文件后block区域就被用完从而造成inode空间的浪费。
ext2文件系统由于缺少日志系统,从而给系统管理带来不便,所以在ext3文件系统中增加了日志系统,即:
ext3 = ext2 + 日志系统
3. 关于inode的一点说明?
常规情况下,一个inode即对应着一个文件。
但是由于硬连接的存在(硬链接是一个inode,但是block中有文件内容的多份copy),所以也是有特例的存在。
正式inode与block的划分,从而让创建文件的硬链接和软连接提供了可能。
另外inode结构是不包含文件名信息的。
4. VFS?
linux提供了VFS,这让应用程序编程变得简单,因为应用程序不用去考虑不同文件系统的差异。
5. 为什么在同一个文件系统中move会很快,而在不同文件系统中move会很慢呢?
因为在同一个文件系统中copy,不需要move block区域中的数据区,而只需要修改inode信息;
而在不同文件系统中move,不但要修改inode信息,同时block区域中存放的文件信息也必须要
copy到另一个文件系统中。
6. 伪文件系统?
伪文件系统是从内存中创建的文件系统。一旦系统断电文件系统中的内容就会丢失。
7. 如何查看文件系统的使用情况?
使用df命令可以帮助我们实现这一需求。
sh-# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 57.1M 57.1M 0 100% /
none 142.2M 396.0K 141.8M 0% /tmp
none 142.2M 0 142.2M 0% /opt
/dev/sda1 3.7G 799.2M 2.9G 21% /tmp/mnt/usb/sda1
ubi2:perm 50.6M 24.0K 50.6M 0% /perm
sh-#
8. 如何确认当前系统中可以支持哪些文件系统?
使用cat /proc/filesystems可以查看,
其中第一列nodev表示该类型文件不需要挂载在一个块设备上,否则就需要挂在一个块设备上;
第二列表示当前系统中支持的文件系统类型。
sh-# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev tmpfs
nodev debugfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev devpts
ext2
squashfs
nodev ramfs
vfat
nodev mqueue
nodev mtd_inodefs
nodev ubifs
ntfs
9. 如何加载一个文件系统?
方法一:由于系统启动时会通过读取/etc/fstab来配置那些固定的文件系统,所以针对那些
需要固定加载的文件系统,我们可以在/etc/fstab中配置好;
方法二:系统启动后,根据需要,自行加载文件系统。
sh-# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/root / auto noauto,rw,errors=remount-rw 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
none /dev/pts devpts noauto,gid=5,mode=620 0 0
none /tmp tmpfs defaults 0 0
none /opt tmpfs defaults 0 0
none /dev/shm tmpfs noauto 0 0
sh-#
10. 有时候我们并不关心系统中诸如tmpfs,proc等类型的文件系统,而只要查看系统中瓜子啊的
硬盘及分区情况。那要如何查看呢?
可以使用fdisk -l来查看系统中挂载的硬盘及分区情况。
sh-# fdisk -l
Disk /dev/sda: 4002 MB, 4002910208 bytes
32 heads, 63 sectors/track, 3878 cylinders
Units = cylinders of 2016 * 512 = 1032192 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3878 3908992+ b Win95 FAT32
以上是关于linux文件系统这部分学习的一点总结。
在这里很多东西介绍的还比较简单,后面有机会会在新的博文中逐个详细的进行学习,敬请关注!
linux文件系统学习的更多相关文章
- Linux文件系统学习(一)之相关概念⭐⭐⭐
“一切皆是文件”是 Unix/Linux 的基本哲学之一.不仅普通的文件,目录.字符设备.块设备.套接字等在 Unix/Linux 中都是以文件被对待:它们虽然类型不同,但是对其提供的却是同一套操作界 ...
- [Linux] linux文件系统学习
linux系统支持很多种文件系统. 1. 如何确认当前系统挂载了哪些文件系统? 使用mount命令可以查看当前系统上已经挂载了哪些文件系统, lqt@lqt-ThinkPad-T420:~$ moun ...
- Linux文件系统学习笔记-1
在Linux中, 一切皆文件,不论是目录,设备,套接字等都可以看成文件,而且每一个文件对应一个inode号,这是一一对应的关系. [root@oracle ~]# ls -il 总用量 2624 ...
- 学习笔记:CentOS7学习之十四:linux文件系统
目录 1. 机械硬盘结构 1.1 机械硬盘结构 1.2 簇和block 2.文件系统结构 2.1 文件名 2.2 inode的内容 2.3 inode的大小 2.4 目录文件 2.5 block块大小 ...
- Linux 学习手记(2):Linux文件系统的基本结构
Linux 文件系统概况 Linux文件系统为一个倒置的树状结构,所有文件或文件夹均包含在一个根目录“/”中.如图所示(每个目录的作用可以参考:Linux目录结构说明): Linux系统严格区分大小写 ...
- 理解与学习linux 文件系统的目录结构
1. linux文件系统的结构 linux文件系统是以一种树形结构存在,Linux的文件系统的入口就是/,所有的目录.文件.设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者. 2. ...
- Linux 学习总结(五)-linux 文件系统及相关命令
一 linux文件系统概要 linux系统结构有别用于windos,他是树状结构的文件系统,在linux下我们称一切皆文件,我们将一个目录,可以成称为目录文件.linux只有一个单独的顶级目录结构.所 ...
- Linux学习之二十-Linux文件系统
Linux文件系统 文件系统的定义 文件系统是操作系统的必备软件,文件系统是对一个存储设备上的数据(block)和元数据(inode)进行组织的一种机制.文件系统可以帮助用户管理磁盘空间,进行文件的快 ...
- 【Linux学习】Linux文件系统6—文件目录权限设置
Linux文件系统6-文件目录权限设置 1. chmod操作权限设置 chomd是用来改变文件或目录权限的命令,但只有文件的属主和超级权限用户root才有这种权限.通过chmod来改变文件 ...
随机推荐
- Javascript:charCodeAt()方法及示例
js charCodeAt()函数说明 返回一个整数,代表指定位置上字符的 Unicode 编码.该Unicode编码为十六进制 strObj.charCodeAt(index) 参数: strObj ...
- HDOJ1251-统计难题(trie树入门)
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Subm ...
- cocos2d-x v3.2 FlappyBird 各个类对象详细代码分析(7)
今天我们介绍最后两个类 GameOverLayer类 GameLayer类 GameLayer类是整个游戏中最重要的类,由于是整个游戏的中央系统,控制着各个类(层)之间的交互,这个类中实现了猪脚小鸟和 ...
- Linux中的小程序—— 进度条
在说正事之前,首先科普一下在什么是回车什么是换行? 我们通常所说的回车就是从一行的末尾跳到另一行的开头,但事实上这却是由回车和换行两个动作所完成的,也就是键盘上<enter>所完成的工作. ...
- Json格式的http请求
服务端PHP代码可以从这里下载:https://github.com/lornajane/PHP-Web-Services 1.使用volley实现: request要用JsonObjectReque ...
- 什么是工程师文化?各位工程师是为什么活的?作为一个IT或互联网公司为什么要工程师文化?
为什么要工程师文化? 看看最近二十年来社会的发展,计算机和互联网已经渗透到了这个社会的每一个角落,各式各样的计算机技术成为了整个世界发展的强大引擎,各式各样的创新,无论是业务创新还是技术创新,都是依托 ...
- C#。2.1 运算符
运算符: 一.算术运算符: + - * / % ——取余运算 取余运算的应用场景: 1.奇偶数的区分. 2.把数变化到某个范围之内.——彩票生成. 3.判断能否整除.——闰年.平年. int a = ...
- JavaScript 系列笔记(一)数据类型
关于JS的数据类型 简单类型有五种:Undifined, Null, Boolean, Number, String 复杂类型有一种:Object 通过typeof 操作符来获取数据类型,此操作符返回 ...
- Java学习笔记--集合元素的比较Comparable,Comparator
原文见: http://www.cnblogs.com/sunflower627/p/3158042.html 1. Comparator 和 Comparable 相同的地方 他们都是java的一个 ...
- swift字典集合-备
Swift字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成 ...