web-dev-qa-db-ja.com

Linuxコマンドライン関数のソースコードの場所

Linuxのls、echo、catなどの標準コマンドライン関数のソースコードを調べたいのですが、ソースコードが見つかりませんでした(Google検索は役に立たなかった)。

それがどこで利用できるか誰かが知っていますか?私はそれが素朴な質問であることを知っていますが、このソースコードを本当に見つけることができません。

2
S4M

これらのコマンドは GNUコアユーティリティ です。最新のコードはgitリポジトリから取得できます:

http://git.savannah.gnu.org/cgit/coreutils.git

匿名で確認するには、次のようにgit cloneを使用します。

$ git clone git://git.savannah.gnu.org/coreutils.git
8
Spoike

これらの実装はいくつかありますが、最も一般的なものはGNU coreutils(ほとんどのLinuxディストリビューションにあります)およびBSD実装(FreeBSD、OS X、およびその他のほとんどの非Linux Unixにあります)です。 -好きです)。

ソースからすべてをインストールするディストリビューション(Gentooなど)を使用しているのでない限り、ソースをダウンロードするようパッケージマネージャーに依頼する必要があります。 Debianベースのシステムでは、適切なコマンドはapt-get source {package-name}で、指定したパッケージのソースをダウンロードして現在のディレクトリに保存します。あとは、これらのコマンドが含まれているパッケージを見つけるだけです。パッケージマネージャーのドキュメントを調べて方法を調べるか、ディストリビューションのWebサイトを検索できます。ほとんどのパッケージには、パッケージ内の個々のファイルを検索できるパッケージ検索があります。

Debianベースのシステム(Ubuntuなど)の場合:

$ dpkg -S /bin/rm
coreutils: /bin/rm
$ dpkg -l coreutils
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                         Version                      Description
+++-============================-============================-========================================================================
ii  coreutils                    8.13-3ubuntu3                GNU core utilities

Red Hatベースのシステム(FedoraやCentosなど)の場合:

$ rpm -qf /bin/rm
coreutils-5.97-34.el5_8.1
8
tdammers