Software Design 2016年5月号
サポートページ
補足情報
P.144 Unixコマンドライン探検隊 第1回の補足情報
PAGER(ページャー)
manは,標準で対象のmanページをコンソール画面に出力します。コンソール画面1ページでは表示できない内容も多いので,ページャーという外部のコマンドを通して出力することで,1画面に1ページがちょうどおさまるように表示しています。
<STEP UP!> manが使うページャーは,環境変数PAGERかMANPAGERで指定してあるプログラムが使われます。もしくは,“-P”オプションで明示的にページャープログラムを指定することもできます。 |
|
ページャーは,ほとんどの場合lessかmoreが使われます。lessコマンドは,moreの発展形(moreに対する洒落のネーミング)で,エディタの“vi”コマンドライクな操作によって,ページの前後移動,行単位での移動,検索などができます。
OS Xでは,moreというコマンドは存在していますが,中身はlessになっているようです。
less, moreの簡単な使い方(画面下に“:”が表示されている状態で,次のコマンドなどが有効です) | |
---|---|
q | ページャーをぬける |
f | 1ページ先に進む |
b | 1ページ戻る |
j | 1行進む |
k | 1行戻る |
/ | 続けてキーワードを入力して前方検索する |
? | 続けてキーワードを入力して後方検索する |
Ctrl+G | 全体での現在位置などの情報を最下段に表示する |
h | HELPを表示する |
manページのある場所
さて,manページ(元データ)はどこにあるのでしょうか。プログラムの中にハードコードされているのでしょうか。そんなはずはないですよね。
manページは,OS XやLinuxでは,
/usr/share/man,/usr/local/share/manに格納されています。lsコマンドで,ディレクトリの中を覗いてみます。
Ubuntuでの例 |
---|
|
man1〜man8が英語のmanページで,それぞれ1〜8セクションが分類されて収納されているディレクトリです。jaなどのほかのディレクトリは,各言語(ローケール)に対応した言語に翻訳されたmanページが,同様(たとえばja/man1〜ja/man8)に格納されています。
個々のmanページは,たとえばlsであれば“コマンド名.セクション[.gz]”という名称のファイルは,
ls.1.gz → 圧縮された状態
もしくは,
ls.1 → 非圧縮の状態
で存在しています。
Linux系の環境では,これらのディレクトリには圧縮されたものが入っていて,ディスクスペースを節約しています。
<STEP UP!> manページのファイルは,groffというマークアップランゲージを使った文書整形ツールの形式です。groffは“roff”(roffの名前は,Run OFFから)コマンドファミリーのフロントエンドプログラムで,manページはそのファミリーの中でも“nroff -manマクロ形式”です(nroffは,現在ではshellスクリプトになっていて,groffを内部から呼び出しています)。 manコマンドを使うのと同様に,nrofffを使って |
Linux |
---|
|
OS X |
|
とすれば,整形された状態で表示できます。 |
日本語のページはどこに?
日本語のmanページがある場合は,通常日本語のロケールjaにに対応した/usr/share/man/ja,/usr/local/share/man/jaディレクトリに入っているはずです。
現在のロケールが何になっているかは,環境変数LANGを確認しましょう。
|
であれば,日本語がデフォルトです。en_US.UTF-8であれば,英語(米国)です。日本語になっていなくても,次のように環境変数を設定して,日本語環境にすることができます。
|
この場合には,jaディレクトリにmanページのファイルがなければ,デフォルト(通常英語)のページが表示されます。jaディレクトリがあっても,すべてのマニュアルが翻訳されているわけではありませんので,ページによって日本語であったり英語になることもあります。
いちいち環境変数を変更してしまうと,後に実行するコマンドのロケールへも影響してしまいますので,次のようにすれば,manの実行時だけロケールを変更できます。
英語(システムデフォルトとして指定した例) |
---|
|
日本語 |
---|
|
<STEP UP!> 日本語のmanページがインストールされていない場合,次の方法で簡単に導入できるかもしれません。root権限か,sudoersに利用者が登録されている必要があります。 |
Ubuntu |
---|
|
CentOS |
|
OS X |
OSXには,日本語のmanページは標準では入っていません。日本語のマニュアルを使えるようにするには,日本語に対応したgroffをインストールし,日本語のmanページをインストール(OS XはFreeBSDベースなので,http://www.jp.freebsd.org/man-jp/search.htmlからFreeBSDのものを取得するのが良いでしょう)するなどの対応が必要です。 |
お詫びと訂正(正誤表)
本誌の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
P.36 「量指定子:0個または1個 ?、=」の正規表現例
誤 |
|
---|---|
正 |
|
誤 |
|
---|---|
正 |
|