man-commando: gebruik en opties, sectienummers en zoeken met man -k

TestomgevingRHEL-familieAlmaLinux 9.8man-db 2.9root-accountDebian 12 · man-db 2.11 gewoon account
Shell-commando'sman, whatis, aproposLocatie/usr/bin/man

Om op een Linux-server na te gaan hoe een commando of een configuratiebestand wordt gebruikt, open je de handleidingpagina met het man-commando, en als je de naam niet weet, zoek je met man -k in de korte beschrijvingen. Bij het opzoeken van de passwd-pagina op servers met AlmaLinux 9 en Debian 12 had Debian 12 zowel de commandopagina in sectie 1 als de bestandsindelingspagina in sectie 5, terwijl AlmaLinux 9 geen pagina in sectie 5 had.

De uitvoer hieronder komt van een AlmaLinux 9.8-server met het root-account en van een Debian 12-server met een gewoon account. De hostnaam en het verbindingsadres in de simulator zijn voorbeeldwaarden.

1️⃣ Basisgebruik van het man-commando

  • ↪️ Een pagina openen, door het scherm bewegen en ontbrekende pagina's

Als je na man een commandonaam typt, opent de handleidingpagina van dat commando. man geeft de pagina door aan een pagerprogramma dat één scherm tegelijk toont, en keert daarom na het starten niet meteen terug naar de prompt. De pager wordt bepaald door de omgevingsvariabele MANPAGER of PAGER, en als beide leeg zijn, wordt less gebruikt.

Als je de uitvoer door een pipe stuurt, verschijnt alleen de tekst, zonder pager. De eerste 12 regels van [man ls], opgevangen met head, hadden LS(1) op de eerste regel, gevolgd door de secties NAME, SYNOPSIS en DESCRIPTION.

man ls | head -n 12
LS(1)                            User Commands                           LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speci-
       fied.

Het cijfer 1 tussen haakjes in LS(1) op de eerste regel is het nummer van de sectie waarin deze pagina staat.

Binnen een pagina toont [Space] het volgende scherm, en [/woord] met Enter zoekt naar een woord. [n] gaat naar de volgende plek waar hetzelfde woord staat, en [q] sluit man af.

Bij een naam die niet bestaat, verschijnt de fout [No manual entry for], en de afsluitcode was 16.

man no-such-cmd9
No manual entry for no-such-cmd9
echo $?
16

De sectie EXIT STATUS van de man-pagina beschrijft 16 als de waarde voor het geval dat minstens één van de pagina's, bestanden of zoekwoorden niet is gevonden. Een gebruiksfout geeft 1, zodat een script de twee gevallen apart kan afhandelen.

2️⃣ Sectienummers van man

  • ↪️ 1 commando's, 5 configuratiebestanden, 8 beheercommando's

Als er pagina's met dezelfde naam in meerdere secties staan, doorzoekt man de secties in een vaste volgorde en opent het alleen de eerste pagina die het vindt. De secties lopen van 1 tot en met 9, en bij serverwerk open je het vaakst sectie 1 voor commando's, sectie 5 voor bestandsindelingen en sectie 8 voor beheercommando's.

SectiePagina's in de sectieVoorbeeld op de AlmaLinux 9.8-server
1Uitvoerbare programma's en shellcommando'sls, passwd, crontab, man
2Systeemaanroepen (functies die de kernel aanbiedt)
3Bibliotheekfuncties
4Speciale bestanden (meestal onder /dev)
5Bestandsindelingen en conventies, bijv. /etc/passwdcrontab
6Spellen
7Diversen (macropakketten en conventies)
8Systeembeheercommando's, meestal voor rootuseradd, mandb
9Kernelroutines (niet-standaard)

crontab heeft pagina's in twee secties, omdat het commando en de indeling van het configuratiebestand dezelfde naam hebben. Bij een controle met [man -f crontab] verschenen de regels van sectie 1 en sectie 5 samen.

man -f crontab
crontab (1)          - maintains crontab files for individual users
crontab (5)          - files used to schedule the execution of programs

[man crontab] zonder sectienummer opent de pagina van het crontab-commando in sectie 1. Om de indeling van het bestand met geplande taken te zien, zet je 5 voor de naam.

man 5 crontab | head -n 4
CRONTAB(5)                       File Formats                       CRONTAB(5)

NAME
       crontab - files used to schedule the execution of programs

De eerste regel veranderde in CRONTAB(5) en File Formats, en ook op de NAME-regel stond de beschrijving van het bestand met geplande taken in plaats van die van het commando.

