1. which命令
查詢出相關命令是否已經在搜尋路徑中,例子如下:
$which gcc #顯示出GNC的C編譯器安裝在哪個目錄
/usr/bin/gcc #返回結果
注意:如果which沒有找到要找的命令,可以試試whereis,該命令搜尋更大的範圍的系統目錄。有些系統上的which命令不顯示使用者沒有執行許可權的檔案。例如
$which ipppd
/usr/bin/which :no ipppd in (/bin: /usr/bin: /sbin:/usr/sbin)
$whereis ipppd
ipppd: /usr/sbin/ipppd
$ls -l /usr/sbin/ipppd
-rwx------ 1 root root 124924 Feb 3 2000 /usr/sbin/ipppd
2. locate命令
locate命令用於查詢檔案,它比find命令的搜尋速度快,它需要一個資料庫,這個資料庫由每天的例行工作(crontab)程式來建立。當我們建立好這個資料庫後,就可以方便地來搜尋所需檔案了。
即先執行:updatedb(無論在那個目錄中均可,可以放在crontab中 )後在 /var/lib/slocate/ 下生成 slocate.db 資料庫即可快速查詢。在命令提示符下直接執行#updatedb 命令即可。
$locate signal.h
/usr/include/asm/signal.h
/usr/include/linux/signal.h
/usr/include/signal.h
/usr/include/sys/signal.h
3. rpm命令
如果使用者知道自己要查詢到軟體包的名字,可以直接使用下面的命令。這個命令只在支援rpm的linux版本上有效,如redhat,centos,fedora和suse等。
$rpm -q python #查詢檢查系統是否安裝了python
python-1.5.2-27
或者:
$rpm -qa| grep python #這是兩個命令的結合
rpm的其他用法:
rpm -qa #列出所有安裝了的包
rpm -e package #刪除某個包
rpm -qi package #查詢某個包
rpm -qf command #根據程式查詢包的名字
rpm -ql package #查詢某個包所有的安裝檔案
4. dpkg命令
如果使用者知道自己要查詢到軟體包的名字,也可以使用下面的命令。這個命令只在支援dpkg的linux版本上有效,如ubuntu等。
$dpkg -l|grep mysql
5. yum命令
yum的引數很多,以下是用於查詢軟體包的命令。但是也只支援特定的髮型版本,centos下最常用的命令
$yum list #列出所指定的軟體包,後可以加上你想查詢的軟體包的名字【yum list|grep wget】
$yum list installed #列出所有已安裝的軟體包【yum list installed|grep wget】
$yum info installed #列出所有已安裝的軟體包資訊【yum info installed|grep wget】
6. whereis命令
whereis是查詢檔案或者命令的所在目錄
$whereis pwd #查詢pwd命令所在的目錄
7. find命令
這個命令可用來查詢系統是否安裝了指定的軟體包,更重要的是也可以查詢自己對軟體包名稱記憶不是很清晰的軟體包。而且我想是這是所有linux和unix都支援的。find的查詢範圍很廣,功能強大,再搭配用正則表達,效果很好,不過建議儘量縮小搜尋範圍,減少系統壓力,畢竟,當系統檔案多了,搜尋耗費時間和資源的。
$find / -name "python" #從根目錄開始查詢包含”python“這個字元的檔案和資料夾。
find的詳細使用有如下例子:
#在當前目錄下查詢,查詢深度為一,查詢以.jpg結尾檔案,並將其轉化
$find . -maxdepth 1 -name *.jpg -print -exec convert
#搜尋以 '.rpm' 結尾的檔案並定義其許可權
$find / -name *.rpm -exec chmod 755 '{}' \;
#從 '/' 開始進入根檔案系統搜尋檔案和目錄
$find / -name file1
#羅列一個系統中所有使用了SUID控制的檔案
$find / -perm -u+s
#搜尋屬於使用者 'user1' 的檔案和目錄
$find / -user user1
#搜尋以 '.rpm' 結尾的檔案,忽略光碟機、捷盤等可移動裝置
$find / -xdev -name \*.rpm
#從一個目錄查詢並複製所有以 '.txt' 結尾的檔案到另一個目錄
$find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents
#在目錄 '/ home/user1' 中搜尋帶有'.bin' 結尾的檔案
$find /home/user1 -name \*.bin
#搜尋在過去100天內未被使用過的執行檔案
$find /usr/bin -type f -atime +100
#搜尋在10天內被建立或者修改過的檔案
$find /usr/bin -type f -mtime -10
#查詢所有以 '.log' 結尾的檔案並做成一個bzip包
$find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2