Ugrás a tartalomhoz

Kézikönyv-lapok

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából
A sed segédprogram kézikönyvoldala, amint az a különböző Linux disztribúciókban látható.

A man page (a manual page, kézikönyv-oldal rövidítése) a szoftver dokumentációjának egy formája, amely a Unix és Unix-szerű operációs rendszereken található. A lefedett témák közé tartoznak a programok, a rendszerkönyvtárak, a rendszerhívások(wd) és néha a helyi rendszer részletei. A helyi állomás rendszergazdái létrehozhatják és telepíthetik az adott állomáshoz kapcsolódó kézikönyvoldalakat. A kézikönyv végfelhasználó a man parancs(wd) és az általa kívánt konkrét adat megadásával hívhat meg egy dokumentációs oldalt. Ezeket a kézikönyvoldalakat jellemzően a valós idejű(wd) munkát végző végfelhasználók, programozók és rendszergazdák kérik, de nyomtatásra is formázhatók.

Alapértelmezés szerint a man általában egy formázó programot használ, mint például az nroff(wd) egy makróval, valamint egy terminál pager(wd) programot, mint például a more vagy less, hogy a kimenetét megjelenítse a felhasználó képernyőjén.

A man oldalakat gyakran a szoftverdokumentáció online formájaként emlegetik,[1] annak ellenére, hogy a man parancs nem igényel internet-hozzáférést. A MANPATH környezeti változó gyakran megadja a különböző dokumentációs oldalak keresésére szolgáló könyvtárak elérési útvonalainak listáját. A man oldalak még azokból az időkből származnak, amikor a nyomtatott dokumentáció volt a norma.

Története

[szerkesztés]
xman, egy korai X11 alkalmazás kézikönyv oldalak megtekintéséhez
Az OpenBSD 8. szekciójának bevezető oldala szöveges konzolon

A Unix (pl. GCOS(wd)[2]) előtt a dokumentáció nyomtatott oldalakból állt, amelyek a helyiségben álltak a felhasználók (személyzet, diákok...) rendelkezésére, acél kötegekbe rendezve, egy monolitikus acél olvasóállványba zárva, egy asztalhoz vagy pulthoz csavarozva, az oldalakat a moduláris információfrissítések, cserék, hibajegyzékek és kiegészítések számára rendezve.

A Unix történetének(wd) első két évében nem létezett dokumentáció.[3] A The Unix Programmer's Manual először 1971. november 3-án jelent meg. Az első tényleges man oldalakat Dennis Ritchie és Ken Thompson írta a menedzserük, Doug McIlroy nyomására 1971-ben. A man oldalakon kívül a Programmer's Manual egy sor rövid tanulmányt is felhalmozott, amelyek egy része oktatóanyag (pl. az általános Unix-használatról, a C programozási nyelvről és az olyan eszközökről, mint a Yacc), más részük pedig az operációs rendszer jellemzőinek részletesebb leírása. A kézikönyv nyomtatott változata eredetileg egyetlen kötegben volt, de a PWB/UNIX(wd)[4] és a Research Unix(wd) 7. kiadása(wd) óta két kötetre osztották, és a nyomtatott man oldalak képezték az 1. kötetet.[5]

A dokumentáció későbbi változatai az első man oldalak tömörségét utánozták. Ritchie a harmadik kiadás(wd) bevezetőjét kiegészítette egy „Hogyan kezdjünk hozzá” résszel, Lorinda Cherry(wd) pedig a hatodik(wd) és hetedik(wd) kiadáshoz mellékelte a „Purple Card” zsebreferenciát.[3] A szoftverek verzióit a kézikönyv kiadásáról nevezték el; a Unix Programmer's Manual hetedik kiadása például a Unix 7. kiadásához vagy 7. verziójához tartozott.[6]

A negyedik kiadásban a man oldalakat a troff(wd) szedőcsomag[3] és a hozzá tartozó -man makrók segítségével formázták (amelyeket a kézikönyv hatodik és hetedik kiadása között teljesen átdolgoztak,[5] de azóta sem változtak drasztikusan). Akkoriban nagy előrelépésnek számított, hogy a kézikönyvoldali rendszeren keresztül online dokumentáció állt rendelkezésre. A mai napig gyakorlatilag minden Unix parancssoros alkalmazáshoz tartozik man oldal, és sok Unix-felhasználó a man oldalak hiányát a program alacsony minőségének vagy hiányossága jeleként érzékeli. Sőt, egyes projektek, mint például a Debian, mindent megtesznek azért, hogy man oldalakat írjanak azt hiányoló programokhoz. A 4.4BSD modern utódai a man oldalakat is terjesztik, mint a rendszer dokumentációjának egyik elsődleges formáját (miután a régi -man makrókat felváltotta az újabb -mdoc).

