Jakie języki są używane do budowania poleceń Uniksa?


Odpowiedzi:


26

Zwykle jest to jasne C. Polecenia lsi pwdpochodzą z GNU Coreutilspakietu w (większości?) Dystrybucjach Linuksa (i może w niektórych innych systemach). Możesz znaleźć kod na ich stronie głównej .

W coreutilsszczególności budujesz je zgodnie ze zwykłymi krokami: po rozpakowaniu źródła wydaj:

./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

Bądź ostrożny - instalowanie podstawowych narzędzi, takich jak te nad kopią ich dystrybucji, jest złym pomysłem . Użyj do tego dowolnego menedżera pakietów. Możesz jednak zainstalować na innym prefiksie (instalacja gdzieś w katalogu domowym jest dobrym pomysłem, jeśli chcesz eksperymentować).

Pamiętaj, że chociaż istnieje cdplik wykonywalny , cdw większości przypadków będziesz go używać, ale nie jest to osobny plik wykonywalny. Musi być wbudowany w powłokę (w przeciwnym razie nie mógłby zmienić bieżącego katalogu powłoki - musi to zrobić sam proces), więc jest napisany w tym samym języku co powłoka (co często Cteż jest).

Inne przykłady:

  • pwdŹródło OpenSolaris .
  • FreeBSD ls

Możesz znaleźć wiele innych z nich online.


5

Aby dodać trochę więcej do odpowiedzi Mat, chociaż Unix implementuje je jako samodzielne programy, wiele poleceń jest również implementowanych w bash(aby zaoszczędzić na konieczności odrodzenia nowego procesu), zobacz bashstronę podręcznika, aby uzyskać więcej szczegółów, lub spójrz na tag.

bash jest również napisane w C

Warto zauważyć, że polecenia te nie muszą być napisane w języku C - w rzeczywistości kilka dystrybucji mini-linux używa luaimplementacji tych i innych.


2
Cóż, bash lub jakikolwiek inny dobry pocisk.
rds

1
Zauważ też, że niektóre polecenia, takie jak cdwbudowana powłoka, muszą działać poprawnie.
AProgrammer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.