溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中常用的命令行搜索工具有哪些

發(fā)布時(shí)間:2021-10-25 15:26:44 來(lái)源:億速云 閱讀:238 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹Linux中常用的命令行搜索工具有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

grep

使用 grep 的優(yōu)勢(shì)是它幾乎可以在任意類 Unix 系統(tǒng)上使用。這個(gè)命令的強(qiáng)大之處我相信大家都有所耳聞了。下面我給大家介紹幾個(gè)我最常使用 grep  命令的幾種方式。

如果你只想在 py 文件中找到一個(gè)關(guān)鍵字并且輸出行號(hào),可以這樣操作:

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

假如我們前幾天在命令行中輸入了一個(gè)比較復(fù)雜命令,但是現(xiàn)在我們僅僅回憶起部分命令。那么我們可以通過(guò)管道(|)使用 grep 命令來(lái)搜索歷史記錄命令:

$ history | grep "python"

這條命令執(zhí)行之后,我們就可以找到我們?cè)?jīng)所運(yùn)行過(guò)的所有包含 python 關(guān)鍵字的命令,然后我們就可以通過(guò) ! 來(lái)重新執(zhí)行這條命令。

$ history | grep “python” 284  python test.py ...    #省略其它結(jié)果  $ !284 $ python test.py

ack

ack 大家相對(duì)就不是那么熟悉了,它是「一個(gè)類似于 grep 并且為程序員優(yōu)化過(guò)的工具」。它在默認(rèn)情況下以遞歸方式搜索,但是會(huì)忽略版本控制工具目錄,比如  .git 目錄。并且它自帶很多很實(shí)用的工具,可以大大提高我們搜索效率。

我們同樣再拿出上面的例子來(lái)舉例,下面我們使用 ack 命令來(lái)實(shí)現(xiàn)僅在 py 文件中搜索 import 關(guān)鍵字的方法:

# ack 命令實(shí)現(xiàn)方式 $ ack import --py  # grep 命令實(shí)現(xiàn)方式 $ grep -rins --include \*.py import .

上面是僅在 py 文件進(jìn)行搜索,那假如我們想搜索除 py 文件類型以外的所有其他類型的文件,要怎么操作?

對(duì)于每個(gè)文件類型,都有一個(gè)對(duì)應(yīng)的 no 標(biāo)識(shí),來(lái)排除對(duì)這個(gè)文件類型搜索。比如,想搜索 py 文件的話就使用 --py 選項(xiàng),而想排除 py 文件的話就使用  --nopy 選項(xiàng)。

$ ack import --nopy

當(dāng)然文件類型有非常之多,我們還可以通過(guò)修改 ~/.ackrc文件來(lái)擴(kuò)展文件類型。假如我們現(xiàn)在想搜索 .conf 文件,默認(rèn)情況下 ack  不支持這種文件:

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

要注冊(cè) .conf 文件類型,我們可以將以下內(nèi)容添加到 ~/.ackrc 文件中,之后我們就可以正常搜索 conf 文件了。

--type-set=conf=.conf

配置文件修改之后,我們可以使用 --help-types 選項(xiàng)來(lái)確認(rèn)自定義類型是否已經(jīng)成功加上。

ack 命令從 .ackrc 文件中獲取配置信息,但如何你想脫離 .ackrc 文件來(lái)運(yùn)行 ack 命令的話,可以使用 -noenv 選項(xiàng)。

The Silver Searcher

該搜索器是另一個(gè)類似于 ack 的 grep 替代品,其更快的性能讓大家很推崇。它有個(gè)非常實(shí)用的特點(diǎn),那就是它會(huì)忽略在項(xiàng)目工程中的 .gitignore  文件所指定的文件。所以如果你想排除搜索一些文件,就可以將那些文件寫(xiě)在 .gitignore 文件里。

如果說(shuō) the silver searcher 大家可能不是很熟悉,但它的另一個(gè)名字可以就有點(diǎn)如雷貫耳了:ag 命令。

在 Ubuntu 系統(tǒng)上可以使用以下命令來(lái)安裝 ag 命令:

$ apt-get install silversearcher-ag

使用 ag 命令來(lái)搜索 py 文件里包含關(guān)鍵字 import 的內(nèi)容:

$ ag import --py

ag 命令十分強(qiáng)大,限于篇幅本文只介紹它最基本的用法,改天有時(shí)間的話再補(bǔ)充一下它其它非常強(qiáng)大的功能用法。

sift

sift 是使用 Golang 編寫(xiě)的 grep 替代品,這意味著它可以在 Linux,Windows,OS X  和其他系統(tǒng)上使用。它的速度快得離譜,而且有一些很酷的用例來(lái)代替 grep + awk 組合來(lái)提取數(shù)據(jù)。

我們?cè)偈褂?sift 命令來(lái)搜索所有 py 文件里包含 import 關(guān)鍵字的內(nèi)容:

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

RipGrep

RipGrep 與 Silver Searcher 類似,可以在 Mac、Linux 和 Windows 上運(yùn)行。它的 readme  文件聲稱,RipGrep 通常比其他任何搜索工具都快,它推崇 Rust 的正則表達(dá)式引擎,并像Silver Searcher一樣使用 .gitignore  文件來(lái)排除一些文件或目錄。

RipGrep 通常簡(jiǎn)稱為 rg ,我們?cè)偈褂?rg 命令來(lái)搜索所有 py 文件里包含 import 關(guān)鍵字的內(nèi)容:

rg --type=py import

以上是“Linux中常用的命令行搜索工具有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI