广告
返回顶部
首页 > 资讯 > 操作系统 >每个程序员都应该知道的Linux命令有哪些
  • 260
分享到

每个程序员都应该知道的Linux命令有哪些

2023-06-16 19:06:15 260人浏览 薄情痞子
摘要

这篇文章主要介绍了每个程序员都应该知道的linux命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。让我们从处理一些数据开始。假设我们有两个文件,分别记录的订单清单和订

这篇文章主要介绍了每个程序员都应该知道的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.998:23:45 112, 1, Joy of Clojure, Hardcover, 29.998:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

就像它的说明描述的,你可以用它来连接多个文件。

jfields$ cat order.* 8:22:20 111, Order Complete8:23:50 112, Order sent to fulfillment8:24:20 113, Refund sent to processing8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.998:23:45 112, 1, Joy of Clojure, Hardcover, 29.998:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

如果你想看这些log文件的内容,你可以把它们连接起来并输出到标准输出上,就是上面的例子展示的。这很有用,但输出的内容可以更有逻辑些。

sort

sort – 文件里的文字按行排序

此时sort命令显然是你***的选择。

jfields$ cat order.* | sort8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.998:22:20 111, Order Complete8:23:45 112, 1, Joy of Clojure, Hardcover, 29.998:23:50 112, Order sent to fulfillment8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.998:24:20 113, Refund sent to processing

就像上面例子显示的,文件里的数据已经经过排序。对于一些小文件,你可以读取整个文件来处理它们,然而,真正的log文件通常有大量的内容,你不能不考虑这个情况。此时你应该考虑过滤出某些内容,把cat、sort后的内容通过管道传递给过滤工具

grep

grep, egrep, fgrep – 打印出匹配条件的文字行

假设我们只对Patterns of Enterprise Architecture这本书的订单感兴趣。使用grep,我们能限制只输出含有Patterns字符的订单。

jfields$ cat order.* | sort | grep Patterns8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.998:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99

假设退款订单113出了一些问题,你希望查看所有相关订单——你又需要使用grep了。

jfields$ cat order.* | sort | grep ":\d\d 113, "8:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.998:24:20 113, Refund sent to processing

你会发现在grep上的匹配模式除了“113”外还有一些其它的东西。这是因为113还可以匹配上书目或价格,加上额外的字符后,我们可以精确的搜索到我们想要的东西。

现在我们已经知道了退货的详细信息,我们还想知道日销售和退款总额。但我们只关心Patterns of Enterprise Architecture这本书的信息,而且只关心数量和价格。我现在要做到是切除我们不关心的任何信息。

cut

cut – 删除文件中字符行上的某些区域

又要使用grep,我们用grep过滤出我们想要的行。有了我们想要的行信息,我们就可以把它们切成小段,删除不需要的部分数据。

jfields$ cat order.* | sort | grep Patterns8:22:19 111, 1, Patterns of Enterprise Architecture, Kindle edition, 39.998:24:19 113, -1, Patterns of Enterprise Architecture, Kindle edition, 39.99jfields$ cat order.* | sort | grep Patterns | cut -d"," -f2,5 1, 39.99 -1, 39.99

现在,我们把数据缩减为我们计算想要的形式,把这些数据粘贴到excel里立刻就能得到结果了。

cut是用来消减信息、简化任务的,但对于输出内容,我们通常会有更复杂的形式。假设我们还需要知道订单的ID,这样可以用来关联相关的其他信息。我们用cut可以获得ID信息,但我们希望把ID放到行的***,用单引号包上。

sed

sed – 一个流编辑器。它是用来在输入流上执行基本的文本变换。

下面的例子展示了如何用sed命令变换我们的文件行,之后我们在再用cut移除无用的信息。

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,51, 39.99, '111'-1, 39.99, '113'

我们对例子中使用的正则表达式多说几句,不过也没有什么复杂的。正则表达式做了下面几种事情

  • 删除时间戳

  • 捕捉订单号

  • 删除订单号后的逗号和空格

  • 捕捉余下的行信息

里面的引号和反斜杠有点乱,但使用命令行时必须要用到这些。

一旦捕捉到了我们想要的数据,我们可以使用 \1 & \2 来存储它们,并把它们输出成我们想要的格式。我们还在其中加入了要求的单引号,为了保持格式统一,我们还加入了逗号。***,用cut命令把不必要的数据删除。

现在我们有麻烦了。我们上面已经演示了如何把log文件消减成更简洁的订单形式,但我们的财务部门需要知道订单里一共有哪些书。

uniq

uniq – 删除重复的行

下面的例子展示了如何过滤出跟书相关的交易,删除不需要的信息,获得一个不重复的信息。

