ウェブサイト検索

Linuxでマニュアルページを効率的にナビゲートする方法


良いドキュメンテーションはすべてのソフトウェアにとって絶対に必要であり、この原則はLinuxコマンドにも適用されます。

多数のLinuxディストリビューションとオープンソースコミュニティは、インターネット上で容易にアクセスできる包括的なドキュメントを提供しています。

このドキュメントは、Linuxコマンドに関する詳細な情報、指示、および説明を提供しており、ユーザーが利用可能なコマンドラインツールを効果的に活用し理解するために必要なリソースを持てるようにしています。

しかし、特定の作業を迅速に達成するために簡潔なドキュメントが十分である場合もあります。そのような状況では、「man」コマンドを通じてアクセスできるシステムの組み込みドキュメントに頼ることができます。

「man」コマンドは「manual」の短縮形であり、システムのリファレンスマニュアルにアクセスするためのインターフェースとして機能します。これらのマニュアルは「manページ」とも呼ばれ、個々のコマンドに関する詳細なドキュメントを含んでいます。

例えば、mkdir、rmdir、ddなどのコマンドのマニュアルページは、それぞれの機能や使用方法に関する詳細なドキュメントを提供しています。

$ man mkdir
man rmdir
man dd

ターミナルからLinuxを効率よく使用するには、「man」コマンドに慣れておくべきです。

manコマンドの構文

man コマンドの構文は簡単です:

$ man [OPTIONS] ...   ...

他のLinuxコマンドと同様に、角括弧([])はオプションの引数を表し、一方で角カッコ(<>)は必須の引数を表します。

男の指示のセクション

シェルコマンドに加えて、Linuxはシステムコール、ライブラリコール、特殊ファイルなど、他のプログラミング構造もサポートしています。より良い組織化のために、各プログラミング構造はセクションと呼ばれる専用グループにまとめられています。

では、それぞれの男性セクションについて簡単に話しましょう:

  • セクション 1 – このセクションには、実行可能プログラムまたはシェルコマンドのマニュアルページが含まれています。例えば、cut、gzip、uniqなどです。
  • 第2節 – この節にはシステムコールのマニュアルページが含まれています。システムコールは、Linuxカーネルがその機能を公開するために使用されます。一般的なシステムコールは – open(), read(), write(), close(), lseek()などです。
  • セクション3 – このセクションにはライブラリコールのマニュアルページが含まれています。ライブラリコールはユーザースペースライブラリによって提供される関数です。例えば、文字列ライブラリの strlen() 関数や、標準入出力ライブラリの fopen() 関数などがあります。
  • セクション4 – このセクションには特別なファイルのマニュアルページが含まれています。通常、これらのファイルは/devディレクトリの下にあります。例えば、/dev/null、/dev/fullなどです。
  • セクション5 – このセクションには、ファイル形式と規約のマニュアルページが含まれています。例えば、/etc/hosts、/etc/shadowなどです。
  • セクション 6 – このセクションには、ゲームに関連するマニュアルページが含まれています。
  • 第7節 – この節には、さまざまなコマンドのマニュアルページが含まれています。たとえば、manやgroffです。

この初心者向けガイドでは、「man」コマンドの詳細に深く掘り下げ、実践的な例を通じて深い知識を得ていきます。

1. Linux コマンドの man ページを表示する

manコマンドの主な用途の一つは、システムのドキュメントを表示することです。manコマンドの有効な引数は、プログラム、ユーティリティ、または関数の名前です。

これを理解するために、スリープコマンドのマニュアルページを表示するために次のコマンドを使用しましょう。

$ man sleep

上記の出力では、man コマンドが sleep コマンドに関する詳細情報を表示しているのがわかります。'q' キーを押すことで man ページウィンドウを終了し、ターミナルに戻ることができます。

注意深く観察すると、コマンド名の後の括弧内に数字があることがわかります。その数字はマニュアルページのセクションを表しています。

例えば、上記の出力では、SLEEP(1)はマニュアルページのセクション1を表すために使用されています。

2. マンページをナビゲートする

各マニュアルページは詳細な情報を提供します。例えば、すべてのサポートされているオプション、終了コード、コマンドの作者、既知の問題やバグなどの説明が含まれます。

そのような詳細な情報は1つの端末ウィンドウに表示できないため、デフォルトでmanコマンドはlessというページャー・ユーティリティを使用します。

マニュアルページを効率的にナビゲートするために、次のページャコマンドを使用できます。

  • 上矢印 – マンページを1行ずつ前に進める。
  • ダウン arrow – マンページで1行後ろに移動するため。
  • f または space – ターミナルウィンドウでマンページを1つ前に進める。
  • b – ターミナルウィンドウでマニュアルページを1つ上に戻る。
  • /pattern – マンページでパターンを前方方向に検索する。
  • ?パターン – manページでパターンを逆方向に検索するためのもの。

