linux命令行下搜索工具大盘点,效率提高不止一倍!(代码片段)

yychuyu yychuyu     2022-12-10     270

关键词:

在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令。grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂。

于是,为了简化 grep 的语句并达到同等效果,很多业内高手开发出了很多同样强大的工具,在某些程度上甚至可以替代 grep 。

下面我就给大家介绍 5 个常用的命令行搜索工具。如果你不喜欢使用编辑器或 IDE 来查找代码关键字,那么这几个工具将对你十分有帮助。

这 5 个工具有些仅适用于类 Unix 系统,但也有一些是跨平台的搜索速度非常快的工具。

grep

使用 grep 的优势是它几乎可以在任意类 Unix 系统上使用。这个命令的强大之处我相信大家都有所耳闻了。下面我给大家介绍几个我最常使用 grep 命令的几种方式。

如果你只想在 py 文件中找到一个关键字并且输出行号,可以这样操作:

$ grep -rins --include *.py import .

假如我们前几天在命令行中输入了一个比较复杂命令,但是现在我们仅仅回忆起部分命令。那么我们可以通过管道(|)使用 grep 命令来搜索历史记录命令:

$ history | grep "python"

这条命令执行之后,我们就可以找到我们曾经所运行过的所有包含 python 关键字的命令,然后我们就可以通过 ! 来重新执行这条命令。

$ history | grep “python”
284  python test.py
...	#省略其它结果

$ !284
$ python test.py

ack

ack 大家相对就不是那么熟悉了,它是「一个类似于 grep 并且为程序员优化过的工具」。它在默认情况下以递归方式搜索,但是会忽略版本控制工具目录,比如 .git 目录。并且它自带很多很实用的工具,可以大大提高我们搜索效率。

我们同样再拿出上面的例子来举例,下面我们使用 ack 命令来实现仅在 py 文件中搜索 import 关键字的方法:

# ack 命令实现方式
$ ack import --py

# grep 命令实现方式
$ grep -rins --include *.py import .

上面是仅在 py 文件进行搜索,那假如我们想搜索除 py 文件类型以外的所有其他类型的文件,要怎么操作?

对于每个文件类型,都有一个对应的 no 标识,来排除对这个文件类型搜索。比如,想搜索 py 文件的话就使用 --py 选项,而想排除 py 文件的话就使用 --nopy 选项。

2020 精选 阿里/腾讯等一线大厂 面试、简历、进阶、电子书 公众号「良许Linux」后台回复「资料」免费获取

$ ack import --nopy

当然文件类型有非常之多,我们还可以通过修改 ~/.ackrc 文件来扩展文件类型。假如我们现在想搜索 .conf 文件,默认情况下 ack 不支持这种文件:

$ ack hello --conf
Unknown option: conf
ack: Invalid option on command line

要注册 .conf 文件类型,我们可以将以下内容添加到 ~/.ackrc 文件中,之后我们就可以正常搜索 conf 文件了。

--type-set=conf=.conf

配置文件修改之后,我们可以使用 --help-types 选项来确认自定义类型是否已经成功加上。

ack 命令从 .ackrc 文件中获取配置信息,但如何你想脱离 .ackrc 文件来运行 ack 命令的话,可以使用 -noenv 选项。

The Silver Searcher

该搜索器是另一个类似于 ack 的 grep 替代品,其更快的性能让大家很推崇。它有个非常实用的特点,那就是它会忽略在项目工程中的 .gitignore 文件所指定的文件。所以如果你想排除搜索一些文件,就可以将那些文件写在 .gitignore 文件里。

如果说 the silver searcher 大家可能不是很熟悉,但它的另一个名字可以就有点如雷贯耳了:ag 命令。

在 Ubuntu 系统上可以使用以下命令来安装 ag 命令:

$ apt-get install silversearcher-ag

使用 ag 命令来搜索 py 文件里包含关键字 import 的内容:

$ ag import --py

ag 命令十分强大,限于篇幅本文只介绍它最基本的用法,改天有时间的话再补充一下它其它非常强大的功能用法。

sift

sift 是使用 Golang 编写的 grep 替代品,这意味着它可以在 Linux,Windows,OS X 和其他系统上使用。它的速度快得离谱,而且有一些很酷的用例来代替 grep + awk 组合来提取数据。

2020 精选 阿里/腾讯等一线大厂 面试、简历、进阶、电子书 公众号「良许Linux」后台回复「资料」免费获取

我们再使用 sift 命令来搜索所有 py 文件里包含 import 关键字的内容:

# 只搜索 py 文件:
sift --ext py import

# 排除 py 文件
sift --exclude-ext py import

RipGrep

RipGrep 与 Silver Searcher 类似,可以在 Mac、Linux 和 Windows 上运行。它的 readme 文件声称,RipGrep 通常比其他任何搜索工具都快,它推崇 Rust 的正则表达式引擎,并像Silver Searcher一样使用 .gitignore 文件来排除一些文件或目录。

RipGrep 通常简称为 rg ,我们再使用 rg 命令来搜索所有 py 文件里包含 import 关键字的内容:

rg --type=py import

小结

命令行下有很多实用的搜索工具,恰当地使用这些工具会给我们的工作提高很大的效率。本文介绍了 5 个常用的搜索工具,但限于篇幅无法作深入介绍。更详细的介绍可以参阅网络上的一些文章,或者它们的 man page,后面我也会陆续对每个命令进行详细介绍,记得关注哦~

看完的都是真爱,点个赞再走呗?您的「三连」就是良许持续创作的最大动力!

  1. 关注原创公众号「良许Linux」,第一时间获取最新Linux干货!
  2. 公众号后台回复【资料】【面试】【简历】获取精选一线大厂面试、自我提升、简历等资料。
  3. 关注我的博客:lxlinux.net

