1. 程式人生 > 其它 >5 Linux 常用命令(四)搜尋命令

5 Linux 常用命令(四)搜尋命令

5 Linux 常用命令(四)搜尋命令

5.1 whereis命令

whereis是搜尋系統命令的命令,也就是說,whereis命令不能搜尋普通檔案,而只能搜尋系統命令。其基本資訊如下。

  • 命令名稱:whereis。

  • 英文原意:locate the binary, source, and manual page files for a command。

  • 所在路徑:/usr/bin/whereis。

  • 執行許可權:所有使用者。

功能描述:查詢二進位制命令、原始檔和幫助文件的命令。

[root@localhost ~]# whereis [選項] [命令]

示例:

[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

5.2 which命令

which命令的基本資訊如下。

  • 命令名稱:which。

  • 英文原意:shows the full path of (shell) commands。

  • 所在路徑:/usr/bin/which。

  • 執行許可權:所有使用者。

功能描述:列出命令的所在路徑。

[root@localhost ~]# which [選項] [命令]
選項:
-n  指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。
-p  與-n引數相同,但此處的包括了檔案的路徑。
-w  指定輸出時欄位的寬度。
-V  顯示版本資訊

示例:

[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls

5.3 find命令

find命令的基本資訊如下。

  • 命令名稱:find。

  • 英文原意:search for files in a directory hierarchy。

  • 所在路徑:/bin/find。

  • 執行許可權:所有使用者。

功能描述:在目錄中搜索檔案。

[root@localhost ~]# find [搜尋路徑] [選項] [搜尋內容]
選項:
-name: 按照檔名搜尋
-iname: 按照檔名搜尋,不區分檔名大小寫
-inum: 按照inode號搜尋
-size: 大小:
-atime [+|-]時間: 按照檔案訪問時間搜尋
-mtime [+|-]時間: 按照檔案資料修改時間搜尋
-ctime [+|-]時間: 按照檔案狀態修改時間搜尋
-perm 許可權模式: 查詢檔案許可權剛好等於“許可權模式”的檔案
-perm -許可權模式: 查詢檔案許可權全部包含“許可權模式”的檔案
-perm +許可權模式: 查詢檔案許可權包含“許可權模式”的任意一個許可權的檔案
-uid 使用者ID: 按照使用者ID查詢所有者是指定ID的檔案
-gid 組ID: 按照使用者組ID查詢所屬組是指定ID的檔案
-user 使用者名稱: 按照使用者名稱查詢所有者是指定使用者的檔案
-group 組名: 按照組名查詢所屬組是指定使用者組的檔案
-nouser: 查詢沒有所有者的檔案
-type d: 查詢目錄
-type f: 查詢普通檔案
-type l: 查詢軟連結檔案選項:

示例:

[root@localhost ~]# find / -name nginx.conf
/etc/nginx/nginx.conf

5.4 grep命令:補充命令

grep的作用是在檔案中提取和匹配符合條件的字串行。

  • 命令名稱:grep

  • 英文原意:Extract string information from file

  • 所在路徑: /usr/bin/grep

  • 執行許可權:所有使用者

功能描述:提取檔案中的字串資訊

[root@localhost ~]# grep [選項] [搜尋內容] [檔名]
選項:
-i: 忽略大小寫
-n: 輸出行號
-v: 反向查詢
--color=auto: 搜尋出的關鍵字用顏色顯示

示例:

[root@VM-32-17-centos ~]# grep -in root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

5.5 管道符:補充命令

命令格式: 命令1 | 命令2,命令1的正確輸出作為命令2的操作物件

示例:

[root@localhost ~]# netstat -anput | grep 8080
tcp 0 0 172.17.32.17:57980 172.17.32.17:28080 TIME_WAIT -
tcp 0 0 172.17.32.17:49058 169.254.0.55:8080 TIME_WAIT -
tcp 0 0 172.17.32.17:59366 172.17.32.17:28080 ESTABLISHED 7744/nginx: worker

5.6 命令的別名:補充命令

命令的別名,就是命令的小名,主要是用於照顧管理員使用習慣的。

  • 命令名稱:alias

  • 英文原意:Alias for the command

  • 所在路徑: /usr/bin/alias

  • 執行許可權:所有使用者

功能描述:命令的別名。

[root@localhost ~]# alias
#查詢命令別名
[root@localhost ~]# alias [別名]=['原命令']
#設定命令別名
[root@localhost ~]# unalias [別名]
#刪除命令別名

示例:

[root@localhost ~]# alias ser='systemctl restart network' #建立別名

5.7 常用快捷鍵:補充命令

快捷鍵作用
Tab鍵 命令或檔案補全
Ctrl+A 把游標移動到命令列開頭
Ctrl+E 把游標移動到命令列結尾
Ctrl+C 強制終止當前的命令
Ctrl+L 清屏,相當於clear命令
Ctrl+U 刪除或剪下游標之前的命令
Ctrl+Y 貼上ctrl+U剪下的內容

5.8 which和whereis的區別

  • whereis命令可以在查詢到二進位制命令的同時,查詢到幫助文件的位置;

  • 而which命令在查詢到二進位制命令的同時,如果這個命令有別名,則還可以找到別名命令。

5.9 find命令和grep命令的區別

  • find命令用於在系統中搜索符合條件的檔名,如果需要模糊查詢,則使用萬用字元進行匹配,萬用字元是完全匹配(find命令可以通過-regex選項,把匹配規則轉為正則表示式規則,但是不建議如此)。

  • grep命令用於在檔案中搜索符合條件的字串,如果需要模糊查詢,則使用正則表示式進行匹配,正則表示式是包含匹配。

5.10 萬用字元和正則表示式

萬用字元:用於匹配檔名,完全匹配

萬用字元作用
? 匹配一個任意字元
* 匹配0個或任意多個任意字元,也就是可以匹配任何內容
[] 匹配中括號中任意一個字元。例如,[abc]代表一定匹配一個字元,或者是a,或者是b,或者是c
[-] 匹配中括號中任意一個字元,-代表一個範圍。例如,[a-z]代表匹配一個小寫字母
[^] 邏輯非,表示匹配不是中括號內的一個字元。例如,0-9代表匹配一個不是數字的字元

正則表示式:用於匹配字串,包含匹配

正則符作用
? 匹配前一個字元重複0次,或1次(?是擴充套件正則,需要使用egrep命令)
* 匹配前一個字元重複0次,或任意多次
[] 匹配中括號中任意一個字元。例如,[abc]代表一定匹配一個字元,或者是a,或者是b,或者是c
[-] 匹配中括號中任意一個字元,-代表一個範圍。例如,[a-z]代表匹配一個小寫字母
[^] 邏輯非,表示匹配不是中括號內的一個字元。例如,^0-9代表匹配一個不是數字的字元
^ 匹配行首
$ 匹配行尾