檢索關(guān)鍵字linux命令,linux 檢索關(guān)鍵字

在Linux系統(tǒng)中,常使用什么命令檢索關(guān)鍵字

方法一:find命令

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、靜海網(wǎng)站維護(hù)、網(wǎng)站推廣。

find是最常見和最強(qiáng)大的查找命令,你可以用它找到任何你想找的文件。

命令格式:find 指定目錄 指定條件 指定動作

- 指定目錄: 所要搜索的目錄及其所有子目錄。默認(rèn)為當(dāng)前目錄。

- 指定條件: 所要搜索的文件的特征。

- 指定動作: 對搜索結(jié)果進(jìn)行特定的處理。

如果什么參數(shù)也不加,find默認(rèn)搜索當(dāng)前目錄及其子目錄,并且不過濾任何結(jié)果(也就是返回所有文件),將它們?nèi)硷@示在屏幕上。

使用實例:

$ find . -name 'my*'

搜索當(dāng)前目錄(含子目錄,以下同)中,所有文件名以my開頭的文件。

$ find . -name 'my*' -ls

搜索當(dāng)前目錄中,所有文件名以my開頭的文件,并顯示它們的詳細(xì)信息。

$ find . -type f -mmin -10

搜索當(dāng)前目錄中,所有過去10分鐘中更新過的普通文件。如果不加-type f參數(shù),則搜索普通文件+特殊文件+目錄。

方法二:locate命令

locate命令其實是"find -name"的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫(/var/lib/locatedb),這個數(shù)據(jù)庫中含有本地所有文件信息。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數(shù)據(jù)庫。

使用實例:

$ locate /etc/sh

搜索etc目錄下所有以sh開頭的文件。

$ locate ~/m

搜索用戶主目錄下,所有以m開頭的文件。

$ locate -i ~/m

搜索用戶主目錄下,所有以m開頭的文件,并且忽略大小寫。

Linux下文件搜索、查找、查看命令

1、最強(qiáng)大的搜索命令:find 查找各種文件的命令 

2、在文件資料中查找文件:locate

3、搜索命令所在的目錄及別名信息:which 

4、搜索命令所在的目錄及幫助文檔路徑:whereis

5、在文件中搜尋字符串匹配的行并輸出:grep

6、分頁顯示一個文件或任何輸出結(jié)果:more

7、分頁顯示一個文件并且可以回頭:less

8、指定顯示前多少行文件內(nèi)容:head

9、指定顯示文件后多少行內(nèi)容:tail

10、查看一個文件:cat

11、查看文件內(nèi)容多少字符多少行多少字節(jié):wc

12、排序文件內(nèi)容:sort

一、根據(jù) 文件或目錄名稱 搜索

find 【搜索目錄】【-name或者-iname】【搜索字符】:-name和-iname的區(qū)別一個區(qū)分大小寫,一個不區(qū)分大小寫

eg:在/etc 目錄下搜索名字為init的文件或目錄

①、find /etc -name init (精準(zhǔn)搜索,名字必須為 init 才能搜索的到)

②、find /etc -iname init (精準(zhǔn)搜索,名字必須為 init或者有字母大寫也能搜索的到)

③、find /etc -name *init (模糊搜索,以 init 結(jié)尾的文件或目錄名)

④、find /etc -name init??? (模糊搜索,? 表示單個字符,即搜索到 init___)

二、根據(jù) 文件大小 搜索

eg:在根目錄下查找大于 100M 的文件

find / -size +204800

這里 +n 表示大于,-n 表示小于,n 表示等于

1 數(shù)據(jù)塊 == 512 字節(jié) 0.5KB,也就是1KB等于2數(shù)據(jù)塊

100MB == 102400KB204800數(shù)據(jù)塊

三、根據(jù) 所有者和所屬組 搜索

①、在home目錄下查詢所屬組為 root 的文件

find /home -group root

②、在home目錄下查詢所有者為 root 的文件

find /home -user root

四、根據(jù) 時間屬性 搜索

find 【路徑】【選項】【時間】

選項有下面三種:-amin 訪問時間

-cmin 文件屬性被更改

-mmin 文件內(nèi)容被修改

時間:+n,-n,n分別表示超過n分鐘,n分鐘以內(nèi)和n分鐘

eg:在 /etc 目錄下查找5 分鐘內(nèi)被修改過屬性的文件和目錄

find /etc -cmin -5

五、根據(jù) 文件類型或i節(jié)點 搜索

 -type 根據(jù)文件類型查找:

 f表示文件,d表示目錄,l表示軟鏈接

eg:查找 /home 目錄下文件類型是目錄的

find /home -type d

-inum 根據(jù)i節(jié)點查找

eg:查找 /tmp 目錄下i節(jié)點為400342的文件或目錄

  find /tmp -inum 400342

六、組合條件 搜索

這里有兩個參數(shù):

①、-a 表示兩個條件同時滿足(and)

②、-o 表示兩個條件滿足任意一個即可(or)

范例:查找/etc目錄下大于80MB同時小于100MB的文件

find /etc -size +163840 -a -size -204800

語法:locate【文件名】 -i 不區(qū)分大小寫

注意:這里和 find 命令是有區(qū)別的,find是全盤檢索,而locate 是在文件資料庫中進(jìn)行搜索。所以locate命令的執(zhí)行要比find命令執(zhí)行速度快很多。但是這里有個問題,文件資料庫是需要不斷更新的。我們新創(chuàng)建的文件如果不更新 文件資料庫,使用 locate 是查找不到的。

