Linux の whereis コマンド:ファイルとコマンドの検索

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

TechCorpのシステム管理部門へようこそ!新入りのシニアシステム管理者として、あなたのタスクはwhereisコマンドをマスターすることです。この強力なツールは、Linuxシステム内のさまざまなコマンドのバイナリ、ソース、およびマニュアルページファイルを見つけるのに役立ちます。この実験が終わるまでに、あなたは効率的にファイルシステムをナビゲートし、重要なシステムコンポーネントを見つけることができるようになります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/FileandDirectoryManagementGroup -.-> linux/whereis("File/Command Finding") subgraph Lab Skills linux/whereis -.-> lab-215211{{"Linux の whereis コマンド:ファイルとコマンドの検索"}} end

'whereis'の基本を理解する

TechCorpでの最初のタスクは、whereisコマンドを慣れ親しませることです。このコマンドは、指定されたコマンドのバイナリ、ソース、およびマニュアルページファイルを見つけるために使用されます。

まずはwhereisを使ってlsコマンドに関する情報を探してみましょう:

whereis ls

次のような出力が表示されるはずです:

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

この出力には2つの情報が含まれています:

  1. /usr/bin/ls:これはlsバイナリ実行可能ファイルの場所です。端末でlsと入力すると、これが実際に実行されるプログラムです。
  2. /usr/share/man/man1/ls.1.gz:これはlsのマニュアルページの場所です。マニュアルページには、コマンドの使い方に関する詳細な情報が含まれています。

whereisコマンドは、標準のバイナリディレクトリ、ライブラリディレクトリ、およびマニュアルページディレクトリなど、制限された場所セット内のファイルを検索します。これにより、ファイルシステム全体を検索するよりも高速になります。

これらのパスが何を意味するのか興味がある場合は:

  • /usr/binはユーザコマンドの一般的な場所です。
  • /usr/share/manは通常マニュアルページが保存される場所です。
  • man1はこれがユーザコマンドマニュアル(システムコールやライブラリ関数とは対照的)であることを示しています。
  • .gz拡張子は、ファイルが圧縮されていることを意味し、スペースを節約するためです。

バイナリファイルの検索

あなたのチームリードは、grepコマンドのバイナリファイルを見つけるように指示しました。whereis-bオプションは、このタスクに最適です。なぜなら、このオプションはバイナリファイルを特定的に検索するからです。

次のコマンドを試してみてください:

whereis -b grep

次のような出力が表示されるかもしれません:

grep: /usr/bin/grep

この出力は、grepバイナリファイルの場所を示しています。バイナリファイルは、コマンドを入力したときに実行される実行可能プログラムです。この場合、grepコマンドを使用するとき、実際には/usr/bin/grepにあるプログラムが実行されます。

さて、システムに存在しない可能性のあるコマンドのバイナリを探してみましょう。架空のコマンドnonexistentを検索するためにwhereis -bを使用してみてください:

whereis -b nonexistent

次のように表示されるはずです:

nonexistent:

この空の出力は、nonexistentコマンドに対してバイナリが見つからなかったことを示しています。システムに特定のコマンドがインストールされているかどうかわからない場合に役立ちます。

マニュアルページの場所特定

次のタスクは、sshコマンドのマニュアルページを見つけることです。マニュアルページは、さまざまなコマンドの使い方を理解するために欠かせないものです。

whereis-mオプションを使用して、マニュアルページを見つけましょう:

whereis -m ssh

次のような出力が表示されるかもしれません:

ssh: /usr/share/man/man1/ssh.1.gz

この出力は、sshコマンドのマニュアルページの場所を示しています。.gz拡張子は、ファイルが圧縮されていることを意味し、スペースを節約するためです。

マニュアルページの内容を表示するには、通常manコマンドを使用します。しかし、まだそのコマンドについては説明していないので、ここではただファイルが存在するかどうかを確認しましょう:

ls /usr/share/man/man1/ssh.1.gz

ファイルが存在する場合、出力にその名前が表示されます。これにより、マニュアルページがシステムに実際に存在することが確認できます。

