V Linuxu, pokud budete někdy potřebovat pomoc ohledně příkazu, vše, co musíte udělat, je otevřít jeho manuálovou stránku. Co když ale nastane situace, kdy je potřeba rychle vyhledat názvy a popisy všech dostupných manuálových stránek? Linux to má za sebou, protože existuje příkaz nazvaný apropos to dělá přesně tohle pro vás.
V tomto tutoriálu probereme základy apropos pomocí několika snadno pochopitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny příklady zde byly testovány na počítači Ubuntu 16.04 LTS.
Příkaz apropos vyhledává v názvech a popisech manuálových stránek klíčové slovo zadané uživatelem. Následuje jeho syntaxe:
apropos [OPTIONS] keyword ...
A zde je to, co o něm říká manuálová stránka nástroje:
Each manual page has a short description available within it. apropos
searches the descriptions for instances of keyword.
keyword is usually a regular expression, as if (-r) was used, or may
contain wildcards (-w), or match the exact keyword (-e). Using these
options, it may be necessary to quote the keyword or escape (\) the
special characters to stop the shell from interpreting them.
The standard matching rules allow matches to be made against the page
name and word boundaries in the description.
The database searched by apropos is updated by the mandb program.
Depending on your installation, this may be run by a periodic cron job,
or may need to be run manually after new manual pages have been
installed.
Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout dobrou představu o tom, jak příkaz apropos funguje.
O1. Jak používat apropos?
Základní použití je jednoduché. Stačí předat klíčové slovo, které chcete hledat, jako vstup do příkazu apropos.
Například:
apropos dmesg
přineslo následující výsledek:
dmesg (1) - print or control the kernel ring buffer
Samozřejmě můžete předat i více klíčových slov.
Například:
apropos dmesg whereis
V tomto případě následuje výstup:
dmesg (1) - print or control the kernel ring buffer
whereis (1) - locate the binary, source, and manual page files for a...
O2. Jak přimět apropos vyhledávat přesná klíčová slova?
Ve výchozím nastavení se vstup, který předáte příkazu apropos, nevyhledává přesně. Pokud například zadáte „who“ jako vstup, uvidíte také nástroj produkující výsledky obsahující slova jako „whoami“.
Takže to není přesné hledání. Můžete však přinutit apropos hledat přesná klíčová slova pomocí voleb příkazového řádku -e nebo --exact.
Nyní tedy vidíte, že ve výstupu byly zobrazeny pouze ty položky, které přesně odpovídají 'kdo'.
O3. Jak přimět apropos zobrazovat položky odpovídající všem klíčovým slovům?
Pokud předáte více klíčových slov jako vstup do příkazu apropos, nástroj vypíše záznamy, které odpovídají/obsahují alespoň jedno z klíčových slov. Pokud však chcete, aby apropos vytvářel pouze ty položky, které odpovídají/obsahují všechna klíčová slova, použijte volbu -a příkazového řádku.
Zde je například výstup příkazu apropos bez volby -a:
A zde je výstup s povolenou volbou -a:
Q4. Jak donutit apropos, aby se výstup neořezával?
Jak jste viděli ve výstupu v předchozích otázkách a odpovědích, nástroj ořízne položky, pokud jsou příliš dlouhé. Podívejte se například na zvýrazněný řádek v následujícím výstupu:
Pokud však chcete, můžete přinutit apropos, aby na výstupu vytvořilo celé řádky, což můžete udělat pomocí volby příkazového řádku -l.
O5. Jak interpretovat příslušný stav ukončení?
Příkaz apropos vytváří čtyři různé stavy ukončení:0, 1, 2 a 16. Co každý z nich představuje:
0 Successful program execution.
1 Usage, syntax or configuration file error.
2 Operational error.
16 Nothing was found that matched the criteria specified
Závěr
V závislosti na vašem pracovním profilu možná nebudete denně vyžadovat příkaz apropos, ale jak jste již pochopili, v určitých situacích může být záchranou. Zde jsme diskutovali o některých možnostech použití příkazového řádku. Chcete-li se o tomto nástroji dozvědět více, přejděte na jeho manuálovou stránku.