windows | Mac os | linux | 电脑故障 | 网络知识 | 电脑百科 | 破解软件 | 网页编程 | 电脑配置 |

程序员都应该知道什么Linux命令

发布时间:2016-11-30

程序员都应该知道什么Linux命令?每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识。小编分享了程序员都应该知道的8个Linux命令,希望对大家有所帮助。

程序员都应该知道的8个Linux命令

我们以一些文本举例。假设我们有2个文件,里面有订单关于第三方的放置地点和发送回应。

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, 39.99

cat 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

–追加文件并在标准输出上打印

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, 39.99

正如他的名字所说的,你可以串联多个文件

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, 39.99

看到效果了,但我们可以提高其可读性。

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

上面显示了我们想要看到的效果,但是这只是小文件。而真实的数据是很大的,有些是你不想要的数据怎么办?

grep

grep, egrep, fgrep–进行匹配输出

假设我只关心给PofEAA的订单,使用grep就可以做到。

jfields$ cat order.* | sort | grep Patterns

8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

假设订单113里面发生了一些问题,你想看到关于113的所有订单信息。没错,grep能帮你。

jfields$ cat order.* | sort | grep “:\d\d 113, ”

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:24:20 113, Refund sent to processing

你会发现在表达式里面不止有113,这是因为113也可能出现在价格里面,或者产品里面,这样做是严格限制其查找结果。

现在我们已经发出退货订单的信息,我们每日也要给会计发送销售统计。他们要求每个PofEAA的项目,但他们只关心数量和价格,我们要把

不需要的部分删减掉。

cut

–从文件的每一行删除一部分

还是要先使用grep。

jfields$ cat order.* | sort | grep Patterns

8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.99

8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

jfields$ cat order.* | sort | grep Patterns | cut -d”,” -f2,5

1, 39.99

-1, 39.99

我们已经减少了数据,让会计一目了然。

假设会计想要把订单ID做为参考,把它放在每一行的最后,并用单引号。

sed

–流编辑器。用来处理文本转换。

下面的示例演示怎样使用它来做到我们想要的数据。

jfields$ cat order.* | sort | grep Patterns \

>| sed s/”[0-9\:]* \([0-9]*\)\, \(.*\)”/”\2, ‘\1′”/

1, Patterns of Enterprise Architecture, Kindle edition, 39.99, '111′

-1, Patterns of Enterprise Architecture, Kindle edition, 39.99, '113′

lmp-jfields01:~ jfields$ cat order.* | sort | grep Patterns \

>| sed s/”[0-9\:]* \([0-9]*\)\, \(.*\)”/”\2, ‘\1′”/ | cut -d”,” -f1,4,5

1, 39.99, '111′

-1, 39.99, '113′

这是一个正则表达式,但没什么复杂的。做以下事情

1.删除时间

2.捕获订单号

3.删除逗号和订单号后面的空格

4.捕获此行的其余部分

一旦我们看到了我们需要的数据,可以使用\1&\2让输出数据符合我们的格式要求。

uniq

–去除重复行

下面的示例演示如何grep的唯一相关的交易,削减不必要的信息,并获得计数。

jfields$ cat order.out.log | grep “\(Kindle\|Hardcover\)” | cut -d”,” -f3 | sort | uniq -c

1 Joy of Clojure

2 Patterns of Enterprise Architecture

jfields$ cat order.out.log | grep “\(Kindle\|Hardcover\)” | cut -d”,” -f3 | sort | uniq

Joy of Clojure

Patterns of Enterprise Architecture

find

–在目录里找文件

假设这2个文本文件存在于我们的主目录,我们不必知道他们的全名。

jfields$ find /Users -name “order*”

Users/jfields/order.in.log

Users/jfields/order.out.log

当然还有很多选项,但99%的情况下我这么做。

less

–在一个文件里面向前向后移动

让我们回到最简单的cat|sort的例子。你可以向前搜索使用”/”,向后使用”?”,2者都可以使用正则表达式。

jfields$ cat order* | sort | less

你可以试试/113.*,这将突出显示订单113。你可以使用?.*112,也将突出显示订单112,你可以用'q'退出。

看过“程序员都应该知道什么Linux命令”的人还看了:

123
  • 程序员都应该知道什么Linux命令 相关内容:
  • 阿里云linux服务器数据盘、磁盘扩容教程(案例操
  • 近日服务器的数据盘空间越来越少,于是通过阿里云为linux服务器扩容,但是按照官方的教程没有扩容成功。研究了很长时间特意把需要注意和容易出错的地方给大家标注下,并且把这些实际操作的步骤发出来,以后自己遇到问题方便查看。又能帮助到同样遇到此问题的朋友。首先第一步,在...

  • linux grep命令详解
  • grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。接下来是小编为大家收集的linux grep命令详解,希望能帮到大家。linux grep命令详解Un...

  • Linux命令convert GPT to MBR图解
  • 随着嵌入式系统设备的普及,嵌入式设备的种类越来越多,这就导致了现在还没有一种统一的操作系统能够轻易地运行在任何嵌入式设备平台上。接下来是小编为大家收集的Linux命令convert GPT to MBR图解,希望能帮到大家。Linux命令convert GPT to MBR图解采用GPT分区方式的硬盘...

  • Linux下的GPT分区教程
  • 随着Internet网络的普及,Linux操作系统正在各个方面得到广泛的应用。Linux操作系统在服务器、嵌入式等方面已经取得不俗的成绩,在桌面系统方面,也逐渐受到欢迎。接下来是小编为大家收集的Linux下的GPT分区教程,希望能帮到大家。Linux下的GPT分区教程Linux下的GPT分区,这是...

  • Linux磁盘管理GPT分区教程
  • Linux内核代码量大、逻辑关系复杂,因此对内核中的错误进行追溯和调试一直以来都是一件既耗费时间又耗费精力的事情。接下来是小编为大家收集的 Linux磁盘管理GPT分区教程,希望能帮到大家。 Linux磁盘管理GPT分区教程硬盘分区表扫盲:MBR和GPT表MBR全称为Master Boot Record...

  • linux下串口gps应用
  • 嵌入式系统是计算机技术的一种重要应用形式。从概念上讲,嵌入式系统并不是近来才出现的产品,但随着计算技术和通信技术的迅速发展以及Internet的广泛应用,嵌入式系统却从来没有象现在这样风靡过。接下来是小编为大家收集的linux下串口gps应用,希望能帮到大家。linux下串口gp...

  • linux下GPS设备编程实例
  • Linux系统的裁减的目的就是建立一个在特定的嵌入式环境下与需求相匹配的嵌入式Linux系统。接下来是小编为大家收集的linux下GPS设备编程实例 ,希望能帮到大家。linux下GPS设备编程实例1、GPS设备工作时一直不停地通过串口(或其他的接口)向主机发送具有一定协议格式的数据...

  • Linux下接收处理GPS数据教程
  • Linux的性能、可靠性、灵活性、和开放性,与其支持多微处理器体系结构、硬件设备、图形支持和通信协议相结合,把Linux建成了一个日益发展的操作系统平台。接下来是小编为大家收集的Linux下接收处理GPS数据教程,希望能帮到大家。Linux下接收处理GPS数据教程1,接收数据这个名...

  • 查看更多>>

    linux