info — detaljna GNU dokumentacija
Ako si ikada otvorio man stranicu neke GNU komande i na dnu naišao na
ovo, već si sreo info:
$ man ls
...
SEE ALSO
Full documentation <https://www.gnu.org/software/coreutils/ls>
or available locally via: info '(coreutils) ls invocation'
To nije ljubazna preporuka nego upozorenje. Man stranica za mnoge GNU alate je skraćena verzija — spisak opcija bez objašnjenja. Prava dokumentacija je u info formatu.
Zašto uopšte postoje dva sistema
Man stranice su starije, iz Unix sveta, i pisane su kao jedan dugačak tekst za jednu komandu. Za ls je to sasvim dovoljno.
Ali kako se dokumentuje bash, koji ima desetine ugradenih komandi, pravila proširivanja i ceo jezik za skripte? Ili gawk, koji je programski jezik za sebe? GNU projekat je zato napravio sopstveni format, u kome je dokumentacija knjiga sa poglavljima kroz koja se krećeš.
Praktična podela:
- man — brza provera opcije. Otvoriš, nadeš, zatvoriš.
- info — kad hoćeš da razumeš alat, ne samo da mu proveriš zastavicu.
Otvaranje
$ info ls $ info bash $ info coreutils
Bez argumenta dobijaš spisak svega što na sistemu postoji:
$ info
Za odredeni deo veće knjige koristi se oblik iz man stranice:
$ info '(coreutils) ls invocation'
Navodnici su tu jer izraz sadrži razmake i zagrade, koje bi shell inače tumačio — isto pravilo kao u lekciji Džokeri i navodnici.
Prva zbunjujuća stvar
$ info ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
Ovo izgleda kao man stranica jer to i jeste man stranica. Kad za komandu
ne postoji info dokument, info ćutke prikaže man stranicu. Nije
kvar, nego zamena.
Da vidiš pravu stvar, traži knjigu kojoj komanda pripada:
$ info coreutils 'ls invocation'
Kretanje: čvorovi umesto stranica
Info dokument nije jedan tekst nego stablo čvorova. Vrh izgleda ovako:
File: bash.info, Node: Top, Next: Introduction, Up: (dir) Bash Features ************* * Menu: * Introduction:: An introduction to the shell. * Definitions:: Some definitions used in the rest of * Basic Shell Features:: The shell "building blocks". * Shell Builtin Commands:: Builtin commands you can use.
Gornji red je navigacija: gde si, šta je sledeće, šta je iznad. Redovi sa zvezdicom su meni — kucni Tab da skočiš na sledeću stavku, pa Enter da udeš u nju.
Sedam tastera koji su dovoljni
Tab— na sledeću stavku menija ili linkEnter— udi u izabranu stavkul— nazad, tamo odakle si došao (kao dugme „nazad" u pretraživaču)u— nivo iznadnip— sledeće i prethodno poglavlje na istom nivous— pretraga kroz ceo dokumentq— izlaz
Ako se izgubiš, t te vraća na sam vrh knjige, a ?
otvara spisak svih prečica.
Napomena za one koji su navikli na
less:
info koristi prečice u stilu emacs-a, pa / ovde nije
pretraga. Slovo s jeste.
Indeks je ono što zaista tražiš
Najbrži put do odgovora nije listanje poglavlja nego pretraga indeksa,
tasterom i:
$ info bash i shift Enter
Skače pravo na deo o komandi shift. Sledeće poklapanje u
indeksu je , (zarez). Ovo je razlika izmedu petnaest sekundi i
pet minuta traženja.
Kada info stvarno vredi
Za većinu komandi ti je dovoljan man. Ali za ove alate je info dokument kompletan priručnik, često od nekoliko stotina strana:
- bash — najbolji besplatni referentni priručnik za shell skripte koji imaš na sistemu
- coreutils — objašnjenja svih osnovnih komandi na jednom mestu
- gawk i sed — sa primerima kojih u man stranici nema
- make, gcc, gdb — kompletna dokumentacija alata za razvoj
- tar — tar ima man stranicu, ali objašnjenja formata i primere ima samo u info dokumentu
Konkretno poredenje: man stranica za bash pomene opciju
set -o pipefail u jednoj rečenici. Info dokument ima ceo odeljak
o statusu izlaza u lancima, sa primerima. O samim lancima piše u lekciji
Piping i redirekcija.
Kad ti se ne kreće kroz čvorove
Sasvim legitimna želja. Ceo dokument se može izbaciti kao običan tekst:
$ info bash | less
Ali to daje samo prvi čvor. Za celu knjigu, sa svim poglavljima:
$ info --subnodes bash | less
Odatle dalje radiš alatima koje već znaš:
$ info --subnodes bash | grep -n "pipefail" 4821:'pipefail' 4822: If set, the return value of a pipeline is the value of the last
Ili snimi u fajl pa otvori u editoru (Tekstualni editori):
$ info --subnodes bash > ~/bash-prirucnik.txt $ wc -l ~/bash-prirucnik.txt 9847
Devet hiljada redova dokumentacije koja je već na tvom disku.
Ako info ne postoji
$ info bash bash: info: command not found
Na minimalnim instalacijama i u kontejnerima info dokumenti se brišu da bi slika bila manja. Instalacija:
$ sudo apt install info # Debian, Ubuntu $ sudo dnf install info # Fedora, RHEL
Sami dokumenti dolaze uz paket texinfo i uz pakete pojedinih
alata. Ako sistem nije tvoj i ne smeš da instaliraš, ostaju ti man stranica i
ugradena pomoć:
$ ls --help | grep -A2 "sort"
Sitnice
pinfo, ako ti tastatura ne odgovara
$ sudo apt install pinfo $ pinfo bash
Isti sadržaj, ali sa prečicama u stilu less i lakšim kretanjem strelicama. Nije svuda instaliran, pa vredi znati i originalne prečice.
Isti tekst u pretraživaču
Svi GNU info dokumenti postoje i kao HTML na
gnu.org/software/ime-paketa/manual. Prednost lokalne verzije je
što odgovara tačno onoj verziji alata koja je na tvom sistemu — a to je često
cela razlika izmedu rešenja koje radi i onog koje ne radi.
Zašto se dokument zove „(dir)"
Kad u gornjem redu piše Up: (dir), to znači da si na vrhu
jedne knjige, a iznad je opšti spisak svih knjiga. Do njega stižeš sa
d.
Kratka referenca
Pokretanje
info— spisak svih dokumenatainfo paket— otvori dokumentinfo coreutils 'ls invocation'— odredeno poglavljeinfo --subnodes paket | less— sve kao običan tekst
Prečice
Tab/Enter— izaberi i udi u stavkul— nazad ·u— nivo iznad ·t— na vrh ·d— spisak svih knjigan/p— sledeće / prethodno poglavljes— pretraga tekstai— pretraga indeksa ·,— sledeće poklapanje?— pomoć ·q— izlaz
Vežba
- Otvori
info bashi preko indeksa nadi objašnjenje ugradene komandetrap. - Iz istog dokumenta se vrati na vrh, pa udi u poglavlje o promenljivim okruženja koristeći meni.
- Nadi u coreutils dokumentu odeljak o komandi ls
i pročitaj šta piše o opciji
-v. Uporedi sa onim što o njoj kažeman ls. - Izbaci ceo bash priručnik u fajl i prebroj koliko puta se u njemu javlja
reč
PIPESTATUS, koristeći grep. - Bez otvaranja pretraživača utvrdi da li tvoja verzija
sed podržava opciju
--in-placesa sufiksom za rezervnu kopiju.
Treći zadatak najbolje pokazuje razliku izmedu ta dva sistema dokumentacije.
Osnovni priručnik i njegove sekcije su na stranici man, a pretraga dokumentacije po ključnoj reči na stranici man-db.
Cela lekcija je deo vodiča Linux osnove.
Comments
Post a Comment