GNU/Linux >> Tutoriels Linux >  >> Linux

Comment lire le code source des commandes shell ?

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

  • cat (767 lignes)
  • chmod (570 lignes)
  • cp (2912 lignes)
  • cut (831 lignes)
  • date (570 lignes)
  • df (1718 lignes)
  • du (1112 lignes)
  • echo (272 lignes)
  • head (1070 lignes)
  • hostname (116 lignes)
  • kill (312 lignes)
  • ln (651 lignes)
  • ls (4954 lignes)
  • md5sum (878 lignes)
  • mkdir (306 lignes)
  • mv (512 lignes)
  • nice (220 lignes)
  • pwd (394 lignes)
  • rm (356 lignes)
  • rmdir (252 lignes)
  • shred (1325 lignes)
  • tail (2301 lignes)
  • tee (220 lignes)
  • touch (437 lignes)
  • wc (801 lignes)
  • whoami (91 lignes)

Liste complète ici.


En fait, des sources plus sensées sont fournies par http://suckless.org regardez leur sbase référentiel :

git clone git://git.suckless.org/sbase

Ils sont plus clairs, plus intelligents, plus simples et plus simples, par exemple ls.c a juste 369 LOC

Après cela, il sera plus facile de comprendre le code GNU plus compliqué.


Toutes ces commandes de base font partie du coreutils paquet.

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

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

Si vous souhaitez télécharger la dernière source, vous devez utiliser git :

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

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

sudo apt-get install git

À vrai dire, vous pouvez trouver ici une source spécifique pour le ls commande :

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

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


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

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

Vous trouverez des coreutils répertoriés avec d'autres packages (faites défiler vers le bas) sur cette page.


Linux
  1. Comment obtenir le nom de la branche git actuelle dans une variable dans un script shell ?

  2. Comment utiliser les lignes d'un fichier comme arguments d'une commande ?

  3. Comment obtenir le PYTHONPATH en shell?

  4. Comment exécuter du code dans le shell Django par un script python externe ?

  5. Comment lire la réponse websocket dans le shell Linux

Comment utiliser la commande de lecture Bash

Cloc - Compter les lignes de code source dans de nombreux langages de programmation

Comment changer le shell par défaut dans le système Linux

Comment lire les arguments de ligne de commande dans les scripts shell ?

Comment changer la langue de mon git?

Comment obtenir le code de sortie du processus généré dans le script shell attendu ?