Linuxコマンドの学習:man
導入
新しいLinuxユーザーが身につけるべき基本的な反射神経の一つは、何か問題が発生した際に情報を探す反射神経です。しかし、私たちはつながった世界に生きており、検索エンジンやウィキ、膨大な情報が手の届くところにあるにもかかわらず、作業しているシステムに必要な情報がすでにインストールされていることは常に良いことです。これにより、容易で迅速なアクセスが可能になり、インターネット接続が利用できない場合でも高い可用性を確保できます。それに加えて、Web上で見つけた情報を常に信頼できるわけではなく、マニュアルページは一貫した形で提供されており、急いでいる人々の質問に答える準備が整っています。 Unix、そしてその派生であるLinuxの背後にあるデザイン哲学の一つは、システムが十分に文書化されているべきだということです。これが、man pages(マニュアルページ)が誕生した理由です。すべてのUnixベースのOSにはman pagesがありますが、彼らの間には違いがあります。例えば、Linuxで動作するものがSolarisでは動作しない場合があります。しかし、問題があります:これらのページの書き方は簡潔で、細かく、新しい人には冷淡に感じられるため、慣れるまでに数回manページを読む必要があるかもしれません。
よく使われるオプション
- man -a キーワード
利用可能なすべてのキーワードマニュアルページを連続して表示します。 - man -f キーワード
任意のマニュアルページに関するキーワードの短い説明を検索して表示します。 - マン - 警告
警告を有効にする - man -I …
デフォルトとは異なり、大文字小文字を区別することを有効にします。 - man -H[browser]
HTML出力を有効にし、ブラウザで表示します。定義されている場合は、$BROWSERまたはコンパイル時に定義されたデフォルト(通常はlynx)を使用します。
manページの使用
一般的に使われているディストリビューションを使用している場合、シェルやinitシステムなどの基本システムの一部として、マニュアルページはすでにインストールされている可能性が高いです。manページがどのように機能するかをより細かく詳しく理解するためには、単にman manと入力してください。そして、manページを通常どのように使用するかというと、例えば、lsのmanページを読みたい場合は、man lsと入力します。フォーラムやIRCで質問する前にマニュアルを読むことは一般的なマナーであり、それをしないと、ベテランからは「RTFM」と冷たく返されることがよくあります。それが何を意味するのかわからない場合は、Googleで調べてください。manページを読み、その後GoogleやWikipediaを使用し、それでも結果が得られない場合にはフォーラムや他のバーチャルな社交媒体で質問することがLinux/FOSS文化の一部です。
ほとんどのマニュアルページは1ページ以上の長さがあるため、manはlessをページャーとして使用し、テキストが1ページずつスクロールするようになっています。これにより、読みやすさが向上します。PgUpやPgDownを使ってスクロールするか、スペースで下にスクロールし、Esc + Vで上にスクロールします。当然、上下キーで1行ずつスクロールできます。任意の時点で「q」を押すと終了します。lessの詳しい使い方は後で説明しますが、急いでいる場合はいつでもman lessを使うことができます。マニュアルページ内での検索は、vi/vimと同様にスラッシュ(「/」)キーを使用して行い、検索語の次の出現には「n」を使います。探しているものが分かっているが、マニュアルページの正確な名前が分からない場合は、apropos(1)が役に立ちます。 おそらく、コマンド名の後の段落内の数字に気づいたでしょう。これにより、コマンドが属するカテゴリが指定されます。マニュアルページは、整理しやすく、重複を避けるために分類されています。たとえば、Linux システム上の printf は、カテゴリ 1、1p、3、および に属することができます。これは C ライブラリ関数であると同時に、ユーザーコマンドでもあり、coreutils の一部であり、シェルスクリプトで広く使用されています。Linuxでは、接尾辞が「p」のカテゴリはPOSIXプログラマー用です。このような場合は、"man" とコマンド man 3 printf の間に挿入することで、目的のカテゴリを指定できます。最新のLinuxシステムで見られるカテゴリは次のとおりです。
- 1 – 実行可能ファイルとシェルコマンド
- 2 - システムコール
- 3 - 図書館の呼び出し
- 4 - デバイスファイル(通常は /dev に保存されている)
- 5 - ファイル形式
- 6 - ゲーム
- 7 - その他
- 8 - システム管理プログラムは通常、rootのみにアクセス可能で、/usr/sbinまたは/sbinに存在します。
- 9 - カーネルルーチン
ですから、ご覧の通り、全てのシステムがあなたの指先にあります。
以前述べたように、manシステムは古いUnixから引き継がれています。一方、GNUはinfoシステムを考案しました。これは同じ目的を果たしますが、ハイパーテキストを使用して1つのページから別のページに移動できる素晴らしい機能を導入しています。これは、Webをブラウザで閲覧するときと同様です。OpenSolarisやBSDもGNUソフトウェア(gawk, gcc, emacsなど)を使用しているため、それらのシステムでもinfoページが利用可能である可能性があります。始めるにはinfo infoと入力してください。
練習
1. なぜセクション1とセクション1p、または3と3pの間に区別があると思いますか?
2. 少し調査をして、Linuxと他の無料のUnix系オペレーティングシステムとのカテゴリーの違いを調べてください。
3. 手動ページを探さなければならない場合、aproposが利用できないとしたらどうしますか?ヒント:man manページ
4. 複数のカテゴリに属する別のコマンドを見つけてください。
例
| 例を使ってLinuxのmanコマンドを学ぶ | |
|---|---|
| Linuxコマンドの構文 | Linuxコマンドの説明 |
| troffまたはgroffフォーマットを使用して生成し、psという名前のプリンターにパイプします。 |
| デバイス非依存の出力(DVI)を生成し、通常はdvipsなどのツールでさらに使用します。 |
| デフォルトの代わりにファイルを設定ファイルとして使用してください |