エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


Linuxのコマンドの情報を調べるwhich、whereis、whatis、apropos、man

      2020/06/05

Linuxのコマンドの情報を調べるコマンドの紹介

 

which、whereis、whatis、apropos、manコマンド

 
Linuxで実行するコマンドには様々なものがあります。
 
システムを管理するために必要なシステムコマンドや、ユーザが利用するコマンド、ユーザがインストールしたソフトウェアのコマンドなどもあります。
 
それらのコマンドの実行ファイルがどこにあるのか、マニュアルがどこにあるのか、また、マニュアルを検索して使い方を確認したい場合など、コマンドについての情報を集めるための下記のコマンドについて解説します。
 
 
which:コマンドのパスを表示するコマンド
whereis:コマンドのパスや、ソース、マニュアルのパスを表示するコマンド
 
whatis:コマンドのマニュアルを検索するコマンド(完全一致)
apropos:コマンドのマニュアルを検索するコマンド(部分一致)
 
man:コマンドのマニュアルを表示するコマンド
 
 
なお、記事中のコマンドの実行結果は、CentOS 7.5で行ったものになります。
(GNU bashのバージョンは 4.2.46です。)
 
 

whichコマンド

 
指定したコマンドのフルパスを表示するコマンドです。
次項の「whereis」コマンドとよく似ていますが、「which」はコマンドのパスを調べたいとき専用のコマンド、という感じです。
 
 

whichコマンドの基本形

 
基本形は以下になります。
 

 
 
whichコマンドの使用例は以下のようになります。
 

 
上記の通り、「cp」コマンドは「/usr/bin/cp」にあり、「perl」コマンドは「/usr/bin/perl」、「composer」コマンドは「/usr/local/bin/composer」にあることが分かります。
 
 
whichコマンドの使い所としては、
Perlを使った CGIのプログラムの先頭に記述する「#!/bin/bash」の Perlのパスを調べるときなどに便利です。
 
 
なお、whichコマンドを使う際には注意する点があります。
whichコマンドは、環境変数 PATHに基づいて検索を行いますので、一般ユーザが管理者用のコマンドを検索することが出来ない場合があります。
 
その場合は、何も表示されないか、コマンドがないと言うメッセージが表示されますので、権限を確認してみてください。
 
 

whichコマンドのオプション

 
「which」コマンドには下記のオプションがあります。
 

オプション 説明
-a 「which」コマンドには「-a」というオプションがあり、指定したコマンドが実行可能なすべてのパスを表示します。エイリアスがある場合は、エイリアスも表示します。

 
 
「-a」オプションの使用例としては以下のようになります。
 

 
 

whereisコマンド

 
指定したコマンドのバイナリ、ソース、マニュアルページなどコマンド関連のファイルのパスを表示するコマンドです。
前項の「which」とよく似ていますが、「whereis」の方が高機能でコマンドのパスを調べることもできますし、ソースやマニュアルの場所も調べることができます。
 
 

whereisコマンドの基本形

 
基本形は以下になります。
 

 
 
whereisコマンドの使用例は以下のようになります。
 

 
前項の「which」の結果と比べてみると分かりやすいのですが、コマンドのパスの表示と同時に、マニュアルがあればそのパスも記載されています。
 
 

whereisコマンドのオプション

 
「whereis」コマンドには下記のオプションがあります。
 

オプション 説明
-l 検索対象のディレクトリの一覧を表示します。
-b バイナリファイルの情報のみ表示します。
-m マニュアルページの情報のみ表示します。
-s ソースファイルの情報のみ表示します。
-B バイナリファイルを検索するディレクトリを指定します。
-M マニュアルファイルを検索するディレクトリを指定します。
-S ソースファイルを検索するディレクトリを指定します。
-f -B、-M、-Sオプションを指定する際に指定するディレクトリの終了を表す記号として指定します。

 
 
「-l」オプションの使用例としては以下のようになります。
 

 
「-l」オプションを付けてコマンドを実行すると、「whereis」コマンドを実行した際にデフォルトで検索対象とするパスの一覧が表示されます。
デフォルトのパスは、環境変数「PATH」「MANPATH」、「/etc/man_db.conf」ファイルの設定内容を参照します。
 
