Linuxのマニュアルページでいくつかのフラグを照会します。

Linuxのマニュアルページでいくつかのフラグを照会します。

私はしばしばman iptablesチェック-tフラグなどの特定のフラグをチェックするためにCLIツールのマニュアルページを開きます。

これを単純化するツールはありますか?マンページの内容を把握するために、Bashで単純な関数を書くこともできますが、私が望むもの(特定のフラグの説明など)を正確に見つけるためにマンページ構造を使用するものを探しています。

答え1

マニュアルページプログラムがそうであると仮定すると、less環境変数を使用してすべてのコマンドを前に追加できます。lessLESS

したがって、次の-tオプションを検索してくださいman iptables

LESS='+/-t' man iptables

/-tこれは内で実行するのと同じ効果がありますman ipatbles。より細かい制御のためにモードを変更できます。

必要に応じて簡単にアクセスできる機能を作成できます。

search_man () { LESS=+/"$2" man "$1" ;}

現在やっていること:

search_man iptables '-t'              

同じ効果があるでしょう。


編集する:

検索するのではなく、マニュアルページの特定のオプションに移動するには、正規表現の一致を使用できますLESS

LESS='+/^[[:blank:]]+-t' man iptables

-tこれでオプションの説明に直接移動しますman iptables。同様に関数を定義することもできます。

search_man () { LESS=+/^[[:blank:]]+"$2" man "$1" ;}

答え2

特定のフラグのマニュアルページを照会するためのAPI /メカニズムが見つかりませんでした。しかし、このシンプルな機能まさに私が必要なようです。

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

使用法:

manswitch iptables -t

答え3

一つ。今。この機能:

flag() {
    man "$1" | grep -- "$2";
}

仕組みは次のとおりです。

$ flag iptables -t
iptables [-t table] {-A|-C|-D} chain rule-specification
ip6tables [-t table] {-A|-C|-D} chain rule-specification
iptables [-t table] -I chain [rulenum] rule-specification
iptables [-t table] -R chain rulenum rule-specification
iptables [-t table] -D chain rulenum
iptables [-t table] -S [chain [rulenum]]
iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]
iptables [-t table] -N chain
iptables [-t table] -X [chain]
iptables [-t table] -P chain target
iptables [-t table] -E old-chain-name new-chain-name
target = -j targetname [per-target-options]
-t, --table table
           This  is  the  default table (if no -t option is passed). It
        iptables -t nat -n -L

まあ、最後の2行が壊れました。

とにかく、それをあなたのものに追加する方法を知っていますか.bashrc?それともあなたのスクリプトではなくスクリプトを好むのですか~/bin

バージョン 1.1

flag() {
    man "$1" | grep -A5 -- "$2";
}

$ flag iptables -t
       iptables [-t table] {-A|-C|-D} chain rule-specification

       ip6tables [-t table] {-A|-C|-D} chain rule-specification

       iptables [-t table] -I chain [rulenum] rule-specification

       iptables [-t table] -R chain rulenum rule-specification

       iptables [-t table] -D chain rulenum

       iptables [-t table] -S [chain [rulenum]]

       iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]

       iptables [-t table] -N chain

       iptables [-t table] -X [chain]

       iptables [-t table] -P chain target

       iptables [-t table] -E old-chain-name new-chain-name

       rule-specification = [matches...] [target]

       match = -m matchname [per-match-options]

       target = -j targetname [per-target-options]

DESCRIPTION
       Iptables  and ip6tables are used to set up, maintain, and inspect the tables of IPv4 and IPv6 packet filter rules in the Linux kernel.  Several different tables may be defined.  Each table contains a
       number of built-in chains and may also contain user-defined chains.

--
       -t, --table table
              This option specifies the packet matching table which the command should operate on.  If the kernel is configured with automatic module loading, an attempt will be made to load the appropriate
              module for that table if it is not already there.

              The tables are as follows:

--
                  This is the default table (if no -t option is passed). It contains the built-in chains INPUT (for packets destined to local sockets), FORWARD (for packets being routed  through  the  box),
                  and OUTPUT (for locally-generated packets).

              nat:
                  This  table is consulted when a packet that creates a new connection is encountered.  It consists of three built-ins: PREROUTING (for altering packets as soon as they come in), OUTPUT (for
                  altering locally-generated packets before routing), and POSTROUTING (for altering packets as they are about to go out).  IPv6 NAT support is available since kernel 3.7.
--
               iptables -t nat -n -L
              Please note that it is often used with the -n option, in order to avoid long reverse DNS lookups.  It is legal to specify the -Z (zero) option as well, in which case the chain(s) will be atom‐
              ically listed and zeroed.  The exact output is affected by the other arguments given. The exact rules are suppressed until you use
               iptables -L -v

       -S, --list-rules [chain]

関連情報