Als de opgegeven sectie geen pagina met die naam heeft, verschijnt er een fout. Op de AlmaLinux 9.8-server gaf [man 5 passwd], uitgevoerd om de indeling van het bestand /etc/passwd te zien, de fout dat er geen pagina in sectie 5 was.

man 5 passwd
No manual entry for passwd in section 5

Op de Debian 12-server toonde [man -f passwd] ook de passwd-regel van sectie 5. In welke secties een pagina staat, hangt af van de handleidingen die op de server zijn geïnstalleerd, dus controleer het eerst met [man -f] voordat je een sectienummer toevoegt.

man -f passwd
passwd (1)           - change user password
passwd (1ssl)        - OpenSSL application commands
passwd (5)           - the password file

Sectie 8 bevat beheercommando's die vooral door het root-account worden uitgevoerd, zoals useradd, waarmee je accounts aanmaakt.

man -f useradd
useradd (8)          - create a new user or update default new user information

3️⃣ Opties van het man-commando en zoeken met -k en -f

  • ↪️ whatis, apropos en de bestandslocatie met man -w

[man -f] toont de beschrijving van één regel van pagina's met dezelfde naam en werkt hetzelfde als whatis. Op de AlmaLinux 9.8-server gaven [man -f passwd] en [whatis passwd] dezelfde twee regels.

man -f passwd
passwd (1)           - update user's authentication tokens
passwd (1ossl)       - OpenSSL application commands

De regel 1ossl is de pagina van een OpenSSL-commando dat ook de naam passwd gebruikt.

Als je de naam niet weet, zoek je met [man -k] in paginanamen en korte beschrijvingen. Het werkt hetzelfde als apropos, en het zoekwoord wordt als reguliere expressie gelezen.

man -k '^passwd'
passwd (1)           - update user's authentication tokens
passwd (1ossl)       - OpenSSL application commands

^ betekent het begin van de regel, dus alleen de regels die met passwd beginnen verschenen. Zoeken kan ook met een woord uit de beschrijving: [man -k 'directory contents'] vond naast ls ook de pagina's dir en vdir.

man -k 'directory contents'
dir (1)              - list directory contents
ls (1)               - list directory contents
vdir (1)             - list directory contents

[man -k] doorzoekt alleen de korte beschrijvingen in de sectie NAME en vindt een pagina dus niet via een optienaam of een woord uit de tekst. [man -K], dat ook in de tekst zoekt, leest alle pagina's één voor één en doet er lang over.

Als het zoekwoord niet voorkomt, verschijnt [nothing appropriate], en de afsluitcode was 16.

man -k no-such-word9
no-such-word9: nothing appropriate.
echo $?
16

[man -w] toont alleen de locatie van het bronbestand, zonder de pagina te openen.

man -w ls
/usr/share/man/man1/ls.1.gz
man -w 5 crontab
/usr/share/man/man5/crontab.5.gz

De twee bestanden stonden in de mappen man1 en man5 onder /usr/share/man, en het cijfer in de mapnaam kwam overeen met het sectienummer. Ook het bestand van de 1ossl-pagina, gevonden met [man -w 1ossl passwd], stond in de map man1, dezelfde als die van sectie 1.

De opties staan bij elkaar in de twee tabbladen hieronder.

OptieKopiërenUitleg
-f, --whatisToont de beschrijving van één regel van pagina's met dezelfde naam. Hetzelfde als whatis
-k, --aproposZoekt in paginanamen en korte beschrijvingen. Hetzelfde als apropos
-w, --where, --path, --locationToont alleen de locatie van het bronbestand, zonder de pagina te openen
-a, --allToont alle pagina's met een passende naam na elkaar
OptieKopiërenUitleg
-K, --global-aproposZoekt een woord in de tekst van alle pagina's. Duurt lang
-S, -s, --sectionslijstGeeft de te doorzoeken secties en hun volgorde op als een lijst, gescheiden door komma's of dubbele punten
-P, --pagerpagerGeeft de pager op die de pagina toont. De standaardwaarde is less
-M, --manpathpadGeeft het handleidingpad op waarin naar pagina's wordt gezocht
-L, --localelocaleGeeft de locale op die bij deze uitvoering wordt gebruikt
-l, --local-fileToont het opgegeven bestand als pagina, zonder de systeemhandleidingen te doorzoeken
-u, --updateWerkt de indexcaches van de geïnstalleerde pagina's bij
-V, --versionToont versie-informatie

🔲 Simulator voor het man-commando

