すべてのコマンドのマニュアルページ / usr / share / man /に保存されます Linuxのディレクトリ。マニュアルページはgzipで圧縮されています (.gz)形式。 Linuxシステムで最大のマニュアルページがあるコマンドを知りたいですか?ここで最大の意味は、manページの行数について話していることです。印刷時のファイルサイズやページ数ではありません。 LinuxおよびUnixディストリビューションで最長のマニュアルページを見つける方法がわからない場合は、ここに記載されている方法のいずれかに従ってください。
Linuxで最長のマニュアルページを探す
行数と単語数を数えることで、最大および最長のマニュアルページを見つけることができます。 wc コマンドは、ファイル内の行数と単語数をカウントするために使用されます。たとえば、 lsの行数をカウントするには コマンドのマニュアルページ、実行:
$ man ls | wc -l </ pre>同様に、lsのマニュアルページの単語数を数えるには、 -wを使用します。 以下のようなフラグ。
$ man ls | wc -w![]()
Linuxのmanページで行数と単語数を検索する
ただし、各manページの行数を数えるのは面倒で時間がかかり、システム全体で最も長いmanページを見つけるのはおそらく馬鹿げた考えです。これは、forループを使用して簡単に見つけることができます。 以下のように。
for i in {1..8}; do f =/ usr / share / man / man $ i / $(ls -1S / usr / share / man / man $ i / | head -n1); printf "%s:%9d \ n" "$ f" $(man "$ f" 2> / dev / null | wc -l);完了このコマンドは、manディレクトリ(1から8)を分析し、各ディレクトリの最長のmanページを降順で表示します。システムのマニュアルページの数にもよりますが、数分かかります。
これが私のUbuntu18.04システムからの出力です:
/ usr / share / man / man1 / ffmpeg-all .1.gz: 25468 /usr/share/man/man2/perf_event_open.2.gz:1732 / usr / share / man / man3 / Net ::SSLeay.3pm.gz:8738 / usr / share / man / man4 / st.4.gz: 423 / usr / share / man / man5 / proc.5.gz:3087 / usr / share / man / man6 / espdiff.6.gz:50 / usr / share / man / man7 / groff_mdoc.7.gz:1826 / usr / share / man / man8 / dnsmasq.8.gz:1337![]()
LinuxとUnixで最長のマニュアルページを探す
ご覧のとおり、最長のマニュアルページは ffmpeg-all です。 25468 合計行数。
wcでクロスチェックできます 以下のようなコマンド。
$ man ffmpeg-all | wc -l <strong> 25468行ではなく単語数に基づいて最長の男性を検索する場合は、次のコマンドを実行します。
for i in {1..8}; do f =/ usr / share / man / man $ i / $(ls -1S / usr / share / man / man $ i / | head -n1); printf "%s:%9d \ n" "$ f" $(man "$ f" 2> / dev / null | wc -w);完了出力例:
/ usr / share / man / man1 / ffmpeg-all .1.gz: 130475 /usr/share/man/man2/perf_event_open.2.gz:11031 / usr / share / man / man3 / Net ::SSLeay.3pm.gz:37886 / usr / share / man / man4 / st.4.gz: 4358 / usr / share / man / man5 / proc.5.gz:22939 / usr / share / man / man6 / espdiff.6.gz:294 / usr / share / man / man7 / groff_mdoc.7.gz:11919 / usr / share / man / man8 / dnsmasq.8.gz:16875コマンドを使用して正しいかどうかを確認します:
$ man ffmpeg-all | wc -w 130475Linuxで最長のマニュアルページを見つけるための簡単なスクリプト
Linuxシステムで最長のマニュアルページを見つけるための簡単なBASHスクリプトを次に示します。
たとえば、longman.sh( longman の略)というファイルを作成します。 ページ):
$ nano longman.shその中に次の行を追加します:
#!/ usr / bin / env bashcd / usr / share / man / for fn in $(find -maxdepth 1 -type d -iname'man [1-8]'); do fn =$ {fn#。/} ls -1Sp "$ fn" |ヘッド-n10| sed -Ee "s、^、$ PWD / $ fn /、" |マンページを読みながら; do shortname =$(echo "$ manpage" | sed -e "s、$ PWD / man ,," -e "s、/、" $'\ t'"、")printf'%9d \ t%s \ n'$(man "$ manpage" 2> / dev / null | wc -l) "$ shortname" donedone | sort -n行ではなく単語数をカウントする場合は、 wc -wを使用します 上記のスクリプトで。このスクリプトは、すべてのman dirのトップ10を取得し、テーブルをコンパイルして、行数でソートします。また、システムに存在しない場合は、番号が付けられたセクション1〜8のいずれも除外されます。
ファイルを保存して閉じ、次のコマンドを使用して実行可能にします:
$ chmod + x longman.sh次に、このスクリプトを実行して、システム内で最長のマニュアルページを見つけます。
$ ./longman.sh最長のマニュアルページが下部に表示されます。最長のマニュアルページを上部に表示する場合は、上記のスクリプトで「sort-rn」を使用してください。
出力例:
[...] 14236 1 ffmpeg-filters.1.gz15470 1 x86_64-linux-gnu-g ++-7.1.gz15470 1 x86_64-linux-gnu-gcc-7.1.gz20579 1 ffplay-all.1.gz20797 1 ffprobe-all.1.gz24856 1 ffserver-all.1.gz 25468 1 ffmpeg-all.1.gz![]()
Linuxで最長のmanページを見つけるためのBashスクリプト
中央の数字は、マニュアルページセクションを示しています。 。
マニュアルページの詳細については、次を実行してください:
$ man man$ man -k man$ info man推奨される読み物:
- Ubuntuにコマンドの欠落しているマニュアルページをインストールする方法
- 独自のマニュアルページを作成および維持する方法
これがお役に立てば幸いです。