updatedb 手動更新資料庫,但是對于/tmp目錄下的新建文件,是更新不到文件資料庫的,因為/tmp目錄不屬于文件資料庫的收錄范圍。

eg:locate hcf

功能描述:搜索命令所在的目錄及別名信息

 語法:which【命令】

 eg:which ls

功能描述:搜索命令所在的目錄及幫助文檔路徑

 語法:whereis【命令】

 eg:whereis ls

功能描述:在文件中搜尋字符串匹配的行并輸出

 語法:grep -iv 【指定字符串】【文件】

-i 不區(qū)分大小寫

-v 排除指定字符串

 eg:查找 /root/install.log 文件中包含 mysql 字符串的行,并輸出

grep mysql /root/install.log

本搜索工具,根據(jù)用戶指定的模式,對目標(biāo)文件逐行進(jìn)行匹配檢查,打印匹配到的行

grep是在文件中搜索匹配的字符串,是在文件中進(jìn)行內(nèi)容搜索,這個命令后面用到的比較多

描述:

分頁顯示一個文件或任何輸出結(jié)果

用于查看純文本文件(較長的)格式

格式:

more[選項] 文件

less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 less 在查看之前不會加載整個文件。

head[必要參數(shù)][選擇參數(shù)][文件]

用于顯示指定文件開始多少行內(nèi)容

命令參數(shù):

-n 10 顯示前10行

-n -10 正常輸出但不顯示最后的10行

eg:顯示new.txt的前兩行內(nèi)容

head -n 2 new.txt

head -2 new.txt

tail[必要參數(shù)][選擇參數(shù)][文件]

用于顯示指定文件末尾多少行內(nèi)容

命令參數(shù):

-n 10 顯示后面10行

-f 持續(xù)刷新顯示的內(nèi)容

eg:顯示new.txt的末尾兩行內(nèi)容

tail -n 2 new.txt

tail -2 new.txt

eg:指定從第二行開始顯示

tail -n +2 new.txt

描述:一次顯示整個文件內(nèi)容

cat 命令 用于查看純文本文件(較短)

 cat [選項] [文件]…

描述:wc 命令默認(rèn)情況下會打印換行符數(shù)、單詞數(shù)和字符數(shù)。

 用法:wc [選項] [文件]

用法:sort [選項] [文件]

轉(zhuǎn)自: Linux下文件搜索、查找、查看命令_黃小小的博客-CSDN博客_linux 搜索

linux服務(wù)器文本關(guān)鍵字搜索替換

1、vi命令下的查找和替換

1.1 vi下的查找

/helloEnter :向下查找hello匹配字符串

?helloEnter:向上查找hello匹配字符串

使用了查找命令之后,使用如下兩個鍵快速查找:

n:按照同一方向繼續(xù)查找

N:按照反方向查找

hello是需要匹配的字符串,例如:

/nameEnter? ? ? #查找name

/nameEnter? ? #查找name單詞(注意前后的空格)

除此之外,hello還可以使用一些特殊字符,包括(/、^、$、*、.),其中前三個這兩個是vi與vim通用的,“/”為轉(zhuǎn)義字符。

/^nameEnter? ? #查找以name開始的行

/name$Enter? ? #查找以name結(jié)束的行

//^nameEnter? ? #查找^name字符串

1.2 vi下的替換

:s/name/title/? ? ? ? #替換當(dāng)前行第一個 name 為 title

:s/name/title/g? ? #替換當(dāng)前行所有 name 為 title

:n,$s/name/title/? ? #替換第 n 行開始到最后一行中每一行的第一個 name 為 title

:n,$s/name/title/g? ? #替換第 n 行開始到最后一行中每一行所有 name 為 title

#(n 為數(shù)字,若 n 為 .,表示從當(dāng)前行開始到最后一行)

:%s/name/title/? ? ? ? #(等同于 :g/name/s//title/) 替換每一行的第一個 name 為 title

:%s/name/title/g? ? #(等同于 :g/name/s//title/g) 替換每一行中所有 name 為 title

可以使用 #或+ 作為分隔符,此時中間出現(xiàn)的 / 不會作為分隔符

:s#name/#title/#? ? ? ? 替換當(dāng)前行第一個 name/ 為 title/

:%s+/oradata/apras/+/user01/apras1+ (

使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/

2.sed和grep配合

命令:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`

作用:將當(dāng)前目錄(包括子目錄)中所有txt文件中的yyyy字符串替換為xxxx字符串。其中,

-i 表示操作的是文件,``括起來的grep命令,表示將grep命令的的結(jié)果作為操作文件。

s/yyyy/xxxx/表示查找yyyy并替換為xxxx,后面跟g表示一行中有多個yyyy的時候,都替換,而不是僅替換第一個

另外,如果不需要查找子目錄,僅需要在當(dāng)前目錄替換,用sed命令就行了,命令如下:sed -i s/xxxx/yyyy/g ./*.txt

3.find命令查找和替換

命令格式:find -name '要查找的文件名' | xargs perl -pi -e 's|被替換的字符串|替換后的字符串|g'

#查找替換當(dāng)前目錄下包含字符串并進(jìn)行替換

find -name '*.txt' | xargs perl -pi -e 's|江蘇|上海|g'

#遞歸查找替換

find . -type f -name '*.html' | xargs perl -pi -e 's|蘇州|上海|g'

分享名稱:檢索關(guān)鍵字linux命令,linux 檢索關(guān)鍵字
網(wǎng)站URL:http://muchs.cn/article48/hcjjep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、全網(wǎng)營銷推廣、建站公司、網(wǎng)站策劃、域名注冊、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營