首頁 > 運維 > linux運維 > 主體

Linux雲端伺服器的查找指令有哪些及怎麼使用

PHPz
發布: 2023-05-15 08:43:05
轉載
1499 人瀏覽過

whereis

whereis指令用來尋找二進位檔案、原始程式碼和說明手冊。 whereis僅在常用的幾個安裝目錄的範圍內查找,不會查找整個系統上的所有檔案。這雖然是whereis的局限性,但也正是由於這個原因,whereis的查找速度非常快。另外值得注意的是,whereis不會查找那些shell內建的指令。

例如,我們要找ls指令:

whereis ls
登入後複製

結果如下,其中/bin/ls是ls的路徑,另外兩個是幫助手冊的路徑。

ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
登入後複製

如果我們把ls複製到home目錄和/usr/bin/ls目錄,再次執行whereis指令:

cp /bin/ls ~
cp /bin/ls /usr/bin/ls
whereis ls
登入後複製

結果如下,可以發現,whereis並沒有查找home目錄,因為home目錄並不是常用的安裝目錄之一。

ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
登入後複製

用whereis找出cd這些shell內建的指令:

whereis cd
登入後複製

結果如下,只顯示了幫助手冊的路徑。

cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
登入後複製

locate

locate指令是基於檔案資料庫(/var/lib/mlocate/mlocate.db)的尋找工具,檔案資料庫是整個檔案系統的一個鏡像。 locate指令的查找模式預設是模糊符合的,也就是說包含檔案名稱的所有檔案都會被查找到,因此傳回結果通常會比較多。值得注意的是,文件資料庫通常每天更新一次,因此可能無法找到一些剛剛建立或刪除的文件。我們可以執行updatedb指令手動更新這個資料庫。由於是基於文件資料庫而不是檔案系統進行查找,locate的執行速度也是相當快的。

仍然以ls為例進行查找:

locate ls
登入後複製

我們會得到大量含有ls的結果。為了讓輸出結果更精確,可以用-b指令,也就是使用精確匹配模式來找出。

locate -b "\ls"
登入後複製

這樣輸出結果就只包含ls指令的所在的路徑了。

/bin/ls
登入後複製

which

which指令的尋找範圍是環境變數PATH,並且預設只回傳第一個結果,執行速度很快。如果我們查找的是別名,which指令也會在尋找之前,對應到別名對應的真實路徑。

例如我們定義了一個名為ll的別名,查找指令如下:

which ll
登入後複製

結果如下:

alias ll='ls -l --color=auto'
/bin/ls
登入後複製

如果我們要顯示全部結果,加上-a指令即可。

which -a your_command
登入後複製

type

type指令用來顯示某個指令的類型,例如別名、關鍵字、函數、內建指令、檔案等。和whereis指令一樣,type指令也只在常用的幾個安裝目錄的範圍內尋找。

顯示cd指令的類型:

type cd

cd is a shell builtin
登入後複製

顯示某個二進位檔案的類型:

type sudo

sudo is /usr/bin/sudo
登入後複製

顯示別名:

type ls

ls is aliased to `ls --color=auto'
登入後複製

find

#在5種查找指令中,find指令是功能最強大的指令,也是執行速度最慢的指令。和其他4種指令不同,find指令是基於檔案系統的查找,一個檔案節點一個檔案節點的查找。 find指令甚至可以對尋找的結果進行後續的操作。

find指令的基本使用方法:

find [path] [option] [action]
登入後複製

在home目錄及其子目錄中,尋找檔案名稱為aaa的檔案:

find ~ -name 'aaa'
登入後複製

在整個檔案系統中,尋找修改時間24小時內的檔案:

find / -mtime 0
登入後複製

在nginx的網頁目錄及其子目錄中,找出所屬使用者為nginx的檔案:

find /usr/share/nginx/html/ -user nginx
登入後複製

在目前目錄中,找出權限為744的文件:

find -perm -0744
登入後複製

在目前目錄中,尋找文件名稱為aaa的文件,並顯示其詳細資訊:

find -name 'aaa' -exec ls -l {} \;
登入後複製

以上是Linux雲端伺服器的查找指令有哪些及怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!