Linux有大量的命令行工具,从每天都会使用的ls、cd以及ps这些工具,到您可能还没有使用过,或者甚至没有听说过的不常见的工具。
我们将看一下五个不常见,但可以让您的使用更轻松的工具。我们会简单地看看每一个命令及其标志和参数,但请不要忘了对每一个命令使用man命令,去获取所有可能的标志和参数信息。
logsave
我们将查看的第一个工具是logsave。logsave命令可以将一个命令的输出保存到一个日志文件中:
$ logsave /var/log/partsize df –h
这里,logsave命令将df命令的输出保存到/var/log/partsize文件中,同时会添加一个时间戳并将命令的执行结果输出到标准输出。
听起来并不是那么的有趣,是吗?logsave特殊的魔力在于,如果文件,在这个例子中是/var/log/partsize,并不存在,那么
logsave会在内存中将数据进行排队,等待该文件的产生。对于在启动过程中,当您在对一个还没有挂载上的分区进行写操作时,用logsave去跟踪命
令的执行输出是非常有用的。为了保存可能会丢失的命令行输出,我经常在自动配置和引导过程中,使用logsave。
diff3
下一个工具是diff3命令。您可能已经使用过diff命令去生成文件之间的差异。相对于diff的两个文件,diff3可以对三个文件执行同样的功
能,但包括diff中的一些更复杂的选项。让我们看一个简单的例子。我们有三个文件:cat、dog以及mouse,它们各自包含一个字符串。我们可以用
diff3对所有的三个文件进行比较:
$ diff3 dog cat mouse
====
1:1c
This is a dog
2:1c
This is a cat
3:1c
This is a mouse
diff3命令显示了三个文件中不同的字符串。您也可以用“-”标记代表一个文件。这将会把标准输入和其他文件进行比较。
您也可以使用-A标记,在所有的文件里面,去合并不同,并对任何冲突之处进行高亮显示。
$ diff3 -A dog cat mouse
1a
||||||| cat
This is a cat
=======
This is a mouse
>>>>>>> mouse
.
0a
<<<<<<< dog
.
pstree
您可能已经在您的主机上,使用过ps去列出所有的进程。但您可能还没有听说过pstree——一个用于以树的形式显示您的进程的命令。一个进程或者从
init进程,从一个您可以指定的PID(进程ID)分支出来,或者从一个您可以指定的用户分支出来。每一个进程及其子进程如下所示:
pstree命令也包括一些您可以使用的命令行标志。比如-a标志会显示进程所使用的命令行,而-p标志会在树中添加进程的进程ID。
nl
nl命令很少有人知道,但却可以执行一个很漂亮的小功能——它在输出中添加行号。让我们看一个简单的例子,对一个叫做dog的文件执行nl命令。
$ nl dog
1 This is a dog
2 This is not a dog
您可以看到nl获取了dog文件的内容,并在输出中添加了行号。然后,您可以将这些输出通过管道放到一个新文件中。
$ nl dog > dog_numbered
然后,我们就可以显示这个带有新的行号内容的文件:
$ cat dog_numbered
1 This is a dog
2 This is not a dog
split
我们要看的最后一个命令是split。split命令通常基于尺寸将文件分割为多个片段。我使用这个命令,去将大的日志文件分割为更好管理的日志片段,例如:
$ split --bytes=1m /tmp/largelogfile /tmp/smallerfile
split命令有根据字节数和行数对文件进行分割的参数。这里,我们通过指定--bytes=1m参数,将大的日志文件分割为1M字节的块(您可以指定b去代表字节,k代表千字节,g代表十亿字节)。
我们可以像这样根据行数对文件进行分割:
$ split --lines=1000 /tmp/largelogfile /tmp/smallerfile
这里,文件会被分为多个1000行的块。
在我们的例子中,会将每个块都存在/tmp目录下,其文件名会包含一个前缀smallerfile。第一个文件为smallerfileaa,第二个是
smallerfileab等等。您也可以使用-d标记,去使用数字而不是通过字母的增长来对块进行计数。最后,除了可以指定一个文件,您也可以使用
“-”去让split命令以标准输入为输入,并分割为独立的文件。
from:
http://www.searchsv.com.cn/showcontent_31396.htm
posted on 2010-03-06 11:26
chatler 阅读(320)
评论(0) 编辑 收藏 引用 所属分类:
Shell