Antworten:
Es ist normalerweise klar C
. Die Befehle ls
und pwd
stammen aus dem GNU Coreutils
Paket in (den meisten?) Linux-Distributionen (und möglicherweise einigen anderen Systemen). Sie finden den Code auf ihrer Homepage .
Für coreutils
speziell bauen Sie sie mit den üblichen Schritten: nach dem Entpacken des Quellcodes, Ausgabe:
./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
Seien Sie vorsichtig - die Installation von Basisdienstprogrammen wie denen über der Kopie Ihrer Distribution ist eine schlechte Idee . Verwenden Sie dazu den Paketmanager, mit dem Ihr System geliefert wird. Sie können jedoch unter einem anderen Präfix installieren (die Installation irgendwo in Ihrem Home-Verzeichnis ist eine gute Idee, wenn Sie experimentieren möchten).
Beachten Sie, dass es zwar eine cd
ausführbare Datei gibt , die von cd
Ihnen in den meisten Fällen jedoch keine separate ausführbare Datei ist. Es muss ein Shell-Build sein (andernfalls kann das aktuelle Verzeichnis der Shell nicht geändert werden - dies muss vom Prozess selbst durchgeführt werden), daher wird es in derselben Sprache wie die Shell geschrieben (was häufig C
auch der Fall ist ).
Andere Beispiele:
Sie können viele weitere davon online finden.
Nur um Mats Antwort ein wenig mehr hinzuzufügen, obwohl Unix diese als eigenständige Programme implementiert, werden viele Befehle auch in bash
der bash
Manpage implementiert (um zu verhindern, dass ein neuer Prozess erzeugt werden muss). Weitere Informationen finden Sie in der Manpage oder in der Shell -builtin Tag.
bash
ist auch in C geschrieben
Es kann erwähnenswert, dass diese Befehle nicht haben in C werden geschrieben - in der Tat, mehrere Mini - Linux - Distribution verwenden lua
Implementierungen von diesen und anderen.
cd
eine integrierte Shell sein müssen, um effektiv zu funktionieren.