Unix実行可能ファイルを開く/読み込む[閉じる]

Unix実行可能ファイルを開く/読み込む[閉じる]

Unix実行可能ファイルを読み取るための基本的な方法(追加の項目をインストールまたはダウンロードせずに)はありますか?ファイルを読んで内容を確認し、そのファイルで何ができるかを理解するだけです。

私が本当にやりたいことは、ワイヤレス診断アプリが何をしているのかを理解することです。どのようにそれをしました。私はMac用のネットワーク診断アプリケーションを自分で構築しようとしています。そこで、ワイヤレス診断アプリケーション(場所:/System/Library/CoreServices/Applications/Wireless Diagnostics.app)の内容を読みたかったので、アプリケーションで実行可能ファイルを見つけて何でも収集できることを確認しました。それが私が取り除きたいものです。

ベストアンサー1

シェルプロンプトで実行できるコマンドについて話している場合は、マニュアルページが必要です。

$ man someprogram

このような結果が出たら、No manual entry for fooGNUを試してみてくださいinfo

$ info someprogram

すべてのUnixおよびUnixファミリのオペレーティングシステムにGNU情報があるわけではありませんが、多くのオペレーティングシステムにGNU情報があり、通常は基本ページmanよりも特定のコマンドに関するより多くの情報を提供します。

コマンドがあり、infoコマンドがわからない場合は、No menu item 'someprogram' in node '(dir)Top'画面下部のような内容が表示されます。Q終了をタップしますinfo

このようなシステムでは、プログラムは通常、一部のパッケージマネージャが所有するか、パッケージマネージャにプログラムを要求することができる。たとえば、に興味があり、someprogramそのコマンドでシェルを使用しているとしますwhich。後者が利用できない場合は、実行可能ファイルへのパスを手動で提供できます/usr/bin/someprogram

RPMベースのLinux(RHEL、Fedora、CentOS ...)

まず、プログラムが属するパッケージを探します。

$ rpm -qf `which someprogram`
somepackage-1.2.3-4

その後、RPM にパッケージをリクエストします。

$ rpm -qi somepackage
Name      : somepackage
Version   : 1.2.3
Release   : 4
...etc...

DEBベースのLinux(Debian、Ubuntu、Mint...)

このモードはRPMと同じです。まず、ファイル所有者が誰であるかを確認してください。

$ dpkg -S `which someprogram`
somepackage: /usr/bin/someprogram

次に、パッケージ自体について尋ねます。

$ dpkg -s somepackage
Package: somepackage
Essential: no
Status: install ok installed
...etc...

Mac OS X

「基本」OS Xパッケージマネージャは、あらゆる目的には役に立ちませんが、試してみる価値のある隠しオペレーティングシステムの機能です。パターンは上記と同じです。

$ pkgutil --file-info `which someprogram`
volume: /
path: /usr/bin/someprogram
pkgid: com.example.bundles.somepackage
pkg-version: 1.2.3
...etc...

その後、追加情報を入手してくださいsomepackage

$ pkgutil --pkg-info com.example.bundles.somepackage
$ pkgutil --files com.example.bundles.somepackage
...etc...

サードパーティのパッケージマネージャのいずれかをインストールした場合(自分で作ったMacポートまたはファンキージャズ)自分が所有するパッケージに関する情報を取得するための同様のコマンドがあります。

これらのシステムの外部にインストールされたプログラムを扱っている場合は、おそらく内部メカニズムを使用して自分自身についてのすべてを知らせるGUIプログラムを扱っています。 (箱、ヘルプなどについて)

FreeBSD

伝統的に、BSDは公式パッケージマネージャを使用していませんでしたが、過去数年間、FreeBSDはゆっくり使用する方向に進んでいます。pkg、PkgNGとも呼ばれます。

また、上記のシステムと使用パターンは同じです。

$ pkg which `which someprogram`
/usr/bin/someprogram was installed by package somepackage-1.2.3-4
$ pkg info somepackage
somepackage-1.2.3-4
Name :           somepackage
Version :        1.2.3-4
...etc...

おそらくいつかFreeBSDシステムにインストールされているほとんどのプログラムがインストールに合格するでしょうがpkg、今日はそうではありません。

プログラムでインストールした場合ポート、インストールされているポートを確認することができます。

 $ cd /usr/ports
 $ ls -d */somepackage
 net/somepackage
 $ cat net/somepackage/pkg-descr

おすすめ記事