GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So finden Sie die längste Manpage in Linux

Die Manpages aller Befehle werden in /usr/share/man/ gespeichert Verzeichnis unter Linux. Die Manpages sind in gzip komprimiert (.gz)-Format. Neugierig, welcher Befehl die größte Handbuchseite auf Ihrem Linux-System hat? Größte bedeutet hier, ich spreche von der Anzahl der Zeilen in einer Manpage. Es geht nicht um die Dateigröße oder Seitenzahl beim Drucken. Wenn Sie sich jemals gefragt haben, wie Sie die längste Manpage in Linux- und Unix-Distributionen finden können, folgen Sie einer der hier angegebenen Methoden.

Längste Manpage in Linux finden

Wir können die größten und längsten Handbuchseiten finden, indem wir die Anzahl der Zeilen und Wörter darin zählen. Das WC Der Befehl wird verwendet, um die Anzahl der Zeilen und Wörter in einer Datei zu zählen. Zum Beispiel, um die Anzahl der Zeilen in ls zu zählen man-Seite des Befehls, führen Sie aus:

$ man ls | wc -l

Um die Anzahl der Wörter in der ls-Manpage zu zählen, verwenden Sie auf ähnliche Weise -w kennzeichnen wie unten.

$ man ls | wc -w

Finden Sie die Anzahl der Zeilen und Wörter in einer Manpage in Linux

Das Zählen der Zeilen in jeder Manpage ist jedoch mühsam, zeitaufwändig und wahrscheinlich eine dumme Idee, um die längsten Manpages im gesamten System herauszufinden. Wir können dies leicht mit einer for-Schleife finden wie unten.

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

Dieser Befehl analysiert Man-Verzeichnisse (1 bis 8) und zeigt die längste Manpage in jedem Verzeichnis in absteigender Reihenfolge an. Je nach Anzahl der Manpages in Ihrem System dauert dies einige Minuten.

Hier ist die Ausgabe meines Ubuntu 18.04-Systems:

/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

Finden Sie die längste Manpage in Linux und Unix

Wie Sie sehen, ist die längste Manpage ffmpeg-all mit 25468 Zeilen insgesamt.

Sie können es mit wc überprüfen Befehl wie unten.

$ man ffmpeg-all | wc -l
25468

Wenn Sie den längsten Mann basierend auf der Anzahl der Wörter statt der Zeilen finden möchten, führen Sie Folgendes aus:

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

Beispielausgabe:

/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

Überprüfen Sie mit dem Befehl:

, ob es korrekt ist
$ man ffmpeg-all | wc -w
130475

Ein einfaches Skript, um die längste Manpage in Linux zu finden

Hier ist ein einfaches BASH-Skript, um die längste Manpage in einem Linux-System zu finden.

Erstellen Sie eine Datei, zum Beispiel longman.sh (kurz für längster Mann Seite):

$ nano longman.sh

Fügen Sie darin die folgenden Zeilen hinzu:

#!/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

Wenn Sie die Anzahl der Wörter statt der Zeilen zählen möchten, verwenden Sie wc -w im obigen Skript. Dieses Skript nimmt die Top 10 in jedem Verzeichnis, stellt eine Tabelle zusammen und sortiert sie nach der Anzahl der Zeilen. Es schließt auch alle nummerierten Abschnitte 1-8 aus, wenn sie NICHT auf Ihrem System vorhanden sind.

Speichern und schließen Sie die Datei und machen Sie sie mit folgendem Befehl ausführbar:

$ chmod +x longman.sh

Führen Sie nun dieses Skript aus, um die längste Handbuchseite in Ihrem System zu finden:

$ ./longman.sh

Die längste Handbuchseite wird unten angezeigt. Wenn Sie die längste Handbuchseite ganz oben anzeigen möchten, verwenden Sie "sort -rn" im obigen Skript.

Beispielausgabe:

[...]
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

Ein Bash-Skript, um die längste Manpage in Linux zu finden

Die Zahl in der Mitte gibt den Manpage-Abschnitt an .

Um mehr Details über Manpages zu erfahren, führen Sie Folgendes aus:

$ man man
$ man -k man
$ info man

Empfohlene Lektüre:

  • So installieren Sie fehlende Manpages von Befehlen auf Ubuntu
  • So erstellen und pflegen Sie Ihre eigenen Manpages

Ich hoffe, das war hilfreich.


Linux
  1. So verwenden Sie FIND unter Linux

  2. So finden Sie eine Datei in Linux

  3. So finden Sie die Standard-Gateway-IP in Linux

  4. So fügen Sie einen Eintrag in der Linux-Manpage-Datenbank hinzu

  5. Wie liest man Linux Manpages?

So installieren Sie Manpages in Alpine Linux

So finden Sie die IP-Adresse unter Linux

So finden Sie den Hostnamen unter Linux

So finden Sie die längste(n) Zeile(n) in einer Datei in Linux

So finden Sie die letzte Anmeldung unter Linux

So finden Sie die IP-Adresse in Linux