Linuxコマンドが書かれている実際のソースコードを読みたいです。それらを使用した経験がいくつかありましたが、今は、マシンをより深いレベルで操作する時が来たと思います。
ここにいくつかのコマンドがあります http://directory.fsf.org/wiki/GN 。残念ながら、「ls」などの基本的なコマンドを見つけることができませんでした。
「ls」のような単純なシェルコマンドのソースコードを正確に読み取るにはどうすればよいですか? Ubuntu 12.04で実行しています
これらの基本的なコマンドはすべて、coreutils
パッケージの一部です。
必要なすべての情報をここで見つけることができます。
http://www.gnu.org/software/coreutils/
最新のソースをダウンロードする場合は、gitを使用する必要があります。
git clone git://git.sv.gnu.org/coreutils
Ubuntuマシンにgitをインストールするには、apt-getを使用する必要があります(gitは標準のUbuntuインストールには含まれていません)。
Sudo apt-get install git
真実は、ここでls
コマンドの特定のソースを見つけることができます:
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c
ls
...のように「簡単」なコマンドの4984コード行のみ、まだ読みたいですか??がんばろう! :D
coreutils
の人気のあるプログラムのソースへの直接リンク:
ls
はcoreutilsの一部です。 gitで取得できます:
git clone git://git.sv.gnu.org/coreutils
このページ に、他のパッケージとともにリストされているcoreutilsがあります(下にスクロール)。
実際には、より適切なソースが http://suckless.org によって提供されています。sbase
リポジトリを見てください:
git clone git://git.suckless.org/sbase
それらはより明確で、よりスマートで、よりシンプルで、サックレスです。例えば、ls.c
のLOCはわずか369です
その後、より複雑なGNUコードを理解しやすくなります。
次のコマンドを使用してgithubで使用できます
git clone https://github.com/coreutils/coreutils.git
すべてのソースコードは、srcフォルダーにあります。
git がインストールされている必要があります。
2012年以降、物事は変わりました。ls
ソースコードは5309行になりました
他の投稿で言及されているCoreUtilsは、私があなたが探していると思うほとんどの機能の実際の実装を示していません。ほとんどの場合、データを取得する実際の関数のフロントエンドを提供します。これは次の場所にあります。
Gnulib に基づいて構築され、実際のソースコードは lib-subdirectory