it-swarm.com.de

Wie lese ich den Quellcode von Shell-Befehlen?

Ich möchte den eigentlichen Quellcode lesen, mit dem die Linux-Befehle geschrieben werden. Ich habe einige Erfahrungen mit deren Verwendung gesammelt und jetzt denke ich, dass es Zeit ist, tiefer mit meinem Computer zu interagieren. 

Ich habe hier einige Befehle gefunden http://directory.fsf.org/wiki/GNU . Leider konnte ich keine grundlegenden Befehle wie 'ls' finden, was mir leicht genug erscheint. 

Wie lese ich den Quellcode der einfachen Shell-Befehle wie 'ls'? Ich laufe auf Ubuntu 12.04

132
Luigi Tiburzi

Alle diese grundlegenden Befehle sind Teil des Pakets coreutils.

Hier finden Sie alle Informationen, die Sie benötigen:

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

Wenn Sie die neueste Quelle herunterladen möchten, sollten Sie git verwenden:

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

Um git auf Ihrem Ubuntu-Rechner zu installieren, sollten Sie apt-get verwenden (git ist nicht in der Standard-Ubuntu-Installation enthalten):

Sudo apt-get install git

Um ehrlich zu sein, hier können Sie eine bestimmte Quelle für den Befehl ls finden:

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

Nur 4984 Codezeilen für einen Befehl 'easy genug' als ls... sind Sie immer noch daran interessiert, ihn zu lesen? Viel Glück! : D

148
Zagorax

Direkte Links zu Quellen für einige beliebte Programme in coreutils :

Vollständige Liste hier.

103
Drew Noakes

ls ist Teil von coreutils. Sie können es mit git bekommen:

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

Sie finden coreutils mit anderen Paketen (nach unten scrollen) auf dieser Seite .

6
Denys Séguret

Tatsächlich werden mehr gesunde Quellen von http://suckless.org zur Verfügung gestellt - siehe ihr sbase-Repository:

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

Sie sind klarer, intelligenter, einfacher und unansehnlicher, z. B. hat ls.c nur 369 LOC

Danach wird es einfacher, den komplizierteren GNU - Code zu verstehen.

4
hurufu

CoreUtils, auf das in anderen Beiträgen verwiesen wird, zeigt NICHT die tatsächliche Implementierung der meisten Funktionen, die Sie meiner Meinung nach suchen. In den meisten Fällen werden Frontends für die eigentlichen Funktionen bereitgestellt, die die Daten abrufen. Diese finden Sie hier:

Es basiert auf Gnulib mit dem eigentlichen Quellcode im lib-Unterverzeichnis

1
slashmais

Sie können es mit dem Befehl auf github haben

git clone https://github.com/coreutils/coreutils.git

Sie finden alle Quellcodes im Ordner src.

Sie müssen git installiert haben.

Seit 2012 hat sich etwas geändert, der ls-Quellcode hat jetzt 5309 Zeilen

0
Danilo Akou