GNU/Linux >> Linux Esercitazione >  >> Linux

Come leggo il codice sorgente dei comandi della shell?

Collegamenti diretti alla fonte di alcuni programmi popolari in coreutils :

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

Elenco completo qui.


In realtà fonti più sensate sono fornite da http://suckless.org guarda il loro sbase archivio:

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

Sono più chiari, più intelligenti, più semplici e più schifosi, ad esempio ls.c ha solo 369 LOC

Dopodiché sarà più facile capire il codice GNU più complicato.


Tutti questi comandi di base fanno parte del coreutils pacchetto.

Puoi trovare tutte le informazioni di cui hai bisogno qui:

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

Se vuoi scaricare l'ultima fonte, dovresti usare git:

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

Per installare git sulla tua macchina Ubuntu, dovresti usare apt-get (git non è incluso nell'installazione standard di Ubuntu):

sudo apt-get install git

A dire il vero, qui puoi trovare la fonte specifica per il ls comando:

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

Solo 4984 righe di codice per un comando 'abbastanza facile' come ls ... ti interessa ancora leggerlo?? Buona fortuna! :D


ls fa parte di coreutils. Puoi ottenerlo con git :

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

Troverai coreutils elencati con altri pacchetti (scorri verso il basso) in questa pagina.


Linux
  1. Come assegnare l'output di un comando a una variabile di shell?

  2. Come rilevare se la shell è controllata da Ssh?

  3. Come cambiare Cron Shell (sh To Bash)?

  4. Come leggere l'intero script della shell prima di eseguirlo?

  5. Come modificare la shell predefinita in Linux

Come utilizzare il comando di lettura Bash

Cloc:conta le righe del codice sorgente in molti linguaggi di programmazione

Come modificare la shell predefinita nel sistema Linux

Come leggere gli argomenti della riga di comando negli script della shell?

Come eseguire il codice nella shell Django da uno script Python esterno?

Come leggere la risposta websocket nella shell linux