GNU/Linux >> Znalost Linux >  >> Linux

V jakém jazyce jsou psány příkazy shellu?

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.


Linux
  1. Jaké příkazy chybí ve vašem souboru bashrc?

  2. Rozdíl mezi proměnnými Shell, které se exportují, a těmi, které nejsou v Bash?

  3. Na jakém Shellu běžím?

  1. Jak zjistit, který Shell používáte v Linuxu

  2. Co jsou Shell Scripts? Jak vytvořit Shell skripty?

  3. Co je nepřerušitelný proces?

  1. Který shell používám?

  2. V jakých jazycích jsou napsány Windows, Mac OS X a Linux?

  3. Co určuje, které příkazy Linuxu vyžadují přístup root?