Przykłady poleceń, o których mówię ls
, to pwd
, i cd
. Jak te są zbudowane? Czy masz przykład?
command-line
source
coreutils
fronthem
źródło
źródło
Odpowiedzi:
Zwykle jest to jasne
C
. Polecenials
ipwd
pochodzą zGNU Coreutils
pakietu w (większości?) Dystrybucjach Linuksa (i może w niektórych innych systemach). Możesz znaleźć kod na ich stronie głównej .W
coreutils
szczególności budujesz je zgodnie ze zwykłymi krokami: po rozpakowaniu źródła wydaj: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
cd
plik wykonywalny ,cd
w 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ęstoC
też jest).Inne przykłady:
pwd
Źródło OpenSolaris .ls
Możesz znaleźć wiele innych z nich online.
źródło
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), zobaczbash
stronę podręcznika, aby uzyskać więcej szczegółów, lub spójrz na powłokę -budowany tag.bash
jest również napisane w CWarto zauważyć, że polecenia te nie muszą być napisane w języku C - w rzeczywistości kilka dystrybucji mini-linux używa
lua
implementacji tych i innych.źródło
cd
wbudowana powłoka, muszą działać poprawnie.