4.2 监控磁盘空间
mount、df、du
4.2.1挂载介质
mount
如果系统不支持自动挂载和卸载可移动设备的话就需要手动完成操作。
显示系统当前挂载的介质设备列表
[root@localhost ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
提供了4个信息:
介质的设备位置
介质在虚拟目录中的挂载点
文件系统类型
已挂载介质的访问状态
 
要手动挂载介质设备时需要作为root登录,命令: mount -t type device directory
Linux可以识别多种文件系统,如果需要与Windows 共享移动设备,常用的类型有
vfat :Windows长文件系统
ntfs : windows高级文件系统,支持WindowsNT、XP、vista等
ios9660 :标准CD-ROM文件系统
例:把USB挂载到/media/disk目录下
[root@localhost ~]# mount -t vfat /dev/sdb1 /media/disk
mount的常用参数:
mount -a    挂载/etc/fatab文件中指定的所有文件
               -F      与-a连用时同时挂载所有文件系统
              -l     自动为ext2、ext3、xfs文件系统添加文件系统标签
              -s     忽略文件系统不支持的挂载选项
              -r     以只读的方式挂载
              -w    以可读可写的方式挂载(默认)
             -o      在文件系统中添加特定选项
 -o 选项后接的参数有:ro;rw;user(允许普通用户挂载文件系统);check=none(挂载文件系统而不执行完整性检查);loop(挂载某个文件);
     mount命令有一个特性是通过-o 的loop选项来直接将.ISO文件挂载到Linux目录下而无需将其刻录到CD中。
[root@localhost ~]# mount -t iso9660 -o loop litingwen.iso /mnt
 
umount   卸载介质设备
 
4.2.2 df命令
使用df命令可以方便地查看所以已挂载磁盘的大概使用情况
-h 人性化显示磁盘容量情况
[root@localhost ~]# df -h
文件系统              容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                       18G 3.9G   13G 24% /
/dev/sda1              99M   12M   82M 13% /boot
tmpfs                 506M     0 506M   0% /dev/shm
 
4.2.3 使用du命令
du命令显示特定目录的磁盘使用情况,是判断系统是否存在磁盘占用大户的快捷方法。
du -c :生成所有已列出文件的总计
       -h :人性化显示大小
     -s : 汇总各自变量
[root@localhost ~]# du -h /root
328K    /root/.thumbnails/normal
336K    /root/.thumbnails
16K     /root/Desktop/vsftpd-2.3.4/dummyinc/openssl
32K     /root/Desktop/vsftpd-2.3.4/dummyinc/sys
16K     /root/Desktop/vsftpd-2.3.4/dummyinc/security
96K     /root/Desktop/vsftpd-2.3.4/dummyinc
72K     /root/Desktop/vsftpd-2.3.4/port
48K     /root/Desktop/vsftpd-2.3.4/SECURITY
。。。。。。
 
[root@localhost ~]# du -csh
15M     .
15M     总计
 
4.3 操作数据文件
4.3.1数据排序:sort
sort默认执行标准的字符排序
-n 将数字识别为数字(而不是字符),并进行从大到小的排序
-M 按月份进行排序
-f   默认情况下,大写字母排在前面,此参数忽略大小写
-n   按字符串数值进行排序
-r   反向排序
-t 指定用于区分关键位置的字符
-k   指定排序的字段
[root@localhost ~]# sort /etc/passwd
abc:x:502:502::/home/abc:/bin/bash
adm:x:3:4:adm:/var/adm:/sbin/nologin
。。。。。。
[root@localhost ~]# sort -t ':' -k 3 -n /etc/passwd         根据第三个字段,即userid值进行排序
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
。。。。。。
 
4.3.2 搜索数据——grep
在某个特定的文件中查找特定的数据行
grep [option] pattern   [file]
-v    反向查找
-n    给出结果的行号
-c 了解有多少行包含匹配模式
-e    指定多个匹配模式
例:
[root@localhost ~]# grep nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
。。。。。。
[root@localhost ~]# grep -vn nologin /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
35:mysql:x:500:500::/home/mysql:/bin/bash
36:wlt:x:501:501::/home/wlt:/bin/bash
。。。。。。
 
4.3.3 压缩数据
Linux文件压缩工具:
工具
文件扩展名
描述
bzip2
.bz2
使用burrows-wheeler块排序文本压缩算法和huffman编码
compresse
.Z
原Unix文件压缩工具,现在已经很少用
gzip
.gz
GNU项目的压缩工具,使用Lempel-Ziv编码
zip
.zip
Unix版本的Windows PKZIP程序
1、 bzip2工具
bzip2包中的工具包括以下4种:
bzip2 :用于压缩文件
bzcat :显示已压缩文本文件的内容
bunzip2:解压.bz2文件
bzip2recover :尝试恢复受损的压缩文件
例:
[root@localhost tmp]# bzip2 CentOS/
bzip2: Input file CentOS/ is a directory.                  只能压缩文件
[root@localhost tmp]# ll inittab
-rw-r--r-- 1 root root 1666 05-23 10:28 inittab            
[root@localhost tmp]# bzip2 inittab
[root@localhost tmp]# ll inittab.bz2
-rw-r--r-- 1 root root 898 05-23 10:28 inittab.bz2         经过压缩后的inittab文件
[root@localhost tmp]# bunzip2 inittab.bz2                     解压
 
2、gzip 工具
gzip 工具是Linux中最流行的文件压缩工具,gzip包是GNU项目创建的,该包包含以下文件:
gzip :压缩文件
gzcat : 显示压缩后的文本内容
gunzip :解压文件
例:
[root@localhost tmp]# gzip inittab
[root@localhost tmp]# ll inittab.gz  
-rw-r--r-- 1 root root 830 05-23 10:28 inittab.gz          可以看出,gzip比bzip2的压缩比例大
 
3、zip工具
zip工具与phil katz 为MS-DOS 和Windows创建的流行的PKZIP包兼容,可以压缩目录,是个归档的好工具,Linux中的zip包有五个工具:
zip:创建包含列出文件和目录的压缩文件
zipcloak: 创建包含列出文件和目录的加密压缩文件
zipnote: 提取zip文件中的注视
zipsplit :将zip文件分割成指定大小的多个文件
unzip :解压
  创建一个名为CentOSzip.zipzip文件,并递归CentOS目录,将发现的文件和目录添加到zip文件中
[root@localhost tmp]# zip -r CentOSzip CentOS/        
adding: CentOS/geronimo-specs-1.0-0.M2.2jpp.12.el5.centos.i386.rpm (deflated 3%)
 adding: CentOS/hardlink-1.0-1.27.i386.rpm (deflated 18%)       压缩比例
 adding: CentOS/Deployment_Guide-ml-IN-5.2-11.el5.centos.noarch.rpm (deflated 1%)
 adding: CentOS/aspell-devel-0.60.3-7.1.i386.rpm (deflated 19%)
 。。。
[root@localhost tmp]# ls               tmp目录下多了一个zip结尾的压缩文件
CentOS         inittab.gz      litingwen~    ssh-PFzHte3663       VMwareDnD
CentOSzip.zip keyring-mfVBGS mapping-root test                 vmware-root
[root@localhost tmp]# unzip CentOSzip.zip
Archive: CentOSzip.zip
replace CentOS/dstat-0.6.6-3.el5_4.1.noarch.rpm? [y]es, [n]o, [A]ll, [N]one, [r]ename:
 
4、tar工具
tar命令是目前Unix和Linux中最流行的归档工具,使用格式如下:
tar    function [options]   object1 object2。。。。。。
命令功能:
tar -A    将已有tar归档文件添加到另一个归档文件
       -c     创建一个新的归档文件
       -r      将文件添加到已有tar归档文件末尾
      -t      列出归档文件内容
       -x       解压现有归档文件
命令选项:
          -f file 输出结果到指定文件或设备file   
          -j    将输出重定向到bzip2命令进行压缩
          -z 将输出重定向到gzip命令进行压缩
          -p 保留所有文件权限  
 例
创建一个名称为aaa的归档文件(为了识别,文件名最好加上.tar结尾,系统会给.tar .zip .gz
等结尾的文件加上特殊的颜色,不管它是不是真的打包压缩文件),其中包含有目录
VMwareDnD/ vmware-root/ 和普通文件 litingwen:
[root@localhost tmp]# tar -cvf aaa VMwareDnD/ vmware-root   litingwen
VMwareDnD/
vmware-root/
。。。。。。
vmware-root/appLoader-3125.log
vmware-root/appLoader-3742.log
litingwen
[root@localhost tmp]# tar -tf aaa          列出tar 文件aaa的内容
VMwareDnD/
vmware-root/
。。。。。。
vmware-root/appLoader-3125.log
vmware-root/appLoader-3742.log
litingwen
用gzip工具对aaa.tar文件进行压缩,然后用tar工具进行解压:
[root@localhost opt]# gzip aaa.tar
[root@localhost opt]# ls
aaa.tar.gz CentOSzip.zip litingwen unzipvm VMwareDnD vmware-root vm.zip
[root@localhost opt]# tar -xzvf aaa.tar.gz
VMwareDnD/
。。。。
vmware-root/appLoader-3742.log
litingwen