※当サイトの記事には、広告・プロモーションが含まれます。

Linuxのip aで表示される項目の説明ってどこに記載されているのか

www.itmedia.co.jp

 加熱も冷凍もせず、魚介類に潜む寄生虫アニサキスを“瞬殺”する──そんな技術を開発した熊本大学と福岡市の水産会社が、早期の社会実装を目指してクラウドファンディングを始めた。

アジに寄生したアニサキスをパルス電流で“瞬殺”する技術、熊本大学がクラファン実施 「サバ、サケ、サンマにも」 - ITmedia NEWS

 アニサキスは、魚に寄生する直径1mm、長さ20mm程度の寄生虫で、魚を食べた人に腹痛などを伴う食中毒を引き起こすことで知られる。加熱か一度冷凍すれば食中毒は防げるため、欧米では生食用の魚は冷凍させなければならない「冷凍規制」がある。しかし日本では冷凍していない刺身に対する需要が高いため、先進国で唯一、冷凍規制を導入していない

アジに寄生したアニサキスをパルス電流で“瞬殺”する技術、熊本大学がクラファン実施 「サバ、サケ、サンマにも」 - ITmedia NEWS

⇧ へぇ、へぇ、へぇ~。日本は、先進国で「冷凍規制」を導入していない唯一無二の国だったとは。

アニキサスは避けたいけど、加熱調理はしたくない、そう考えると、 

ルイベは、日本語で、サケ類コマイなどを冷凍保存したものをいうまた、それを凍ったまま薄切りにした刺身をいう。

ルイベ - Wikipedia

北海道郷土料理あくまでサケ類が主要な原材料であるが、コマイを始め、のちにはタラホタテガイなどでも作られるようになった。

ルイベ - Wikipedia

歴史等

蝦夷および北海道近代以前の北海道と以後の北海道)では、晩秋から初冬にかけての寒い時期に獲れたサケ(鮭)やシシャモを軒下に吊るすか、雪の中に埋めて冷凍保存していた冷凍することで、保存性が高まると同時に広節裂頭条虫サナダムシ)やアニサキスなどの寄生虫が死滅する。

ルイベ - Wikipedia

⇧ 科学の発展が追い付いていない時期に、ルイベとかは合理的だったんですな。

Linuxのip aのhelpしてみたが...

公式な情報かどうかが分からんけども、

www.linux.org

OPTIONS
-a, -all executes specified command over all objects, it depends if command supports this option.

https://www.linux.org/docs/man8/ip.html

⇧ となっていて、まずもって何の説明も無く出てくる「all objects」ってものが何のか分からんし、複数形ってことは、1つじゃないということだと思うのだけど、全量が分からんと言うね...

ip a help って実行してみても、「all objects」に関連する情報が分からん...

ip help してみたら、「OBJECT」が表示されて、これが「all objects」の全量なのだろうか?

とりあえず、ip a を実行した結果、表示された「OBJECT」の項目ついて、ひたすら、helpコマンドを実行するシェルスクリプトを作りました。

#!/bin/bash

# ip help コマンドの結果の「OBJECT」の全量
ip_object_arr=($(cat << EOF
address 
addrlabel 
fou 
help 
ila 
ioam 
l2tp 
link 
macsec 
maddress 
monitor 
mptcp 
mroute 
mrule 
neighbor 
neighbour 
netconf 
netns 
nexthop 
ntable 
ntbl 
route 
rule 
sr 
tap 
tcpmetrics 
token 
tunnel 
tuntap 
vrf 
xfrm 
EOF
))

