2012-07-17 126 views
115

我想讀取linux命令寫入的實際代碼。我已經獲得了一些使用它們的經驗,現在我認爲是時候在更深層次上與我的機器進行交互了。我在這裏找到了一些命令http://directory.fsf.org/wiki/GNU哪裏可以找到Linux核心命令的源代碼?

不幸的是,我無法找到基本的命令,比如'ls',這在我看來很容易開始。

你碰巧知道一些網頁,書或任何其他的東西開始?

我在Ubuntu 12.04

+1

可能重複shell命令](http://stackoverflow.com/questions/8417373/source-code-of-shell-commands) – Kevin 2012-07-18 02:32:50

+0

嗨,我也找到一個實用程序,它是util-linux。你可以在這裏找到它(https://github.com/karelzak/util-linux) – acgtyrant 2014-12-16 09:10:22

+0

'ls'不是Linux的一部分,它是Gnu的一部分。 Gnu運行在Linux和其他內核上。 – 2017-08-31 17:19:10

回答

129

所有這些基本命令都是coreutils包的一部分。

你可以找到所有您需要的信息在這裏:

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

如果您想要下載最新的源代碼,您應該使用git:

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

在其上安裝的git你Ubuntu機器,你應該使用apt-get(git不包含在標準的Ubuntu安裝中):

sudo apt-get install git

真相被告知,在這裏你可以找到的ls命令特定源:對命令「很容易,」作爲ls

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

只有4984行代碼?你是否還在有興趣閱讀它?祝你好運! :d

+2

OMG!我認爲這有點容易...呃路徑比預期的更長更難:-) – 2012-07-17 23:26:36

+13

嘗試[貓的來源](http://git.savannah.gnu.org/cgit/coreutils.git /tree/src/cat.c)。它只有767行。 – 2014-09-23 23:08:36

+2

'只有4984條代碼行...' - 看起來在4年零3個月裏'ls'已經成爲另外57條更復雜的行。 – sherrellbc 2016-10-14 13:43:54

6

ls運行是的coreutils的一部分。你可以用git得到它:

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

你會發現與其他產品進行上市的coreutils上this page(滾動到底)。

+0

或在線瀏覽回購...例如。 http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c – Useless 2012-07-17 18:06:58

-1
cd ~ && apt-get source coreutils && ls -d coreutils*  

您應該能夠使用這樣的命令在Ubuntu收集一個包的來源,則可以省略sudo假設你下載到你自己的位置。

86

直接鏈接到coreutils來源爲一些受歡迎的節目:

Full list here.

+0

感謝列表中的行數。 :) – 2016-08-23 05:52:11

+0

你有'su'嗎? – Arin 2018-02-09 00:15:24

3

實際上,通過http://suckless.org看到他們的sbase庫:

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

他們更清晰,更智能,更簡單,suckless,如ls.c剛剛369 LOC

之後,它會更容易理解更復雜的GNU代碼。

1

的coreutils沒有顯示真正落實其中大部分我認爲你所尋求的功能。在大多數情況下,它提供了用於檢索數據的實際功能,可以在這裏找到前端:

它在Gnulib與實際源代碼建立在[來源的代碼lib-subdirectory

相關問題