En Linux, ejecuto un software escribiendo, por ejemplo, fluidplot. ¿Cómo puedo encontrar la ruta de instalación para este software?
En Linux, ejecuto un software escribiendo, por ejemplo, fluidplot. ¿Cómo puedo encontrar la ruta de instalación para este software?
Respuestas:
Puedes usar:
which fluidpoint
para ver desde dónde se está ejecutando (si está en su $ PATH). O:
find / -name fluidpoint 2> /dev/null
para buscar un archivo llamado fluipoint y redirigir errores en sistemas de archivos virtuales.
Por lo general, se encuentran en /sbin
, /usr/sbin
, /usr/local/bin
o ~
como un directorio oculto.
Del manual:
NAME
which - shows the full path of (shell) commands.
SYNOPSIS
which [options] [--] programname [...]
Manual completo: https://linux.die.net/man/1/which
alias fluidpoint
,
which
(por ejemplo, la integrada en ZSH) lo harán por usted
/opt/*
o /usr/local/bin
. ~
es tu directorio personal, estoy confundido por qué lo llamas "oculto".
~/.dir
. El directorio oculto está debajo del directorio de inicio. Y me olvidé por completo del /usr/local/bin
dop.
Si usa una distribución basada en RPM (CentOS, RHEL, SUSE, openSUSE) puede usar rpm -ql
Ejemplo:
rpm -ql findutils
/bin/find
/usr/bin/find
/usr/bin/xargs
/usr/share/doc/packages/findutils
/usr/share/doc/packages/findutils/AUTHORS
/usr/share/doc/packages/findutils/COPYING
/usr/share/doc/packages/findutils/NEWS
/usr/share/doc/packages/findutils/README
/usr/share/doc/packages/findutils/THANKS
/usr/share/doc/packages/findutils/TODO
/usr/share/info/find.info.gz
/usr/share/man/man1/find.1.gz
Las cosas no están instaladas en ubicaciones en el mundo Linux / UNIX como lo están en el mundo Windows (e incluso en el mundo Mac). Están más distribuidos. Los binarios están en /bin
o /sbin
, las bibliotecas están en /lib
, los iconos / gráficos / documentos están en / compartir, la configuración está en /etc
y los datos del programa están en /var
.
El /bin
, /lib
, /sbin
contienen las aplicaciones básicas necesarias para el arranque y la /usr
contiene todas las otras aplicaciones de usuario y del sistema.
El whereis
comando localiza los archivos binarios, de origen y de página manual para un comando, y el type
comando le dice exactamente qué ejecuta el shell cuando ejecuta un determinado comando.
Prueba whereis -l fluidplot
en tu caso.
Si solo devuelve "fluidplot:", pero no hay ruta, significa que el software no está instalado.
Tenga en cuenta que esto no incluye archivos que pueden estar ocultos dentro de la carpeta de inicio en ~/.local/share/
(en mi caso).
Encontrado en Linux Screw
Solo para agregar algún punto a la respuesta de @ djsumdog, si está usando dist basado en DPKG, como Ubuntu, puede usar
dpkg --status some_package
para comprobar de qué se trata, y
dpkg --listfiles some_package
para verificar qué archivos están incluidos / relevantes para este paquete. Es para paquetes que no tienen un binario para ejecutar, como libnss3
. Y
dpkg --search some_file
para encontrar qué paquete incluye este archivo.
Por ejemplo, dpkg --listfiles libnss3
me da:
/.
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libssl3.so
/usr/lib/i386-linux-gnu/nss
/usr/lib/i386-linux-gnu/nss/libsoftokn3.chk
/usr/lib/i386-linux-gnu/nss/libnssckbi.so
/usr/lib/i386-linux-gnu/nss/libnsssysinit.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.so
/usr/lib/i386-linux-gnu/nss/libsoftokn3.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.so
/usr/lib/i386-linux-gnu/libnssutil3.so
/usr/lib/i386-linux-gnu/libsmime3.so
/usr/lib/i386-linux-gnu/libnss3.so
/usr/share
/usr/share/doc
/usr/share/doc/libnss3
/usr/share/doc/libnss3/copyright
/usr/share/doc/libnss3/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libnss3
Tenga en cuenta que las carpetas no solo son propiedad de estos paquetes, sino también de otros. Solo revisa los archivos.
Y a la inversa, dpkg --search libnss3.so
me da:
firefox: /usr/lib/firefox/libnss3.so
thunderbird: /usr/lib/thunderbird/libnss3.so
libnss3:i386: /usr/lib/i386-linux-gnu/libnss3.so
libnss3-1d:i386: /usr/lib/i386-linux-gnu/libnss3.so.1d
En lugar de usar which
( que probablemente no sea la opción correcta a menos que esté usando csh ), puede usar command -v fluidplot
para que el shell se sintonice como shell para decirle qué haría si le pidiera que ejecutara el comando ( fluidplot
en este ejemplo) .
Algunos ejemplos para mi:
$ command -v ls
alias ls='ls --color=auto'
$ command -v cat
/bin/cat
$ test_func() {
> :
> }
$ command -v test_func
test_func
$ which test_func
/usr/bin/which: no test_func in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
$ if command -v noSuchFile; then echo "It exists"; else echo "does not exist"; fi
does not exist
así que también puede usarlo para probar si un comando incluso se encontraría e intentaría ejecutarse. Como la mayoría de nosotros usamos shells tipo Bourne (por ejemplo, bash o zsh), esto es preferible awhich