參考https://blog.csdn.net/allyli0022/article/details/77989664python
根據文件的屬性進行查找,如文件名,文件大小,全部者,所屬組,是否爲空,訪問時間,修改時間等正則表達式
基本格式:find path expression數據庫
1.按照文件名查找express
一、find / -name httpd.conf #在根目錄下查找httpd.conf文件,表示在整個硬盤下查找apache
二、find /etc -name httpd.conf #在/etc目錄下文件httpd.confcentos
三、find /etc -name '*srm*' #使用通配符*(0或者任意多個)。表示在/etc目錄下查找文件名中含有字符串‘srm’的文件緩存
四、find . -name 'srm*' #表示當前目錄下查找文件名開頭是字符串‘srm’的文件app
根據文件的內容進行查找,會對文件的每一行按照給定的模式(patter)進行匹配查找spa
基本格式:find expression.net
1.主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-i:不區分大小寫
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的全部行。
pattern正則表達式主要參數:
\: 忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
^#: 以#開頭
#$: 以#結尾
^$: 空行
|: 或者
$: 匹配正則表達式的結束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:全部的單個字符。
* :有字符,長度能夠爲0。
例如:
一、grep查找文件中匹配的內容
[root@bogon 桌面]# grep 'test' t* #顯示全部以t開頭的文件中包含 test的行
test1:111111111111
[root@bogon 桌面]# cat test.txt
test1:111111111111
tt:
xx: 111123444
a: 1
b: 2
c:11
二、grep查找日誌
[root@bogon httpd]# grep -c '503' /var/log/httpd/error_log # 搜索日誌,查詢有多少條503錯誤
0
[root@bogon httpd]# grep -n 'error' /var/log/httpd/error_log # 搜索含有 error 字樣的行,而且輸出行號
[root@bogon httpd]# grep -nv 'error' /var/log/httpd/error_log #搜索沒有 error 字樣的行,而且輸出行號
1:[Wed Dec 05 17:44:34.732664 2018] [suexec:notice] [pid 10494] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
2:AH00557: httpd: apr_sockaddr_info_get() failed for bogon
三、搜索尋找安裝的軟件版本有幾個
rpm -qa | grep -i python # centos下查看安裝的Python版本,不區分大小寫,-q(查詢)-a(全部)
注意:rpm,Redhat Package Manager,即爲紅帽公司爲RHEL開發的專用包管理器,後來更改成RPM Package Manager,相似於GNU項目,使用遞歸命名,GNU's Not Unix.
四、過濾配置文件的註釋符號#
[root@bogon httpd]# grep -v '#' /etc/httpd/conf/httpd.conf # -v:表示不包含匹配文本的全部行
五、查詢每一個網卡和ip地址
[root@bogon httpd]# ifconfig | grep -n inet # -n:顯示匹配行及行號
六、統計字符串出現的次數
[root@bogon 桌面]# cat test.txt
test1:111111111111
tt:
xx: 111123444
a: 1
b: 2
c:11
[root@bogon 桌面]# grep -c 'tt' test.txt # -c:只輸出匹配行的計數
1
[root@bogon 桌面]# grep -n 'tt' test.txt # -n:顯示匹配行及行號
2:tt:
七、只列出文件名
[root@bogon zabbix]# grep -l 'PidFile' *.conf # -l:查詢多文件時只輸出包含匹配字符的文件名
zabbix_agentd.conf
zabbix_server.conf
八、精準全匹配搜索(-w)
[root@bogon zabbix]# grep -w 'PidFile' zabbix_agentd.conf
### Option: PidFile
# PidFile=/tmp/zabbix_agentd.pid
PidFile=/var/run/zabbix/zabbix_agentd.pid
九、高亮顯示搜索結果(--color)
[root@bogon zabbix]# grep --color apache /etc/passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
查看可執行文件的位置,在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。也就是說,使用which命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪個位置的命令。
查看可執行文件的位置及相關文件,
配合數據庫緩存,快速查看文件位置。能夠快速的找到文件的位置,由於locate查找的是數據庫的文件來肯定文件的位置,而並非深刻各個文件系統查找。通常狀況下,數據庫文件經過corntab自動更新,一般天天更新一次。