Linux 常用命令詳解 查詢命令

2021-08-26 12:40:31 字數 3426 閱讀 9816

【連續筆記第2天】

find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。

find 起始目錄 選項 引數
-name《範本樣式》:指定字串作為尋找檔案或目錄的範本樣式;

-iname《範本樣式》:此引數的效果和指定「-name」引數類似,但忽略字元大小寫的差別;

-path《範本樣式》:指定字串作為尋找目錄的範本樣式;

-regex《範本樣式》:指定字串作為尋找檔案或目錄的範本樣式;(正規表示式)

起始目錄:查詢檔案的起始目錄

引數:是查詢檔案/目錄字元

find /home -name

"*.txt"

//在/home目錄下查詢以.txt結尾的檔名

find /home -iname

"*.txt"

//忽略大小寫

find /usr/

-path

"*locate*"

//匹配檔案路徑或者問及那

find .

-regex

".*\(\.txt\|\.pdf\)$"

//基於正規表示式匹配檔案路徑

find .

-iregex

".*\(\.txt\|\.pdf\)$"

//同上,但忽略大小寫

locate命令slocate命令都用來查詢檔案或目錄。

locate命令其實是find -name的另一種寫法,但是要比後者快得多,原因在於它不搜尋具體目錄,而是搜尋乙個資料庫/var/lib/locatedb,這個資料庫中含有本地所有檔案資訊。linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。

locate [選項] [引數]

選項:-d《目錄》或--database=《目錄》:指定資料庫所在的目錄;

-u:更新slocate資料庫;

--help:顯示幫助;

--version:顯示版本資訊。

locate 檔名

locate /etc/sh //搜尋etc目錄下所有以sh開頭的檔案

locate ~/m //搜尋使用者主目錄下,所有以m開頭的檔案

locate -i ~/m //忽略大小寫

grep(global search regular expression(re) and print out the line,全面搜尋正規表示式並把行列印出來)是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來(用於查詢檔案裡符合條件的字串 )

grep [選項] 字串 檔案

eg:grep match_pattern file_name

grep

"match_pattern" file_name

-a 不要忽略二進位制資料。(用於在乙個二進位制檔案中查詢指定的字串)

-a《顯示列數》 除了顯示符合範本樣式的那一行之外,並顯示該行之後的內容。

-b 在顯示符合範本樣式的那一行之外,並顯示該行之前的內容。

-c 計算符合範本樣式的列數。

-c《顯示列數》或-《顯示列數》 除了顯示符合範本樣式的那一列之外,並顯示該列之前後的內容。

-d《進行動作》 當指定要查詢的是目錄而非檔案時,必須使用這項引數,否則grep命令將回報資訊並停止動作。

-e《範本樣式》 指定字串作為查詢檔案內容的範本樣式。

-e 將範本樣式為延伸的普通表示法來使用,意味著使用能使用擴充套件正規表示式。(按正規表示式查詢字串)

-f《範本檔案》 指定範本檔案,其內容有乙個或多個範本樣式,讓grep查詢符合範本條件的檔案內容,格式為每一列的範本樣式。

-f 將範本樣式視為固定字串的列表。

-g 將範本樣式視為普通的表示法來使用。

-h 在顯示符合範本樣式的那一列之前,不標示該列所屬的檔名稱。

-h 在顯示符合範本樣式的那一列之前,標示該列的檔名稱。

-i 忽略字元大小寫的差別。

-l 列出檔案內容符合指定的範本樣式的檔名稱。

-l 列出檔案內容不符合指定的範本樣式的檔名稱。

-n 在顯示符合範本樣式的那一列之前,標示出該列的編號。

-q 不顯示任何資訊。

-r/-r 此引數的效果和指定「-d recurse」引數相同。

-s 不顯示錯誤資訊。

-v 反轉查詢。

-w 只顯示全字符合的列。

-x 只顯示全列符合的列。

-y 此引數效果跟「-i」相同。

-o 只輸出檔案中匹配到的部分。

常用選項:

-a-e

-v

grep match_pattern file_name //在檔案中搜尋乙個單詞,命令會返回乙個包含「match_pattern」的文字行

grep "match_pattern" file_name

grep "match_pattern" file_1 file_2 file_3 ... //在多個檔案中查詢

grep -v "match_pattern" file_name //輸出除之外的所有行 -v 選項

grep -e "[1-9]+" //使用正規表示式 -e 選項

或egrep "[1-9]+"

netstat -an | grep ":22" //結合管道一起使用(重要)

grep 命令執行後 顯示匹配到二進位制檔案

grep 命令執行後 顯示匹配到二進位制檔案,說明grep 的字串 在乙個不開源的二進位制檔案原始碼中有用到,如果要看到裡面再具體的字元,就用grep -a命令,不過意義也不大,只要grep 命令執行後 顯示匹配到二進位制檔案說明該字串必然在這個二進位制的原始碼中有呼叫到,這對搞清楚哪個函式,變數是否被乙個不開源的程式呼叫了有很大的作用。

先用man strings來看看:strings - print the strings of printable characters in files.

意思是, 列印檔案中可列印的字元。 我來補充一下吧, 這個檔案可以是文字檔案(test.c), 可執行檔案(test), 動態鏈結庫(test.o), 靜態鏈結庫(test.a),二進位制檔案

strings 檔名

Linux常用命令詳解

ls命令是linux下最常用的命令之一,ls跟dos下的dir命令是一樣的都是用來列出目錄下的檔案,下面我們就來一起看看ls的用法 英文全名 list即列表的意思,當我們學習某種東西的時候要做到知其所以然,當你知道了這個東西大概是個什麼了以後你的思維就會聯想到很多的東西學習的就會很快。1.ls a ...

linux常用命令詳解

1 熟悉date,cal,who,echo,clear,passwd命令。date 顯示或設定系統的日期和時間 date d 顯示由字串指定的時間 date s 設定系統時間 超級使用者下 cal 顯示日曆 cal y 顯示年度日曆 who 顯示所有使用者名稱 所用終端 註冊到系統的時間。who q...

linux常用命令詳解

linux命令簡寫和全稱 var 包含系統一般執行時要改變的資料。通常這些資料所在的目錄的大小是要經常變化或擴充的。原來 var 目錄中有些內容是在 usr 中的,但為了保持 usr 目錄的相對穩定,就把那些需要經常改變的目錄放到 var 中了。每個系統是特定的,即不通過網路與其他計算機共享。下面列...