一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux系統(tǒng)攻略 用腳本快速實現(xiàn)everything程序

Linux愛好者 ? 來源:Linux愛好者 良許 ? 作者:Linux愛好者 良許 ? 2020-08-14 16:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們知道,在 Windows 下,有一款非常實用的神器,叫作Everything,它可以在極短的時間里,搜索出來你所想要的文件/目錄,如下圖示:

Linux 下也有一些類似于 everything 的神器,比如:locate,Catfish,Tracker,等等。這些工具也十分強(qiáng)大,在此就不一一演示了,有興趣的小伙伴可以自行去體驗一下。

但是,其實我們自己也可以動手實現(xiàn)一個輕巧的 everything ,既可以滿足自己的需求,也可以提高自己的技術(shù),還能在程序媛面前秀一把~

廢話不多說,我們直接上腳本:

#!/bin/sh #lazyfind #GNUAll-PermissiveLicense #Copyinganddistributionofthisfile,withorwithoutmodification, #arepermittedinanymediumwithoutroyaltyprovidedthecopyright #noticeandthisnoticearepreserved.Thisfileisofferedas-is, #withoutanywarranty. ##helpfunction functionhelpu{ echo"" echo"Fuzzysearchforfilename." echo"$0[--match-case|--path]filename" echo"" exit } ##setvariables MATCH="-iname" SEARCH="." ##parseoptions while[True];do if["$1"="--help"-o"$1"="-h"];then helpu elif["$1"="--match-case"-o"$1"="-m"];then MATCH="-name" shift1 elif["$1"="--path"-o"$1"="-p"];then SEARCH="${2}" shift2 else break fi done ##sanitizeinputfilenames ##createarray,retainspaces ARG=("${@}") set-e ##catchobviousinputerror if["X$ARG"="X"];then helpu fi ##performsearch forqueryin${ARG[*]};do /usr/bin/find"${SEARCH}""${MATCH}""*${ARG}*" done

這段腳本不是良許的原創(chuàng),而是國外一個小哥的作品。這個腳本寫得還是非常簡潔,并且使用了一些常用的 Shell 編程技術(shù),好好去研究它也會提高自己的 Shell 編程水平。

那么這個腳本怎么用?

第一步,創(chuàng)建一個腳本文件。

比如創(chuàng)建的腳本文件是lazy_find.sh。

$vimlazy_find.sh

然后,我們再把上面的腳本內(nèi)容復(fù)制進(jìn)去,再按:wq保存并退出。

接著,我們再用chmod命令賦予這個腳本可執(zhí)行權(quán)限:

$chmod+xlazy_find.sh

第二步,使用腳本搜索文件。

最基本的用法,就是在腳本名稱后面直接跟上要搜索的文件名稱。不需要跟上完整的名稱,只需要其中一部分就好,比如:

$./lazy_find.shscr

運(yùn)行結(jié)果如下:

可以看到,這個腳本不僅可以搜索當(dāng)前路徑下的文件,還可以搜索當(dāng)前目錄下的子目錄及孫目錄,也就是具有遞歸搜索的功能。

上面這種用法是不匹配大小寫的效果,也就是說,既可以匹配到scr,也可以匹配到Scr。那么,如果想要區(qū)分大小寫,需要怎么做?

只需加上-m選項即可。

$./lazy_find.sh-mscr

運(yùn)行結(jié)果如下:

可以看到,Scr已經(jīng)沒有再被匹配到了。

如果我們不想搜索當(dāng)前目錄,而是想要搜索指定目錄,則只需加上--path,并指定想要搜索的路徑即可。

比如,我們想在家目錄下搜索包含有hello關(guān)鍵字的文件/目錄,可以這么運(yùn)行命令:

$./lazy_find.sh--path~hello

運(yùn)行結(jié)果如下:

第三步,自定義命令調(diào)用腳本

在上面的使用方法中,我們需要自己手動去運(yùn)行那個腳本文件,這樣肯定是非常不方便的。我們可以自定義一個命令,比如lf,當(dāng)運(yùn)行這個命令時,就自動調(diào)用這個腳本,從而大大提高效率。

有 Linux 基礎(chǔ)的小伙伴應(yīng)該想到了,我們可以使用alias命令來實現(xiàn)這個效果。為了能夠在系統(tǒng)重啟之后lf命令依然能使用,我們直接在.bashrc里進(jìn)行修改。

$vim~/.bashrc

在.bashrc文件的末尾增加這么一行語句即可:

aliaslf=~/bin/lazy_find.sh#路徑別照抄,寫你自己的腳本路徑??!

增加完語句之后,按:wq保存并退出。然后,再使能我們的修改:

$.~/.bashrc

OK,大功告成了,我們在任意地方都可以使用這個命令了。

小結(jié)

本文我們通過一段腳本來實現(xiàn) everything 的一些基本功能,通過學(xué)習(xí)這個腳本,我們可以提高自己的 Shell 編程能力,同時也可以學(xué)會如何自定義命令來調(diào)用自己寫的腳本。

