そろそろ本気でコマンドライン② : man コマンド

Linux の熟練者でも全てのコマンドを理解しているわけではない。コマンドのオプションなどに至っては、バージョンによって異なる事もあるため、再確認にが必要になる。そこで、Linux/UNIX 使用者では常識とも言える man コマンドについて説明しよう思う。

※ コマンドを利用する為には、『アプリケーション』>『システムツール』 >『端末』で表示。

man コマンドとは?

man コマンドはマニュアル(manual)の 略であり、コマンドや設定ファイル、プログラミング言語の関数など説明や検索などに使用できる強力なツールだ。しかも基本的な事に関しては日本語化されているため、コマンドに不慣れな人ほど利用してもらいたい。バージョンやディストリビューションによっての違いのあるコマンドもあるので、インターネットで確認するよりも正確な場合もある。

まずはコマンドラインから『man man』と入力して見よう。次のような文章が表示されたのではないだろうか?

man コマンド

実はこのマニュアル、『less』というコマンドを使用して表示されているため、マニュアル内の検索なども行える。

例えばコマンドオプションの『-L』が知りたい場合、「/-L」と入力すると、カーソルが移動するのがわかる。後方(次の箇所)検索する場合は「n」、前方検索は「N」と入力すれば良い。

※ ここでの検索は正規表現であるため、複雑な検索も行えます。

終了は「q」、 スクロールは矢印キー、ヘルプは「h」

詳しくは『man less』で確認して下さい。

関連項目のマニュアル

『man man』でマニュアルを表示した場合、『関連項目』と書かれた箇所があったの気付いただろうか?

man 関連項目

ここで、『less(1)』 と書かれた項目がある。

そこで man コマンドを終了し、『man 1 less』と入力してみよう。今回は関連する less コマンドのマニュアルが表示されたハズだ。

※ コマンド引数で指定した数字は、同名のマニュアルがある場合への対策である。取りあえず気にしないで、関連項目に指定されている数字を利用すると良いだろう。

同じ名前を持つマニュアル

例えば『open』の名前を持つマニュアルはいくつあるのだろうか?

そういった場合は、『man -f open』と指定してみて欲しい。

$ man -f open
open (2) – ファイルやデバイスのオープン、作成…
open (3pm) – perl pragma to set default PerlIO layers for input an…
open (n) – Open a file-based or command pipeline channel
open (3p) – open a file
$ man n open

特定のマニュアルを指定刷る場合は、カッコ内の文字を、man の直後に指定すれば良い。

※ ここでは C 言語(一番上)や Perl の open 関数のマニュアルが存在する事が分かります。思い通りのマニュアルが表示されなかった場合に使用すると良いでしょう。

マニュアルを検索する

例えば USB 関連のマニュアルにどんなモノがあるのだろうか?

そういった場合は『man -k ‘usb’』と指定してみて欲しい。

※ ここで指定するのは正規表現です。

$ man -k ‘usb’
aiptek (4) – Aiptek USB Digital Tablet Input Driver for Linux
fxload (8) – Firmware download to EZ-USB devices
lsusb (8) – list USB devices
sane-canon630u (5) – SANE backend for the Canon 630u USB flatbed scanner
sane-cardscan (5) – SANE backend for Corex CardScan usb scanners
sane-epjitsu (5) – SANE backend for Epson-based Fujitsu USB scanners.
sane-find-scanner (1) – find SCSI and USB scanners and their device files
sane-genesys (5) – SANE backend for GL646, GL841, GL843, GL847 and GL124…
sane-gt68xx (5) – SANE backend for GT-68XX based USB flatbed scanners
sane-kvs1025 (5) – SANE backend for Panasonic KV-S102xC USB ADF scanners.
sane-kvs20xx (5) – SANE backend for Panasonic KV-S20xxC USB/SCSI ADF sca…
sane-ma1509 (5) – SANE backend for Mustek BearPaw 1200F USB scanner
sane-mustek_usb (5) – SANE backend for Mustek USB flatbed scanners
sane-mustek_usb2 (5) – SANE backend for SQ113 based USB flatbed scanners
sane-plustek (5) – SANE backend for LM983[1/2/3] based USB flatbed scanners
sane-sm3600 (5) – SANE backend for Microtek scanners with M011 USB chip
sane-sm3840 (5) – SANE backend for Microtek scanners with SCAN08 USB chip
sane-u12 (5) – SANE backend for Plustek USB flatbed scanners, based …
sane-usb (5) – USB configuration tips for SANE
sisusb (4) – SiS USB video driver
usb-devices (1) – print USB device details
usb_modeswitch (1) – switch mode of “multi-state” USB devices
$

マニュアル名だけではなく概要部分も検索対象になるので、意外と重宝するハズだ。

※ 最後の「…」は表示しきれなかった部分を表している。端末の横幅を拡大すれば全文を確認する事が出来る。

次に正規表現について知りたい場合は『man -k ‘正規表現’』と入力して見よう。

$ man -k ‘正規表現’
bzegrep (1) – bzip2 圧縮されている可能性のあるファ…
bzfgrep (1) – bzip2 圧縮されている可能性のあるファ…
bzgrep (1) – bzip2 圧縮されている可能性のあるファ…
re_comp (3) – BSD の正規表現関数
re_exec (3) – BSD の正規表現関数
regex (7) – POSIX.2 正規表現
zgrep (1) – 圧縮されている可能性のあるファイル…
$

条件に日本語を使用した場合は、日本語のマニュアルがインストールされている場合に限り、該当するマニュアルが表示される。

最後の日本語を指定した検索方法は熟練者でも知らない事が多い方法だ。ちょっとした豆知識として利用してみてはどうだろうか?

※ 上記の方法は ver 2.5.9 (Fedora15)、 ver 2.6.0.2 (Fedora16)で確認していますが、 バージョンやデストリビューションよっては使用できない場合があります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です