Lär dig skriva manualsidor i Linux
Nästan alla verktyg och projekt i Linux har välskrivna manualsidor. Det är något vi tar för givet i Linux. Samtidigt kan det verka som något mystiskt med hur manualsidor är uppbyggda.
Det är därför tid att vi lär oss hur man skriver, formaterar och installerar manualsidor, så att även du och jag kan inkludera manualsidor i vårt nästa projekt.
Som exempel kommer jag här att skriva en manualsida för subnetcalc, en mycket enkel subnet-kalkylator jag skrev för några år sedan. Den har dock alltid saknat en manualsida – något vi nu ska råda bot på.
Manualsidorna är formaterade i ett språk som kallas troff, och daterar ända tillbaks till 1970-talet. Det ett markup-språk som exempelvis LaTeX, HTML eller Markdown, om än mycket äldre.
Den kompletta manualsidan för subnetcalc ser ut som nedan.
Ovanstående kod sparas i en fil, subnetcalc.1. Ettan indikerar att detta är ett användarkommando (sektion 1 i manualen). Vi kan testa att öppna manualsidan även när den ligger i exempelvis hemkatalogen.
$> man ./subnetcalc.1
Resultatet visas i nedanstående bild.
Troff
Det mesta av formateringen i troff görs med kommandon som börjar med en punkt på en ny rad.
Det första exemplet i manualsidan ovan är .TH
som är titeln på manualsidan.
Jämför texten som står efter .TH
med resultatet i bilden ovan. Lägg märke
till hur datumet och versionen visas i sidfoten, men SUBNETCALC(1) och User
Manuals i sidhuvudet.
Därefter har vi .SH NAME
, där .SH
står för Section Header. NAME är
styckets namn. I manualsidorna skriver vi alla styckerubriker med versaler. All
text som kommer under .SH NAME
är en del av det stycket. Lägg också märke
till att vi escapar bindestrecket med \-
.
Nästa styckerubrik är SYNOPSIS. Denna delen ska ge ett snabb översikt
över hur programmet används. Här har vi .B subnetcalc \fR[netmask] [-s]
. Den
första formateringen här är .B
för bold, alltså fetstil. Därefter återgår
vi till normal text med \fR
där \f
står för font och är ett sätt att
ändra stilen på samma rad. R
står för regular, alltså vanlig text.
Nästa styckerubrik är DESCRIPTION som är en mer utförlig beskrivning av
programmet. Här använder jag .B
för att göra ordet subnetcalc i fetstil.
Texten på nästkommande rader återgår automatiskt till vanlig stil.
Nästa styckerubrik är OPTIONS. Här listar vi alla flaggor programmet kan
ta. Notera att vi här använder en indenterad lista. Detta åstadkoms med .TP
som fixar till en snygg lista helt automatiskt. Första flaggan är listan är
-s. Flaggan fetmarkeras med .B \-s
. Det som sedan följer på nästkommande
rader blir indenterade i manualsidan (se bilden). Resultatet blir en prydligt
formaterad lista.
Därefter följer ytterligare tre styckerubriker, RETURN VALUES, AUTHOR och
SEE ALSO. Dessa är formaterade precis som övriga stycken. Däremot under SEE
ALSO har vi formaterat bc(1) med .BR bc (1)
. B står för bold och R för
regular, vilket vi redan lärt oss. Men när man kombinerar dem kommer det
första ordet bli fetmarkerat – bc i det här fallet – och efterföljande ord
formateras med vanlig text, alltså (1) i vårt fall.
Installera manualsidan i systemet
Att installera en manualsida i systemet är inte svårare än att gzippa filen och placera den i rätt katalog.
$> gzip subnetcalc.1
$> sudo install -g root -o root -m 0644 subnetcalc.1.gz \
> /usr/share/man/man1/
Första kommandot skapar en gzippad fil av manualsidan. Filnamnet blir subnetcalc.1.gz.
I det andra kommandot installerar vi manualsidan i systemet som root. Det hade
även gått att kopiera eller flytta filen till rätt katalog med cp
eller mv
,
men install
har fördelen att man kan sätta ägare, grupp och rättigheter
direkt.
Katalogen vi placerar manualsidan i är /usr/share/man/man1/. Den katalogen
innehåller manualsidor för alla användarkommandon. Andra kataloger är
/usr/share/man/man2 som innehåller manualsidor för systemanrop. Katalogen
/usr/share/man/man3 innehåller manualsidor för standardbibliotekets
funktioner. Siffran på slutet av katalogens namn representerar manualens
sektion. Detsamma gäller ettan i filnamnet subnetcalc.1.gz. Detsamma gäller
även ettan inom parentesen i rubriken på manualsidan. Du hittar en komplett
lista över manualens samtliga sektioner med man man
.
Nu när manualsidan är installerad kan vi läsa den med man 1 subnetcalc
, eller
bara man subnetcalc
.
Andra styckerubriker
De styckerubriker vi använt i denna manualsidan är att anse som ett minimum. Andra styckerubriker som är att ta med är BUGS, COPYRIGHT och REPORTING BUGS.
Nyhetsbrev
Nyhetsuppdateringar från tidningen direkt till din inkorg, helt kostnadsfritt. Avsluta när du vill.
Relaterade artiklar
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Var försiktig med att curl:a skript som root
Att installera program i Linux genom att omdirigera utdata från Curl till skalet är snabbt och smidigt. Men det är ack så farligt om du inte känner till programmet eller dess ursprung.
-
Vidarebefordran av SSH-agenten
SSH agent forwarding, eller vidarebefordran av SSH-agenten, innebär att man kan vidarebefordra SSH-agenten till ett fjärrsystem. På så sätt behöver man inte kopiera sin privata SSH-nyckel till fjärrsystemet, eller skapa flera nycklar för olika system. Men det finns risker med det.
-
Jenkins som ett alternativ till Ansible Tower
Ansible Tower kommer med en stor prislapp, speciellt för ett mindre företag eller en privatperson. AWX å andra sidan är helt fritt, men kräver numera Kubernetes. För den som vill automatisera sina Ansible Playbooks går det dock bra att använda Jenkins som en ersättning för Tower och AWX.
-
Hämta data från API:er med cURL och jq
Med cURL och jq går det att extrahera data från API:er direkt från kommandoraden. Jq är en JSON-tolkare och beskrivs av utvecklarna som sed och awk för JSON.
Senaste nyheterna och inläggen
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Sommarens skånska demopartyn
Årets sommar bjuder på två skånska demopartyn. Först ut är Reunion i Kvidinge den 28–30 juni. Därefter är det Pågadata i Örtofta den 9–11 augusti.
-
Riskerna med BankID som ingen pratar om
BankID är ett säkert och smidigt sätt att identifiera sig online. Men i takt med dess ökade popularitet och användning har det blivit en svag länk – en single point of failure – på mer än ett sätt.
-
Polisernas fängelsedomar står fast
Efter tre år är målet mot de två poliser som olovligen tog sig in i en berusad mans bostad i Landskrona och misshandlade honom klart. Högsta domstolen beslutade den sjätte mars att avvisa överklagan. Fängelsedomarna för poliserna står därmed fast.
Utvalda artiklar
-
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Datorparty i Landskrona
I helgen höll Syntax Society sitt årliga sommarparty. Platsen var en källarlokal i Landskrona där ett femtontal personer medverkade.
-
Det första Pågadata har ägt rum
I helgen ägde det första Pågadata rum – uppföljaren till Gubbdata. Platsen var Folkets Hus i Kvidinge. Organisatör av partyt var Johan “z-nexx” Osvaldsson med hjälp från Jesper “Skuggan” Klingvall. Partyt hade över 100 anmälda deltagare.
-
Även hovrätten fäller poliserna för att ha satt dit oskyldig
Hovrätten fastställer straffet för de två poliser som förra året dömdes till vardera ett års fängelse av Lunds tingsrätt för att ha misshandlat och satt dit en oskyldig man. De båda poliserna ska även betala skadestånd till mannen.
-
Retroloppis i Påarp
Idag var det retroloppis hos Andreas Nilsson i Påarp. På baksidan av huset fanns hundratals spel uppradade på långa bord. Trots friska vindar och sval temperatur var loppisen välbesökt.
CyberInfo Sverige är ett it- och medieföretag i nordvästra Skåne som tillhandahåller böcker, utbildningar, nyheter och konsulttjänster inom Linux, säkerhet och programmering.
CyberInfo Sverige är godkänd för F-skatt, är momsregistrerat och innehar
utgivningsbevis för webbplatsen www.cyberinfo.se.