GNU/Linux >> Znalost Linux >  >> Linux

Jak najít nejdelší mužskou stránku v Linuxu

manuálové stránky všech příkazů jsou uloženy v /usr/share/man/ adresář v Linuxu. Manuálové stránky jsou komprimovány v gzip (.gz) formát. Zajímá vás, který příkaz má největší manuálovou stránku ve vašem systému Linux? Zde největší znamená, mluvím o počtu řádků v manuálové stránce. Nezáleží na velikosti souboru nebo počtu stránek při tisku. Pokud jste někdy přemýšleli, jak najít nejdelší manuálovou stránku v distribucích Linuxu a Unixu, postupujte podle jedné ze zde uvedených metod.

Najděte nejdelší mužskou stránku v Linuxu

Největší a nejdelší manuálové stránky můžeme najít tak, že spočítáme počet řádků a slov v nich. Wc příkaz se používá k počítání počtu řádků a slov v souboru. Chcete-li například spočítat počet řádků v ls manuálová stránka příkazu, spusťte:

$ man ls | wc -l

Podobně, chcete-li spočítat počet slov v manuálové stránce ls, použijte -w příznak jako níže.

$ man ls | wc -w

Najděte počet řádků a slov v manuálové stránce v linuxu

Nicméně počítání počtu řádků v každé manuálové stránce je únavné, časově náročné a pravděpodobně hloupý nápad zjistit nejdelší manuálové stránky v celém systému. To můžeme snadno najít pomocí smyčky for jako níže.

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); done

Tento příkaz analyzuje man adresáře (1 až 8) a zobrazí nejdelší manuálovou stránku v každém adresáři v sestupném pořadí. Bude to trvat několik minut v závislosti na počtu manuálových stránek ve vašem systému.

Zde je výstup z mého systému Ubuntu 18.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

Najděte nejdelší man stránku v Linuxu a Unixu

Jak vidíte, nejdelší manuálová stránka je ffmpeg-all s 25468 řádků celkem.

Můžete to zkontrolovat pomocí wc příkaz jako níže.

$ man ffmpeg-all | wc -l
25468

Pokud chcete najít nejdelšího muže na základě počtu slov místo řádků, spusťte:

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); done

Ukázkový výstup:

/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

Zkontrolujte, zda je správná pomocí příkazu:

$ man ffmpeg-all | wc -w
130475

Jednoduchý skript k nalezení nejdelší stránky muže v Linuxu

Zde je jednoduchý BASH skript pro nalezení nejdelší manuálové stránky v systému Linux.

Vytvořte soubor, například longman.sh (zkratka pro longest man stránka):

$ nano longman.sh

Přidejte do něj následující řádky:

#!/usr/bin/env bash
cd /usr/share/man/
for fn in $(find -maxdepth 1 -type d -iname 'man[1-8]'); do
  fn=${fn#./}
  ls -1Sp "$fn" | head -n 10 | sed -Ee "s,^,$PWD/$fn/," | while read manpage; 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"
  done
done | sort -n

Pokud chcete místo řádků počítat počet slov, použijte wc -w ve výše uvedeném skriptu. Tento skript vezme prvních 10 v každém mužském adresáři, sestaví tabulku a seřadí ji podle počtu řádků. Rovněž vylučuje jakoukoli z očíslovaných sekcí 1-8, pokud ve vašem systému NEEXISTUJÍ.

Uložte a zavřete soubor a udělejte jej spustitelný pomocí příkazu:

$ chmod +x longman.sh

Nyní spusťte tento skript a najděte nejdelší manuálovou stránku ve vašem systému:

$ ./longman.sh

Nejdelší manuálová stránka je zobrazena dole. Pokud chcete zobrazit nejdelší manuálovou stránku nahoře, použijte "sort -rn" ve výše uvedeném skriptu.

Ukázkový výstup:

[...]
14236   1   ffmpeg-filters.1.gz
15470   1   x86_64-linux-gnu-g++-7.1.gz
15470   1   x86_64-linux-gnu-gcc-7.1.gz
20579   1   ffplay-all.1.gz
20797   1   ffprobe-all.1.gz
24856   1   ffserver-all.1.gz
25468   1   ffmpeg-all.1.gz

Bash Script k nalezení nejdelší mužské stránky v Linuxu

Číslo uprostřed označuje sekci manuálové stránky .

Chcete-li se dozvědět více podrobností o manuálových stránkách, spusťte:

$ man man
$ man -k man
$ info man

Doporučené čtení:

  • Jak nainstalovat Missing Man Pages Of Commands na Ubuntu
  • Jak vytvořit a udržovat své vlastní Man Pages

Doufám, že to bylo užitečné.


Linux
  1. Jak používat FIND v Linuxu

  2. Jak najít soubor v Linuxu

  3. Jak zjistit, co dělá příkaz Linuxu

  1. Jak najít výchozí IP bránu v Linuxu

  2. Jak přidat položku do databáze manuálových stránek Linuxu

  3. Jak číst manuálové stránky Linuxu?

  1. Jak zjistit svou IP adresu v Linuxu

  2. Jak najít soubory v Linuxu

  3. Jak najít IP adresu v Kali Linuxu