日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 命令 which whereis whatis locate find

發布時間:2023/12/20 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 命令 which whereis whatis locate find 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
which?????在PATH變量指定的路徑中,搜索某個系統命令的位置,并且返回第一個搜索結果。 whereis ? 只能用于程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。在數據庫中查詢 whatis 顯示關鍵字在哪些幫助手冊中存在 locate????配合數據庫查看文件位置。 find??????實際搜尋硬盤查詢文件名稱。

whatis:使用mkwhatis命令可將當前系統上所有的幫助手冊及與之對應的關鍵字創建為一個數據庫

1、which?

語法:which ??[-a] ??cmdname1 cmdname2 ......

作用:locate a command,從環境變量PATH中,定位/返回與指定名字相匹配的 命令/可執行文件 所在的路徑

原理:執行which命令時,which會在當前環境變量PATH中依次尋找能夠匹配所找命令名字的可執行文件名,不加-a選項,返回第一個匹配的可執行文件的路徑,否則依次返回滿足條件的所有可執行文件的路徑名。

適用場合:一般用于查找 命令/可執行文件 所在的路徑。有時候可能在多個路徑下存在相同的命令,該命令可用于查找當前所執行的命令到底是哪一個位置處的命令。?

例如:?[root@redhat ~]# which passwd?

/usr/bin/passwd

?

2、whereis?

語法:?whereis [-bmsu] 文件或者目錄名稱?

參數說明:?

  • -b : 只找二進制文件?
  • -m: 只找在說明文件manual路徑下的文件?
  • -s : 只找source源文件?
  • -u : 沒有說明文檔的文件?

作用:locate the binary, source, and manual page files for a command,定位/返回與指定名字匹配的二進制文件、源文件和幫助手冊文件所在的路徑。

原理:whereis命令首先會去掉filename中的前綴空格和以.開頭的任何字符,然后再在數據庫(var/lib/slocate/slocate.db)中查找與上述處理后的filename相匹配的二進制文件、源文件和幫助手冊文件,使用之前可以使用updatedb命令手動更新數據庫。

適用場合:二進制文件、源文件和幫助手冊文件路徑的查找。

例如:?

[root@redhat ~]# whereis passwd?
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz?
將和passwd文件相關的文件都查找出來?

[root@redhat ~]# whereis -b passwd?
passwd: /usr/bin/passwd /etc/passwd?
只將二進制文件 查找出來?

和find相比,whereis查找的速度非常快,這是因為linux系統會將系統內的所有文件都記錄在一個數據庫文件中,當使用whereis和locate時,會從數據庫中查找數據,而不是像find命令那樣,通過遍歷硬盤來查找,效率自然會很高。?

但是該數據庫文件并不是實時更新,默認情況下每天更新一次,因此,我們在用whereis和locate查找文件時,有時會找到已經被刪除的數據,或者剛剛建立文件,卻無法查找到,原因就是因為數據庫文件沒有被更新。?(使用updatedb命令進行更新)

3、 locate?

語法:?locate 文件或者目錄名稱?

作用:find files by name from one or more databases prepared by updatedb. 同whereis指令一樣,也是從數據庫建立的索引中查找,不同的是該命令查找所有部分匹配的文件,使用之前可以使用updatedb命令手動更新數據庫。

原理:默認情況下(當filename中不包含通配符*),locate會給出所有與*filename*相匹配的文件的路徑。

適用場合:沒有文件類型性質的模糊查找(你只記得某個文件的部分名稱)。

個人感覺locate和whereis差不多,locate比較適合與數據庫一起配合著用,locate命令可以在搜尋數據庫時快速找到檔案

[root@redhat ~]# locate passwd?
/lib/security/pam_unix_passwd.so?
/lib/security/pam_passwdqc.so?
/usr/include/rpcsvc/yppasswd.x?
/usr/include/rpcsvc/yppasswd.h?
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/rpcsvc/yppasswd.ph?
/usr/lib/kde3/kded_kpasswdserver.la?
/usr/lib/kde3/kded_kpasswdserver.so?
/usr/bin/vncpasswd?
/usr/bin/userpasswd?
/usr/bin/yppasswd?

?

4、 find?

find有一點復雜,參考博客:https://blog.csdn.net/yucan1001/article/details/8451351

語法:?find 路徑 參數?

參數說明:?

  • 時間查找參數:?
  • -atime n :將n*24小時內存取過的的文件列出來?
  • -ctime n :將n*24小時內改變、新增的文件或者目錄列出來?
  • -mtime n :將n*24小時內修改過的文件或者目錄列出來?
  • -newer file :把比file還要新的文件列出來?
  • 名稱查找參數:?
  • -gid n?????? :尋找群組ID為n的文件?
  • -group name? :尋找群組名稱為name的文件?
  • -uid n?????? :尋找擁有者ID為n的文件?
  • -user name?? :尋找用戶者名稱為name的文件?
  • -name file?? :尋找文件名為file的文件(可以使用通配符)?
  • 作用:search for files in a directory hierarchy. 從當前目錄遞歸的搜索文件。

    原理:遍歷當前工作目錄及其子目錄,find命令是在硬盤上遍歷查找,非常耗硬盤資源,查找效率相比whereis和locate較低。

    適用場合:能用which、whereis和locate的時候盡量不要用find.
    ?

    例 如:?

    [root@redhat ~]# find / -name zgz?

    /home/zgz?

    /home/zgz/zgz?

    /home/weblogic/bea/user_projects/domains/zgz?

    ......

    ?

    ?

    總結:

    find,遍歷硬盤查找,通常使用 find / -name Filename。耗內存。locate和whereis是根據數據庫查找,無法實時查找文件。有可能找到剛才刪除的文件和無法找到新增的文件。which根據path找可執行文件。whereis 可以用來找相關安裝路徑和二進制文件,可執行文件。

    當我們用whereis和locate無法查找到我們需要的文件時,可以使用find,但是find是在硬盤上遍歷查 找,因此非常消耗硬盤的資源,而且效率也非常低,因此建議大家優先使用whereis和locate。?

    總結

    以上是生活随笔為你收集整理的linux 命令 which whereis whatis locate find的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。