Volt egy rejtett húsvéti tojás a man parancs man-db(wd) verziójában, amely a parancsot a „gimme gimme gimme gimme” visszatérésre késztette, ha 00:30-kor futott (utalás az ABBA Gimme! Gimme! Gimme! című dalára). 2011-ben vezették be[7], de először korlátozták[8], majd 2017-ben eltávolították[9], miután végül megtalálták.[10]

Formázás

[szerkesztés]
A FreeBSD man(1) kézikönyv oldalának része, PDF formátumba szedve

A man oldalak alapértelmezett formátuma a troff(wd), a man makrocsomaggal[11] (megjelenés-orientált) vagy az mdoc (szemantika orientált). Ez lehetővé teszi, hogy egy man oldalt PostScript, PDF és különböző más formátumba gépeljünk át megtekintésre vagy nyomtatásra.

Néhány Unix-rendszer rendelkezik csomaggal a man2html(wd) parancshoz, amely lehetővé teszi a felhasználók számára, hogy HTML-böngészővel nézhessék a man-oldalakat. A groff-ot(wd) és man-db-t(wd) használó rendszereknek ehelyett a jobb minőségű natív HTML kimenetet (man --html) kell használniuk. A GNU Emacs WoMan (a „WithOut man”-ból) programja lehetővé teszi a man oldalak böngészését a szerkesztőből.[12]

2010-ben az OpenBSD lemondott a troff-ról(wd) a man oldalak formázásánál a mandoc(wd) javára, amely egy speciális fordító/formázó a man oldalakhoz, és natívan támogatja a PostScript, HTML, XHTML és a terminál kimenetet. A kézikönyvoldalakban használt troff-oknak csak egy részhalmazát támogatja, különösen azokat, amelyek mdoc makrókat használnak.

Online szolgáltatások

[szerkesztés]

Számos weboldal kínál online hozzáférést a különböző Unix-szerű rendszerek kézikönyvoldalakhoz.

2013 februárjában a BSD közösségben elindult egy új, nyílt forráskódú mdoc.su szolgáltatás, amely egységesítette és lerövidítette a főbb modern BSD projektek man.cgi szkriptjeinek elérését egy egyedi, nginx-alapú(wd), determinisztikus URL-rövidítési(wd) szolgáltatáson keresztül a *BSD man oldalakhoz.[13][14][15]

A Linux esetében a man7.org szolgáltatás a rendszerre vonatkozó kézikönyvek kiszolgálására jött létre.[16] A ManKier szolgáltatás szélesebb választékot kínál, és integrálja a TLDR oldalakat(wd) is.[17]

A parancsok használata

[szerkesztés]

Egy Unix-parancs kézikönyvének elolvasásához a felhasználó a következőket írja be:

man <command_name>

Az oldalakra hagyományosan a „name(section)” jelöléssel hivatkoznak: például ftp(1). A szakasz különböző módokon utal a témára való hivatkozásra – például rendszerhívásként, vagy shell (parancssori) parancsként vagy csomagként, vagy egy csomag konfigurációs fájljaként, vagy kódolási konstrukcióként/fejlécként.

Ugyanaz az oldal neve a kézikönyv több szakaszában is előfordulhat, például amikor a rendszerhívások(wd), felhasználói parancsok(wd) vagy makrócsomagok neve egybeesik. Ilyen például a man(1) és a man(7), vagy az exit(2) és az exit(3). A nem alapértelmezett kézikönyvrészlet elérésének szintaxisa a különböző man implementációk között változik.

Solaris és illumos rendszereken például a printf(3C) olvasásának szintaxisa a következő:

man -s 3c printf

Linuxon és BSD származékokon ugyanaz a meghívás lenne:

man 3 printf

amely a printf-et keresi a man oldalak 3. szakaszában. A tényleges fájlnév valószínűleg tartalmazza a szakaszt. A példát folytatva, a printf.3.gz egy tömörített man-oldal fájl lenne a printf 3. szakaszában.

Kézikönyv szakaszok

[szerkesztés]

A kézikönyv általában nyolc számozott szakaszra oszlik. A legtöbb mai rendszer (pl. BSD,[18] macOS, Linux,[19] és Solaris 11.4) a Research Unix(wd) által használt számozási sémát örökli,[20][21] míg a System V más sorrendet használ:[22]

