GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo leo el código fuente de los comandos de shell?

Enlaces directos a la fuente de algunos programas populares en coreutils :

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

Lista completa aquí.


En realidad, http://suckless.org proporciona fuentes más sensatas, mire su sbase repositorio:

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

Son más claros, más inteligentes, más simples y más sencillos, por ejemplo, ls.c tiene solo 369 LOC

Después de eso, será más fácil entender el código GNU más complicado.


Todos estos comandos básicos son parte del coreutils paquete.

Puede encontrar toda la información que necesita aquí:

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

Si desea descargar la fuente más reciente, debe usar git:

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

Para instalar git en su máquina Ubuntu, debe usar apt-get (git no está incluido en la instalación estándar de Ubuntu):

sudo apt-get install git

A decir verdad, aquí puede encontrar una fuente específica para el ls comando:

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

Solo 4984 líneas de código para un comando 'bastante fácil' como ls ... ¿todavía estás interesado en leerlo? ¡Buena suerte! :D


ls es parte de coreutils. Puedes obtenerlo con git:

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

Encontrará coreutils en la lista con otros paquetes (desplácese hacia abajo) en esta página.


Linux
  1. Cómo cambiar el shell predeterminado en Linux

  2. ¿Cómo obtener el nombre de la rama git actual en una variable en un script de Shell?

  3. ¿Cómo uso las líneas de un archivo como argumentos de un comando?

  4. ¿Cómo cambiar el idioma de mi git?

  5. ¿Cómo obtener el código de salida del proceso generado en el script de shell esperado?

Cómo usar el comando de lectura Bash

Cloc:cuente las líneas del código fuente en muchos lenguajes de programación

Cómo cambiar el shell predeterminado en el sistema Linux

¿Cómo leer argumentos de línea de comando en scripts de Shell?

¿Cómo obtener el PYTHONPATH en shell?

¿Cómo ejecutar código en el shell de Django mediante un script de python externo?