less (Unix)

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

less (anglicky less, tj. méně) je v informatice název unixového příkazu, který vypisuje obsah textových souborů, vždy jednu celou obrazovku najednou. Jedná se tedy o textový filtr.

Původ tohoto příkazu vyjadřuje fráze „less is more“ (méně je více). Příkaz less se podobá příkazu more, což je původní stránkovací nástroj z Berkeley UNIXu, ale je v mnoha ohledech vylepšen. Po výpisu stránky textu se less zastaví, zobrazí výzvu a čeká až mu předáte jeden z mnoha dostupných příkazů. V rámci souboru lze provádět množství různých úloh, například stránkovat směrem dopředu i dozadu, spouštět editor, nebo vyhledávat text podle vzoru.

Syntaxe[editovat | editovat zdroj]

less [přepínače] [seznam-souborů]

Argument seznam-souborů je seznam názvů souborů, které chcete zobrazit. V případě, že není zadán žádný soubor, čte less data ze standardního vstupu.

Přepínače[editovat | editovat zdroj]

  • --clear-screen nebo -c
Namísto posouvání obsahu překreslí celou obrazovku odshora dolů.
  • --quit-at-eof nebo -e
(anglicky exit, tj. konec) Příkaz less je normálně nutné ukončit stiskem q. Tento přepínač ukončí less automaticky poté, co je podruhé načten konec souboru, nebo-li EOF (anglicky End Of File).
  • --QUIT-AT-EOF nebo -E
Podobně jako -e ukončí less, ale už při prvním načtení konce souboru.
  • --quit-if-one-screen nebo -F
Zobrazí soubor a ukončí less, pokud se celý soubor vejde na jednu obrazovku.
  • --LINE-NUMBERS nebo -N
Ve výpisu zobrazí čísla řádků. Zde je důležité chápat číslo řádku jako pořadí celého řádku, tedy posloupnost znaků od začátku do konce řádku (zkratka EOL, anglicky End Of Line), ne jako pořadí řádku v automaticky zalomeném textu v okně terminálu.
  • --long-prompt nebo -m
U každé další výzvy příkazu less se bude zobrazovat i procentuální podíl již zhlédnuté části souboru, s výjimkou čtení ze standardního vstupu, kde se nedá dopředu určit kolik dat bude ještě zadáno.
  • --squeeze-blank-lines nebo -s
Zobrazí více sousedních prázdných řádků jako jeden řádek. Hodí se například pro text, který je naformátován pro tisk. Prázdný prostor na začátku a konci textu bude tedy zredukován vždy na jeden řádek.
  • --tabs=n nebo -xn
Nastaví zarážky tabulátoru na n znaků od sebe. Implicitní rozestup je osm znaků.
  • --window=n nebo -zn
Implicitně je velikost posunu stránky nahoru a dolu o velikost obrazovky (okna terminálu). Tento přepínač nastaví velikost posunu stránky na n řádků.

Příkazy[editovat | editovat zdroj]

Jak již bylo řečeno, po zobrazení textu se na posledním řádku terminálu zobrazí výzva a less čeká na váš další příkaz. Tyto příkazy jsou vlastně stisknutí určitých kláves nebo jejich kombinace, za kterými už není potřeba zadávat ENTER. K ovlivnění některých příkazů je možné použít číselný argument n, který je ale nepovinný a je implicitně nastaven na hodnotu 1 (pokud není řečeno jinak).

  • h nebo H
(anglicky help, nápověda) Zobrazí přehled všech dostupných příkazů, který je díky své obsáhlosti rovněž stránkován příkazem less :-)
  • q
Ukončí příkaz less.
  • nMEZERA
Stiskem mezerníku zobrazíte další obrazovku. S argumentem zobrazíte následujících n řádků.
  • nd nebo nCONTROL-D
(anglicky down, dolu) Posune obrazovku o n řádků směrem dolu (vpřed). Hodnota n je zde polovina výšky obrazovky. Změníte-li n, stane se až do ukončení příkazu less novou implicitní hodnotou.
  • nb nebo nCONTROL-B
(anglicky backward, zpět) Posune obrazovku o n řádků směrem nahoru (zpět). Implicitní hodnota n je výška obrazovky.
  • ng
(anglicky go, přejít) Přejde na řádek číslo n.
  • nENTER nebo nj
(anglicky jump, skok) Přejde směrem dopředu o n řádků.
  • v
Otevře aktuální soubor v editoru s kurzorem umístěným na aktuálním řádku. Pokud není v proměnné prostředí nastaveno jinak, less zavolá editor vim.
  • CONTROL-L
Překreslí celou obrazovku. Vhodné v případě, že dojde k rozsypání textu na obrazovce.
  • [n]:n
Skočí na další soubor v seznamu-souborů. Je-li n zadáno, půjde o skok na n-tý další soubor v seznamu-souborů.
  • ![příkazový-řádek]
Provede příkazový-řádek v shellu, implicitně sh (obvykle linkovaném na bash). Vynecháte-li příkazový-řádek, spustí less interaktivní shell. Znak procenta (%) v příkazovém řádku, bude nahrazen názvem aktuálního souboru.

Vyhledávání[editovat | editovat zdroj]

V souborech otevřených pomocí stránkovacího nástroje less lze vyhledávat pomocí regulárních výrazů.

  • /regulární-výraz
Hledá text odpovídající regulárnímu-výrazu směrem dopředu (dolů). Pokud regulární-výraz začíná znakem at (@), bez ohledu na to, kde v souboru se nacházíme, bude příkaz vyhledávat od začátku směrem ke konci souboru. Prohledává se nejen aktuální soubor, ale celý zadaný seznam-souborů.
  • ?regulární-výraz
Podobný předchozímu příkazu, ale prohledává směrem zpět (nahoru). Se znakem at (@) bude hledat od posledního řádku v seznamu-souborů.

Pokud se v prvním zobrazeném řádku textu objeví levá závorka {, stiskněte ji a less přesune kurzor dopředu na odpovídající pravou závorku }. Obdobně pro stisk pravé závorky bude směrem zpět nalezena odpovídající levá. To to platí nejen pro složené { }, ale i hranaté [ ] a kulaté ( ) závorky.

Proměnné prostředí[editovat | editovat zdroj]

Přepínače zadávané v příkazovém řádku lze nastavit i jako implicitní hodnotu v proměnné prostředí LESS. Například pokud chceme pro každé použití less mít velikost tabulátorů 4 a zobrazovat více prázdných řádků jako jeden, nastavíme proměnnou takto:

$ export LESS="-x4 -s"

Toto lze také nastavit v souboru ~/.bash_profile (bash) nebo ~/.login (tcsh).

Chcete-li less používat jako standardní stránkovací nástroj v příkazu man a dalších, natavte proměnnou prostředí PAGER na less:

$ export PAGER=less

Předchozí příkaz přidal do souboru ~/bash_profile odpovídající řádek.

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]