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