echo "array length: "${#ip_object_arr[@]};
number_of_object=0
for ((idx=0; idx < ${#ip_object_arr[@]}; idx++))
do
  number_of_object=$((1+${idx}))
  echo "【${number_of_object}】${ip_object_arr[${idx}]}" &>> "ip_object_description.txt"
  ip "${ip_object_arr[${idx}]}" help &>>  "ip_object_description.txt"

done    

で、実行した結果が以下。

【1】address
Usage: ip address {add|change|replace} IFADDR dev IFNAME [ LIFETIME ]
                                                      [ CONFFLAG-LIST ]
       ip address del IFADDR dev IFNAME [mngtmpaddr]
       ip address {save|flush} [ dev IFNAME ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label LABEL ] [up]
       ip address [ show [ dev IFNAME ] [ scope SCOPE-ID ] [ master DEVICE ]
                         [ type TYPE ] [ to PREFIX ] [ FLAG-LIST ]
                         [ label LABEL ] [up] [ vrf NAME ] ]
       ip address {showdump|restore}
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label IFNAME ] [ scope SCOPE-ID ] [ metric METRIC ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           [-]tentative | [-]deprecated | [-]dadfailed | temporary |
           CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad | mngtmpaddr | noprefixroute | autojoin ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS
TYPE := { bareudp | bond | bond_slave | bridge | bridge_slave |
          dummy | erspan | geneve | gre | gretap | ifb |
          ip6erspan | ip6gre | ip6gretap | ip6tnl |
          ipip | ipoib | ipvlan | ipvtap |
          macsec | macvlan | macvtap |
          netdevsim | nlmon | rmnet | sit | team | team_slave |
          vcan | veth | vlan | vrf | vti | vxcan | vxlan | wwan |
          xfrm }
【2】addrlabel
Usage: ip addrlabel { add | del } prefix PREFIX [ dev DEV ] [ label LABEL ]
       ip addrlabel [ list | flush | help ]
【3】fou
Usage: ip fou add port PORT { ipproto PROTO  | gue }
		   [ local IFADDR ] [ peer IFADDR ]
		   [ peer_port PORT ] [ dev IFNAME ]
       ip fou del port PORT [ local IFADDR ]
		   [ peer IFADDR ] [ peer_port PORT ]
		   [ dev IFNAME ]
       ip fou show

Where: PROTO { ipproto-name | 1..255 }
       PORT { 1..65535 }
       IFADDR { addr }
【4】help
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] -batch filename
where  OBJECT := { address | addrlabel | fou | help | ila | ioam | l2tp | link |
                   macsec | maddress | monitor | mptcp | mroute | mrule |
                   neighbor | neighbour | netconf | netns | nexthop | ntable |
                   ntbl | route | rule | sr | tap | tcpmetrics |
                   token | tunnel | tuntap | vrf | xfrm }
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                    -h[uman-readable] | -iec | -j[son] | -p[retty] |
                    -f[amily] { inet | inet6 | mpls | bridge | link } |
                    -4 | -6 | -M | -B | -0 |
                    -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
                    -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
                    -rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
                    -c[olor]}
【5】ila
Usage: ip ila add loc_match LOCATOR_MATCH loc LOCATOR [ dev DEV ] OPTIONS
       ip ila del loc_match LOCATOR_MATCH [ loc LOCATOR ] [ dev DEV ]
       ip ila list
OPTIONS := [ csum-mode { adj-transport | neutral-map |
                         neutral-map-auto | no-action } ]
           [ ident-type { luid | use-format } ]
【6】ioam
Usage:	ip ioam { COMMAND | help }
	ip ioam namespace show
	ip ioam namespace add ID [ data DATA32 ] [ wide DATA64 ]
	ip ioam namespace del ID
	ip ioam schema show
	ip ioam schema add ID DATA
	ip ioam schema del ID
	ip ioam namespace set ID schema { ID | none }
【7】l2tp
Usage: ip l2tp add tunnel
          remote ADDR local ADDR
          tunnel_id ID peer_tunnel_id ID
          [ encap { ip | udp } ]
          [ udp_sport PORT ] [ udp_dport PORT ]
          [ udp_csum { on | off } ]
          [ udp6_csum_tx { on | off } ]
          [ udp6_csum_rx { on | off } ]
Usage: ip l2tp add session [ name NAME ]
          tunnel_id ID
          session_id ID peer_session_id ID
          [ cookie HEXSTR ] [ peer_cookie HEXSTR ]
          [ seq { none | send | recv | both } ]
          [ l2spec_type L2SPEC ]
       ip l2tp del tunnel tunnel_id ID
       ip l2tp del session tunnel_id ID session_id ID
       ip l2tp show tunnel [ tunnel_id ID ]
       ip l2tp show session [ tunnel_id ID ] [ session_id ID ]

Where: NAME   := STRING
       ADDR   := { IP_ADDRESS | any }
       PORT   := { 0..65535 }
       ID     := { 1..4294967295 }
       HEXSTR := { 8 or 16 hex digits (4 / 8 bytes) }
       L2SPEC := { none | default }
【8】link
Usage: ip link add [link DEV | parentdev NAME] [ name ] NAME
		    [ txqueuelen PACKETS ]
		    [ address LLADDR ]
		    [ broadcast LLADDR ]
		    [ mtu MTU ] [index IDX ]
		    [ numtxqueues QUEUE_COUNT ]
		    [ numrxqueues QUEUE_COUNT ]
		    type TYPE [ ARGS ]

	ip link delete { DEVICE | dev DEVICE | group DEVGROUP } type TYPE [ ARGS ]

	ip link set { DEVICE | dev DEVICE | group DEVGROUP }
			[ { up | down } ]
			[ type TYPE ARGS ]
		[ arp { on | off } ]
		[ dynamic { on | off } ]
		[ multicast { on | off } ]
		[ allmulticast { on | off } ]
		[ promisc { on | off } ]
		[ trailers { on | off } ]
		[ carrier { on | off } ]
		[ txqueuelen PACKETS ]
		[ name NEWNAME ]
		[ address LLADDR ]
		[ broadcast LLADDR ]
		[ mtu MTU ]
		[ netns { PID | NAME } ]
		[ link-netns NAME | link-netnsid ID ]
		[ alias NAME ]
		[ vf NUM [ mac LLADDR ]
			 [ vlan VLANID [ qos VLAN-QOS ] [ proto VLAN-PROTO ] ]
			 [ rate TXRATE ]
			 [ max_tx_rate TXRATE ]
			 [ min_tx_rate TXRATE ]
			 [ spoofchk { on | off} ]
			 [ query_rss { on | off} ]
			 [ state { auto | enable | disable} ]
			 [ trust { on | off} ]
			 [ node_guid EUI64 ]
			 [ port_guid EUI64 ] ]
		[ { xdp | xdpgeneric | xdpdrv | xdpoffload } { off |
			  object FILE [ section NAME ] [ verbose ] |
			  pinned FILE } ]
		[ master DEVICE ][ vrf NAME ]
		[ nomaster ]
		[ addrgenmode { eui64 | none | stable_secret | random } ]
		[ protodown { on | off } ]
		[ protodown_reason PREASON { on | off } ]
		[ gso_max_size BYTES ] | [ gso_max_segs PACKETS ]

	ip link show [ DEVICE | group GROUP ] [up] [master DEV] [vrf NAME] [type TYPE]

	ip link xstats type TYPE [ ARGS ]

	ip link afstats [ dev DEVICE ]
	ip link property add dev DEVICE [ altname NAME .. ]
	ip link property del dev DEVICE [ altname NAME .. ]

	ip link help [ TYPE ]

TYPE := { bareudp | bond | bond_slave | bridge | bridge_slave |
          dummy | erspan | geneve | gre | gretap | ifb |
          ip6erspan | ip6gre | ip6gretap | ip6tnl |
          ipip | ipoib | ipvlan | ipvtap |
          macsec | macvlan | macvtap |
          netdevsim | nlmon | rmnet | sit | team | team_slave |
          vcan | veth | vlan | vrf | vti | vxcan | vxlan | wwan |
          xfrm }
【9】macsec
Usage: ip macsec add DEV tx sa { 0..3 } [ OPTS ] key ID KEY
       ip macsec set DEV tx sa { 0..3 } [ OPTS ]
       ip macsec del DEV tx sa { 0..3 }
       ip macsec add DEV rx SCI [ on | off ]
       ip macsec set DEV rx SCI [ on | off ]
       ip macsec del DEV rx SCI
       ip macsec add DEV rx SCI sa { 0..3 } [ OPTS ] key ID KEY
       ip macsec set DEV rx SCI sa { 0..3 } [ OPTS ]
       ip macsec del DEV rx SCI sa { 0..3 }
       ip macsec show
       ip macsec show DEV
       ip macsec offload DEV [ off | phy | mac ]
where  OPTS := [ pn <u32> ] [ on | off ]
       ID   := 128-bit hex string
       KEY  := 128-bit or 256-bit hex string
       SCI  := { sci <u64> | port { 1..2^16-1 } address <lladdr> }
【10】maddress
Usage: ip maddr [ add | del ] MULTIADDR dev STRING
       ip maddr show [ dev STRING ]
【11】monitor
Usage: ip monitor [ all | OBJECTS ] [ FILE ] [ label ] [ all-nsid ]
                  [ dev DEVICE ]
OBJECTS :=  address | link | mroute | neigh | netconf |
            nexthop | nsid | prefix | route | rule
FILE := file FILENAME
【12】mptcp
Usage:	ip mptcp endpoint add ADDRESS [ dev NAME ] [ id ID ]
				      [ port NR ] [ FLAG-LIST ]
	ip mptcp endpoint delete id ID
	ip mptcp endpoint show [ id ID ]
	ip mptcp endpoint flush
	ip mptcp limits set [ subflows NR ] [ add_addr_accepted NR ]
	ip mptcp limits show
	ip mptcp monitor
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ signal | subflow | backup ]
【13】mroute
Usage: ip mroute show [ [ to ] PREFIX ] [ from PREFIX ] [ iif DEVICE ]
                      [ table TABLE_ID ]
TABLE_ID := [ local | main | default | all | NUMBER ]
【14】mrule
Usage: ip rule { add | del } SELECTOR ACTION
       ip rule { flush | save | restore }
       ip rule [ list [ SELECTOR ]]
SELECTOR := [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ]
            [ fwmark FWMARK[/MASK] ]
            [ iif STRING ] [ oif STRING ] [ pref NUMBER ] [ l3mdev ]
            [ uidrange NUMBER-NUMBER ]
            [ ipproto PROTOCOL ]
            [ sport [ NUMBER | NUMBER-NUMBER ]
            [ dport [ NUMBER | NUMBER-NUMBER ] ]
ACTION := [ table TABLE_ID ]
          [ protocol PROTO ]
          [ nat ADDRESS ]
          [ realms [SRCREALM/]DSTREALM ]
          [ goto NUMBER ]
          SUPPRESSOR
SUPPRESSOR := [ suppress_prefixlength NUMBER ]
              [ suppress_ifgroup DEVGROUP ]
TABLE_ID := [ local | main | default | NUMBER ]
【15】neighbor
Usage: ip neigh { add | del | change | replace }
                { ADDR [ lladdr LLADDR ] [ nud STATE ] proxy ADDR }
                [ dev DEV ] [ router ] [ extern_learn ] [ protocol PROTO ]

       ip neigh { show | flush } [ proxy ] [ to PREFIX ] [ dev DEV ] [ nud STATE ]
                                 [ vrf NAME ]

       ip neigh get { ADDR | proxy ADDR } dev DEV

STATE := { delay | failed | incomplete | noarp | none |
           permanent | probe | reachable | stale }
【16】neighbour
Usage: ip neigh { add | del | change | replace }
                { ADDR [ lladdr LLADDR ] [ nud STATE ] proxy ADDR }
                [ dev DEV ] [ router ] [ extern_learn ] [ protocol PROTO ]

       ip neigh { show | flush } [ proxy ] [ to PREFIX ] [ dev DEV ] [ nud STATE ]
                                 [ vrf NAME ]

       ip neigh get { ADDR | proxy ADDR } dev DEV

STATE := { delay | failed | incomplete | noarp | none |
           permanent | probe | reachable | stale }
【17】netconf
Usage: ip netconf show [ dev STRING ]
【18】netns
Usage:	ip netns list
	ip netns add NAME
	ip netns attach NAME PID
	ip netns set NAME NETNSID
	ip [-all] netns delete [NAME]
	ip netns identify [PID]
	ip netns pids NAME
	ip [-all] netns exec [NAME] cmd ...
	ip netns monitor
	ip netns list-id [target-nsid POSITIVE-INT] [nsid POSITIVE-INT]
NETNSID := auto | POSITIVE-INT
【19】nexthop
Usage: ip nexthop { list | flush } [ protocol ID ] SELECTOR
       ip nexthop { add | replace } id ID NH [ protocol ID ]
       ip nexthop { get | del } id ID
       ip nexthop bucket list BUCKET_SELECTOR
       ip nexthop bucket get id ID index INDEX
SELECTOR := [ id ID ] [ dev DEV ] [ vrf NAME ] [ master DEV ]
            [ groups ] [ fdb ]
BUCKET_SELECTOR := SELECTOR | [ nhid ID ]
NH := { blackhole | [ via ADDRESS ] [ dev DEV ] [ onlink ]
        [ encap ENCAPTYPE ENCAPHDR ] |
        group GROUP [ fdb ] [ type TYPE [ TYPE_ARGS ] ] }
GROUP := [ <id[,weight]>/<id[,weight]>/... ]
TYPE := { mpath | resilient }
TYPE_ARGS := [ RESILIENT_ARGS ]
RESILIENT_ARGS := [ buckets BUCKETS ] [ idle_timer IDLE ]
                  [ unbalanced_timer UNBALANCED ]
ENCAPTYPE := [ mpls ]
ENCAPHDR := [ MPLSLABEL ]
【20】ntable
Usage: ip ntable change name NAME [ dev DEV ]
        [ thresh1 VAL ] [ thresh2 VAL ] [ thresh3 VAL ] [ gc_int MSEC ]
        [ PARMS ]
Usage: ip ntable show [ dev DEV ] [ name NAME ]
PARMS := [ base_reachable MSEC ] [ retrans MSEC ] [ gc_stale MSEC ]
         [ delay_probe MSEC ] [ queue LEN ]
         [ app_probes VAL ] [ ucast_probes VAL ] [ mcast_probes VAL ]
         [ anycast_delay MSEC ] [ proxy_delay MSEC ] [ proxy_queue LEN ]
         [ locktime MSEC ]
【21】ntbl
Usage: ip ntable change name NAME [ dev DEV ]
        [ thresh1 VAL ] [ thresh2 VAL ] [ thresh3 VAL ] [ gc_int MSEC ]
        [ PARMS ]
Usage: ip ntable show [ dev DEV ] [ name NAME ]
PARMS := [ base_reachable MSEC ] [ retrans MSEC ] [ gc_stale MSEC ]
         [ delay_probe MSEC ] [ queue LEN ]
         [ app_probes VAL ] [ ucast_probes VAL ] [ mcast_probes VAL ]
         [ anycast_delay MSEC ] [ proxy_delay MSEC ] [ proxy_queue LEN ]
         [ locktime MSEC ]
【22】route
Usage: ip route { list | flush } SELECTOR
       ip route save SELECTOR
       ip route restore
       ip route showdump
       ip route get [ ROUTE_GET_FLAGS ] ADDRESS
                            [ from ADDRESS iif STRING ]
                            [ oif STRING ] [ tos TOS ]
                            [ mark NUMBER ] [ vrf NAME ]
                            [ uid NUMBER ] [ ipproto PROTOCOL ]
                            [ sport NUMBER ] [ dport NUMBER ]
       ip route { add | del | change | append | replace } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
             [ ttl-propagate { enabled | disabled } ]
INFO_SPEC := { NH | nhid ID } OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ]
      [ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ]
           [ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ]
           [ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
           [ features FEATURES ] [ quickack BOOL ] [ congctl NAME ]
           [ pref PREF ] [ expires TIME ] [ fastopen_no_cookie BOOL ]
TYPE := { unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 | seg6 | seg6local | rpl | ioam6 ]
ENCAPHDR := [ MPLSLABEL | SEG6HDR | SEG6LOCAL | IOAM6HDR ]
SEG6HDR := [ mode SEGMODE ] segs ADDR1,ADDRi,ADDRn [hmac HMACKEYID] [cleanup]
SEGMODE := [ encap | inline ]
SEG6LOCAL := action ACTION [ OPTIONS ] [ count ]
ACTION := { End | End.X | End.T | End.DX2 | End.DX6 | End.DX4 |
            End.DT6 | End.DT4 | End.DT46 | End.B6 | End.B6.Encaps |
            End.BM | End.S | End.AS | End.AM | End.BPF }
OPTIONS := OPTION [ OPTIONS ]
OPTION := { srh SEG6HDR | nh4 ADDR | nh6 ADDR | iif DEV | oif DEV |
            table TABLEID | vrftable TABLEID | endpoint PROGNAME }
IOAM6HDR := trace prealloc type IOAM6_TRACE_TYPE ns IOAM6_NAMESPACE size IOAM6_TRACE_SIZE
ROUTE_GET_FLAGS := [ fibmatch ]
【23】rule
Usage: ip rule { add | del } SELECTOR ACTION
       ip rule { flush | save | restore }
       ip rule [ list [ SELECTOR ]]
SELECTOR := [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ]
            [ fwmark FWMARK[/MASK] ]
            [ iif STRING ] [ oif STRING ] [ pref NUMBER ] [ l3mdev ]
            [ uidrange NUMBER-NUMBER ]
            [ ipproto PROTOCOL ]
            [ sport [ NUMBER | NUMBER-NUMBER ]
            [ dport [ NUMBER | NUMBER-NUMBER ] ]
ACTION := [ table TABLE_ID ]
          [ protocol PROTO ]
          [ nat ADDRESS ]
          [ realms [SRCREALM/]DSTREALM ]
          [ goto NUMBER ]
          SUPPRESSOR
SUPPRESSOR := [ suppress_prefixlength NUMBER ]
              [ suppress_ifgroup DEVGROUP ]
TABLE_ID := [ local | main | default | NUMBER ]
【24】sr
Usage: ip sr { COMMAND | help }
          ip sr hmac show
          ip sr hmac set KEYID ALGO
          ip sr tunsrc show
          ip sr tunsrc set ADDRESS
where  ALGO := { sha1 | sha256 }
【25】tap
Usage: ip tuntap { add | del | show | list | lst | help } [ dev PHYS_DEV ]
       [ mode { tun | tap } ] [ user USER ] [ group GROUP ]
       [ one_queue ] [ pi ] [ vnet_hdr ] [ multi_queue ] [ name NAME ]

Where: USER  := { STRING | NUMBER }
       GROUP := { STRING | NUMBER }
【26】tcpmetrics
Usage:	ip tcp_metrics/tcpmetrics { COMMAND | help }
	ip tcp_metrics { show | flush } SELECTOR
	ip tcp_metrics delete [ address ] ADDRESS
SELECTOR := [ [ address ] PREFIX ]
【27】token
Usage: ip token [ list | set | del | get ] [ TOKEN ] [ dev DEV ]
【28】tunnel
Usage: ip tunnel { add | change | del | show | prl | 6rd } [ NAME ]
        [ mode { gre | ipip | isatap | sit | vti } ]
        [ remote ADDR ] [ local ADDR ]
        [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]
        [ prl-default ADDR ] [ prl-nodefault ADDR ] [ prl-delete ADDR ]
        [ 6rd-prefix ADDR ] [ 6rd-relay_prefix ADDR ] [ 6rd-reset ]
        [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]

Where: NAME := STRING
       ADDR := { IP_ADDRESS | any }
       TOS  := { STRING | 00..ff | inherit | inherit/STRING | inherit/00..ff }
       TTL  := { 1..255 | inherit }
       KEY  := { DOTTED_QUAD | NUMBER }
【29】tuntap
Usage: ip tuntap { add | del | show | list | lst | help } [ dev PHYS_DEV ]
       [ mode { tun | tap } ] [ user USER ] [ group GROUP ]
       [ one_queue ] [ pi ] [ vnet_hdr ] [ multi_queue ] [ name NAME ]

Where: USER  := { STRING | NUMBER }
       GROUP := { STRING | NUMBER }
【30】vrf
Usage:	ip vrf show [NAME] ...
	ip vrf exec [NAME] cmd ...
	ip vrf identify [PID]
	ip vrf pids [NAME]
【31】xfrm
Usage: ip xfrm XFRM-OBJECT { COMMAND | help }
where  XFRM-OBJECT := state | policy | monitor
    

う~む、各OBJECTとされるものたちが何なのか、さっぱり分からん...

man ipを実行した結果の抜粋が以下。

IP - COMMAND SYNTAX
   OBJECT
       address
              - protocol (IP or IPv6) address on a device.

       addrlabel
              - label configuration for protocol address selection.

       ioam   - manage IOAM namespaces and IOAM schemas.

       l2tp   - tunnel ethernet over IP (L2TPv3).

       link   - network device.

       maddress
              - multicast address.

       monitor
              - watch for netlink messages.

       mptcp  - manage MPTCP path manager.

       mroute - multicast routing cache entry.

       mrule  - rule in multicast routing policy database.

       neighbour
              - manage ARP or NDISC cache entries.

       netns  - manage network namespaces.

       ntable - manage the neighbor cache's operation.

       route  - routing table entry.

       rule   - rule in routing policy database.

       tcp_metrics/tcpmetrics
              - manage TCP Metrics

       token  - manage tokenized interface identifiers.

       tunnel - tunnel over IP.

       tuntap - manage TUN/TAP devices.

       vrf    - manage virtual routing and forwarding devices.

       xfrm   - manage IPSec policies.

       The names of all objects may be written in full or abbreviated form, for
       example address can be abbreviated as addr or just a.

⇧ う~む、ip helpで表示された「OBJECT」の数と、man ipで説明されている「OBJECT」の数が合わないんだが...

謎が深まるばかりなんだが...

いや、何でこんなこと調べてるかと言うと、

ip a    

⇧とか、良く使うのに、出力される項目とかよく分かってなかったな、と思いまして。

Ciscoの公式っぽいブログで、

blogs.cisco.com

Okay, that’s really what I was interested in looking at when I wanted to know what my IP address was. But there is a lot more info in that output than just the IP address. For a long time, I just skimmed over the output. I would ignore most output and simply look at the address and for state info like “UP” or “DOWN.” Eventually, I wanted to know what all that output meant, so in case you’re interested in how to decode the output above…

https://blogs.cisco.com/learning/exploring-the-linux-ip-command

⇧ って発言があって、なるほど、ほとんどの情報は無いものとして認識してるってのは、人類が共通して体験する通過儀礼のような扱いになっていたのか...

ip a の表示結果の各項目について、

slacknotebook.com

⇧ 上記サイト様が詳しいです。

とりあえず、

serverfault.com

⇧ jqってライブラリで、ip aの表示結果を整形してくれるっぽいので、インストールしてみる。

で、表示結果を整形してみた。

⇧ う~む、どちらにしろ、項目の意味が分からんので、読み解くのはなかなか辛い...

インフラエンジニアの方なら、一瞬で解釈できるとは思うけども...

毎度モヤモヤ感が半端ない...

今回はこのへんで。