我想讀取linux命令寫入的實際代碼。我已經獲得了一些使用它們的經驗,現在我認爲是時候在更深層次上與我的機器進行交互了。我在這裏找到了一些命令http://directory.fsf.org/wiki/GNU。哪裏可以找到Linux核心命令的源代碼?
不幸的是,我無法找到基本的命令,比如'ls',這在我看來很容易開始。
你碰巧知道一些網頁,書或任何其他的東西開始?
我在Ubuntu 12.04
我想讀取linux命令寫入的實際代碼。我已經獲得了一些使用它們的經驗,現在我認爲是時候在更深層次上與我的機器進行交互了。我在這裏找到了一些命令http://directory.fsf.org/wiki/GNU。哪裏可以找到Linux核心命令的源代碼?
不幸的是,我無法找到基本的命令,比如'ls',這在我看來很容易開始。
你碰巧知道一些網頁,書或任何其他的東西開始?
我在Ubuntu 12.04
所有這些基本命令都是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
OMG!我認爲這有點容易...呃路徑比預期的更長更難:-) – 2012-07-17 23:26:36
嘗試[貓的來源](http://git.savannah.gnu.org/cgit/coreutils.git /tree/src/cat.c)。它只有767行。 – 2014-09-23 23:08:36
'只有4984條代碼行...' - 看起來在4年零3個月裏'ls'已經成爲另外57條更復雜的行。 – sherrellbc 2016-10-14 13:43:54
cd ~ && apt-get source coreutils && ls -d coreutils*
您應該能夠使用這樣的命令在Ubuntu收集一個包的來源,則可以省略sudo
假設你下載到你自己的位置。
直接鏈接到coreutils
來源爲一些受歡迎的節目:
感謝列表中的行數。 :) – 2016-08-23 05:52:11
你有'su'嗎? – Arin 2018-02-09 00:15:24
實際上,通過http://suckless.org看到他們的sbase
庫:
git clone git://git.suckless.org/sbase
他們更清晰,更智能,更簡單,suckless,如ls.c
剛剛369 LOC
之後,它會更容易理解更復雜的GNU代碼。
你可以找到很多的命令在這裏:在其他帖子提到
http://www.opensource.apple.com/source/shell_cmds/shell_cmds-170/
的coreutils沒有顯示真正落實其中大部分我認爲你所尋求的功能。在大多數情況下,它提供了用於檢索數據的實際功能,可以在這裏找到前端:
它在Gnulib與實際源代碼建立在[來源的代碼lib-subdirectory
可能重複shell命令](http://stackoverflow.com/questions/8417373/source-code-of-shell-commands) – Kevin 2012-07-18 02:32:50
嗨,我也找到一個實用程序,它是util-linux。你可以在這裏找到它(https://github.com/karelzak/util-linux) – acgtyrant 2014-12-16 09:10:22
'ls'不是Linux的一部分,它是Gnu的一部分。 Gnu運行在Linux和其他內核上。 – 2017-08-31 17:19:10