Welche Sprachen werden zum Erstellen von Unix-Befehlen verwendet?

9

Beispiele für Befehle Ich beziehe mich sind ls, pwdund cd. Wie werden diese gebaut? Hast du ein beispiel

fronthem
quelle
2
Ist das Hausaufgaben?
Stefan Lasiewski

Antworten:

26

Es ist normalerweise klar C. Die Befehle lsund pwdstammen aus dem GNU CoreutilsPaket in (den meisten?) Linux-Distributionen (und möglicherweise einigen anderen Systemen). Sie finden den Code auf ihrer Homepage .

Für coreutilsspeziell 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 cdausführbare Datei gibt , die von cdIhnen 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 Cauch der Fall ist ).

Andere Beispiele:

  • OpenSolaris- pwdQuelle.
  • FreeBSD ls

Sie können viele weitere davon online finden.

Matte
quelle
5

Nur um Mats Antwort ein wenig mehr hinzuzufügen, obwohl Unix diese als eigenständige Programme implementiert, werden viele Befehle auch in bashder bashManpage implementiert (um zu verhindern, dass ein neuer Prozess erzeugt werden muss). Weitere Informationen finden Sie in der Manpage oder in der 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 luaImplementierungen von diesen und anderen.

symcbean
quelle
2
Nun, Bash oder irgendeine andere gute Muschel.
rds
1
Beachten Sie auch, dass einige Befehle wie cdeine integrierte Shell sein müssen, um effektiv zu funktionieren.
AProgrammer