Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/03/2020, à 03: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, à 03:27)

Hors ligne

#2 Le 06/03/2020, à 04: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).

En ligne

#3 Le 06/03/2020, à 10: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. tongue

Dernière modification par Watael (Le 06/03/2020, à 10:25)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#4 Le 06/03/2020, à 15: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.

En ligne

#5 Le 06/03/2020, à 16:32

Watael

Re : comment trouver le chemin du fichier source d'une commande externe ?

merci.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#6 Le 06/03/2020, à 16: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, à 17:40

kamaris

Re : comment trouver le chemin du fichier source d'une commande externe ?

Watael a écrit :

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…

En ligne

#8 Le 06/03/2020, à 18: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