Sous Linux, je lance un logiciel en tapant, par exemple, fluidplot. Comment trouver le chemin d'installation de ce logiciel?
Vous pouvez utiliser:
which fluidpoint
pour voir d'où il s'exécute (s'il se trouve dans votre $ PATH). Ou:
find / -name fluidpoint 2> /dev/null
pour rechercher un fichier nommé fluipoint et rediriger les erreurs sur les systèmes de fichiers virtuels.
Ils sont généralement dans /sbin
, /usr/sbin
, /usr/local/bin
ou ~
comme répertoire caché.
Du manuel:
NAME
which - shows the full path of (Shell) commands.
SYNOPSIS
which [options] [--] programname [...]
Manuel complet: https://linux.die.net/man/1/which
Si vous utilisez une distribution basée sur RPM (CentOS, RHEL, SUSE, openSUSE), vous pouvez utiliser rpm -ql
Exemple:
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
Les choses ne sont pas installées à des emplacements dans le monde Linux/UNIX comme ils le sont dans le monde Windows (et même un peu dans le Mac). Ils sont plus distribués. Les fichiers binaires sont dans /bin
ou /sbin
, les bibliothèques sont dans /lib
, les icônes/graphiques/documents sont dans/share, la configuration est dans /etc
et les données du programme sont dans /var
.
Le /bin
, /lib
, /sbin
contient les applications de base nécessaires au démarrage et /usr
contient toutes les autres applications utilisateur et système.
La commande whereis
localise les fichiers binaires, source et de page de manuel pour une commande, et la commande type
indique exactement ce que le Shell exécute lorsque vous exécutez une certaine commande.
Essayez whereis -l fluidplot
dans ton cas. S'il ne renvoie que "fluidplot:", mais pas de chemin, cela signifie que le logiciel n'est pas installé. Notez que cela n'inclut pas les fichiers qui peuvent être masqués dans le dossier de base sous ~/.local/share/
(dans mon cas).
Trouvé sur Linux Screw
Juste pour ajouter un point à la réponse de @ djsumdog, si vous utilisez un dist basé sur DPKG, comme Ubuntu, vous pouvez utiliser
dpkg --status some_package
pour vérifier de quoi il s'agit, et
dpkg --listfiles some_package
pour vérifier quels fichiers sont inclus/pertinents pour ce package. C'est pour les paquets qui n'ont pas de binaire à exécuter, comme libnss3
. Et
dpkg --search some_file
pour trouver quel package contient ce fichier.
Par exemple, dpkg --listfiles libnss3
Donne moi:
/.
/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
Notez que les dossiers n'appartiennent pas seulement à ces packages, mais aussi à d'autres. Vérifiez simplement les fichiers.
Et inversement, dpkg --search libnss3.so
Donne moi:
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
Vous pouvez essayer d'exécuter:
ps aux | grep "THE_NAME_OF_A_PROGRAM"
Il y a de bonnes chances que vous voyiez le chemin vers le programme (s'il est en cours d'exécution)
Au lieu d'utiliser which
( ce qui n'est probablement pas le bon choix sauf si vous utilisez csh ) vous pouvez utiliser command -v fluidplot
pour amener le shell à boune comme Shell pour vous dire ce qu'il ferait si vous lui demandiez d'exécuter la commande (fluidplot
dans cet exemple).
Quelques exemples pour moi:
$ 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
vous pouvez donc également l'utiliser pour tester si une commande serait même trouvée et tentée de s'exécuter. Comme la plupart d'entre nous utilisent des shells de type Bourne (par exemple, bash ou zsh), cela est souvent préférable à which