UNIXやLinuxのコマンドに関する世界観(応用3.ドキュメント)です。
コマンド・設定ファイル・関数などのマニュアルページを表示する。初心者から上級者まで知っておくべきコマンド。
manは、マニュアルドキュメントを表示する。以下はlsコマンドのマニュアルを表示する例。
$ man ls
よく使うオプションは-k(キーワードから検索)。
英語のmanページを表示したい時は、以下のようにする。
$ LANG=en_US man ls
コマンドの概要や詳細なコマンドラインオプションなどが表示される。また、manのマニュアルは設定ファイルやシステムコール・ライブラリ関数などのドキュメントも表示することができる。これが分かっていないと、Linuxをそもそも使うことができない。だが、manのマニュアルは詳しい反面、とても理解するのが難しい。
Linuxのコマンドで困った時は、まずmanコマンド。とりあえずmanコマンドをすることで、何でもすぐに分かる。
catコマンドについて知りたい時は、端末に
man cat
と入力してエンター。そうすると、troffで書かれたcatについてのmanページがすぐに出てくる。ここに詳細なcatの使い方が全部書いてある。端末で読むのが見づらいのであれば、Mozilla FirefoxなどでブラウザからJMプロジェクトなどの検索欄にcatと叩けば良い。
GNUのツールであれば、infoコマンドの方が文書が整備されていることもある。
info cat
と入力してエンター。文書内のリンクなどが整備されており、特定の機能だけにアクセスしやすくなっている。
2024.10.06編集
Linuxのコマンドについて言えることは、「使い方が分からない時はmanを見ろ」ということです。
たとえば、dpkgの-Sオプションはファイルが含まれているパッケージの検索ですが、このようなオプションは
man dpkg
を見るときちんと説明されています。
たとえば、gdmの設定をやり直したい場合、
dpkg-reconfigure gdm
と実行すると、「そのようなパッケージはシステムにインストールされていない」と出ます。
このような時、正確なパッケージ名(今回はgdmではなくgdm3)を知りたい時、dpkgで検索オプションを使いたくても、-Sオプションであることを知るためには、manを読まなければなりません。
man dpkg
を読んで、-Sオプションを突き止め、
dpkg -S gdm
を実行して、パッケージ名がgdm3であることが分かったら、
dpkg-reconfigure gdm3
と実行することで、目的を達成することができます。
また、Debianの黒画面のコンソールでmanを実行するには注意が必要です。標準のコンソールでは日本語の文字列が表示されないからです。日本語の文字をコンソールで表示するには、あらかじめfbtermを実行して、その上でmanを実行しましょう。
Debian(Deb/Dpkg)やLinux日本語入力・表示(コンソール・コマンドライン)も参照のこと。
2024.10.06編集
manの不便な点は、コマンド名が分からないと検索できないこと。aproposコマンドを使えば、man-pagesの概要欄をキーワードで検索できる。
groffはUNIXの文書整形コマンドroffのGNUによる実装で、manページの整形に使われている。
GNU系のアプリでは「info」コマンドでinfoページを表示することもできる。リンクなどがそろっていて利用しやすい。
infoでは、manとは違い章ごとにページが分かれており、リンクを辿ってテキストブラウザのように各ページを表示できる。ただ、「manと何が違うのか良く分からない」というユーザも多く、良く嫌われている。
TexinfoはGNU infoで使われているドキュメント形式。
JM Projectから、APIのマニュアルを読むことが出来ます。セクションは2がシステムコール、3がライブラリ関数です。検索機能もあるので、ここに記述された関数名からすぐにAPIのドキュメントを検索できます。
manのセクション番号は以下のページで説明されている。基本的に1がユーザーコマンド、2がシステムコール、3がライブラリ関数、5がファイル形式、8がシステム管理者向けのコマンドであることを覚えておこう。
Linuxに関する情報を探す際に、良く言われることは既知の情報があるかどうかを探すことです。たとえば、以下のような方法があります。
・コマンドに類することであれば、manコマンド・infoコマンドの実行。
・ソフトウェア個別のことであれば、tarballの中にあるREADME(インストール方法であればINSTALL)や、システムのdocディレクトリ(/usr/share/doc/や/usr/docや/usr/share/[アプリケーション名]などのディレクトリ)を参照する。
・TLDPやJFなどでLinux関連のマニュアルを読む。
・Webブラウザを起動し、アプリケーションを開発しているプロジェクトのサイトに行って、公式のドキュメントやリファレンスを探す。特にチュートリアルやAPIリファレンスなど。
・ディストリビューション付属のマニュアルを読む。
・GNOMEやKDEのヘルプなどのヘルプ機能から使い方を探す。
・Googleで検索する。ブログや個人サイトを検索できるほか、エラーメッセージや設定ファイル名などを検索するとピンポイントでダイレクトに分かる場合が多い。
・フォーラムやメーリングリストやIRCで教えてもらう。過去のアーカイブなどから同じ質問がないか調べてみる。
以下のサイトが参考になるかもしれない。
とりあえずこれだけ読んどけばなんとかなる、という文書は多い。僕は以下の2つをお勧めする。
UNIXのことぐらい知っているよ、という人は、Linuxカーネルの仕組みを解説したThe Linux Kernelを読むことをお勧めする。日本語訳もあります。
難しすぎる、量が多すぎる、と言う方は、まさに僕の書いたこの文章がお勧め。だが、結構それでも難しいという人がたくさん居ると思う。Googleの検索結果はあまり参考にならない(古い情報や馬鹿が多すぎる)ので、色んなところでリンクされている定番サイトを見るのをお勧めする。ディストリビューションや公式のマニュアルを見るのも良いが、Red HatカスタマーポータルとArchWikiは内容が良いので見てみても良いだろう。
簡単なディストリビューションの紹介は以下のサイトにある。
あるいは、僕個人の意見としては、@ITとgihyo.jpがお勧め。
あるいは、個人サイトやブログはたくさんあって網羅できない。自分で検索してほしい。検索していると、qiitaがかかることが多い。だが、僕が思うにqiitaの内容はあまり良くない。みんなの知っていることを共有することはできるが、品質が高くない。
灯台元暮らしというが、意外なことにJF Projectに賢い内容が多いので、疑わず参考にしてほしい。
我こそは、と思う方は、
を参照しても良いだろう。英語でも頑張って読めば良いさ。そうさ。ハハハ…。
無駄に英会話教室で何年も学習しても、こんなページすら読めない自分が不甲斐ない。上のJF Projctに翻訳があるのでそこに頼っても良いかもしれない。英語の勉強にはなる。
XMLと文書形式を参照してください。
GNUツールチェインも参照のこと。
man-pages