在Linux系统中如何有效地对存储空间加以使用和管理是一项非常重要的技术本章讲述如何查看系统中存储空间的使用情况如何进行文件的转储以及如何进行软盘的格式化 磁盘空间管理
系统软件和应用软件都要以文件的形式存储在计算机的磁盘空间中因此应该随时监视磁盘空间的使用情况Linux系统提供了一组有关磁盘空间管理的命令
df命令
功能检查文件系统的磁盘空间占用情况可以利用该命令来获取硬盘被占用了多少空间目前还剩下多少空间等信息
语法df [选项]
说明df命令可显示所有文件系统对i节点和磁盘块的使用情况
该命令各个选项的含义如下
a 显示所有文件系统的磁盘使用情况包括块(block)的文件系统如/proc文件系统
k 以k字节为单位显示
i 显示i节点信息而不是磁盘块
t 显示各指定类型的文件系统的磁盘空间使用情况
x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)
T 显示文件系统类型
例列出各文件系统的磁盘空间使用情况
$ df Filesystem K-blocks Used Available Use% Mounted on /dev/hda % /
df命令的输出清单的第列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区)第列给出分区包含的数据块(字节)的数目第列分别表示已用的和可用的数据块数目用户也许会感到奇怪的是第列块数之和不等于第列中的块数这是因为缺省的每个分区都留了少量空间供系统管理员使用即使遇到普通用户空间已满的情况管理员仍能登录和留有解决问题所需的工作空间清单中Use% 列表示普通用户空间使用的百分比即使这一数字达到%分区仍然留有系统管理员使用的空间最后Mounted on列表示文件系统的安装点
例列出各文件系统的i节点使用情况
$ df ia Filesystem Inodes IUsed IFree Iused% Mounted on /dev/ hda % / none % /proc localhost:(pid) % /net
例列出文件系统的类型
$ df T Filesystem Type K-blocks Used Available use% Mounted on /dev/hda ext % /
本例中的文件系统是ext类型的
du命令
du的英文原义为disk usage含义为显示磁盘空间的使用情况
功能统计目录(或文件)所占磁盘空间的大小
语法du [选项] [Names…]
说明该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(字节)的情况若没有给出Names则对当前目录进行统计
该命令的各个选项含义如下
s 对每个Names参数只给出占用的数据块总数
a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数若既不指定s也不指定a则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数
b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)
k 以字节为单位列出磁盘空间使用情况
c 最后再加上一个总计(系统缺省设置)
l 计算所有的文件大小对硬链接文件则计算多次
x 跳过在不同文件系统上的目录不予统计
下面举例说明du命令的使用
例查看/mnt目录占用磁盘空间的情况
$ cd /mnt $ ls lFR total rwxrwxrwx root root ll Ju l : aa* drwxrxrx root root l Ju : dev/ rwrr root root Aug l: sack drwxrwxrwx root root Aug : var/ rwxrwxrwx root root l Aug l: wei>/home/wei/ dev: tota lrwxrwxrwx root root Ju l:l cdrom>/dev/hdb var: tata rxrxrx l root root Aug : rawrite exe*
例列出各目录所占的磁盘空间但不详细列出每个文件所占的空间
$ du l /dev /var
输出清单中的第一列是以块为单位计的磁盘空间容量第二列列出目录中使用这些空间的目录名称
注意不带选项的du命令将从当前目录开始沿着目录结构向下工作直到列出所有目录的容量为止这可能是一个很长的清单有时只需要一个总数这时可在du命令中加s选项来取得总数
$ du –s /mnt /mnt
例列出所有文件和目录所占的空间(使用a选项)而且以字节为单位(使用b选项)来计算大小
$ du ab /dev/cdrom l /dev /var/rawrite exe /var /sack l /aa l /wei
磁 盘 操 作
dd命令
功能把指定的输入文件拷贝到指定的输出文件中并且在拷贝过程中可以进行格式转换可以用该命令实现DOS下的diskcopy命令的作用先用dd命令把软盘上的数据写成硬盘的一个寄存文件再把这个寄存文件写入第二张软盘上完成diskcopy的功能需要注意的是应该将硬盘上的寄存文件用rm命令删除掉系统默认使用标准输入文件和标准输出文件
语法dd [选项]
if =输入文件(或设备名称)
of =输出文件(或设备名称)
ibs = bytes 一次读取bytes字节即读入缓冲区的字节数
skip = blocks 跳过读入缓冲区开头的ibs*blocks块
obs = bytes 一次写入bytes字节即写入缓冲区的字节数
bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)
cbs = byte 一次转换bytes字节
count=blocks 只拷贝输入的blocks块
conv = ASCII 把EBCDIC码转换为ASCIl码
conv = ebcdic 把ASCIl码转换为EBCDIC码
conv = ibm 把ASCIl码转换为alternate EBCDIC码
conv = block 把变动位转换成固定字符
conv = ublock 把固定位转换成变动位
conv = ucase 把字母由小写转换为大写
conv = lcase 把字母由大写转换为小写
conv = notrunc 不截短输出文件
conv = swab 交换每一对输入字节
conv = noerror 出错时不停止处理
conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)
例要把一张软盘的内容拷贝到另一张软盘上利用/tmp作为临时存储区把源盘插入驱动器中输入下述命令
$ dd if =/dev/fd of = /tmp/tmpfile
拷贝完成后将源盘从驱动器中取出把目标盘插入输入命令
$ dd if = /tmp/tmpfile of =/dev/fd
软盘拷贝完成后应该将临时文件删除
$ rm /tmp/tmpfile
例把neti这个文件写入软盘中并设定读/写缓冲区的数目(注意软盘中的内容会被完全覆盖掉)
$ dd if = neti of = /dev/fd bs =
例将文件sfile拷贝到文件 dfile中
$ dd if=sfile of=dfile
fdformat 命令
软盘是用户常用的存储介质之一软盘在使用之前必须先作格式化操作然后可以用tarddcpio等命令存储数据也可以在软盘上建立可安装的文件系统
功能低级格式化软盘
语法format [n] device
说明该命令的作用是对软盘进行格式化
n 软盘格式化后不作检验
device 指定要进行格式化的设备通常是下述设备之一
/dev/fdd /dev/fdh /dev/fdD /dev/fdH /dev/fdD /dev/fdH /dev/fdh /dev/fdh /dev/fdH
思 考 题
显示出你的系统磁盘空间使用情况
显示出你的当前目录下所有文件所占的空间
请格式化一张软盘并把text这个文件写入软盘中
不要忘本,任何时候,任何事情。