Linux組み込みコマンドのソースコードを表示するには? [コピー]

Linux組み込みコマンドのソースコードを表示するには? [コピー]

ping私が知っている限り、greporまたは同じコマンドを実行すると、lsLinuxオペレーティングシステムはそのコマンド名を見つけるためにディレクトリを検索します/bin。また、ほとんどのLinuxコマンドがCで書かれていることも知っています。

ping実際のCでORがどのようにls書かれているのか見たかったです。ちなみにcatファイルを使うとcat /bin/pingバイナリ形式なのでガベージデータを吐き出します。

それでは、Cで書かれたコマンドを見る方法はありますか?

ベストアンサー1

どのパッケージがコマンドを提供しているかを知ることが役立ちます。たとえば、多くの(すべてではない!)Linuxディストリビューションでは、このlsコマンドはGNUパッケージで提供されていますcoreutils。次のリンクから、これらのコマンドのソースを見つけることができます。coreutils ウェブページ

このpingコマンドはパッケージで提供されますiputils。ソースを見つけることができます。ここ


ほとんどのディストリビューションは、どのパッケージが特定のファイルを所有しているかを確認するメカニズムを提供します。たとえば、Ubuntuではdpkg-query次のように使用できます。

$ dpkg-query -S /bin/ls
coreutils: /bin/ls

Red Hat / Fedora / CentOS / etcに対応するコマンドは次のとおりです。

$ rpm -qf /bin/ls
coreutils-8.32-33.fc35.x86_64

興味のあるファイルを提供するパッケージがわかっている場合は、通常、ディストリビューションが提供する適切なソースパッケージを見つけてソースコードを見つけることができます。 Ubuntuの場合は、以下を訪問できます。https://packages.ubuntu.com/名前でパッケージを見つけると、iputils次のようになります。ここ、パッケージの構築に使用されたソースをダウンロードするためのリンクを見つけることができます。

Fedoraパッケージの場合は、以下をご覧ください。https://packages.fedoraproject.org/パッケージを検索してみてください。この場合、ファイルを読み取る必要がありますspec(例:これはiputilsからのものです。)ソースをどこで見つけることができるかをご覧ください。

UbuntuまたはFedora以外のシステムを使用している場合は、同様のメカニズムを使用できます。ほとんどのディストリビューションは、名前でソースパッケージをダウンロードするためのコマンドラインツールも提供しています。

おすすめ記事