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).

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 $ 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 --clear-screen nebo -c : Namísto posouvání obsahu překreslí celou obrazovku odshora dolů. --quit-at-eof nebo -e : (, 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 (). --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, ), 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 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 : (, 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 n + : (, 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 n + : (, zpět) Posune obrazovku o n řádků směrem nahoru (zpět). Implicitní hodnota n je výška obrazovky. ng : (, přejít) Přejde na řádek číslo n. nENTER nebo nj : (, 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. + : 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í 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á. Toto platí nejen pro složené { }, ale i hranaté [ ] a kulaté () závorky.

Proměnné prostředí 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 Seznam unixových utilit more – původní stránkovací příkaz

Externí odkazy

less – manuálová stránka příkazu less (anglicky)

Kategorie:Standardní unixové příkazy Kategorie:Svobodný software