Sous Linux, je lance un logiciel en tapant, par exemple, fluidplot. Comment trouver le chemin d'installation de ce logiciel?
Sous Linux, je lance un logiciel en tapant, par exemple, fluidplot. Comment trouver le chemin d'installation de ce logiciel?
Réponses:
Vous pouvez utiliser:
which fluidpoint
pour voir où il s’exécute (s’il est dans votre $ PATH). Ou:
find / -name fluidpoint 2> /dev/null
rechercher un fichier nommé fluipoint et rediriger les erreurs sur les systèmes de fichiers virtuels.
Habituellement , ils sont /sbin
, /usr/sbin
, /usr/local/bin
ou ~
comme un répertoire caché.
De Manuel:
NAME
which - shows the full path of (shell) commands.
SYNOPSIS
which [options] [--] programname [...]
Manuel complet: https://linux.die.net/man/1/which
alias fluidpoint
,
which
(par exemple celle intégrée à ZSH) le feront pour vous
/opt/*
ou /usr/local/bin
. ~
est votre répertoire personnel, je ne comprends pas pourquoi vous l’appelez "caché".
~/.dir
. Le répertoire caché est en dessous du répertoire de base. Et j'ai complètement oublié le /usr/local/bin
dop.
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 dans le monde Windows (et même un peu dans le Mac). Ils sont plus distribués. Les binaires sont dans /bin
ou /sbin
, les bibliothèques sont dans /lib
, les icônes / graphiques / docs sont dans / share, la configuration est dans /etc
et les données de programme sont dans /var
.
Le /bin
, /lib
, /sbin
contiennent les applications de base nécessaires pour le démarrage et la /usr
contient toutes les autres applications de l' utilisateur et le système.
La whereis
commande localise les fichiers binaire, source et manuel pour une commande, et type
indique ce que le shell exécute exactement lorsque vous exécutez une certaine commande.
Essayez whereis -l fluidplot
dans votre 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 cachés dans le dossier de départ sous ~/.local/share/
(dans mon cas).
Trouvé sur la vis Linux
Juste pour ajouter un point à la réponse de @ djsumdog, si vous utilisez une distribution basée sur DPKG, comme Ubuntu, vous pouvez utiliser
dpkg --status some_package
pour vérifier de quoi il s'agit, et
dpkg --listfiles some_package
vérifier quels fichiers sont inclus / pertinents pour ce paquet. C'est pour les paquets qui n'ont pas de binaire à exécuter, comme libnss3
. Et
dpkg --search some_file
pour trouver quel paquet contient ce fichier.
Par exemple, dpkg --listfiles libnss3
me donne:
/.
/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 ne sont pas seulement la propriété de ces packages, mais également des autres. Il suffit de vérifier les fichiers.
Et inversement, dpkg --search libnss3.so
me donne:
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
Au lieu d’utiliser which
( ce qui n’est probablement pas le bon choix si vous n’utilisez pas csh ), vous pouvez utiliser command -v fluidplot
le shell pour qu’il puisse 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 vérifier si une commande peut même être trouvée et tentée de s'exécuter. Comme la plupart d’entre nous utilisons des coquilles de type Bourne (par exemple, bash ou zsh), cela est souvent préférable àwhich