環境変数の扱い方については「Linuxの環境変数でパスの設定をする方法とシェル変数の扱い方を解説」「Linuxのbashで変数に値を追加する方法を多数紹介。+=や""を使う方法など」に記事を書いていますので、参考にしてください。
 
 
「-b」「-m」オプションの使用例としては以下のようになります。
 

 
オプションを付けない場合は、バイナリファイルとマニュアルページのパスが表示されます。
「-b」オプションを付けるとバイナリファイルのパスのみが、「-m」オプションを付けるとマニュアルページのパスのみが表示されます。
 
 
「-B」オプションの使用例としては以下のようになります。
 

 
前項は、「-B」オプションを使ってディレクトリを指定していますので、バイナリファイルは指定されたディレクトリの中だけを検索します。
指定するディレクトリは、「/tmp/」のように「/」で始まる絶対パスで指定します。(「/tmp/*」の様に「*」を付けると書かれた記事もありましたが、私の環境では付けると正しく動作しませんでした。)
また、スペースを区切り文字として複数のディレクトリを指定することができます。複数のディレクトリを指定することができるため、指定するディレクトリの終了地点には「-f」オプションを指定します。(「-f」を付けないと正しい動作になりません。)
 
この指定の仕方は、「-B」「-M」「-S」のいずれも同じです。
 
また、「-B」「-M」「-S」を指定した際も「-b」「-m」「-s」のオプションも付与することができます。
 
そのため、1つめのコマンドでは、バイナリファイルは存在しないため、マニュアルページのパスのみが表示されています。
2つめのコマンドでは「-b」を指定していますので、バイナリファイルが存在しないため、「cp:」のみ表示されています。
 
 

whatisコマンド

 
指定したコマンドをマニュアルから検索するコマンドです。
 
「which」「whereis」は、コマンドのパスを調べるコマンドでしたが、「whatis」はマニュアルページのデータベースから該当のコマンドを検索するコマンドです。
 
また、次項の「apropos」コマンドも同じくマニュアルページを検索するコマンドですが、「whatis」は完全一致で検索するコマンドで、「apropos」は部分一致で検索するコマンドです。
 
 

whatisコマンドの基本形

 
基本形は以下になります。
 

 
whatisコマンドの使用例は以下のようになります。
 

 
「cp」コマンドについてオンラインマニュアルから情報が表示されます。
 
 

makewhatis、mandbコマンドでマニュアルのデータベースを作成

 
whatisコマンドで検索するオンラインマニュアルの情報は、makewhatis、mandbコマンドで作成する whatisデータベースに入っています。
 
そのため、新しいコマンドをインストールした場合は、makewhatis、mandbコマンドで whatisデータベースを更新しておく必要が発生します。
 
 
makewhatis、mandbコマンドについては下記に記事を書いていますので、こちらを参考にしてください。
makewhatis、mandbコマンドでLinuxのオンラインマニュアル索引情報を更新
 
 

aproposコマンド

 
指定したコマンドをマニュアルから検索するコマンドです。
 
 

aproposコマンドの基本形

 
基本形は以下になります。
 

 
 
aproposコマンドの使用例は以下のようになります。
 

 
前項にも書きましたが、「whatis」は完全一致で検索するコマンドで、「apropos」は部分一致で検索するコマンドです。
そのため、同じ「cp」をキーワードの検索を行った場合、「whatis」の場合は「cp」のみがヒットしますが、「apropos」の場合は「cp」の文字列を含むコマンドが複数ヒットします。
 
 

manコマンド

 
指定したコマンドのマニュアルページを表示するコマンドです。
 
 

manコマンドの基本形

 
基本形は以下になります。
 

 
 
manコマンドの使用例は以下のようになります。
 

 
コマンドを入力すると「cp」コマンドのマニュアルが表示されます。
表示されたマニュアルは「q」キーを入力することで終了させることができます。
 
 

オンラインマニュアルの 9区分

 
Linuxのオンラインマニュアルには下記の 9区分あります。
 
1.ユーザーコマンド
2.システムコール(カーネルの機能を使うための関数)
3.ライブラリ(C言語の関数)
4.デバイスファイル(/dev 以下にあるファイル)
5.設定ファイル
6.ゲーム
7.その他
8.システム管理コマンド(root権限で実行するコマンド)
9.Linux独自のカーネル用ドキュメント
 
この区分は、「man」コマンドや前出の「whatis」「apropos」を実行したときに「cp(1)」と表示される「(1)」の数字にあたります。
 
「cp」は「(1)」と表示されますが、これにより「ユーザーコマンド」であることが分かります。
 
 

「man -f」「man -k」でも「whatis」「apropos」と同等の検索可能

 
マニュアルを表示表示する「man」コマンドにもマニュアルを検索するオプションがあります。
 
オプション「-f」で完全一致検索、「-k」で部分一致検索となります。
「man -f」は「whatis」と同等の機能で、「man -k」は「apropos」と同等の機能になります。
(man、whatis、aproposの各コマンドでの検索は、いずれも whatisデータベースを参照します。)
 
使い方も同じで、それぞれ下記の様に記述します。
 

 
 
「man」コマンドについては、下記により詳しい解説記事を書いていますので、あわせて参考にしてください。
Linuxのマニュアルページ表示コマンドmanの解説

 - Linuxコマンド

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

Linuxのタイムスタンプはmtime、ctime、atimeの3種類。touchコマンドで更新する方法
Linuxのタイムスタンプはmtime、ctime、atimeの3種類。touchコマンドで更新する方法

Linuxのファイルのタイムスタンプにはmtime、ctime、atimeの3種類がある。その違いを詳細に解説しつつ、lsで表示するオプション、touchで更新するオプションを解説。

Linuxでファイルの内容を表示するcatコマンドの解説。more、lessで代替も
Linuxでファイルの内容を表示するcatコマンドの解説。more、lessで代替も

catはLinuxのコマンドで、本来の機能はファイルを連結だが、ファイルの内容を表示する機能のために使うことが多く使用頻度が高い。同種の機能のmore、less、tacコマンドについても解説。

Linuxのheadコマンドは先頭行から、tailコマンドは最終行から指定した行を表示する
Linuxのheadコマンドは先頭行から、tailコマンドは最終行から指定した行を表示する

Linuxのhead、tailコマンドはファイルの先頭の一部、もしくは、末行の一部を表示するコマンド。行数や文字数で指定をする。tailはログを監視するためのオプションがある。

UNIX・Linuxの sedコマンドで特定の文字列を置換する方法

UNIX・Linuxのコマンドで特定の文字列を置換する sedコマンドの使い方と、perlコマンドを使っての方法を解説しています。

Linuxのbashのコマンドの履歴をhistoryで確認し!、↓、↑で実行する
Linuxのbashのコマンドの履歴をhistoryで確認し!、↓、↑で実行する

Linuxで実行したコマンドの履歴を確認するコマンド「history」。「history」の使い方、設定の変更、設定ファイルの設置場所について解説。「!番号」「!文字列」「!?文字列」など。

Linuxのbashで変数に値を追加する方法を多数紹介。+=や""を使う方法など
Linuxのbashで変数に値を追加する方法を多数紹介。+=や””を使う方法など

Linuxのbashで変数に値を代入する方法を解説。bashの変数の処理は柔軟で様々な方法を採れる。デリミタなしで値を追加する方法などを解説。

cat、less、head、tail、split、sedなどLinuxでファイルを操作するコマンド
cat、less、head、tail、split、sedなどLinuxでファイル、文字列を操作するコマンド

Linuxでファイル、テキストを操作するコマンドのまとめ。cat、less、head、tail、split、tr、sedなど、ファイルを表示、置換、連結、分割などの各コマンドの使い方の紹介と詳細ページの紹介。

less、moreはページャー、ファイルの中身を表示するLinuxのコマンド
less、moreはページャー、ファイルの中身を表示するLinuxのコマンド

Linuxにはコマンドで実行した結果が長い場合、1画面ごとに区切って表示するコマンドが用意されている。それがページャーと呼ばれるmore、lessだ。この使い方を解説。

Linuxの wcコマンドでファイルの行数、単語数、バイト数、文字数をカウントする
Linuxの wcコマンドでファイルの行数、単語数、バイト数、文字数をカウントする

Linuxの行数、単語数、文字数、バイト数をカウントする「wc」コマンドの使い方の解説。find、lsと組み合わせてファイル数のカウント方法などを解説。

Linuxのマニュアルページ表示コマンドmanの解説
Linuxのマニュアルページ表示コマンドmanの解説

Linuxにはコマンド操作のオンラインマニュアルが用意されています。そのマニュアルを表示するコマンドが「man」です。「man」コマンドの使い方について解説します。