#1 Le 06/03/2020, à 02:16
- qolepam
comment trouver le chemin du fichier source d'une commande externe ?
bonjour,
Je sais que si je tape dans le terminal:
echo $PATH
j'obtiens des chemins mais je ne sais pas de quelle commande externe il s'agit.
Certes je pourrais lister avec ls tous ces chemins mais au lieu de cela,comment en une seule fois trouver le chemin du fichier source d'une commande externe ?
par exemple je cherche ls.c (commande externe ls)
merci de votre aide
Dernière modification par qolepam (Le 06/03/2020, à 02:27)
Hors ligne
#2 Le 06/03/2020, à 03:09
- kamaris
Re : comment trouver le chemin du fichier source d'une commande externe ?
La commande whereis te donnera le chemin vers le binaire, la source (si tu l'as en local) et les pages de manuel.
Par exemple, sur mon système, j'ai
$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1/ls.1p.gz
$
En général, tu n'auras pas les sources pour une commande, car elles sont dans un paquet à part, qui ne s'installe pas automatiquement à l’installation d'une commande, et qui est d'ailleurs sur un dépôt qui n'est pas activé par défaut.
Pour pouvoir installer les paquets source, il faut décommenter les lignes commençant par deb-src dans le fichier /etc/apt/sources.list.
Par exemple pour ls, qui est dans le paquet coreutils, c'est la première ligne (qui se termine par « main restricted »).
Ou bien tu peux récupérer les sources en ligne, par exemple pour ubuntu 18.04 : https://packages.ubuntu.com/source/bionic/coreutils (le fichier ls.c se trouve dans l'archive coreutils_8.28.orig.tar.xz).
Hors ligne
#3 Le 06/03/2020, à 09:23
- Watael
Re : comment trouver le chemin du fichier source d'une commande externe ?
salut,
tu peux récupérer les sources en ligne
alors whereis les trouvera encore ?
parce qu'elles seront là où l'utilisateur aura choisi de les télécharger.
edit: en même temps, s'il les a téléchargées, il devrait savoir où elles sont.
Dernière modification par Watael (Le 06/03/2020, à 09:25)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 06/03/2020, à 14:40
- kamaris
Re : comment trouver le chemin du fichier source d'une commande externe ?
Eh bien, le man dit que whereis cherche les sources dans « the standard Linux places », ce qui semble en fait se résumer aux sous-répertoires de premier niveau de /usr/src/.
Car si je mets un fichier nommé ls.c dans /usr/src/dir, il le trouve, mais pas si je le mets directement dans /usr/src, ni dans /usr/src/dir1/dir2 (même si on remplace dir2 par src).
Et si je mets le fichier dans /usr/local/src ou un de ses sous-répertoires, il ne le trouve pas non plus.
Et à part /usr/src et /usr/local/src, je ne vois pas trop ce qu'il pourrait y avoir comme « standard Linux places » pour les sources.
Donc en conclusion, la recherche des sources n'a pas l'air bien terrible…
Maintenant, pour spécifier un chemin de recherche pour les sources, à part ajouter un chemin au PATH (ce qui serait plutôt sale), on peut utiliser l'option -S :
whereis -S /répertoire-perso-pour-les-sources -f commande-à-rechercher
et mettre ça comme alias dans le .bashrc, éventuellement…
À noter que cela réinitialise les chemins de recherche pour les sources, donc si on veut conserver /usr/src/*, il faut faire
whereis -S /usr/src/* /répertoire-perso-pour-les-sources -f commande-à-rechercher
Autre chose, concernant les paquets sources : en fait, ils ne s'installent pas comme les paquets binaires (comme je le croyais), mais il faut faire
apt source nom-du-paquet
Cela télécharge les sources du paquet dans le répertoire courant, donc absolument pas dans /usr/src ou autre « standard Linux places », de toutes façons.
Hors ligne
#5 Le 06/03/2020, à 15:32
- Watael
Re : comment trouver le chemin du fichier source d'une commande externe ?
merci.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 06/03/2020, à 15:39
- credenhill
Re : comment trouver le chemin du fichier source d'une commande externe ?
hello
la commande peut-être un alias
alias
Hors ligne
#7 Le 06/03/2020, à 16:40
- kamaris
Re : comment trouver le chemin du fichier source d'une commande externe ?
merci.
De rien ! ^^'
En fait, j'ai découvert tout ça en essayant de répondre à ta question, donc j'en ai fait part : en espérant que ça puisse servir…
Hors ligne
#8 Le 06/03/2020, à 17:42
- piolet
Re : comment trouver le chemin du fichier source d'une commande externe ?
il y a aussi
type ls
lenovo T430 RAM 8Go Xubuntu 22.04 LTS
Hors ligne