Risposte:
Di solito è semplice C
. I comandi ls
e pwd
provengono dal GNU Coreutils
pacchetto in (la maggior parte?) Distribuzioni Linux (e forse alcuni altri sistemi). Puoi trovare il codice sulla loro homepage .
In coreutils
particolare, li costruisci con i soliti passaggi: dopo aver decompresso l'origine, emetti:
./configure --prefix=/some/path
# type ./configure --help to get the available options
make
make install # could require root access depending on the path you used
Fai attenzione: installare utility di base come quelle sulla copia della tua distribuzione è una cattiva idea . Utilizzare qualsiasi gestore di pacchetti fornito dal proprio sistema. Puoi installare un prefisso diverso (l'installazione da qualche parte nella tua home directory è una buona idea se vuoi sperimentare).
Nota che sebbene esista un cd
eseguibile , quello cd
che utilizzerai nella maggior parte dei casi non è un eseguibile separato. Deve essere un build-in di shell (altrimenti non potrebbe cambiare la directory corrente della shell - questo deve essere fatto dal processo stesso), quindi è scritto nella stessa lingua della shell (che spesso è C
troppo).
Altri esempi:
Puoi trovarne molti altri online.
Solo per aggiungere un po 'di più alla risposta di Mat, anche se Unix li implementa come programmi autonomi, molti comandi sono anche implementati all'interno bash
(per salvarlo dovendo generare un nuovo processo) vedere la bash
pagina man per maggiori dettagli, o dare un'occhiata alla shell -builtin tag.
bash
è anche scritto in C.
Vale la pena notare che questi comandi non devono essere scritti in C - in effetti, diverse distribuzioni di mini linux utilizzano lua
implementazioni di questi e altri.
cd
deve essere una shell integrata per funzionare in modo efficace.