centos7如何查找文件?

 

 

 

參考https://blog.csdn.net/allyli0022/article/details/77989664python

1、find

根據文件的屬性進行查找,如文件名,文件大小,全部者,所屬組,是否爲空,訪問時間,修改時間等正則表達式

基本格式: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

 

2、grep

根據文件的內容進行查找,會對文件的每一行按照給定的模式(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

 

3、which

查看可執行文件的位置,在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。也就是說,使用which命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪個位置的命令。

4、whereis

查看可執行文件的位置及相關文件,

只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息。
whereis命令會查找一個記錄系統內文件信息的數據庫文件,因此速度會很快。缺點是數據庫文件並非實時更新,默認狀況一星期更新一次,所以若是最近刪除的文件或者建立的文件是有可能錯誤的顯示的。爲了防止這種狀況,能夠手動的強制更新數據庫文件。

 

 

5、locate

配合數據庫緩存,快速查看文件位置。能夠快速的找到文件的位置,由於locate查找的是數據庫的文件來肯定文件的位置,而並非深刻各個文件系統查找。通常狀況下,數據庫文件經過corntab自動更新,一般天天更新一次。

相關文章
相關標籤/搜索