Dove trovare il codice sorgente per le funzioni della riga di comando di Linux [chiuso]

3

Mi piacerebbe studiare il codice sorgente delle funzioni standard della riga di comando in Linux come ls, echo, cat, ecc. Ma non sono stato in grado di trovare il codice sorgente (una ricerca di Google era inutile).

Qualcuno sa dove è disponibile? So che è una domanda ingenua, ma non riesco davvero a trovare questo codice sorgente.

    
posta S4M 09.02.2013 - 20:35
fonte

2 risposte

7

Questi comandi sono utilità di base GNU . L'ultimo codice può essere recuperato da un repository git qui:

link

Per controllarlo in modo anonimo, usa git clone come questo:

$ git clone git://git.savannah.gnu.org/coreutils.git
    
risposta data 09.02.2013 - 21:05
fonte
8

Ci sono diverse implementazioni di questi, i più popolari sono i coreutils GNU (che si trovano nella maggior parte delle distribuzioni Linux) e l'implementazione BSD (che si trova in FreeBSD, OS X e altri Mi piace per Unix non Linux).

A meno che tu non sia su una distribuzione che installa tutto dalla sorgente (come Gentoo), dovrai chiedere al tuo gestore di pacchetti di scaricare i sorgenti per te. Sui sistemi basati su Debian, il comando appropriato è apt-get source {package-name} , che scarica l'origine per il pacchetto specificato e la memorizza nella directory corrente. Tutto ciò che è rimasto è scoprire quale pacchetto sono in quei comandi; puoi esaminare la documentazione del tuo gestore pacchetti per scoprire come, oppure puoi cercare nel sito web della tua distribuzione - molti di loro hanno una ricerca di pacchetti che ti permette di cercare singoli file all'interno dei pacchetti.

Per i sistemi basati su Debian (come Ubuntu):

$ dpkg -S /bin/rm
coreutils: /bin/rm
$ dpkg -l coreutils
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                         Version                      Description
+++-============================-============================-========================================================================
ii  coreutils                    8.13-3ubuntu3                GNU core utilities

Per i sistemi basati su Red Hat (come Fedora e Centos):

$ rpm -qf /bin/rm
coreutils-5.97-34.el5_8.1
    
risposta data 09.02.2013 - 21:06
fonte

Leggi altre domande sui tag