less (Unix)

nástroj pro prohlížení textových souborů v příkazové řádce

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 pager (stránkovací utilitu).

less
Aktuální verze653 (20. března 2024)
Operační systémGNU/Linux
BSD
macOS
Microsoft Windows
UN*X
MS-DOS
OS/2
OS-9
z/OS
Vyvíjeno vC
Typ softwaruinlink, GNU balíček a svobodný software
LicenceGNU General Public License, version 3.0 or later
2-clause BSD License
Webwww.greenwoodsoftware.com/less/
Některá data mohou pocházet z datové položky.

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

$ 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

  • --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, neboli 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 dolů o velikost obrazovky (okna terminálu). Tento přepínač nastaví velikost posunu stránky na n řádků.

Příkazy editovat

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 nCtrl + D : (anglicky down, dolů) Posune obrazovku o n řádků směrem dolů (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 nCtrl + 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.
  • Ctrl + 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ý-řádekshellu, 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

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

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, nastavte 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

Externí odkazy editovat