二 Linux系统文件命令学习指南( 三 )


Sort 可用于很多不同的任务 。例如,它可用于对文件输出进行排序(如 /etc/passwd),或者如我们在下面所看到的那样,对 du 的输出进行排序 。当使用 -m 选项时,sort 将文件合并,实际上并没有对它们进行排序 。但是,如果您希望将它们排序,就应该在文件合并前对它们排序 。
Sort 经常与 uniq 命令一起使用,从已排序的文件中删除完全相同的行 。uniq 命令在管道中经常跟在 sort 命令的后面,还可以使用 -c 选项来计算某一行所出现的次数,或者使用 -d 选项,只报告完全相同的行:
$ sort -m test.out test2_sort.out | uniq -c
1 Another test.
1 Testing testing
2 This is a test.
在这里我们合并两个文件 test.out 和 test2_sort.out 。然后我们使用 -c 选项,将输出传送到 uniq,这样最后的结果是按字母顺序排列的列表,完全相同的行被删除,并带有一个关于每行出现频率的报告 。
打印机控制
在多数情况下,打印机命令的使用相对较为明确 。通过在 lpr 命令后面指定文件名,将作业发送到打印机 。如果没有提供文件名,则假定使用标准输入 。使用 lpq 命令,您可以获得关于发送到打印机的作业的状态报告 。当您指定作业号时,Lprm 将作业从行打印机后台打印队列中删除 。
$ lpr grep2.out
$ lpq
Printer:lp@linux "lpdfilter drv=upp method=auto color=yes"
Queue:1 printable job
Server:pid 1929 active
Unspooler:pid 1930 active
Status:waiting for subserver to exit at 21:24:14.637
RankOwner/ID;;;;;Class Job Files;;;;;Size Time
active bluher@linux 928 A928 grep2.out;;779 21:24:14
donebluher;;A877 (STDIN);117258 13:09:53
$ lprm 928
Printer lp@linux:
checking perms "cfA928linux.local"
dequeued "cfA928linux.local"
在这里,当我们将作业发送到打印机后,我们查询其状态 。Lpq 向我们显示编号为 877 的作业已经完成,而我们刚发送的作业编号为 928 。我们使用命令 lprm 928 将活动的作业从队列中删除 。
磁盘信息
无论您是维护自己的系统还是支持具有很多用户的企业,监视磁盘空间都是系统管理员更重要的职责之一 。du、df 和 fdisk 命令提供了可用磁盘空间的不同视图 。
du 命令提供对每个目录的文件空间使用情况的评估 。在默认情况下,测量的单位是块的数目,块的大小通常在安装您的系统时确定 。
在以下的示例中,系统是使用 1024 字节的块安装的 。如果没有指定目录,则 du 开始对当前目录进行计算 。-h 选项以易于读懂的形式提供大小的值:
$ du -h Documents
105k;Documents/jj
573k;Documents/John
682k;Documents
可以使用 -a 选项更改输出,该选项指示 du 显示文件和目录的块数 。选项 --block-size=SIZE 指示 du 以 SIZE 所指定字节大小的块的数目来显示输出 。
$ du --block-size=512 Documents
209;;Documents/jj
1146;Documents/John
1363;Documents
在默认情况下,du 还为每个子目录递归地打印信息 。通过使用 max-depth=N 选项可以限制这种操作,其中 N 等于被报告的最大级数:
$ du --max-depth=2 .
$ du --max-depth=2 | sort -n
4;;;;./.xemacs
4;;;;./public_html
105;;./Documents/jj
573;;./Documents/Ian
682;;./Documents
2420;./jdevhome/system
8350;./jdevhome/system9.0.3.1035
13483./jdevhome/mywork
24252./jdevhome
...
du 报告目录和子目录的空间使用情况,而 df 报告已安装文件系统的磁盘空间使用情况:
$ df
Filesystem;;1k-blocks;;;Used Available Use% Mounted on
/dev/hda6;;;;;419563219836562211976; 48% /
/dev/hda5; 14607;;;3778;;10075; 28% /boot
/dev/hda9 937372;494028;443344; 53% /home

推荐阅读