172 votes

Comment puis-je lire le code source des commandes shell?

Je voudrais lire le code source réel sur lequel les commandes Linux sont écrites. J'ai acquis de l'expérience en les utilisant et maintenant je pense qu'il est temps d'interagir avec ma machine à un niveau plus profond.

J'ai trouvé quelques commandes ici http://directory.fsf.org/wiki/GNU. Malheureusement, je n'ai pas pu trouver des commandes de base telles que 'ls' qui me semblent assez faciles pour commencer.

Comment puis-je lire exactement le code source des commandes shell simples comme 'ls' ? Je suis sur Ubuntu 12.04

1 votes

Visitez par exemple : ftp.gnu.org/pub/gnu/coreutils Vous pouvez parcourir le code en ligne. Ouvrez l'un des archives et cherchez le dossier src.

0 votes

Salut, j'ai trouvé un autre utilitaire, il s'agit de util-linux. Vous pouvez le trouver ici

1 votes

ls ne fait pas partie de Linux, il fait partie de Gnu. Gnu fonctionne sur Linux et d'autres noyaux.

187voto

Zagorax Points 3213

Toutes ces commandes de base font partie du package coreutils.

Vous pouvez trouver toutes les informations dont vous avez besoin ici :

http://www.gnu.org/software/coreutils/

Si vous voulez télécharger la dernière source, vous devriez utiliser git :

git clone git://git.sv.gnu.org/coreutils

Pour installer git sur votre machine Ubuntu, vous devriez utiliser apt-get (git n'est pas inclus dans l'installation standard d'Ubuntu) :

sudo apt-get install git

Honnêtement, ici vous pouvez trouver la source spécifique pour la commande ls :

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c

Seulement 4984 lignes de code pour une commande 'assez simple' comme ls... êtes-vous toujours intéressé à le lire ?? Bonne chance ! :D

2 votes

Oh mon dieu! Je pensais que c'était un peu plus facile... Eh bien le chemin est plus long et difficile que prévu :-)

24 votes

Essayez la source pour cat. Ce sont seulement 767 lignes.

3 votes

Seulement 4984 lignes de code ... -- Il semble qu'en 4 ans et 3 mois, la commande ls soit devenue 57 lignes de code plus complexe.

141voto

Drew Noakes Points 69288

Liens directs vers la source de certains programmes populaires dans coreutils:

Liste complète ici.

6 votes

Merci d'avoir répertorié avec le nombre de lignes. :)

0 votes

Avez-vous su?

0 votes

@Drew, as-tu une idée s'il y a des commandes shell réellement écrites en script shell?

6voto

dystroy Points 145126

ls fait partie de coreutils. Vous pouvez l'obtenir avec git :

git clone git://git.sv.gnu.org/coreutils

Vous trouverez coreutils répertorié avec d'autres packages (faites défiler jusqu'en bas) sur cette page.

1 votes

Ou parcourir le dépôt en ligne ... par exemple. git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c

1voto

Haile Points 1809

Visitez par exemple :

http://ftp.gnu.org/pub/gnu/coreutils/

Vous pouvez parcourir le code en ligne. Ouvrez l'une des archives et vérifiez le dossier src.

-1voto

    cd ~ && apt-get source coreutils && ls -d coreutils*     

Vous devriez pouvoir utiliser une commande comme celle-ci sur Ubuntu pour récupérer la source d'un package, vous pouvez omettre sudo en supposant que vous téléchargez dans un emplacement que vous possédez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X