『學了就忘』Linux基礎命令 — 27、搜尋操作相關命令

繁華似錦Fighting發表於2021-11-06

1、whereis命令

whereis是搜尋系統命令的命令,也就是說,whereis命令不能搜尋普通檔案,而只能搜尋系統命令

whereis命令的基本資訊如下:

  • 命令名稱:whereis
  • 英文原意:locate the binary,source,and manual page files for a command
  • 所在路徑:/usr/bin/whereis
  • 執行許可權:所有使用者。
  • 功能描述:查詢二進位制命令、原始檔和幫助文件的命令。

2、which命令

which也是搜尋系統命令的命令。

which命令的基本資訊如下

  • 命令名稱:which
  • 英文原意:shows the full path of(shell)commands
  • 所在路徑:/usr/bin/which
  • 執行許可權:所有使用者。
  • 功能描述:列出命令的所在路徑。

whereis命令的區別在於

  • whereis命令可以在查詢到二進位制命令的同時,查詢到幫助文件的位置;
  • which命令在查詢到二進位制命令的同時,如果這個命令有別名,則還可以找到別名命令。

示例:

# 用whereis命令查詢系統命令
[root@192 ~ ]# whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

/bin/ls:表示命令的位置
/usr/share/man/man1p/ls.1p.gz和/usr/share/man/man1/ls.1.gz:ls的幫助文件位置

# 用which命令查詢系統命令
[root@192 ~]# which ls
alias ls='ls --color=auto'
	/bin/ls

alias ls='ls --color=auto':別名的顯示。ls的全名為:ls --color=auto

擴充套件:檢視系統中的別名
[root@192 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

重點記住`ll`命令代表的意思。

3、locate命令

locate命令才是可以按照檔名搜尋普通檔案的命令。

  • 優點:按照資料庫搜尋,搜尋速度快(比整盤掃描快很多),消耗資源小。資料庫位置/var/lib/mlocate/mlocate.db,可以使用updatedb命令強制更新資料庫。
  • 缺點:只能按照檔名來搜尋檔案,而不能執行更復雜的搜尋,比如按照許可權、大小、修改時間等搜尋檔案。

提示:
有的時候我們知道一個檔案存在,但是找不到位置,用locate命令也搜不到。就可能是資料庫沒有進行更新,用updatedb命令強制更新資料庫即可解決。(也可以退出登陸系統再進入,也可以進行更新,解決問題。)

locate命令的基本資訊如下:

  • 命令名稱:locate
  • 英文原意:find files by name
  • 所在路徑:/usr/bin/locate
  • 執行許可權:所有使用者。
  • 功能描述:按照檔名搜尋檔案。
[root@192 ~]# locate abcde 
/root/abcde

關於locate命令的配置檔案

updatedb.conf配置檔案對我們來說平時是用不著的。(記住這個配置檔名,瞭解即可)

# 開啟配置檔案,裡邊有4行。
[root@localhost ~ ] # vi/etc/updatedb.conf 

# 開啟搜尋限制,也就是讓這個配置檔案生效
PRUNE BIND MOUNTS="yes"

# 在locate執行搜尋時,禁止搜尋這些檔案系統型別,這些檔案系統都不是Linux系統自帶的檔案系統。(Linux系統認為搜尋這些沒有意義)
PRUNEFS="……"

# 在locate執行搜尋時,禁止搜尋帶有這些副檔名的檔案。(這些一般都是檔案版本控制系統,系統認為這些檔案變化太快,搜尋這些檔案沒有意思)
PRUNENAMES="……"

# 在locate執行搜尋時,禁止搜尋這些系統目錄
PRUNEPATHS="……"

注意:在些目錄中,就有我們常用練習的tmp目錄。如果需要locate命令在tmp目錄生效,手動修改一下updatedb.conf配置檔案,重啟一下就生效了。

相關文章