3. 特定のセクションからマンページを表示する

多くのLinuxコマンドは、システムコールやライブラリ関数にちなんで名付けられています。例えば、chownはLinuxコマンドであり、システムコールでもあります。同様に、sleepはLinuxコマンドであり、ライブラリ関数でもあります。

デフォルトでは、man コマンドはすべてのセクションでドキュメントを検索し、最初に一致したセクションからページを表示します。

例えば、前の例では、コマンドman sleepは、セクション1のみからマニュアルページを表示します。セクション3にもマニュアルページが存在する場合でもそうです。このような場合、manコマンドにセクション番号をコマンドライン引数として指定することができます。

では、次のコマンドを使用してsleep()ライブラリ関数のマニュアルページを表示しましょう:

$ man 3 sleep

上記のコマンドでは、manコマンドの後の数字3はセクション3を表しています。

4. すべてのセクションからマニュアルページを見る

前の例では、デフォルトのセクションおよび特定のセクションからマンプページを表示する方法を見ました。しかし、時にはマンプページが利用可能な他のセクションを知らないこともあります。

そのような場合、コマンドに-aオプションを使用して、すべてのセクションからmanページを表示できます。

$ man -a sleep

このオプションを使用すると、manコマンドはすべてのmanページを1つずつ表示します。したがって、次のmanページを見るには、‘q’キーを押して現在のmanページを終了する必要があります。

例えば、'q'キーを押した後、次のオンスクリーンの指示が表示されます。

5. マンページのセクションを検索する

前の例では、すべてのセクションからマニュアルページを表示する方法を見ました。しかし、時には特定のマニュアルページがどのセクションにあるのかを知りたいだけです。

そのような場合には、-fオプションを使用して、短い説明とともにマニュアルページのセクションを表示できます。

$ man -f sleep

上記の出力には、それぞれセクション3とセクション1からの睡眠に関する簡潔な情報が示されています。

6. キーワードでマニュアルページを検索する

時々、マニュアルページの説明の中で特定のキーワードを検索したくなることがあります。そのような場合、キーワードでマニュアルページをリストする -k オプションを使用できます。

では、sleepという言葉が含まれている全てのマニュアルページをリストアップしましょう:

$ man -k sleep

7. マンページのソース位置を見つける

man ページは、gzip コマンドを使用して圧縮されたプレーンテキストファイルであり、-w オプションを使用すると、man ページファイルの場所が印刷されます。

$ man -a -w sleep

/usr/share/man/man1/sleep.1.gz
/usr/share/man/man3/sleep.3.gz

上記の出力では、セクション1のマニュアルページファイルが/usr/share/man/man1ディレクトリに存在することがわかります。同様に、セクション3のマニュアルページファイルは/usr/share/man/man3ディレクトリに存在します。

8. GNOME ヘルプブラウザでマニュアルページを表示する

これまで、すべてのマニュアルページは端末上にのみ表示されていました。しかし、yelp コマンドを使用することによって、GNOME ヘルプブラウザでも見ることができます。

$ yelp man:sleep

この方法は、GNOMEデスクトップGUIが利用可能な場合にのみ役立つことに注意することが重要です。

9. Webブラウザでマニュアルページを表示する

これに加えて、-Hオプションを使用して、Firefoxブラウザなどのウェブブラウザでマニュアルページを表示することもできます。

$ man -Hfirefox sleep

一部のシステムでは、次のエラーが発生する可能性があります:

man: command exited with status 3: (cd /tmp/hmanQf1PgM && /usr/lib/man-db/zsoelim) | (cd /tmp/hmanQf1PgM && /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) | (cd /tmp/hmanQf1PgM && preconv -e UTF-8) | (cd /tmp/hmanQf1PgM && tbl) | (cd /tmp/hmanQf1PgM && groff -mandoc -Thtml)

このエラーを修正するには、通常のテキスト文書のFormattingや処理に一般的に使用される組版システムであるgroffユーティリティをインストールする必要があります。

$ sudo apt install groff         [On Debian, Ubuntu and Mint]
sudo yum install groff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/groff  [On Gentoo Linux]
sudo apk add groff             [On Alpine Linux]
sudo pacman -S groff           [On Arch Linux]
sudo zypper install groff      [On OpenSUSE]    
結論

このガイドでは、Linuxシステムのドキュメントの見方について説明しました。「man」コマンドを使用して、ターミナルやUIツール内でシステムドキュメントを表示する方法を探求しました。

Linuxシステムのドキュメントにアクセスする他の方法をご存知ですか?下のコメントでご意見をお知らせください。

関連記事: