Monday, October 3, 2016 5:00AM to 11:00AM (UTC) Schedouled down time to change site domain

あまり知られていないmanコマンドの隠し機能

 どのようなLinuxディストリビューションにしろ参照頻度と使用頻度が最も高いコマンドは、各種コマンドの使用マニュアルを閲覧するためのmanコマンドであることに間違いはないはずだ。manには使って便利な機能が色々と装備されているのだが、初心者が気づきにくい機能もあるため、本稿ではmanページをブックマーク登録する機能および、manページを閉じることなく他のコマンドを直接実行する機能について解説することにする。

トリック#1:表示位置のブックマークへの登録

 先に一言触れておくと、manコマンドはlessユーティリティを使ってマニュアルページを画面に表示させている。ところで、自分の記憶力だけを頼りにして長文のmanページを調べる場合、続きの説明を読み進めるうちに先に書かれていた内容を忘れてしまった、という経験を有しているのは私だけではないだろう。こうした場合の対策として有効に機能するのが、manページ上の特定位置をブックマークに登録しておくことだ。

 manページを表示している状況でmキーに続けて任意のキーを押すと、その位置がブックマークに登録される。他の場所に移動してから登録位置に復帰するには、'(シングルクォート)に続けて先に登録しておいたキーを押せばいい。登録キーを変えればmanページ中の複数箇所をブックマーク登録しておくことができる。なお登録キーに使えるのはアルファベット記号だけだが、この場合大方の予想に反して、大文字と小文字は区別されるようになっている。たとえばアルファベットキーのwとWでは、それぞれ異なる位置を登録できるのだ。

 こうして登録された位置が記憶されているのはカレントセッションの間だけであり、manページを終了させると同時に登録情報も消えてしまう。また、2つの異なる位置で同じアルファベットを使用した場合は、以前の登録位置の方が消えてしまうので、誤って重複させないよう注意する必要がある。

 ここでaキーの登録位置から10行離れた位置にあるqキーの登録位置にジャンプしたとしよう。その後30行離れた位置にあるtキーの登録位置にジャンプし、その次に5行離れた位置にあるpキーの登録位置にジャンプしたとする。こうした場合''(シングルクォート2つ)というキーシーケンスを実行すると、行数換算で最長距離を移動した登録位置へのジャンプが行われ、ここでの例で言えば、30行分移動したtキーの登録位置にジャンプすることになる。

 なお先にも触れておいたようにmanページを実際に表示させているのはlessであり、こうしたブックマーク登録の機能は、lessによるファイル表示をする際にも使用できる。

トリック#2:manページ上での他のコマンドの直接実行

 次に紹介するmanの知られざる機能は、manページ上で確認したコマンドをその場で実行可能にする!というキーシーケンスである。この機能を利用すると、manページを閉じたり別のターミナルウィンドウを開くことなく、各種のコマンドを直ちに試用することができる。manページの表示位置に復帰させるには、調べたいコマンドの機能確認が終わった段階でEnterキーを押せばいい。

 こうした機能が利用できるのも、やはりmanページを実際に表示させているのがlessであることに起因している。そしてこれはlessのmanページに記載されていることだが、lessに実装されているコマンド群はmoreユーティリティとviテキストエディタにあるものをベースにしているのである。実際、この感嘆符(!)コマンドもvi上で実行できる機能なのであり、それを確認するには、試しに適当なファイルをviで開いて:キーに続けて!キーを押し、ls -lなどのコマンドを実行してみればいい。

 感嘆符(!)コマンドが使えなければ、調べたいコマンドの機能を逐次試すごとに読みかけ中のmanページを再表示させるという手順を繰り返すことになるが、このコマンドを上手く利用すればマウスおよびキーボードを介して行う無用な操作を大幅に削減できるはずである。

Shashank Sharmaはコンピュータサイエンスの学位取得中の学生で、フリー/オープンソース系ソフトウェアの初心者向け記事の執筆も行なっており、Apress社から刊行されている『Beginning Fedora』の共著者でもある。

Linux.com 原文