web-dev-qa-db-ja.com

Unixマンページの特定のフラグにジャンプする方法は?

ターミナルでUnixのマンページを読んでいるときに、特定のフラグの説明に簡単にジャンプするにはどうすればよいですか?

たとえば、mount-oフラグの意味を知る必要があります。 man mountを実行し、-oが記述されている場所にジャンプしたいと思います。現在、私は/-oを検索していますが、そのオプションは実際に説明されているセクションの前のいくつかの場所で言及されているため、かなりジャンプする必要があります。

ありがとう。

23
dotancohen

私がしていることは、次のように旗の前にいくつかの空白スペースを置くことです:

/     -o

これは100%信頼できるわけではありませんが、はるかに少ないフープを飛び越えます。さらに良い成功率が必要な場合は、"/^ +-o"を試してください。これにより、空白で始まり、その後に-oが続く行が見つかります。しかし、私はその奇妙な文字列を頻繁に入力したくありません。

27
akostadinov

この関数を.bashrcで定義しました

function manswitch () { man $1 | less -p "^ +$2"; }

次のように使用できます

manswitch grep -r

this commandlinef から取得しました。

注:less-pスイッチへの引数は、(^)で始まる行を探すように指示する正規表現であり、その後に1つ以上のスペース(+)が続きますスイッチ(2番目の引数。つまり$2)によって、さまざまなフォーマットで作業できるという利点があります。

11
ggll

また、コマンドラインから特定の位置にあるマニュアルページを開くことができます。

man -P 'less -p "     -o"' mount
5
rush

@piccobelloの答えは素晴らしいですが、それは私のmanページの色を食べていました。 lessにパイプする代わりに(通常、manはデフォルトですでにlessを使用しているため)、変更したlessコマンドをmanに渡すだけです。 :

function manswitch() { man -P "less -p \"^ +$2\"" $1 }

これは、@ piccobelloが彼の関数で持っていた機能を保持しますが、色は保持します。

3

他のソリューションは非常に優れていますが、manページは単なるデータであり、Linuxではほとんどすべてのことを簡単に実行できることを忘れないでください。

man some-command> file.txt

ページをプレーンテキストファイルに変換し、操作できるようにします。 bashマニュアルのコピーをテキストとしてbinディレクトリに保存しているので、テキストエディタにロードして検索し、スクリプトの編集中にコピーして貼り付けることができます。

または、次のようなフィルターにパイプすることもできます

男いくつかのコマンド| grep-A行-「いくつかのパターン」の後

ターミナルでは機能しませんが、私は(友人の助けを借りて)manページを取得してWebブラウザーに表示するスクリプトを作成したので、ナビゲーション/検索機能の方がはるかに優れています。未満より。少しkdeに依存しますが、簡単に変更できます。

http://dl.dropbox.com/u/54584985/kman

1
Joe

flagman と呼ばれる、まさにこれを行うツールを作成しました。まだ開発中ですが、すでに使用可能です。例えば:

$ ./flagman mount -o
       -o, --options opts
              Use the specified mount options.  The opts argument is a comma-separated list.  For example:

                     mount LABEL=mydisk -o noatime,nodev,nosuid


              For more details, see the FILESYSTEM-INDEPENDENT MOUNT OPTIONS and FILESYSTEM-SPECIFIC MOUNT OPTIONS sections.
1
rightfold