Programy jsou obyčejné spustitelné soubory napsané v libovolném jazyce (většinou C).
Shell převezme zadaný příkaz, který je pouze řetězcem. Poté hledá určité sekvence znaků, které mají speciální význam pro shell, jako jsou proměnné prostředí, které jsou $
následované slovem nebo přesměrováním >
následuje cesta. Po provedení této substituce má řetězec, který je rozdělen na mezery, aby se vygeneroval název spustitelného souboru a parametry. Shell poté vyhledá spustitelný soubor v seznamu adresářů v proměnné prostředí PATH. Shell pak používá systémová volání k vytvoření procesu ze spustitelného souboru s parametry.
Například pro provedení příkazu ls $HOME
shell by nejprve poznal, že $HOME
je proměnná prostředí a dosaďte ji za její hodnotu v tomto případě /home/user
ponechání příkazu ls /home/user
. Poté rozdělí příkaz na mezeru a získá název spustitelného souboru ls
a parametr /home/user
. Shell najde první spustitelný soubor, který odpovídá ls
obvykle /bin/ls
. K vytvoření nového procesu pak použije systémová volání spawn()/posix_spawn() nebo fork() a exec().
Většina základních nástrojů v linuxu je napsána v C
.To můžete ověřit v busybox source code
který podporuje většinu základních linuxových příkazových nástrojů, které jsou napsány v C
.Takže příkazy jako ls,cd ...atd jsou v c
Jak bude shell interpretovat check-in odkaz níže
v operačním systému existuje speciální program zvaný shell. Shell přijímá lidsky čitelné příkazy a překládá je do něčeho, co může jádro číst a zpracovávat.
http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm
Tyto programy jsou napsány hlavně v programovacím jazyce C, stejně jako linuxové jádro.