本文比較基礎(chǔ),適合小白入門。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213849
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3614

    瀏覽量

    91432
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    83005
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    398

    瀏覽量

    28471

原文標(biāo)題:自己動手在 Linux 系統(tǒng)實現(xiàn)一個 everything 程序

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式Linux啟動時間優(yōu)化的秘密之四-啟動腳本

    系統(tǒng)啟動 有多種方法可以減少啟動應(yīng)用程序之前執(zhí)行啟動腳本中花費(fèi)的時間: 僅在啟動必要的依賴項之后,盡快啟動應(yīng)用程序。 簡化shell腳本
    發(fā)表于 04-21 09:22 ?2707次閱讀
    嵌入式<b class='flag-5'>Linux</b>啟動時間優(yōu)化的秘密之四-啟動<b class='flag-5'>腳本</b>

    幾個經(jīng)典高效的linux腳本

    今天浩道跟大家分享硬核shell干貨,以下幾個腳本皆為經(jīng)典高效的linux腳本,拿來即用!
    發(fā)表于 10-21 09:04 ?1633次閱讀

    Linux Shell腳本入門到實戰(zhàn)詳解

    Linux Shell腳本入門到實戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?787次閱讀

    Linux shell腳本分享

    今天浩道跟大家分享幾個Linux運(yùn)維中常用到的shell腳本
    發(fā)表于 07-18 09:53 ?679次閱讀
    <b class='flag-5'>Linux</b> shell<b class='flag-5'>腳本</b>分享

    [分享資料]Linux Shell Scripting Cookbook圖靈程序設(shè)計叢書:Linux Shell腳本攻略

    ,《Linux Shell腳本攻略》的內(nèi)容由淺入深且緊貼實踐,使得他們能夠快速地學(xué)以致用,而專業(yè)人士也能從《Linux Shell
    發(fā)表于 09-11 23:56

    LINUX SHELL腳本攻略(中文版帶書簽)

    LINUX SHELL腳本攻略(中文版帶書簽)網(wǎng)絡(luò)資源僅供大家學(xué)習(xí)
    發(fā)表于 12-13 09:47

    Linux下組態(tài),快速實現(xiàn)監(jiān)控系統(tǒng)

    `基于紫金橋跨平臺跨平臺實時數(shù)據(jù)庫,可Linux系統(tǒng)快速實現(xiàn)一個監(jiān)控系統(tǒng)。1、組態(tài)流程和傳統(tǒng)windows組態(tài)差不多,所以上手很快。2、不
    發(fā)表于 12-23 15:46

    如何通過Linux系統(tǒng)的Shell用戶訪問操作系統(tǒng)內(nèi)核服務(wù)

    1、Linux Shell編程介紹Shell 是一個 C 語言編寫的程序,通過 Shell 用戶可以訪問操作系統(tǒng)內(nèi)核服務(wù)。Shell 既是一種命令語言,又是一種
    發(fā)表于 06-14 16:50

    Linux腳本教程

    Linux腳本教程
    發(fā)表于 10-30 15:48 ?12次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>腳本</b>教程

    linux shell 腳本入門

    1. Linux 腳本編寫基礎(chǔ) 1.1 語法基本介紹 1.1.1 開頭 程序必須以下面的行開始(必須方在文件的第一行): #!/bin/sh 符號#!用來告訴系統(tǒng)它后面的參數(shù)是用來執(zhí)行
    發(fā)表于 11-07 15:44 ?11次下載

    Linux常見調(diào)用shell腳本的三種方法

    編寫Linux下的應(yīng)用程序時有時需要調(diào)用Linux的相關(guān)shell腳本,在這些腳本中通過調(diào)用Linux
    的頭像 發(fā)表于 06-28 14:28 ?8676次閱讀

    Linux系統(tǒng)命令及shell腳本實踐指南

    Linux系統(tǒng)命令及shell腳本實踐指南資料下載。
    發(fā)表于 06-01 14:47 ?28次下載

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發(fā)表于 01-11 16:50 ?4次下載

    Linux系統(tǒng)中調(diào)用腳本的常見方法

    linux系統(tǒng)中有多種方法可以在系統(tǒng)啟動后調(diào)用腳本,接下來介紹幾種常見的方法
    的頭像 發(fā)表于 12-13 18:16 ?1381次閱讀

    Linux從零到精通:最簡單的Shell腳本入門教程

    case語句 shell變量數(shù)組 shell腳本前言 |為什么學(xué)習(xí)shell編程 Shell腳本語言是實現(xiàn)Linux/UNIX系統(tǒng)
    的頭像 發(fā)表于 12-05 09:56 ?1573次閱讀
    <b class='flag-5'>Linux</b>從零到精通:最簡單的Shell<b class='flag-5'>腳本</b>入門教程