摘要:Linux里有很丰富的各种命令,有些是很难用的。然而,学会了前面说的这8个命令,你已经能处理大量的log分析任务了,完全不需要用脚本语言写程序来处理它们。
每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识。我并不是说你应该成为一个Linux专家,我的意思是,当面对Linux命令行任务时,你应该能很熟练的完成。事实上,学会了下面8个命令,我基本上能完成任何需要完成的任务。
注意:下面的每个命令都有十分丰富的文档说明。这篇文章并不是来详尽的展示每个命令的各种功用的。我在这里要讲的是这几个最常用的命令的最常见用法。如果你对linux命令并不是很了解,你想找一些这方面的资料学习,那这篇文章将会给你一个基本的指导。
让我们从处理一些数据开始。假设我们有两个文件,分别记录的订单清单和订单处理结果。
- order.out.log
- 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
- 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99
- 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99
- order.in.log
- 8:22:20 111, Order Complete
- 8:23:50 112, Order sent to fulfillment
- 8:24:20 113, Refund sent to processing
|
cat
cat – 连接文件,并输出结果
cat 命令非常的简单,你从下面的例子可以看到。
- jfields$ cat order.out.log
- 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
- 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99
- 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition,
|
就像它的说明描述的,你可以用它来连接多个文件。
- jfields$ cat order.*
- 8:22:20 111, Order Complete
- 8:23:50 112, Order sent to fulfillment
- 8:24:20 113, Refund sent to processing
- 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
- 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99
- 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition,
|
如果你想看这些log文件的内容,你可以把它们连接起来并输出到标准输出上,就是上面的例子展示的。这很有用,但输出的内容可以更有逻辑些。
sort
sort – 文件里的文字按行排序
此时sort命令显然是你最佳的选择。
- jfields$ cat order.* | sort
- 8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99
- 8:22:20 111, Order Complete
- 8:23:45 112, 1, Joy of Clojure, Hardcover, 29.99
- 8:23:50 112, Order sent to fulfillment
- 8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99
- 8:24:20 113, Refund sent to processing
|
就像上面例子显示的,文件里的数据已经经过排序。对于一些小文件,你可以读取整个文件来处理它们,然而,真正的log文件通常有大量的内容,你不能不考虑这个情况。此时你应该考虑过滤出某些内容,把cat、sort后的内容通过管道传递给过滤工具。