
私はPythonを学んでいます。これまでは基本的なPythonコーディングだけしてみました。 1日前、私はtree
コマンドのPythonの実装を確認しました。突然そんな気がしましたuptime
。どの言語で実装されているのか、複製がどれほど複雑なのかわかりません。
しかし、ソースコードが見つかりません。私はFedora 14を使用しています。 kernel-devel パッケージがインストールされました。whereis uptime
これで私は/usr/bin/uptime
vimを使って開くと、結果ファイルに奇妙なシンボルが表示されます。ソースコードをインターネットで検索しても、期待される結果は得られません。ソースコードはどこにありますか?
答え1
通常、FedoraなどのRPMベースのディストリビューションでは、特定のコマンドを提供するパッケージ名を見つけることができますrpm -qf /path/to/command
。このように:
$ rpm -qf $( which uptime )
procps-3.2.8-18.20110302git.fc16.x86_64
その後、を使用してソースRPMをダウンロードできますyumdownloader --source procps
。 (yumdownloaderはyum-utils
まだインストールされていない場合はパッケージに付属しています。)src.rpmがあればrpm -i
それを使用したり解凍したりできますrpm2cpio
。
あるいは、ほとんどの場合、RPMパッケージでプロジェクトURLを照会することができ、これはアップストリームソースを見つけるのに役立ちます。
$ rpm -qi procps|grep ^URL
URL : http://gitorious.org/procps
そして、コードはオンラインで簡単に閲覧できます。注意深く読むと基本的にそれがすることは/proc/uptime
美しく読んで印刷するだけです。
答え2
稼働時間は「procps」パッケージの一部であり、アップストリームソースは次の場所にあります。http://procps.sourceforge.net/ (Fedoraユーザーではないので、どこで.src.rpmを見つけることができるかわかりません)。
しかし、尋ねられない質問に答えるには/proc/uptimeを見てください。最初の数字は起動後の秒数です。これを非常に使いやすいものに置き換えることができるはずです:)