¿Cómo puedo saber qué comandos se instalaron con un paquete?

11

¿Cómo puedo obtener una lista de comandos que se han instalado con un paquete en particular?

Por ejemplo, si instalo Chromium, ¿qué debería escribir ahora? O si instalo moreutils, ¿cómo sé qué comandos se han instalado?

Flimm
fuente

Respuestas:

14

Respuesta corta:

dpkg -L packagename | grep 'bin/'

Respuesta larga:

Para obtener una lista de todos los archivos instalados en un paquete (por ejemplo moreutils), ejecute este comando:

dpkg -L moreutils

Ahora, todo lo que tenemos que hacer es filtrar los archivos ejecutables en la ruta. En general, los comandos se instalan en /bin, /sbin, /usr/biny /usr/sbin, lo que simplemente hacer coincidir esos patrones:

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

Si desea algo que sea más fácil de memorizar, pero no completamente exacto, simplemente filtre las líneas con bin/:

$ 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

Por lo tanto, en este ejemplo, he descubierto estos comandos: isutf8, pee, errno, etc.


Algunos paquetes no instalan comandos en la ruta, pero instalan un icono para la aplicación GUI. Si desea encontrar el comando que inicia la aplicación, deberá encontrar el .desktoparchivo instalado y mirar la línea que comienza con Exec=. Por ejemplo:

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

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

Entonces, en este ejemplo, descubrí que debería correr /opt/WorldOfGoo/WorldOfGoopara lanzar World Of Goo desde la terminal.

Flimm
fuente
1
La grepparte se puede consolidar ligeramente en función de la idea de que todos los patrones terminan bin/. (Y no pude resistirme a recortar los nombres de ruta.)dpkg -L moreutils | grep -e '/[s]*bin/' | sed -r 's/.*bin\/(.*)$/\1/'
lgarzo
@lgarzo, es posible que haya aprendido esto en los últimos 6 años, pero se puede prescindir de la grep y justo dpkg -L chromium-browser | sed -rn 's/.*bin\/(.*)$/\1/p'como el -ny pcausar sólo las líneas modificadas para ser impresos. ¡Ahorrándote 60/1000 de segundo!
pbhj