Chinaunix首页 | 论坛 | 博客
  • 博客访问: 319331
  • 博文数量: 66
  • 博客积分: 2369
  • 博客等级: 大尉
  • 技术积分: 635
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-20 17:10
文章分类

全部博文(66)

文章存档

2020年(2)

2017年(3)

2016年(1)

2015年(1)

2013年(5)

2012年(12)

2011年(20)

2010年(1)

2009年(5)

2008年(15)

2007年(1)

分类:

2008-01-23 10:49:02

od 
od(octal dump)过滤器, 将会把输入(或文件)转换为8 进制或者其他进制. 在你需要查看 
或处理一些二进制数据文件或者一个不可读的系统设备文件的时候, 这个命令非常有用, 
比如/dev/urandom,或者是一个二进制数据过滤器.

dd 
这也是一个不太出名的工具, 但却是一个令人恐惧的 "数据复制" 命令. 最开始, 这个命 
令是被用来在UNIX 微机和IBM 大型机之间通过磁带来交换数据, 这个命令现在仍然有它的 
用途. dd 命令只不过是简单的拷贝一个文件 (或者 stdin/stdout), 但是它会做一些转 
换. 下边是一些可能的转换, 比如 ASCII/EBCDIC, [4] 大写/小写, 在输入和输出之间 
的字节对的交换, 还有对输入文件做一些截头去尾的工作. dd --help 列出了所有转换, 
还有这个强力工具的一些其他选项. 
1 # 将一个文件转换为大写: 

3 dd if=$filename conv=ucase > $filename.uppercase

m4 
一个隐藏的财宝, m4 是一个强力的宏处理过滤器, [5] 差不多可以说是一种语言了. 虽 
然最开始这个工具是用来作为 RatFor 的预处理器而编写的, 但是后来证明 m4 作为独 
立的工具也是非常有用的. 事实上, m4 结合了许多工具的功能, 比如 eval, tr, 和 awk, 
除此之外, 它还使得宏扩展变得容易. 
在 2004 年4 月的 Linux Journal 的问题列表中有一篇关于 m4 命令用法得非常好的文章.

stty 
显示并(或)修改终端设置. 这个复杂命令可以用在脚本中, 并可以用来控制终端的行为和 
其显示输出的方法. 参见这个命令的info 页, 并仔细学习它.

lsof 
列出打开的文件. 这个命令将会把所有当前打开的文件列出一份详细的表格, 包括文件的 
所有者信息, 尺寸, 与它们相关的信息等等. 当然, lsof 也可以管道输出到 grep 和(或) 
awk 来分析它的结果.

uptime 
显示系统运行的时间, 还有其他一些统计信息. 
bash$ uptime 
10:28pm up 1:57, 3 users, load average: 0.17, 0.34, 0.27 
注意: load average 如果小于或等于1, 那么就意味着系统会马上处理. 如果 
load average 大于1, 那么就意味着进程需要排队. 如果load average 大于3, 
那么就意味着, 系统性能已经显著下降了.

fuser 
取得一个正在存取某个或某些文件(或目录)的进程ID. 使用-k 选项将会杀掉这些进程. 对 
于系统安全来说, 尤其是在脚本中想阻止未被授权的用户存取系统服务的时候, 这个命令 
就显得很有用了. 
bash$ fuser -u /usr/bin/vim 
/usr/bin/vim: 3207e(bozo) 
bash$ fuser -u /dev/null 
/dev/null: 3009(bozo) 3010(bozo) 3197(bozo) 3199(bozo) 
当正常的插入或删除保存的媒体, 比如CD ROM 或者USB 闪存设备的时候, fuser 的应用也显 
得特别重要. 有时候当你想umount 一个设备失败的时候(出现设备忙的错误消息), 这意味 
着某些用户或进程正在存取这个设备. 使用fuser -um /dev/device_name 可以搞定这些, 
这样你就可以杀掉所有相关的进程. 
bash$ umount /mnt/usbdrive 
umount: /mnt/usbdrive: device is busy 
bash$ fuser -um /dev/usbdrive 
/mnt/usbdrive: 1772c(bozo) 
bash$ kill -9 1772 
bash$ umount /mnt/usbdrive 
fuser 的-n 选项可以获得正在存取某一端口的进程. 当和nmap 命令组合使用的时候尤其 
有用. 
root# nmap localhost.localdomain 
PORT STATE SERVICE 
25/tcp open smtp 
root# fuser -un tcp 25 
25/tcp: 2095(root) 
root# ps ax | grep 2095 | grep -v grep 
2095 ? Ss 0:00 sendmail: accepting connections

ulimit 
设置使用系统资源的上限. 通常情况下都是使用-f 选项来调用, -f 用来设置文件尺寸的限 
制(ulimit -f 1000 就是将文件大小限制为1M). -c(译者注: 这里应该是作者笔误, 作者 
写的是-t)选项来限制coredump(译者注: 核心转储, 程序崩溃时的内存状态写入文件) 
尺寸(ulimit -c 0 就是不要coredumps). 一般情况下, ulimit 的值应该设置在 
/etc/profile 和(或)~/.bash_profile 中(参见 Appendix G). 

 
ldd 
显示一个可执行文件的共享库的依赖关系. 
bash$ ldd /bin/ls 
libc.so.6 => /lib/libc.so.6 (0x4000c000) 
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) 
阅读(2198) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-20 17:49:36

cool man