Common System V Leírás
1 1 Általános parancsok(wd)
2 2 rendszerhívások(wd)
3 3 Könyvtári funkciók, különös tekintettel a C szabványos könyvtárra(wd)
4 7 Speciális fájlok(wd) (általában a /dev könyvtárban található eszközök) és illesztőprogramok
5 4 Fájlformátumok és konvenciók
6 6 Játékok és képernyővédők(wd)
7 5 Vegyes
8 1M Rendszeradminisztrációs parancsok démonok(wd)

A POSIX API-k a 2. és a 3. szakaszban is jelen vannak, ahol a 2. szakasz tartalmazza a rendszerhívásként megvalósított API-kat, a 3. szakasz pedig a könyvtári rutinokként megvalósított API-kat.

Egyes rendszereken további szakaszok is szerepelhetnek, mint például:

Szakasz Leírás
0 C könyvtár(wd) fejlécfájlok(wd) (Unix v6)
9 Kernel rutinok (FreeBSD, SVR4, Linux)[21][18]
l LAPACK(wd) könyvtári funkciók[23]
n Tcl(wd)/Tk(wd) parancsok
x Az X Window System

Egyes szakaszok egy utótaggal tovább vannak tagolva; például egyes rendszerekben a 3C szakasz a C könyvtárhívásokhoz, a 3M a matematikai könyvtárhoz stb. tartozik. Ennek következménye, hogy a 8. szakasz (rendszergazdai parancsok) néha a fő parancsok szakasz 1M alszakaszába kerül. Néhány alfejezet utótagjának általános jelentése van a szakaszok között:

Alszakasz Leírás
p POSIX specifikációk
x X Window System dokumentáció

(A 3. szakasz inkább kivétel a különböző nyelvekre vonatkozó számos utótaggal.)

A man egyes verziói a legutóbbi megtekintett oldalak formázott változatait gyorsítótárazzák. Ennek egyik formája a cat oldal, amelyet egyszerűen a lapozóba(wd) (pl.: more vagy less) csöveznek (pipeline) megjelenítésre.

Elrendezés

[szerkesztés]

Minden man oldal közös elrendezést követ, amely egyszerű ASCII szöveges megjelenítésre van optimalizálva, lehetőleg mindenféle kiemelés vagy betűtípus-szabályozás nélkül. A jelen lévő szakaszok a következők lehetnek:[24]

NAME
   A parancs vagy függvény neve, amelyet egysoros leírás követ arról, hogy mit csinál.
SYNOPSIS
   Parancsok esetén egy hivatalos leírás arról, hogyan kell futtatni, és milyen parancssori opciókat igényel. Programfüggvények esetén a függvény által felvett paraméterek listája, valamint az, hogy melyik fejlécfájl tartalmazza a függvény deklarációját.
DESCRIPTION
   A parancs vagy funkció működésének szöveges leírása. Programok esetében ez a szakasz gyakran tartalmazza a rendelkezésre álló parancssori opciók magyarázatát.
EXAMPLES
   Néhány példa a gyakori használatra.
SEE ALSO
   A kapcsolódó parancsok vagy funkciók listája.

Más szakaszok is előfordulhatnak, de ezek nincsenek jól szabványosítva a man oldalakon. Gyakoriak például: OPTIONS, EXIT STATUS, RETURN VALUE, ENVIRONMENT, BUGS, FILES, AUTHOR, REPORTING BUGS, HISTORY és COPYRIGHT.

Szerzői eszközök

[szerkesztés]

A kézikönyvoldalakat a régi man makrókkal, az új doc makrókkal vagy a kettő kombinációjával (mandoc) lehet megírni.[25] A man makrókészlet minimális gazdag szövegfunkciókat biztosít, a címsor, a szakaszcímek, a (félkövér, kis vagy dőlt) betűtípusok, a bekezdések és a behúzás hozzáadása/csökkentése irányelvekkel.[24] Az újabb mdoc nyelv szemantikusabb jellegű, és speciális makrókat tartalmaz a legtöbb szabványos részhez, mint például a program neve, szinopszis, függvénynevek és a szerzők neve. Ezek az információk felhasználhatók a kézikönyvek szemantikus keresésének(wd) megvalósítására olyan programokkal, mint a mandoc(wd). Bár tartalmaz direktívákat is a formázás közvetlen vezérlésére, várhatóan a speciális makrók a legtöbb felhasználási esetet lefedik.[26] Mind a mandoc, mind a groff projekt az mdoc-ot tekinti az új dokumentumok preferált formátumának.[27]

Bár a man oldalak a troff számára 10 pontos Roman(wd) betűkkel írt szövegek, ez a megkülönböztetés általában vitatható, mivel a man oldalakat a terminálon (TTY) nézik, nem pedig papíron. Ennek eredményeképpen a „small font” makró ritkán használatos.[28] Másrészt a félkövér és dőlt betűs szöveget a terminál támogatja az ECMA-48-on(wd) keresztül, és a groff grotty-ja ezeket kérés szerint ki is adja, amikor felismeri a támogató terminált. A BSD mandoc azonban csak a félkövér és aláhúzott szöveget támogatja (a dőlt betű helyett) az írógép backspace-then-overstrike szekvenciáján keresztül, amit less-szel kell lefordítani ECMA-48-ra.[29][30]

Néhány eszközt használtak a kevésbé mesterkélt formátumú dokumentumok kézi oldalakká történő átalakítására. Ilyen például a GNU help2man, amely a --help kimenetet és néhány további tartalmat vesz alapul, hogy kézikönyvoldalt hozzon létre.[31] A kézikönyv aligha lenne hasznosabb, mint az említett kimenet, de a GNU programok esetében ez nem probléma, mivel a texinfo a fő dokumentációs rendszer.[32] Számos eszköz, köztük a pandoc(wd), a ronn és az md2man támogatja a Markdownból kézikönyv-oldalakra való konvertálást. Mindezek az eszközök a man formátumot bocsátják ki, mivel a Markdown nem elég kifejező ahhoz, hogy megfeleljen az mdoc szemantikai tartalmának. A DocBooknak(wd) van egy beépített man(7) konvertere – a mandoc szerzője[33] szerint megdöbbentő minőségben, aki írt egy külön mdoc(7) konvertert.

A man oldalak általában angol nyelven íródnak, de előfordulhat, hogy a rendszerben más nyelvekre is rendelkezésre állnak fordítások. A GNU man-db és a mandoc man ismert, hogy alkönyvtárak alatt keres lokalizált kézikönyvoldalakat.[34][18]

Alternatívák

[szerkesztés]

A man kevés alternatívája örvendett nagy népszerűségnek, kivéve talán a GNU projekt(wd)info(wd) rendszerét, amely egy korai és egyszerű hipertext rendszer. Létezik egy harmadik féltől származó, TLDR pages (tldr) néven ismert erőfeszítés is, amely egyszerű példákat kínál a leggyakoribb felhasználási esetekre, hasonlóan egy puskázó táblázathoz.[35]

Ezenkívül néhány Unix GUI alkalmazás (különösen a GNOME és a KDE fejlesztői környezetek használatával készültek) már HTML formátumú dokumentációt biztosít a végfelhasználók számára, és beágyazott HTML megjelenítő programokat (például a yelp(wd)) tartalmaz az alkalmazáson belüli súgó olvasásához. Az Emacsban egy HTML rendszer is a tervek szerint felváltja a texinfo-t(wd).[36]

Példa

[szerkesztés]

Az yacc.1 tartalma:

.TH YACC "1" "November 2007" "GNU Bison 3.8.2" "User Commands"

