GNU/Linux >> Znalost Linux >  >> Linux

Jak načtu zdrojový kód příkazů shellu?

Přímé odkazy na zdroj některých oblíbených programů v coreutils :

  • cat (767 řádků)
  • chmod (570 řádků)
  • cp (2912 řádků)
  • cut (831 řádků)
  • date (570 řádků)
  • df (1718 řádků)
  • du (1112 řádků)
  • echo (272 řádků)
  • head (1070 řádků)
  • hostname (116 řádků)
  • kill (312 řádků)
  • ln (651 řádků)
  • ls (4954 řádků)
  • md5sum (878 řádků)
  • mkdir (306 řádků)
  • mv (512 řádků)
  • nice (220 řádků)
  • pwd (394 řádků)
  • rm (356 řádků)
  • rmdir (252 řádků)
  • shred (1325 řádků)
  • tail (2301 řádků)
  • tee (220 řádků)
  • touch (437 řádků)
  • wc (801 řádků)
  • whoami (91 řádků)

Úplný seznam zde.


Ve skutečnosti více rozumných zdrojů poskytuje http://suckless.org podívejte se na jejich sbase úložiště:

git clone git://git.suckless.org/sbase

Jsou přehlednější, chytřejší, jednodušší a bezcitnější, např. ls.c má pouze 369 LOC

Poté bude snazší porozumět složitějšímu kódu GNU.


Všechny tyto základní příkazy jsou součástí coreutils balíček.

Všechny potřebné informace naleznete zde:

http://www.gnu.org/software/coreutils/

Pokud si chcete stáhnout nejnovější zdroj, měli byste použít git:

git clone git://git.sv.gnu.org/coreutils

Chcete-li nainstalovat git na svůj počítač Ubuntu, měli byste použít apt-get (git není součástí standardní instalace Ubuntu):

sudo apt-get install git

Po pravdě řečeno, zde můžete najít konkrétní zdroj pro ls příkaz:

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c

Pouze 4984 řádků kódu pro příkaz „dostatečně snadný“ jako ls ... stále máte zájem si to přečíst?? Hodně štěstí! :D


ls je součástí coreutils. Můžete to získat pomocí git :

git clone git://git.sv.gnu.org/coreutils

Na této stránce najdete coreutils uvedené s ostatními balíčky (přejděte dolů).


Linux
  1. Jak odstranit prvních N řádků souboru Ascii pomocí příkazů Shell?

  2. Jak změnit výchozí prostředí v Linuxu

  3. Jak získat název aktuální větve git do proměnné v shell skriptu?

  1. Jak mohu použít řádky souboru jako argumenty příkazu?

  2. Jak změnit jazyk mého git?

  3. Jak získat výstupní kód vytvořeného procesu ve skriptu očekávaného shellu?

  1. Jak přiřadit výstup příkazu proměnné shellu?

  2. Jak zjistit, zda je Shell řízen z Ssh?

  3. Jak číst odezvu websocket v linuxovém shellu