Kézikönyv-lapok
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 é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 é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ű 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
egy makróval, valamint egy terminál pager 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]A Unix (pl. GCOS[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 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[4] és a Research Unix 7. kiadása ó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 bevezetőjét kiegészítette egy „Hogyan kezdjünk hozzá” résszel, Lorinda Cherry pedig a hatodik és hetedik 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 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 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 man oldalak alapértelmezett formátuma a troff , 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 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 és man-db-t 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 a man oldalak formázásánál a mandoc 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ú , determinisztikus URL-rövidítési 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 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 , felhasználói parancsok 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 á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 |
2 | 2 | rendszerhívások |
3 | 3 | Könyvtári funkciók, különös tekintettel a C szabványos könyvtárra |
4 | 7 | Speciális fájlok (á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 |
7 | 5 | Vegyes |
8 | 1M | Rendszeradminisztrációs parancsok démonok |
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 fejlécfájlok (Unix v6) |
9 | Kernel rutinok (FreeBSD, SVR4, Linux)[21][18] |
l | LAPACK könyvtári funkciók[23] |
n | Tcl /Tk 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 (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 megvalósítására olyan programokkal, mint a mandoc . 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 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 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 , 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 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 „info
” 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
) 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 .[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]- ↑ 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.)
- ↑ A General Comprehensive Operating System (GCOS) a 36 bites GE-600 sorozatú és Honeywell 6000 sorozatú nagyszámítógépek felé orientált operációs rendszercsalád.
- ↑ a b c A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986, CSTR (1987)
- ↑ 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.
- ↑ 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.
- ↑ 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.)
- ↑ GIT commit 002a6339b1fe8f83f4808022a17e1aa379756d99. [2017. december 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. november 22.)
- ↑ GIT commit 84bde8d8a9a357bd372793d25746ac6b49480525. [2018. szeptember 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. november 22.)
- ↑ GIT commit b225d9e76fbb0a6a4539c0992fba88c83f0bd37e. [2020. november 9-i dátummal az eredetiből archiválva]. (Hozzáférés: 2018. szeptember 25.)
- ↑ "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.)
- ↑ 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.
- ↑ 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.)
- ↑ 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.)
- ↑ Murenin, Constantine A. (19 February 2013), "announcing mdoc.su, short manual page URLs"
- ↑ 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.)
- ↑ 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.)
- ↑ About. ManKier . [2020. április 25-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 5.)
- ↑ a b c man(1) – FreeBSD General Commands Manual
- ↑ man(1) – Linux General Commands Manual
- ↑ 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.)
- ↑ 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.)
- ↑ 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.)
- ↑ 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.)
- ↑ a b man(7) – Linux Miscellanea Manual
- ↑ groff_tmac(5) – Linux File Formats Manual
- ↑ mdoc(7) – FreeBSD Miscellaneous Information Manual
- ↑ 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.”
- ↑ man. The GNU Troff Manual . [2019. december 24-i dátummal az eredetiből archiválva]. (Hozzáférés: 2019. december 31.)
- ↑ 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.)
- ↑ mandoc(1) – FreeBSD General Commands Manual. "Font styles are applied by using back-spaced encoding..."
- ↑ help2man Reference Manual. [2023. március 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2023. március 5.)
- ↑ 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.)
- ↑ 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)"
- ↑ 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.)
- ↑ TLDR pages. tldr.sh . [2020. április 27-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. május 5.)
- ↑ Raymond, Eric S., "Re: [Groff man pages (tangential to Future Redux)"]
További információk
[szerkesztés]- History of UNIX Manpages a UNIX kézikönyvoldalak elsődleges forrása
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.