Linux系統(tǒng)下查找安裝包所在目錄的方法匯總
linux的text模式下,想知道系統(tǒng)下安裝了哪些軟件包,以及軟件包安裝在哪個(gè)目錄下,可以用以下命令,當(dāng)然,可能還不止,我所知道的目前就是下面的這些。如果你還有新的,可以留言告訴我。
1. which命令查找出相關(guān)命令是否已經(jīng)在搜索路徑中,例子如下:
返回結(jié)果為:
注意:如果which沒(méi)有找到要找的命令,可以試試whereis,該命令搜索更大的范圍的系統(tǒng)目錄。有些系統(tǒng)上的which命令不顯示用戶沒(méi)有執(zhí)行權(quán)限的文件。例如
$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 rootroot 124924 Feb32000/usr/sbin/ipppd
2. locate命令。
locate命令用于查找文件,它比f(wàn)ind命令的搜索速度快,它需要一個(gè)數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)由每天的例行工作(crontab)程序來(lái)建立。當(dāng)我們建立好這個(gè)數(shù)據(jù)庫(kù)后,就可以方便地來(lái)搜尋所需文件了。
即先運(yùn)行:updatedb(無(wú)論在那個(gè)目錄中均可,可以放在crontab中 )后在 /var/lib/slocate/ 下生成 slocate.db 數(shù)據(jù)庫(kù)即可快速查找。在命令提示符下直接執(zhí)行#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
如果用戶知道自己要查找到軟件包的名字,可以直接使用下面的命令。這個(gè)命令只在支持rpm的linux版本上有效,如redhat,centos,fedora和suse等。
或者:
rpm的其他用法:
rpm -qa (列出所有安裝了的包)
rpm -e package (刪除某個(gè)包)
rpm -qi package (查詢某個(gè)包)
rpm -qf command (根據(jù)程序查詢包的名字)
rpm -ql package (查詢某個(gè)包所有的安裝文件)
4.yum
yum的參數(shù)很多,以下是用于查找軟件包的命令。但是也只支持特定的發(fā)型版本,centos下最常用的命令
$yum list //列出所指定的軟件包,后可以加上你想查找的軟件包的名字
$yum linst installed//列出所有已安裝的軟件包
$yum info installed //列出所有已安裝的軟件包信息
5.whereis
whereis是查找文件或者命令的所在目錄
6. find
這個(gè)命令可用來(lái)查找系統(tǒng)是否安裝了指定的軟件包,更重要的是也可以查找自己對(duì)軟件包名稱記憶不是很清晰的軟件包。而且我想是這是所有l(wèi)inux和unix都支持的。find的查找范圍很廣,功能強(qiáng)大,再搭配用正則表達(dá),效果很好,不過(guò)建議盡量縮小搜索范圍,減少系統(tǒng)壓力,畢竟,當(dāng)系統(tǒng)文件多了,搜索耗費(fèi)時(shí)間和資源的。
find的詳細(xì)使用有如下例子:
# find . -maxdepth 1 -name *.jpg -print -exec convert 在當(dāng)前目錄下查找,查找深度為一,查找以.jpg結(jié)尾文件,并將其轉(zhuǎn)化
# find / -name *.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 結(jié)尾的文件并定義其權(quán)限
# find / -name file1 從 '/' 開始進(jìn)入根文件系統(tǒng)搜索文件和目錄
# find / -perm -u+s 羅列一個(gè)系統(tǒng)中所有使用了SUID控制的文件
# find / -user user1 搜索屬于用戶 'user1' 的文件和目錄
# find / -xdev -name \*.rpm 搜索以 '.rpm' 結(jié)尾的文件,忽略光驅(qū)、捷盤等可移動(dòng)設(shè)備
# find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 從一個(gè)目錄查找并復(fù)制所有以 '.txt' 結(jié)尾的文件到另一個(gè)目錄
# find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中搜索帶有'.bin' 結(jié)尾的文件
# find /usr/bin -type f -atime +100 搜索在過(guò)去100天內(nèi)未被使用過(guò)的執(zhí)行文件
# find /usr/bin -type f -mtime -10 搜索在10天內(nèi)被創(chuàng)建或者修改過(guò)的文件
# find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 結(jié)尾的文件并做成一個(gè)bzip包
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。