Linux文件系统介绍

1、ext2/ext3(日志功能)文件系统(Linux标准文件系统、一种索引式文件系统)

SuperBlock:Superblock是记录整个filesystem 相关信息的地方,没有Superblock就没有这个filesystem了。他记录的信息主要有: 
  a、block与inode 的总量; 
  b、未使用与已使用的inode/block数量; 
  c、一个block与一个inode的大小; 
  d、filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等档案系统的相关信息; 
  e、一个 valid bit 数值,若此档案系统已被挂载,则 valid bit 为 0 ,若未被挂载,则valid bit 为 1 。 
Group Description:纪录此 block 由由何处开始记录; 
Block bitmap:此处记录哪个block有没有被使用; 
Inode bitmap:此处记录哪个inode有没有被使用; 
Inode table:为每个inode数据存放区,记录文件属性,包括文件所在的block号码,一个文件占一个inode; 
Data Blocks:为每个block数据存放区,记录文件的内容。

 

2、文件系统查看命令:dumpe2fs 
[root@linux ~]# dumpe2fs /dev/hda1 
Filesystem volume name: / 
Filesystem state: clean 
Errors behavior: Continue 
Filesystem OS type: Linux 
Inode count: 1537088 
Block count: 1536207 
Free blocks: 735609 
Free inodes: 1393089 
First block: 0 
Block size: 4096 
Filesystem created: Sat Jun 25 16:21:13 2005 
Last mount time: Sat Jul 16 23:45:04 2005 
Last write time: Sat Jul 16 23:45:04 2005 
Last checked: Sat Jun 25 16:21:13 2005 
First inode: 11 
Inode size: 128 
Journal inode: 8

Group 0: (Blocks 0-32767) 
  Primary superblock at 0, Group descriptors at 1-1 
  Reserved GDT blocks at 2-376 
  Block bitmap at 377 (+377), Inode bitmap at 378 (+378) 
  Inode table at 379-1400 (+379) 
  0 free blocks, 32424 free inodes, 11 directories 
  Free blocks: 
  Free inodes: 281-32704

Group 1: (Blocks 32768-65535) 
  Backup superblock at 32768, Group descriptors at 32769-32769 
  Reserved GDT blocks at 32770-33144 
  Block bitmap at 33145 (+377), Inode bitmap at 33146 (+378) 
  Inode table at 33147-34168 (+379) 
  18 free blocks, 24394 free inodes, 349 directories 
  Free blocks: 37882-37886, 38263-38275 
  Free inodes: 38084-38147, 39283-39343, 41135, 41141-65408 
   因为数据很多略去了一些信息了~上面是比较精简的显示内容。在 Group 0之前的都是Superblock的内容,记录了inode/block的总数,还有其它相关的讯息。至于由 Group 0之后,则是说明各个bitmap及inode table与block area等等。

 

3、Linux支持的文件系统 
传统档案系统:ext2 / minix / MS-DOS / FAT (用vfat模块) / iso9660 (光盘)等等; 
日志式档案系统: ext3 / ReiserFS / Windows‘ NTFS / IBM‘s JFS / SGI‘s XFS 
网络档案系统: NFS / SMBFS

查看你的Linux支持的档案系统有哪些? 
[root@linux ~]# ls -l /lib/modules/`uname -r`/kernel/fs

系统目前已启用的档案系统有哪些? 
[root@linux ~]# cat /proc/filesystems

 

4、断行符问题 
   DOS使用的断行字符为^M$,称为CR与LF两个符号。而在Linux底下,则是仅有LF($)这个断行符号。在Linux底下的指令在开始执行时,他的判断依据是『Enter』,而Linux的Enter为LF符号, 不过,由于DOS的断行符号是CRLF ,也就是多了一个^M的符号出来, 在这样的情况下,如果是一个shell script的程序档案,将可能造成『程序无法执行』的状态~ 因为他会误判程序所下达的指令内容! 解决的办法是使用dos2unix命令。

[root@linux ~]# dos2unix [-kn] file [newfile] 
[root@linux ~]# unix2dos [-kn] file [newfile] 
参数: 
-k :保留该档案原本的mtime时间格式 (不更新档案上次内容经过修订的时间) 
-n :保留原本的旧档,将转换后的内容输出到新档案,如:dos2unix -n old new 
范例一:将我们提供的hosts档案格式更新为 dos 格式。 
[root@linux ~]# unix2dos -k hosts 
unix2dos: converting file hosts to DOS format ... 
   此时hosts这个档案的时间不会改变,但是内容主要将断行字符修改成为DOS的CRLF了。

范例二:将范例一已经变成DOS格式的hosts改名成为hosts.dos,并转换Linux格式到hosts.linux 
[root@linux ~]# mv hosts hosts.dos 
[root@linux ~]# dos2unix -k -n hosts.dos hosts.linux 
dos2unix: converting file hosts.dos to file hosts.linux in UNIXformat ... 
[root@linux ~]# ll 
-rw-r--r-- 1 root root 288 Aug 1 13:30 hosts.dos 
-rw------- 1 root root 279 Aug 1 13:30 hosts.linux 
   由于DOS格式当中多了CR字符,所以,档案比较大点!

 

5、语序编码转换

iconv [选项...] [文件...]

常用选项:

输入/输出格式规范:
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码

信息:
-l, --list 列举所有已知的字符集

输出控制:
-c 从输出中忽略无效的字符
-o, --output=FILE 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息

例子:
1)iconv -f utf-8 -t gb2312 test.txt > test1.txt

2)iconv -f big5 -t utf8 test.txt -o testuf8.txt

 

Linux文件系统介绍,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。