Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Googleに淘汰されたコマンド~manとapropos~

More than 1 year has passed since last update.

エンジニア諸兄姉は日頃常々シェルを用いてコンピュータの操作を行っていると思いますが、いかがでしょうか。
えぇ、もちろんその通りでしょう。
もしコマンド操作している際に、分からないコマンドがあった場合どうしていますか?
え?Googleで調べている?

バカヤローーーー!!!(申し訳ございません)

分からないコマンドはmanaproposを使って調べていきましょう。

📕man

how to use
$ man KEYWORD
manとは、皆さんご存知の通りキーワードに指定した語句のマニュアル(MANual)を表示するコマンドです。
それではmanコマンドについてよく見ていきましょう。manコマンドのmanを開いてください。
通常はlessで表示されます。lessとは何かって? man less

$  man man
NAME
       man - format and display the on-line manual pages

SYNOPSIS
       man  [-acdfFhkKtwW]  [--path]  [-m system] [-p string] [-C config_file]
       [-M pathlist] [-P pager] [-B browser] [-H htmlpager] [-S  section_list]
       [section] name ...


DESCRIPTION
       man formats and displays the on-line manual pages.  If you specify sec-
       tion, man only looks in that section of the manual.  name  is  normally
       the  name of the manual page, which is typically the name of a command,
       function, or file.  However, if name contains  a  slash  (/)  then  man
       interprets  it  as a file specification, so that you can do man ./foo.5
       or even man /cd/foo/bar.1.gz.

       See below for a description of where man  looks  for  the  manual  page
       files.
...

DESCRIPTIONに書いてある通り、manコマンドはコマンドのマニュアルだけでなく、関数やファイルについても見ることができ、セクションを指定するとそのセクション内で調べていきます。セクション毎の対応は以下のようになっています。

セクション番号 表示する項目
1 Linuxコマンド
2 カーネル関数
3 システム関数
4 スペシャルファイル
5 フォーマット
6 プレインストールされたゲーム等
7 マクロ
8 システム管理コマンド
9 カーネルルーチン

セクション番号はキーワードの前に指定します。
manにはオプションも豊富に存在するので是非manのマニュアルを見てみてください。

🔎apropos

how to use
$ apropos KEYWORD
aproposは、キーワードを部分一致検索で索引データベースから検索し、短い説明を表示するコマンドです。
要は、
A「あれ〜あのコマンドなんだっけ・・検索するやつ・・・ap・・apr・・・・?そんな感じだよなぁ〜」
って時に使えます。
こちらも、通常はlessで表示されます。

$ apropos apr

apropos(1)               - search the whatis database for strings
ldap.conf(5), .ldaprc(5) - LDAP configuration file/environment variables

おー出てきましたね!A君が探してたコマンドは見つかったようですね

ちょっとちょっと、そんな説明でいいんですか?!
これじゃaproposの便利さは伝わりませんね。
そうですaproposはもっとすごいんです。
aproposというコマンドは、何をしますか?
検索、searchですね。そうです。
ではapropos searchを実行してみましょう。
$ apropos search
どうなりました?aproposの項目がありますね?
その他にfindやgrepなど・・
how to useを見てください。aproposの引数は何もコマンドじゃないんです。
目的の動作を入力しても、それを満たすコマンドを表示してくれるんです。
これが、aporposの凄さです
が、普段からCLIを使っている皆さんにとっては当たり前のことでしたね。(^○^)

📘info(追記)

how to use
$ info
infoコマンドを入力するとinfoページが表示されます。こちらはmanと違いemacsライクな画面で表示されますが、psを見るとinfoと表示されています。(manやaproposはless)
ただしemacs互換なので操作方法は変わりません。
manとの違いといえば、infoコマンドはGNU由来なので、比較的新しくGNUプログラム版manのようなものです。
表示されるメニューから、アスタリスクが書いてある行が別ページへのリンクになっています。ただし用語としてはページではなくノードと呼びます。(実はinfoコマンドはそこまで使わないのでよくわからない)
info COMMANDとすることで、その関連ノードを直接開くこともできるらしいです!曖昧な説明で申し訳ないです!もし詳しい方、なにか間違いに気がついたらご報告お願いしますm(_ _)m

おまけ

aproposの他のwhatisというコマンドもあります。基本aproposと変わりませんが、こちらは完全一致検索となっており、aproposほど強力ではないので除外しました。

wannabe
自分自身へのメモとして使うことが多いです。 また、記事内のコードはパブリックドメインです。ご自由にお使いください。
rhems-japan
株式会社RHEMS JapanのR&Dを担い、IoTとサービス相互接続にフォーカス
https://labs.rhems-japan.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away