來自:民工哥科技之路
1、which指令
我們常常在linux要找某個文件,但不曉得放到那裡了,可以使用下邊的一些命令來搜尋:which指令的作用是,在PATH變數指定的路徑中,搜尋某個系統指令的位置,但是傳回第一個搜尋結果。也就是說,使用which指令,就可以看見某個系統指令是否存在,以及執行的究竟是哪一個位置的指令。 1.指令格式:which可執行檔名稱2.指令功能:which指令會在PATH變數指定的路徑中,搜尋某個系統指令的位置,但傳回第一個搜尋結果。 3.命令參數:4.使用實例:實例1:尋找檔案、顯示指令路徑
命令:which lsmod 输出: [root@localhost ~]# which pwd /bin/pwd [root@localhost ~]# which adduser /usr/sbin/adduser [root@localhost ~]#
說明:which是依照使用者所配置的PATH變數內的目錄去搜救可運行檔的!所以,不同的PATH配置內容所找到的指令其實不一樣的!實例2:用which去找出which
指令:whichwhich
輸出:
[root@localhost ~]# which whichalias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' /usr/bin/which [root@localhost ~]#
說明:居然會有兩個which,其中一個是alias這就是所謂的『命令別稱』,意思是輸入which會等於前面接的那串指令!實例3:找出cd這個指令
指令:whichcd
#輸出:
說明:cd這個常用的指令居然找不到啊!為何呢?這是由於cd是bash內建的指令!而且which預設是找PATH內所規範的目錄,所以其實一定找不到的!
2、whereis指令
whereis指令只能用於程式名稱的搜索,並且只搜尋二補碼檔案(參數-b)、man說明檔(參數-m)和原始碼檔案(參數-s)。如果省略參數,則傳回所有資訊。和find相比,whereis查找的速率十分快,這是由於linux系統會將系統內的所有文件都記錄在一個數據庫文件中,當使用whereis和下邊正式介紹的locate時,會從數據庫中查找數據,而不是像find指令那樣,透過遍歷硬盤來查找,效率自然會很高。而該資料庫文件並不是即時更新,預設時一禮拜更新一次,因而,我們在用whereis和locate查找文件時,有時會找到早已被刪掉的數據,或則剛才建立文件,卻難以查找到,誘因就是由於資料庫檔案沒有被更新。 1.指令格式:whereis[-bmsu][BMS目錄名-f]檔名2.指令功能:whereis指令是定位可執行檔、原始碼檔案、幫助文件在檔案系統中的位置。那些文件的屬性應屬於原始程式碼,二補碼文件,或幫助文件。 whereis程式還具有搜尋原始碼、指定備用搜尋路徑和搜尋不尋常項目的能力。 3.命令參數:4.使用實例:實例1:將和**檔案相關的檔案都找下來
命令:whereis svn 输出: [root@localhost ~]# whereis tomcat tomcat: [root@localhost ~]# whereis svn svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz
說明:tomcat沒安裝,找不下來,svn安裝找出了很多相關檔案實例2:只將二補碼檔案找下來
命令:whereis -b svn 输出: [root@localhost ~]# whereis -b svn svn: /usr/bin/svn /usr/local/svn [root@localhost ~]# whereis -m svn svn: /usr/share/man/man1/svn.1.gz [root@localhost ~]# whereis -s svn svn: [root@localhost ~]#
說明:whereis-msvn查出說明文件路徑linux 指令定位檔,whereis-ssvn找source來源檔。
3、locate指令
locate让使用者可以很快速的搜救档案系统内是否有指定的档案。其方式是先构建一个包括系统内所有档案名称及路径的数据库,然后当找寻时就只需查询这个数据库,而毋须实际深入档案系统之中了。在通常的distribution之中,数据库的构建都被置于crontab中手动执行。1.命令格式:Locate[选择参数][式样]2.命令功能:locate命令可以在搜救数据库时快速找到档案linux 命令定位文件,数据库由updatedb程序来更新,updatedb是由crondaemon周期性构建的,locate命令在搜救数据库时比由整个由硬碟资料来搜救资料来得快,但较差劲的是locate所找到的档案若是近来才完善或刚改名的linux串口驱动,可能会找不到,在内定值中,updatedb每晚会跑一次,可以由更改crontab来更新设定值。(etc/crontab)locate指定用在搜救符合条件的档案,它会去储藏档案与目录名称的数据库内,找寻合乎范本式样条件的档案或目录录,可以使用特殊字元(如”*”或”?”等)来指定范本式样,如指定范本为kcpa*ner,locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列举该目录下包括子目录在内的所有档案。locate指令和find寻找档案的功能类似linux公社,但locate是透过update程序将硬碟中的所有档案和目录资料先构建一个索引数据库,在执行loacte时直接找该索引,查询速率会较快,索引数据库通常是由操作系统管理,但也可以直接下达update逼迫系统立刻更改索引数据库。3.命令参数:4.使用实例:实例1:查找和pwd相关的所有文件
命令:locate pwd 输出: peida-VirtualBox ~ # locate pwd /bin/pwd /etc/.pwd.lock /sbin/unix_chkpwd /usr/bin/pwdx /usr/include/pwd.h /usr/lib/python2.7/dist-packages/twisted/python/fakepwd.py /usr/lib/python2.7/dist-packages/twisted/python/fakepwd.pyc /usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.py /usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.pyc /usr/lib/syslinux/pwd.c32 /usr/share/help/C/empathy/irc-join-pwd.page /usr/share/help/ca/empathy/irc-join-pwd.page /usr/share/help/cs/empathy/irc-join-pwd.page /usr/share/help/de/empathy/irc-join-pwd.page /usr/share/help/el/empathy/irc-join-pwd.page
实例2:搜索etc目录下所有以sh开头的文件
命令:locate /etc/sh 输出: peida-VirtualBox ~ # locate /etc/sh /etc/shadow /etc/shadow-/etc/shells peida-VirtualBox ~ #
实例3:搜索etc目录下,所有以m开头的文件
命令:locate /etc/m 输出: peida-VirtualBox ~ # locate /etc/m /etc/magic /etc/magic.mime /etc/mailcap /etc/mailcap.order /etc/manpath.config /etc/mate-settings-daemon
想要学习Linux系统运维的同事们可以看一看《Linux系统运维手册从入门到企业实战》这本书,特别适宜Linux学习及工作必备的工具书。
end
良许个人陌陌
添加良许个人陌陌即送3套程序员必看资料
→精选技术资料共享
→高手如云交流社群
本公众号全部博文已整理成一个目录,请在公众号里回复「m」获取!
以上是(民工哥技術之路)命令的使用實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!