マニュアルページの場所を理解することは、システム管理者にとって非常に重要です。特定のコマンドに関するドキュメントが利用可能かどうかを確認できるようになります。これは、ツールの使い方を理解したり、問題をトラブルシューティングする際に非常に役立ちます。

オプションの組み合わせ

あなたがwhereisに慣れ親しんできたところで、あなたのチームリードはあなたに、python3コマンドのバイナリとマニュアルページの両方を一度に見つけるチャレンジを投げかけます。

これを達成するには、-bオプションと-mオプションを組み合わせることができます:

whereis -bm python3

次のような出力が表示されるかもしれません:

python3: /usr/bin/python3 /usr/lib/python3 /etc/python3 /usr/share/python3 /usr/share/man/man1/python3.1.gz

この出力には豊富な情報が含まれています:

  • /usr/bin/python3:Python 3のバイナリ(実行可能プログラム)の場所
  • /usr/lib/python3:Python 3のライブラリ(Pythonプログラムで使用される再利用可能なコード)が含まれるディレクトリ
  • /etc/python3:Python 3の設定ファイルが含まれるディレクトリ
  • /usr/share/python3:共有されるPython 3のデータが含まれるディレクトリ
  • /usr/share/man/man1/python3.1.gz:Python 3のマニュアルページの場所

この包括的なビューは、ファイルシステム全体にわたって複数のコンポーネントを持つ複雑なソフトウェアを扱っているときに特に役立ちます。すべてのものがどこにあるかをすばやく概要を把握することができます。

ソースファイルの探索

最後のタスクとして、あなたのチームリードは、システム上にbashシェルのソースファイルが利用可能かどうかを確認してほしいと考えています。ソースファイルは、プログラムがどのように機能するかを理解したり、カスタムバージョンをコンパイルする際に役立つ場合があります。

ソースファイルを検索するには-sオプションを使用します:

whereis -s bash

出力は空になる場合が多いです。なぜなら、ほとんどのシステムではソースファイルはデフォルトでインストールされないからです。出力が表示される場合、それはシステム上のbashソースファイルの場所を示します。

さて、すべてのオプションを組み合わせてbashコマンドの完全な情報を取得してみましょう:

whereis bash

このオプションなしのコマンドは、bashに関するすべての利用可能な情報を表示します。出力は次のようになるかもしれません:

bash: /usr/bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

この出力は次のことを示しています:

  • /usr/bin/bash:bashのバイナリ実行可能ファイル
  • /etc/bash.bashrc:bashのシステム全体の設定ファイル
  • /usr/share/man/man1/bash.1.gz:bashのマニュアルページ

これらのファイルの場所を理解することは、システム管理タスクにとって非常に重要です。たとえば、すべてのユーザーに対するbashの既定の動作を変更する必要がある場合、/etc/bash.bashrcを参照することがわかります。

まとめ

この実験では、Linuxシステム内のさまざまなコマンドのバイナリ、ソース、およびマニュアルページファイルを見つけるためにwhereisコマンドをどのように使用するかを学びました。以下のことができるようになりました:

  1. コマンドに関する基本情報を見つける
  2. -bオプションを使用してバイナリファイルを見つける
  3. -mオプションを使用してマニュアルページを見つける
  4. より包括的な情報を取得するためにオプションを組み合わせる
  5. -sオプションを使用してソースファイルを検索する

これらのスキルは、システム管理者としてのあなたの役割において非常に貴重であり、重要なファイルを迅速に見つけ、Linuxシステムの構造を理解することができます。

この実験では扱わなかったwhereisコマンドの追加オプションには、以下があります:

  • -u:異常なエントリ(通常の命名パターンに従わないファイル)を検索する
  • -Bwhereisがバイナリを検索する場所を変更または制限する
  • -Mwhereisがマニュアルページを検索する場所を変更または制限する
  • -Swhereisがソースを検索する場所を変更または制限する

システム管理の旅を続ける際、whereisはあなたが利用できる多くのツールの1つにすぎないことを忘れないでください。迅速な検索には特に役立ちますが、より包括的なファイル検索には、将来的にfindlocateなどのコマンドを検討することもできます。