五大非常见Linux命令

日期: 2010-01-28 作者:James Turnbull翻译:刘波 来源:TechTarget中国 英文

Linux有大量的命令行工具,从每天都会使用的ls、cd以及ps这些工具,到您可能还没有使用过,或者甚至没有听说过的不常见的工具。   我们将看一下五个不常见,但可以让您的使用更轻松的工具。我们会简单地看看每一个命令及其标志和参数,但请不要忘了对每一个命令使用man命令,去获取所有可能的标志和参数信息。   logsave   我们将查看的第一个工具是logsave。

logsave命令可以将一个命令的输出保存到一个日志文件中:   $ logsave /var/log/partsize df –h   这里,logsave命令将df命令的输出保存到/var/log/partsize文件中,同时……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

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命令
 
  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命令以标准输入为输入,并分割为独立的文件。

作者

James Turnbull
James Turnbull

暂无

相关推荐