TL;DR
Definition 1 man コマンド
manはmanual(マニュアル)ページを表示するためのコマンドman 1 commandでセクション番号(今回は1)を指定したmanコマンドの使用方法を表示/usr/share/manや/usr/local/share/manにあるドキュメントマニュアルを参照している
man コマンドの特徴
manはデフォルトではlessページャーとして利用-P moreでmoreを利用できる
-Nで行番号の表示3600gで3600行目へジャンプ/<文字列>で前方検索,nで次のマッチへ
セクションページの目安
| セクション | 内容 |
|---|---|
| 1 | ユーザーコマンド(ls, cp, grep など) |
| 2 | システムコール(open, read, fork など) |
| 3 | Cライブラリ関数 |
| 5 | 設定ファイル形式(fstab, passwd など) |
| 8 | 管理者コマンド(mount, ip, systemctl など) |
セクションページの種類の確認
passwd を指定した場合,コマンドとしてのpasswdのマニュアルなのか,それとも /etc/passwd ファイルのマニュアルなのかどちらのパターンも考えられます. このとき,入力した名前についてどのようなセクションがあるのかを一覧表示する場合 man -f <name> を実行します.例として,
$ man -f passwd
passwd (1) - change user password
passwd (1ssl) - OpenSSL application commands
passwd (5) - the password file1. man bash のような 長い man ページで現在位置を把握したい
行番号の表示は,ページャー(デフォルトでは less) の機能を用いて実現できます.
- 起動後に
-Nを入力すると,行番号表示のトグルとして使えます - 起動時から有効にしたい場合は
man bash | less -N
2. 直接指定した行へジャンプ
less をページャとして用いる場合は
基本操作
<行番号>g: 指定行へ移動G: 最終行へ移動g: 先頭への移動
3. 文字列検索
基本操作
/pattern: 前方検索?pattern: 後方検索n: 次のマッチへN: 前のマッチへ
Example 1
.profile を含む行を検索する場合は
/\.profile. は正規表現なので,\. とエスケープすることが必要
Note前方検索 vs 後方検索
- 前方検索: 現在位置から下に向かって検索.次にマッチの
nは下に移動する - 後方検索: 現在位置から上方向 に向かって検索.次にマッチの
nは上に移動する
n, N は同じ方向・逆方向の次にマッチに相当します.
4. クリップボードへコピー
Noteクリップボードへコピーするコマンド
ln コマンドの man ページを,整形済みのプレーンテキストにして,クリップボードへコピーするコマンドは以下
# 通常
man ln | col -bx | xclip -selection clipboard
# markdownへ変換したものをclipboardへ
man ln | col -bx | pandoc -t markdown | xclip -selection clipboard処理の流れは以下
manでマニュアルを表示col -bxで余計な改行コードを整形xclip -selection clipboardでクリップボードへコピー
colコマンド
Definition 2 col コマンド
- 行送り・バックスペース・制御文字を解釈して,再構成するフィルタ用コマンド
manやtblのような端末制御前提の出力を前処理する際に用いる
options
| オプション | 役割 |
|---|---|
-b |
man 特有の太字・下線を完全除去 |
-x |
タブをスペースにして崩れ防止 |
Example 2 (pandoc を用いてPDF化)
man ln | col -bx | pandoc -t pdf -o <output-path>他のフォーマットで出力したい場合は,pandoc --list-input-formats で出力可能形式を調べることができます.
Appendix: less vs vim
移動
| 操作 | less | vim |
|---|---|---|
| 下へ1行 | j |
j |
| 上へ1行 | k |
k |
| 先頭へ | g |
gg |
| 末尾へ | G |
G |
| 指定行へ | 3600g |
:3600 / 3600G |
検索
| 操作 | less | vim |
|---|---|---|
| 前方検索 | /pattern |
/pattern |
| 後方検索 | ?pattern |
?pattern |
| 次のマッチ | n |
n |
| 前のマッチ | N |
N |
表示
| 操作 | less | vim |
|---|---|---|
| 行番号表示 | -N |
:set number |
| 行番号OFF | -N |
:set nonumber |