我電腦裡有什麼好玩的東東?
初試
系統裡面安裝了那些套件呢? 尤其是... 有沒有 game 呢?
若您使用 rpm 系列 (RedHat, Fedora, Mandriva, Suse, ...) 的系統:
rpm -qa --qf '%-20{NAME}: %{SUMMARY}\n' rpm -qa --qf '%-20{NAME}: %{SUMMARY}\n' | less rpm -qa --qf '%-20{NAME}: %{SUMMARY}\n' | grep -i game rpm -qa --qf '%-20{NAME}: %{SUMMARY}\n' | grep -i game | less
若您使用 deb 系列 (Ubuntu, Debian, Knoppix, ...) 的系統:
dpkg-query -W -f '${Package}: ${Description}\n' dpkg-query -W -f '${Package}: ${Description}\n' | less dpkg-query -W -f '${Package}: ${Description}\n' | grep -i game dpkg-query -W -f '${Package}: ${Description}\n' | grep -i game | less
印出來的資料中, 每個冒號前面的那串就是一個 套件 (package) 名稱。 關於 less 的操作, 請見 這裡。
偷懶
如果對上述指令的細節有興趣, 可以查手冊: man rpm
或
man dpkg-query
;
不過一般人更有興趣的應該是如何簡化這些囉嗦的指令。
首先, 用剪貼的比較快: 滑鼠圈起就是複製 (不需要另外按任何鍵); 滑鼠中間鍵就是貼上。
其次, 可以把印出來的結果存檔, 例如存成 packages.txt 好了:
rpm -qa --qf '%-20{NAME}: %{SUMMARY}\n' >
packages.txt
或 dpkg-query -W -f '${Package}:
${DESCRIPTION}\n' > packages.txt
這個 > 符號叫做
輸出重新導向 output redirection。 以後要找 game
相關套件, 可以下 grep -i game < packages.txt
這個 <
符號叫做 輸入重新導向 input redirection。
其實, 最近下過的指令系統都記得, 可以用上箭頭叫出過去的指令, 或用
history
指令印出最近一段時間所下過的所有指令。
如果太多, 可以一頁一頁看 history | less
如果眼花,
可以過濾一下, 例如記得命令叫做什麼 query 的, 但不記得完整的指令,
可以這樣: history | grep -i query
最後, 可以用 function 將很長的命令簡化, 例如: function
query() { rpm -qa --qf '%-20{NAME}: %{SUMMARY}\n' | grep -i $1;
}
或 function query() { dpkg-query -W -f
'${Package;-30}: ${Description}\n' | grep -i $1; }
從此以後可以這樣下: query game
又例如要找可以 view
image 的軟體, 可以這樣下: query image | grep -i view
總之 pipe 就是接續處理; grep 就是過濾。
但是這指令的效果僅及於目前的 shell; 若將文字視窗關掉再打開, 就失效了。 (試試看!) 建議把上述設定放入 ~/.bashrc 檔案的最後面, 如此每次開一個新的文字視窗都會生效。
deb 系列補充說明
dpkg-query 所印出來的 description 太長, 不方便看。
如果不介意只留下每個套件名稱那列, 可以指明
"不想留下以空白開頭的列": query image | grep -v '^ ' | grep
-i view
其中 -v 表示 "相反" (符合後敘條件的就不印) 而先前的
-i 表示忽略大小寫。 詳見手冊。 這些東西叫做 命列列選項 command
line options。
其實更好用的另一個指令是 apt-cache search game
會列出不只你電腦上的 games, 還有全世界常見的
games。
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/clr/query-package.php; 您所看到的版本: October 27 2013 10:25:48.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。