Gdzie mogę znaleźć kod źródłowy poleceń Linux core? [zamknięte]

Chciałbym przeczytać rzeczywisty kod, którym są napisane polecenia Linuksa. Zdobyłem trochę doświadczenia z ich użyciem i teraz myślę, że nadszedł czas, aby wejść w interakcję z moją maszyną na głębszym poziomie. Znalazłem tu kilka poleceń http://directory.fsf.org/wiki/GNU .

Niestety nie byłem w stanie znaleźć podstawowych poleceń, takich jak 'ls', które wydaje mi się wystarczająco łatwe do rozpoczęcia.

Czy znasz jakąś stronę internetową, książkę lub inne rzeczy na początek?

I ' m running on Ubuntu 12.04

Author: Zagorax, 2012-07-17

8 answers

Wszystkie te podstawowe polecenia są częścią pakietu coreutils.

Wszystkie potrzebne informacje znajdziesz tutaj:

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

Jeśli chcesz pobrać najnowsze źródło, powinieneś użyć git:

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

Aby zainstalować git na swoim Ubuntu, powinieneś użyć apt-get (git nie jest częścią standardowej instalacji Ubuntu):

sudo apt-get install git

Prawdę można powiedzieć, tutaj można znaleźć konkretne źródło dla ls polecenie:

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

Tylko 4984 linie kodu dla polecenia 'easy enough' jako ls... nadal chcesz ją przeczytać?? Powodzenia! : D

 140
Author: Zagorax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-18 11:46:27

Bezpośrednie linki do źródeł niektórych popularnych programów w coreutils:

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

Pełna lista tutaj.

 98
Author: Drew Noakes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-05 22:23:46

ls jest częścią coreutils. Możesz go dostać za pomocą git:

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

Znajdziesz coreutils wymienione z innymi pakietami (przewiń do dołu) na tej stronie .

 6
Author: Denys Séguret,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-17 18:05:42

W rzeczywistości bardziej rozsądne źródła są dostarczane przez http://suckless.org spójrz na ich sbase repozytorium:

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

Są jaśniejsze, mądrzejsze, prostsze i bezsensowne, np ls.c ma tylko 369 LOC

Potem łatwiej będzie zrozumieć bardziej skomplikowany kod GNU.

 4
Author: hurufu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-13 19:45:59

Odwiedź na przykład:

Http://ftp.gnu.org/pub/gnu/coreutils/

Możesz przeglądać kod online. Otwórz jedno z archiwów i sprawdź folder src.

 1
Author: Haile,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-17 18:07:27

CoreUtils, o których mowa w innych postach, nie pokazuje rzeczywistej implementacji większości funkcjonalności, których myślę, że szukasz. W większości przypadków dostarcza front-endów dla rzeczywistych funkcji pobierających dane, które można znaleźć tutaj:

Jest zbudowany na Gnulib z rzeczywistym kodem źródłowym w lib-podkatalogu

 1
Author: slashmais,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-18 07:31:55
 0
Author: Guru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-07 10:52:58
    cd ~ && apt-get source coreutils && ls -d coreutils*     

Powinieneś być w stanie użyć komendy takiej jak ta na ubuntu, aby zebrać źródło dla pakietu, możesz pominąć sudo zakładając, że pobieranie do miejsca, które posiadasz.

 -1
Author: Aaron Peter Samuel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-01 05:01:48