Linux whatis Befehl für Anfänger (5 Beispiele)

Man Pages sind eine der nützlichsten Ressourcen, wenn es darum geht, Kommandozeilen-Dienstprogramme zu verstehen. Eine Man Page enthält jedoch viele Details über den Befehl. Es kann vorkommen, dass Sie schnell wissen möchten – vielleicht in einer kleinen Zeile oder so -, was ein Kommandozeilenprogramm tut. Nun, du wirst froh sein zu wissen, dass es einen Befehl gibt, der speziell für diesen Zweck entwickelt wurde.

In diesem Tutorial werden wir die Grundlagen des whatis-Befehls anhand einiger leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einer Ubuntu 22.04 Maschine getestet wurden.

Linux whatis Befehl

Mit dem Befehl whatis unter Linux können Sie Seitenbeschreibungen für manuelle Seiten in einer Zeile anzeigen. Folgendes ist seine Syntax:

whatis  [-dlv?V]  [-r|-w]  [-s  list]  [-m  system[,...]] [-M path] [-L
       locale] [-C file] name ...

Und so erklärt es die Man Page des Tools:

       Each manual page has a short description available within  it.   whatis
       searches  the  manual  page names and displays the manual page descrip?
       tions of any name matched.
name may contain wildcards (-w) or be a regular expression (-r).  Using
these  options, it may be necessary to quote the name or escape (\) the
special characters to stop the shell from interpreting them.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der Befehl whatis funktioniert.

Q1. Wie verwendet man den Befehl whatis?

Die grundlegende Bedienung ist ziemlich einfach. Übergeben Sie einfach einen Werkzeugnamen als Eingabe, und whatis sucht und zeigt eine einzeilige Beschreibung dafür an.

Hier ist ein Beispiel:

whatis ls

Die folgende Ausgabe wurde durch den oben genannten Befehl erzeugt:

ls (1)               - list directory contents

Q2. Wie kann man Informationen für mehr als einen Befehl erhalten?

Das ist auch ziemlich einfach – übergeben Sie einfach die Werkzeugnamen als Eingabe an whatis. Nachfolgend ein Beispiel:

whatis ls cp rm mv

Und hier ist die Ausgabe, die von diesem Befehl erzeugt wird:

ls (1)               - list directory contents
cp (1)               - copy files and directories
rm (1)               - remove files or directories
mv (1)               - move (rename) files

So können Sie sehen, dass der Befehl whatis mehrere Eingaben einfach verarbeitet.

Q3. Können wir Wildcards mit Whatis verwenden?

Ja, es ist möglich, Wildcards mit dem Befehl whatis zu verwenden. Die Kommandozeilenoption -w aktiviert diese Funktion.

Hier ist ein Beispiel;

whatis -w 'who*'

Und im Anschluss folgt die Ausgabe:

who (1)              - show who is logged on
whoami (1)           - print effective userid

Q4. Wie kann man whatis dazu bringen, Debugging-Informationen zu produzieren?

Die Option -d bewirkt, dass der Befehl whatis Debugginginformationen in der Ausgabe erzeugt. Unnötig zu sagen, dass diese Option hauptsächlich für Entwickler gedacht ist.

Hier ist ein Beispiel:

whatis -d ls

Und nachfolgend ist die Ausgabe, die von diesem Befehl erzeugt wird:

From the config file /etc/manpath.config:
Mandatory mandir `/usr/man'.
Mandatory mandir `/usr/share/man'.
Mandatory mandir `/usr/local/share/man'.
Path `/bin' mapped to mandir `/usr/share/man'.
Path `/usr/bin' mapped to mandir `/usr/share/man'.
Path `/sbin' mapped to mandir `/usr/share/man'.
Path `/usr/sbin' mapped to mandir `/usr/share/man'.
Path `/usr/local/bin' mapped to mandir `/usr/local/man'.
Path `/usr/local/bin' mapped to mandir `/usr/local/share/man'.
Path `/usr/local/sbin' mapped to mandir `/usr/local/man'.
Path `/usr/local/sbin' mapped to mandir `/usr/local/share/man'.
Path `/usr/X11R6/bin' mapped to mandir `/usr/X11R6/man'.
Path `/usr/bin/X11' mapped to mandir `/usr/X11R6/man'.
Path `/usr/games' mapped to mandir `/usr/share/man'.
Path `/opt/bin' mapped to mandir `/opt/man'.
Path `/opt/sbin' mapped to mandir `/opt/man'.
Global mandir `/usr/man', catdir `/var/cache/man/fsstnd'.
Global mandir `/usr/share/man', catdir `/var/cache/man'.
Global mandir `/usr/local/man', catdir `/var/cache/man/oldlocal'.
Global mandir `/usr/local/share/man', catdir `/var/cache/man/local'.
Global mandir `/usr/X11R6/man', catdir `/var/cache/man/X11R6'.
Global mandir `/opt/man', catdir `/var/cache/man/opt'.
Added section `1'.
Added section `n'.
Added section `l'.
Added section `8'.
Added section `3'.
Added section `2'.
Added section `3posix'.
Added section `3pm'.
Added section `3perl'.
Added section `3am'.
Added section `5'.
Added section `4'.
Added section `9'.
Added section `6'.
Added section `7'.
`/usr/man'    `'    `1'
`/usr/share/man'    `'    `1'
`/usr/local/share/man'    `'    `1'
`/bin'    `/usr/share/man'    `0'
`/usr/bin'    `/usr/share/man'    `0'
`/sbin'    `/usr/share/man'    `0'
`/usr/sbin'    `/usr/share/man'    `0'
`/usr/local/bin'    `/usr/local/man'    `0'
`/usr/local/bin'    `/usr/local/share/man'    `0'
`/usr/local/sbin'    `/usr/local/man'    `0'
`/usr/local/sbin'    `/usr/local/share/man'    `0'
`/usr/X11R6/bin'    `/usr/X11R6/man'    `0'
`/usr/bin/X11'    `/usr/X11R6/man'    `0'
`/usr/games'    `/usr/share/man'    `0'
`/opt/bin'    `/opt/man'    `0'
`/opt/sbin'    `/opt/man'    `0'
`/usr/man'    `/var/cache/man/fsstnd'    `-1'
`/usr/share/man'    `/var/cache/man'    `-1'
`/usr/local/man'    `/var/cache/man/oldlocal'    `-1'
`/usr/local/share/man'    `/var/cache/man/local'    `-1'
`/usr/X11R6/man'    `/var/cache/man/X11R6'    `-1'
`/opt/man'    `/var/cache/man/opt'    `-1'
`1'    `'    `-5'
`n'    `'    `-5'
`l'    `'    `-5'
`8'    `'    `-5'
`3'    `'    `-5'
`2'    `'    `-5'
`3posix'    `'    `-5'
`3pm'    `'    `-5'
`3perl'    `'    `-5'
`3am'    `'    `-5'
`5'    `'    `-5'
`4'    `'    `-5'
`9'    `'    `-5'
`6'    `'    `-5'
`7'    `'    `-5'

path directory /usr/local/sbin is in the config file
adding /usr/local/man to manpath
adding /usr/local/share/man to manpath

path directory /usr/local/bin is in the config file
/usr/local/man is already in the manpath
/usr/local/share/man is already in the manpath

path directory /usr/sbin is in the config file
adding /usr/share/man to manpath

path directory /usr/bin is in the config file
/usr/share/man is already in the manpath

path directory /sbin is in the config file
/usr/share/man is already in the manpath

path directory /bin is in the config file
/usr/share/man is already in the manpath

path directory /usr/games is in the config file
/usr/share/man is already in the manpath

path directory /usr/local/games is not in the config file
but does have a ../man, man, ../share/man, or share/man subdirectory
/usr/local/man is already in the manpath

path directory /snap/bin is not in the config file
and doesn't have ../man, man, ../share/man, or share/man subdirectories

adding mandatory man directories

warning: /usr/man: No such file or directory
/usr/share/man is already in the manpath
/usr/local/share/man is already in the manpath
add_nls_manpaths(): processing /usr/local/man:/usr/local/share/man:/usr/share/man
checking for locale en_IN
adding /usr/local/man to manpathlist
adding /usr/local/share/man to manpathlist
adding /usr/share/man to manpathlist
adding /usr/local/man to manpathlist
adding /usr/local/share/man to manpathlist
adding /usr/share/man to manpathlist
Removing duplicate manpath entry /usr/local/share/man (1) -> /usr/local/man (0)
Removing duplicate manpath entry /usr/local/man (2) -> /usr/local/man (0)
Removing duplicate manpath entry /usr/local/share/man (2) -> /usr/local/man (0)
Removing duplicate manpath entry /usr/share/man (2) -> /usr/share/man (1)
final search path = /usr/local/man:/usr/share/man
path=/usr/local/man
warning: can't read the fallback whatis text database /usr/local/man/whatis
path=/usr/share/man
name:      ls
sec. ext:  1
section:   1
comp. ext: gz
id:        A
mtime:     1516268629.000000000
pointer:   -
filter:    -
whatis:    list directory contents

ls (1)               - list directory contents
hashtable_free: 1 entries, 1 (100%) unique

Q5. Wie führt whatis seine Recherchen durch?

Hier ist ein relevanter Auszug aus der Man Page:

       index databases are used during the search,  and  are  updated  by  the
       mandb  program.   Depending  on your installation, this may be run by a
       periodic cron job, or may need to be  run  manually  after  new  manual
       pages  have  been installed.  To produce an old style text whatis data?
       base from the relative index database, issue the command:
whatis -M manpath -w '*' | sort > manpath/whatis

where manpath is a manual page hierarchy such as /usr/man.

Fazit

Wenn Sie zu sehr auf die Linux-Befehlszeilen-Tools stehen oder Ihre tägliche Arbeit den Umgang mit Man Pages beinhaltet, kann der Befehl whatis ein hilfreiches Werkzeug für Sie sein. Wir haben hier bereits einige Whatis-Befehlszeilenoptionen besprochen, hier finden Sie Informationen zum einrichten von Cronjobs. Weitere Informationen findest du auf der Man Page des Tools.

Das könnte dich auch interessieren …