ppt难做?花太长时间?收藏这4个网站,省时省力效率提升不止一倍

...口袋动画PA口袋动画,是一款独立开发的PowerPoint动画编辑工具,主要用于在制作PPT的过程中添加相应的PPT动画效果,让PPT变得更加有感染力,绝对是职场PPT制作、展 查看详情

设计师提高效率必备的10大在线工具

...亿张优质图片素材,包含图片、插画、矢量图等,并结合搜索人工智能,为用户带 查看详情

深度盘点:23个提高开发效率和美观的vscode插件神器(代码片段)

...码自动补全、代码重构、查看定义功能,并且内置了命令行工具和Git版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。VSCode默认支持非常多的... 查看详情

善用垂直搜索工具,提高搜索效率

  一般说来,垂直搜索会比综合搜索更有效率,也更为可靠。  垂直搜索包括了站内搜索和狭义的垂直搜索引擎两类。站内搜索大家都懂,只搜索本网站之内的结果。垂直搜索引擎指的是什么呢?举个栗子,在爱奇艺视频上... 查看详情

更效率、更优雅阿里巴巴开发者工具不完全盘点

...具的使用场景:Arthas支持JDK6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的Tab自动补全功能,进一步方便进行问题的定位和诊断。使用教程:基础教程:https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basi... 查看详情

年末盘点,2021年最值得推荐的10个提高开发效率工具,程序员必备

...软件,可以自由选配插件,通过快捷键快速呼出搜索框,他的设计风格和操作方式我都觉得很不错&# 查看详情

python - 通过 readlines(size) 提高大文件搜索的效率

】python-通过readlines(size)提高大文件搜索的效率【英文标题】:python-increaseefficiencyoflarge-filesearchbyreadlines(size)【发布时间】:2017-03-2512:15:37【问题描述】:我是Python新手,目前正在使用Python2。我有一些源文件,每个文件都包含大... 查看详情

linux命令行

涉及在linux命令行下进行快速移动光标、命令编辑、编辑后执行历史命令、Bang(!)命令、控制命令等。提高工作效率。常用ctrl+左右键:在单词之间跳转ctrl+a:跳到本行的行首ctrl+e:跳到页尾Ctrl+u:删除当前光标前面的文字(还有剪切... 查看详情

linux下提高效率的小工具

有些工具会带给我们出乎意料的惊喜1、multitail解决痛点,tail+grep的有机结合,实现对于滚动日志的过滤滚动显示。具体使用方法可以参考:https://www.vanheusden.com/multitail/examples.php 查看详情

linux下三种提高工作效率的文件处理技巧(代码片段)

...一切皆文件嘛。Linux也为大家提供了多种用于处理文件的命令,合理使用这些命令可以大大节省你的时间,并让我们的工作负担不再那么沉重。寻找文件的技巧当我们查找文件时,第一时间想到的肯定是find命令。但是如果我们搜... 查看详情

10个提高效率的linux命令别名(代码片段)

...nux环境下工作的工程师,一定会对那些繁琐的指令和参数命令行印象深刻吧。而且,可怕的不是繁琐,而是需要大量重复输入这些繁琐的命令。在Linux下我们有个别名命令alias,可以将那些繁琐的命令自定义为我们容易记住的别... 查看详情

10个提高效率的linux命令别名(代码片段)

...nux环境下工作的工程师,一定会对那些繁琐的指令和参数命令行印象深刻吧。而且,可怕的不是繁琐,而是需要大量重复输入这些繁琐的命令。在Linux下我们有个别名命令alias,可以将那些繁琐的命令自定义为我们容易记住的别... 查看详情

让你提高效率的linux技巧(代码片段)

想要在Linux命令行工作中提高效率,你需要使用一些技巧。巧妙的Linux命令行技巧能让你节省时间、避免出错,还能让你记住和复用各种复杂的命令,专注在需要做的事情本身,而不是你要怎么做。以下介绍一些好用的命令行技... 查看详情

#yyds干货盘点#linux命令测网速

...dtest、iPerf。fast是Netflix提供的一项服务,这不仅可以通过命令行来使用,而且可以直接Web端使用。iPerf是一个网络性能测试工具,它可以测试TCP和UDP带宽质量,可以测试最大的TCP带宽等speedtest-cli是一个用Python编写的轻量级Linux命... 查看详情

生物科技或成最大赢家,但不止蛋白质|q2科技圈进展盘点

...进展。如果特定新闻感兴趣,可以在量子位公众号中搜索相关关键词,阅读详细报道哦。关于量子位智库:量子位旗下科技创新产业链接平台。致力于提供前沿科技和技 查看详情

windows使用命令行,提高效率

1.打开系统服务  命令:services.msc   2.命令行窗口命令,像linux中vim编辑器一样查看文件内容  命令type + 文件名   查看详情

快速提高vi/vim使用效率的原则与途径

...尤其是在没有图形界面的情况下,更是离不开Vi/Vim。Vi/Vim命令非常多、用法极为灵活,掌握起来有一定的难度。本文作者将结合自己的使用经验,分七个方面着重介绍哪些原则、途径或命令能快速提高Vi/Vim文件编辑效率,从 查看详情

linux命令行下怎么定时执行一个命令?

linux有个系统级的定时任务服务,叫cron,终端里的命令是crontab。crontab-uroot-l查看root用户的所有定时任务。crontab-uroot-e是编辑root用户的定时任务,输入这条会进入vi编辑模式。编辑是有固定格式的,具体你可以搜索cron命令的用法... 查看详情