Bagaimana saya bisa tahu perintah mana yang diinstal dengan paket?

11

Bagaimana saya bisa mendapatkan daftar perintah yang telah diinstal dengan paket tertentu?

Misalnya, jika saya menginstal Chromium, apa yang harus saya ketik sekarang? Atau jika saya menginstal moreutils, bagaimana saya tahu perintah mana yang telah diinstal?

Flimm
sumber

Jawaban:

14

Jawaban singkat:

dpkg -L packagename | grep 'bin/'

Jawaban panjang:

Untuk mendapatkan daftar semua file yang diinstal dalam paket (katakanlah moreutils), jalankan perintah ini:

dpkg -L moreutils

Sekarang, yang perlu kita lakukan adalah memfilter file yang dapat dieksekusi di path. Secara umum, perintah dipasang untuk /bin, /sbin, /usr/bindan /usr/sbin, jadi kami hanya bisa cocok dengan pola tersebut:

dpkg -L moreutils | grep -e '^/bin/' -e '^/sbin/' -e '^/usr/bin/' -e '^/usr/sbin/'

Jika Anda menginginkan sesuatu yang lebih mudah dihafal, tetapi tidak sepenuhnya akurat, cukup filter garis keluar bin/sebagai gantinya:

$ dpkg -L moreutils | grep 'bin/'
/usr/bin/isutf8
/usr/bin/pee
/usr/bin/errno
/usr/bin/vidir
/usr/bin/zrun
/usr/bin/lckdo
/usr/bin/ifne
/usr/bin/mispipe
/usr/bin/parallel
/usr/bin/sponge
/usr/bin/ts
/usr/bin/ifdata
/usr/bin/vipe
/usr/bin/chronic
/usr/bin/combine

Jadi, dalam contoh ini, saya telah menemukan perintah ini: isutf8, pee, errno, dll


Beberapa paket tidak menginstal perintah ke jalur, tetapi menginstal ikon untuk aplikasi GUI. Jika Anda ingin menemukan perintah yang meluncurkan aplikasi, Anda harus menemukan .desktopfile yang diinstal , dan lihat baris yang dimulai dengan Exec=. Sebagai contoh:

$ dpkg -L worldofgoo | grep '\.desktop$'
/usr/share/applications/WorldOfGoo.desktop

$ grep '^Exec=' /usr/share/applications/WorldOfGoo.desktop 
Exec=/opt/WorldOfGoo/WorldOfGoo

Jadi dalam contoh ini, saya telah menemukan bahwa saya harus berlari /opt/WorldOfGoo/WorldOfGoountuk meluncurkan World Of Goo dari terminal.

Flimm
sumber
1
Bagian grepini dapat dikonsolidasikan sedikit berdasarkan ide bahwa semua pola diakhiri bin/. (Dan saya tidak bisa menolak untuk memotong nama jalan.)dpkg -L moreutils | grep -e '/[s]*bin/' | sed -r 's/.*bin\/(.*)$/\1/'
lgarzo
@ Lilozo, Anda mungkin telah mempelajari ini dalam 6 tahun terakhir tetapi Anda dapat membuang grep dan hanya dpkg -L chromium-browser | sed -rn 's/.*bin\/(.*)$/\1/p'sebagai -ndan phanya menyebabkan garis yang diubah untuk dicetak. Menghemat 60/1000 detik!
pbhj