Linux命令学习3—Linux磁盘与文件系统管理

来源:互联网 发布:刀剑神域淘宝 编辑:程序博客网 时间:2024/05/06 19:27

一. 各种接口的磁盘在Linux中的文件名

/dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash等接口的磁盘名

/dev/hd[a-d][1-63]:为IDE接口的磁盘文件名


二. 文件信息再磁盘中的记录

Linux操作系统的档案权限(rwx)与文件属性(拥有者、群组、时间参数等)。文件系统通常将这两部分数据放在不同的区块中,权限与属性放置到inode区块中,实际数据则放置到data block区块中。还有个超级区块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。

·superblock:记录此filesystem的整体信息,包括inode/block的总量,使用量,剩余量,以及文件系统的格式与相关信息等。

·inode:记录档案的属性,一个档案占用一个inode,该inode中将记录档案数据所在的block号码。

·block:记录档案的实际数据,如果档案过大,会占用多个block。


-->Linux正统的文件系统为Ext2(Linux second extended file system, ext2fs)


三. 磁盘信息查询指令

3.1 使用df 指令

[root@localhost ~]# df 查询当前系统挂载的装置
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      11046136   8611048   1864928  83% /
/dev/sda1               101086     11823     84044  13% /boot
tmpfs                   257736         0    257736   0% /dev/shm
.host:/               53841812  52895444    946368  99% /mnt/hgfs


3.2 使用dumpe2fs [-bh]指令查询当前系统文件系统信息:

选项与参数:

-b:列出保留为坏轨的部分

-h:仅列出superblock的数据,不列出其他区段信息

[root@localhost ~]# dumpe2fs /dev/sda1


四. 文件系统概念与实际的目录树关系

4.1 目录

    在Linux的ext2文件系统建立一个目录时,ext2会分配一个inode与至少一块block给该目录。其中,inode记录该目 录的相关权限与属性,并记录分配的block号码;而block记录在这个目录下的文件名与该文件名占用的inode号码数据。

    使用命令#ls -i查看root家目录内档案所占用的inode号码:

[root@localhost ~]# ls -li
total 104
1083444 drwxr-xr-x 3 root root  4096 May 14 19:48 a
1083347 -rw------- 1 root root  2724 Mar  1  2011 anaconda-ks.cfg
1083446 drwxr-xr-x 3 root root  4096 May 14 19:48 b
1279584 drwxr-xr-x 2 root root  4096 May  8 16:04 Desktop
1081346 -rw-r--r-- 1 root root 51427 Mar  1  2011 install.log
1081347 -rw-r--r-- 1 root root  6589 Mar  1  2011 install.log.syslog
1083353 -rw-r--r-- 1 root root   770 Jun  9  2011 minicom.log
1083348 -rw-r--r-- 1 root root   227 Feb 28  2011 scsrun.log


4.2 文件

在Linux下ext2文件系统建立一个档案时,ext2会分配一个inode与相对应于档案大小的block数量给该档案


五. Linux支持的文件系统 

5.1 使用如下命令查看系统支持的文件系统:

[root@localhost ~]# ls -l /lib/modules/$(uname -r)/kernel/fs
total 200
drwxr-xr-x 2 root root 4096 Mar  1  2011 autofs4
drwxr-xr-x 2 root root 4096 Mar  1  2011 cachefiles
drwxr-xr-x 2 root root 4096 Mar  1  2011 cifs
drwxr-xr-x 2 root root 4096 Mar  1  2011 configfs
drwxr-xr-x 2 root root 4096 Mar  1  2011 cramfs
drwxr-xr-x 2 root root 4096 Mar  1  2011 dlm
drwxr-xr-x 2 root root 4096 Mar  1  2011 exportfs
drwxr-xr-x 2 root root 4096 Mar  1  2011 ext3
drwxr-xr-x 2 root root 4096 Mar  1  2011 fat
drwxr-xr-x 2 root root 4096 Mar  1  2011 freevxfs
drwxr-xr-x 2 root root 4096 Mar  1  2011 fscache
drwxr-xr-x 3 root root 4096 Mar  1  2011 gfs2
drwxr-xr-x 2 root root 4096 Mar  1  2011 hfs
drwxr-xr-x 2 root root 4096 Mar  1  2011 hfsplus
drwxr-xr-x 2 root root 4096 Mar  1  2011 jbd
drwxr-xr-x 2 root root 4096 Mar  1  2011 jffs2
drwxr-xr-x 2 root root 4096 Mar  1  2011 lockd
drwxr-xr-x 2 root root 4096 Mar  1  2011 msdos
drwxr-xr-x 2 root root 4096 Mar  1  2011 nfs
drwxr-xr-x 2 root root 4096 Mar  1  2011 nfs_common
drwxr-xr-x 2 root root 4096 Mar  1  2011 nfsd
drwxr-xr-x 2 root root 4096 Mar  1  2011 nls
drwxr-xr-x 2 root root 4096 Mar  1  2011 squashfs
drwxr-xr-x 2 root root 4096 Mar  1  2011 udf
drwxr-xr-x 2 root root 4096 Mar  1  2011 vfat