jfields$ cat order.out.log | grep "\(Kindle\|Hardcover\)" | cut -d"," -f3 | sort | uniq -c   1  Joy of Clojure   2  Patterns of Enterprise Architecture

看起来这是一个很简单的任务。

这都是很好用的命令,但前提是你要能找到你想要的文件。有时候你会发现一些文件藏在很深的文件夹里,你根本不知道它们在哪。但如果你是知道你要寻找的文件的名字的话,这对你就不是个问题了。

find

find – 在文件目录中搜索文件

在上面的例子中我们处理了order.in.log和order.out.log这两个文件。这两个文件放在我的home目录里的。下面了例子将向大家展示如何在一个很深的目录结构里找到这样的文件。

jfields$ find /Users -name "order*"Users/jfields/order.in.logUsers/jfields/order.out.log

find命令有很多其它的参数,但99%的时间里我只需要这一个就够了。

简单的一行,你就能找到你想要的文件,然后你可以用cat查看它,用cut修剪它。但文件很小时,你用管道把它们输出到屏幕上是可以的,但当文件大到超出屏幕时,你也许应该用管道把它们输出给less命令。

less

less – 在文件里向前或向后移动

让我们再回到简单的 cat | sort 例子中来,下面的命令就是将经过合并、排序后的内容输出到less命令里。在 less 命令,使用“/”来执行向前搜索,使用“?”命令执行向后搜索。搜索条件是一个正则表达式。

jfields$ cat order* | sort | less

如果你在 less 命令里使用 /113.*,所有113订单的信息都会高亮。你也可以试试?.*112,所有跟订单112相关的时间戳都会高亮。***你可以用 ‘q’ 来退出less命令。

感谢你能够认真阅读完这篇文章,希望小编分享的“每个程序员都应该知道的Linux命令有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网操作系统频道,更多相关知识等着你来学习!

--结束END--

本文标题: 每个程序员都应该知道的Linux命令有哪些

本文链接: https://www.lsjlt.com/news/284837.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 每个程序员都应该知道的Linux命令有哪些
    这篇文章主要介绍了每个程序员都应该知道的Linux命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。让我们从处理一些数据开始。假设我们有两个文件,分别记录的订单清单和订...
    99+
    2023-06-16
  • Linux中每个开发人员都应该知道的控制台命令有哪些
    这篇文章给大家分享的是有关Linux中每个开发人员都应该知道的控制台命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Unix shell是命令行解释器或shell,可为类似Unix的操作系统提供命令行用户...
    99+
    2023-06-16
  • Python程序员都应该知道的缩写词有哪些
    这篇文章主要讲解了“Python程序员都应该知道的缩写词有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python程序员都应该知道的缩写词有哪些”吧!1. OOP(面向对象编程)要介绍...
    99+
    2023-06-16
  • Git的5个基本命令,每个Django和Laravel开发人员都应该知道。
    Git是一个非常流行的版本控制系统,它可以帮助我们管理我们的代码库,以便更好地协作和追踪代码更改。Git的使用对于每个Django和Laravel开发人员来说都是必要的。本文将介绍5个基本的Git命令,每个开发人员都应该知道。 git i...
    99+
    2023-09-14
    django git laravel
  • Flex程序员应该知道的事情有哪些
    这篇文章给大家分享的是有关Flex程序员应该知道的事情有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.重新定义:Flex是web标准MXML是Flex应用的标准语言,它允许开发人员开发应用程序架构,不仅包...
    99+
    2023-06-17
  • 每一位程序员都应该学习的优秀代码有哪些
    本篇内容主要讲解“每一位程序员都应该学习的优秀代码有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“每一位程序员都应该学习的优秀代码有哪些”吧!几年前,我查看...
    99+
    2022-10-19
  • web开发者应该知道的命令有哪些
    本篇内容介绍了“web开发者应该知道的命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. ali...
    99+
    2022-10-19
  • 大多数程序员都不知道的YAML功能有哪些
    这篇文章主要介绍“大多数程序员都不知道的YAML功能有哪些”,在日常操作中,相信很多人在大多数程序员都不知道的YAML功能有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • Java程序员必备的Linux命令有哪些
    这篇文章的内容主要围绕Java程序员必备的Linux命令有哪些进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!java程序猿在开发时并不使用Linux...
    99+
    2023-06-28
  • web前端程序员必须知道的基本Mac终端命令有哪些
    这篇文章主要讲解了“web前端程序员必须知道的基本Mac终端命令有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前端程序员必须知道的基本Mac终端...
    99+
    2022-10-19
  • 作为程序员必会的Linux命令有哪些
    这篇文章给大家分享的是有关作为程序员必会的Linux命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.查找文件命令:find / -name name.txt 根据名称查找/目录下的name.txt文件...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作