.SH NAME
yacc \- GNU Project parser generator
.SH SYNOPSIS
.B yacc
[\fIOPTION\fR]... \fIFILE\fR
.SH DESCRIPTION
.I Yacc
(Yet Another Compiler Compiler) is a parser generator.  This
version is a simple wrapper around
.IR bison (1).
It passes option
\fB\-y\fR, \fB\-\-yacc\fR
to activate the upward compatibility mode.  See
.IR bison (1)
for more information.
.SH AUTHOR
Written by Paul Eggert.
.SH "REPORTING BUGS"
Report bugs to <bug-bison@gnu.org>.
.SH COPYRIGHT
Copyright \(co 2021 Free Software Foundation, Inc.
.br
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.SH "SEE ALSO"

Lásd még

[szerkesztés]

Jegyzetek

[szerkesztés]
  1. man(1). FreeBSD General Commands Manual . [2023. január 30-i dátummal az eredetiből archiválva]. (Hozzáférés: 2023. július 15.)
  2. A General Comprehensive Operating System (GCOS) a 36 bites GE-600 sorozatú(wd) és Honeywell 6000 sorozatú(wd) nagyszámítógépek felé orientált operációs rendszercsalád.
  3. a b c A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986, CSTR (1987) 
  4. A Programmer's Workbench (PWB/UNIX) a Unix operációs rendszer egy korai, mára már megszűnt változata volt, amelyet az AT&T Bell Labs Computer Science Research Groupjában hoztak létre. Kijelölt célja az volt, hogy időmegosztásos munkakörnyezetet biztosítson programozók nagy csoportjai számára, akik nagyobb kötegelt feldolgozó számítógépek számára írtak szoftvereket.
  5. a b UNIX Evolution: 1975-1984 Part I - Diversity. [2012. július 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. december 22.) Originally published in Microsystems 5(11), November 1984.
  6. Fiedler, Ryan. „The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace”, BYTE, 1983. október 1., 132. oldal (Hozzáférés: 2015. január 30.) 
  7. GIT commit 002a6339b1fe8f83f4808022a17e1aa379756d99. [2017. december 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. november 22.)
  8. GIT commit 84bde8d8a9a357bd372793d25746ac6b49480525. [2018. szeptember 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. november 22.)
  9. GIT commit b225d9e76fbb0a6a4539c0992fba88c83f0bd37e. [2020. november 9-i dátummal az eredetiből archiválva]. (Hozzáférés: 2018. szeptember 25.)
  10. "Why does man print "gimme gimme gimme" at 00:30?". [2017. november 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. november 22.)
  11. A troff olyan makrókat tartalmaz, amelyek a dokumentum feldolgozásának megkezdése előtt futnak le. Ezek a makrók magukban foglalják az oldalfejlécek és láblécek beállítását, új parancsok definiálását és a kimenet formázásának befolyásolását.
  12. WoMan: Browse Unix Manual Pages "W.O. (without) Man". GNU. [2020. november 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. augusztus 3.)
  13. FreeBSD Quarterly Status Report, January-March 2013. FreeBSD, 2013. május 12. [2014. december 22-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. december 25.)
  14. Murenin, Constantine A. (19 February 2013), "announcing mdoc.su, short manual page URLs"
  15. Murenin, Constantine A.: mdoc.su — Short manual page URLs for FreeBSD, OpenBSD, NetBSD and DragonFly BSD, 2013. február 23. [2014. december 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. december 25.)
  16. Linux man pages online. man7.org . [2020. május 7-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 5.)
  17. About. ManKier . [2020. április 25-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 5.)
  18. a b c man(1) – FreeBSD General Commands Manual
  19. man(1) – Linux General Commands Manual
  20. Manual Pages for Research Unix Eighth Edition. man.cat-v.org . [2020. június 30-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 6.)
  21. a b Unix Programmer's Manual - Introduction. www.bell-labs.com , 1971. november 3. [2020. június 1-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 6.)
  22. System V release 4 manuals. bitsavers.trailing-edge.com . [2020. augusztus 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 6.)
  23. lapack (l) - Linux Man Pages. www.systutorials.com . [2023. március 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. május 29.)
  24. a b man(7) – Linux Miscellanea Manual
  25. groff_tmac(5) – Linux File Formats Manual
  26. mdoc(7) – FreeBSD Miscellaneous Information Manual
  27. Groff Mission Statement - 2014. www.gnu.org . [2020. december 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. január 2.) „Concurrent with work on man(7), mdoc(7) will be actively supported and its use promoted.”
  28. man. The GNU Troff Manual . [2019. december 24-i dátummal az eredetiből archiválva]. (Hozzáférés: 2019. december 31.)
  29. Italics and colour in manual pages on a nosh user-space virtual terminal. jdebp.eu . [2021. január 28-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. január 21.)
  30. mandoc(1) – FreeBSD General Commands Manual. "Font styles are applied by using back-spaced encoding..."
  31. help2man Reference Manual. [2023. március 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2023. március 5.)
  32. Man Pages (GNU Coding Standards). www.gnu.org . [2023. március 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2023. március 5.)
  33. Ingo Schwarze: New mandoc -mdoc -T markdown converter. undeadly.org . [2023. március 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2023. március 5.) – for specific complaints by the author, see Ingo Schwarze (28 February 2014), "Re: Groff man pages (tangential to Future Redux)"
  34. command line - Linux man pages in different languages. Ask Ubuntu . [2023. március 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 5.)
  35. TLDR pages. tldr.sh . [2020. április 27-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 5.)
  36. Raymond, Eric S., "Re: [Groff man pages (tangential to Future Redux)"]

További információk

[szerkesztés]

Fordítás

[szerkesztés]
  • Ez a szócikk részben vagy egészben a man page című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.