In de simulator hieronder kun je met [man ls] een pagina openen en met de chips [Space], [/list], [n] en [q] door de schermen gaan. Op dezelfde virtuele server kun je een sectienummer toevoegen zoals in [man 5 crontab], of [man -f], [man -k] en [man -w] typen.

Simulator voor het man-commandoman-db 2.9 · root-account
[root@server work]#
Werkt alleen in de browser. Op het scherm van een pagina druk je op de chips Space, /woord, n en q, en met ↑↓ op het toetsenbord haal je eerder getypte commando's terug.

4️⃣ Opbouw van een man-pagina

  • ↪️ NAME, SYNOPSIS, DESCRIPTION en OPTIONS lezen

Een man-pagina is verdeeld in secties met koppen in hoofdletters. Toen alleen de koppen met grep werden uitgefilterd en vergeleken, had de ls-pagina de beschrijving van de opties binnen DESCRIPTION, terwijl de crontab-pagina een aparte sectie OPTIONS had.

man ls | grep -E '^[A-Z]+( [A-Z]+)*$'
NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSO
man crontab | grep -E '^[A-Z]+( [A-Z]+)*$'
NAME
SYNOPSIS
DESCRIPTION
OPTIONS
CAVEATS
SEE ALSO
FILES
STANDARDS
DIAGNOSTICS
AUTHOR

De namen van de secties verschillen per pagina een beetje, en de meest voorkomende staan hieronder.

SectieInhoud
NAMENaam en beschrijving van één regel (de regel die man -f en man -k tonen)
SYNOPSISSchrijfwijze van het commando
DESCRIPTIONBeschrijving van de werking (de ls-pagina zet hier ook de opties)
OPTIONSEén alinea per optie
EXIT STATUSBetekenis van de afsluitcodes
FILESBestanden die het commando leest of schrijft
SEE ALSOVerwante pagina's

De tekens in SYNOPSIS volgen regels die de man-pagina vastlegt. Wat tussen vierkante haken staat, mag je weglaten. Opties die door een verticale streep (|) zijn gescheiden, kun je niet samen gebruiken, en een argument met drie punten (...) mag je meerdere keren opgeven.

De SYNOPSIS van ls is ls [OPTION]... [FILE]..., dus zowel commando-opties als opdrachtregelargumenten zoals bestandsnamen kun je allemaal weglaten of meerdere keren opgeven.

[--help] is een gebruiksoverzicht dat het programma zelf afdrukt, en verschijnt daarom zonder pager direct in de terminal. De Usage op de eerste regel van [ls --help] had dezelfde vorm als SYNOPSIS, en de hele uitvoer was met 121 regels korter dan de 245 regels van [man ls].

ls --help | head -n 3
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Een man-pagina heeft nog meer secties die in [--help] ontbreken, zoals AUTHOR en SEE ALSO. Gebruik [--help] om snel één optie te bekijken, en open man als je een uitleg nodig hebt die in secties is verdeeld, zoals de indeling van een configuratiebestand of afsluitcodes.

🔢 FAQ & aanbevolen content

cd is een ingebouwd commando van bash, dus [man cd] leidt naar de pagina die alle ingebouwde commando's bundelt. Op de AlmaLinux 9.8-server gaf [type cd] de regel [cd is a shell builtin], en [man -w cd] gaf de locatie van het bestand builtins.1.gz. Het gebruik van één ingebouwd commando bekijk je direct met [help cd].

[man -a naam] opent de pagina's met een passende naam na elkaar. Om alleen de bestandslocaties te zien, voeg je [-w] toe. Op de AlmaLinux 9.8-server gaf [man -w -a crontab] twee regels met de crontab-bestanden in de mappen man1 en man5.

De index waarin [man -k] en [man -f] zoeken, wordt door mandb gemaakt en bijgewerkt. Een pagina die nog niet in de index staat, verschijnt daarom niet in de zoekresultaten, en je bouwt de index opnieuw op door [mandb] uit te voeren met het root-account.

ℹ️ Affiliatemelding
De content van deze site bevat affiliatelinks. Koopt een bezoeker via een van deze links een product of dienst, dan ontvangt deze site een commissie van de verkoper. Het bedrag dat de koper betaalt (bij acties gaat het omlaag ↓) wordt daardoor niet hoger. De vermelde prijzen, kortingen en voorraad gelden op het moment van schrijven en kunnen afwijken; controleer ze daarom vóór je aankoop bij de verkoper. Producten worden gekozen en beoordeeld volgens onze eigen criteria, en commissies hebben geen invloed op de volgorde of de inhoud van de beoordelingen.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Laat zien dat je geen machine bent: 3   +   3   =