5.2 查询系统目前已加载到内存中支持的文集系统

[root@localhost ~]# cat /proc/filesystems 
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cpuset
nodev   binfmt_misc
nodev   debugfs


六. 文件系统的操作

磁盘的总体数据是在superblock区块中,而具体的档案容量则在inode中记载。

6.1  df(列出文件系统的整体磁盘使用量)--显示的是superblock信息

格式:df [-ahikHTm] [目录或文件名]

选项与参数:

-a:列出所有的文件系统,包括/proc等文件系统

-h:以较已阅读的GBytes,MBytes,KBytes等格式显示

-i:不用硬盘容量,而以inode的数量来显示

·du:评估文件系统的磁盘使用量

示例:

[root@localhost ~]# df -h
Filesystem            Size   Used   Avail   Use%  Mounted on
/dev/mapper/VolGroup00-LogVol00
                               11G  8.3G     1.8G   83%   /
/dev/sda1              99M   12M   83M  13%   /boot
tmpfs                 252M     0       252M   0%   /dev/shm
.host:/                     52G   51G  925M  99% /mnt/hgfs

列出/home所在磁盘容量以易读的容量格式显示

[root@localhost ~]# df -h /home
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                              11G  8.3G  1.8G  83%  /



6.2 du [-ahakm] 档案或目录名称

选项与参数:

-a:列出所有的档案与目录容量,默认仅统计目录下的档案

-h:以较已阅读的GBytes,MBytes,KBytes等格式显示

-s:列出总量而已,而不列出每个各别的目录占用的容量

示例:

列出当前目录下的所有档案容量

[root@localhost ~]# du
4       ./.redhat/esc
8       ./.redhat
4       ./.gnome2_private
8       ./.gconf/apps/panel/applets/window_list/prefs
12      ./.gconf/apps/panel/applets/window_list
8       ./.gconf/apps/panel/applets/clock/prefs
12      ./.gconf/apps/panel/applets/clock
8       ./.gconf/apps/panel/applets/workspace_switcher/prefs
12      ./.gconf/apps/panel/applets/workspace_switcher

.......................


七.  实体链接与符号链接:ln

格式:ln [-sf]  来源文件  目标文件

选项与参数:

-s:如果不加任何参数就进行链接,为hard link,添加-s为symbolic link

-f:如果目标文件存在,将该文件清除后再建立


7.1 Hard Link(实体链接,硬链接)

hard link是在某个目录下新增一个档案名,链接到某inode号的关联记录

示例:

建立/etc/crontab的实体链接:

[root@localhost ~]# ln  /etc/crontab .

查看二者的inode记录:

[root@localhost ~]# ll -i /etc/crontab /root/crontab 
2457767 -rw-r--r-- 3 root root 255 Jul 15  2006 /etc/crontab
2457767 -rw-r--r-- 3 root root 255 Jul 15  2006 /root/crontab

两个档案连接到的inode号都为2457767

-->hard link的限制:

·不能跨filesystem

·不能link目录(否则二者随时需要同步,浪费系统开销)


7.2 Symbolic link(符号链接,即是快捷方式)

Symbolic link是建立一个独立的档案,而这个档案会让数据的读取指向其link的那个档案

示例:

建立一个符号链接文件链接到/etc/crontab:

[root@localhost ~]# ln -s /etc/crontab crontab2

查看信息:

[root@localhost ~]# ll -i /etc/crontab /root/crontab2
2457767 -rw-r--r-- 3 root root 255 Jul 15  2006 /etc/crontab
1083449 lrwxrwxrwx 1 root root  12 May 21 14:32 /root/crontab2 -> /etc/crontab

-->符号链接可以链接目录

例如:ln -s /bin  /root/bin

在进入/root/bin这个目录时,实际进入的是/bin目录

删除链接档:

# rm /root/bin


7.3 关于目录的link数量

新建目录时,存在.与..这两个目录,因此,如果建立名为/tmp/aa时,会有三个目录:

/tmp/aa

/tmp/aa/.

/tmp/aa/..

其中,/tmp/aa与/tmp/aa/.是一样的,指的都是aa目录;/tmp/aa/..则代表/tmp目录,因此,新建一个目录时,新建目录链接数为2(分别是/tmp/aa和/tmp/aa/.);而上层目录会增加1(因为/tmp/aa/..链接到上层目录

示例:

[root@localhost ~]# ls -ld /tmp
drwxrwxrwt 60 root root 4096 May 21 14:02 /tmp

目录/tmp初始链接数为60

新建目录:

[root@localhost ~]# mkdir /tmp/aa

再查看/tmp链接数
[root@localhost ~]# ls -ld /tmp
drwxrwxrwt 61 root root 4096 May 21 14:44 /tmp

查看/tmp/aa链接数

[root@localhost ~]# ls -ld /tmp/aa/
drwxr-xr-x 2 root root 4096 May 21 14:44 /tmp/aa/