less (Unix)
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).
Aktuální verze | 590 (12. července 2021) |
---|---|
Operační systém | GNU/Linux BSD macOS Microsoft Windows UN*X MS-DOS OS/2 OS-9 z/OS |
Vyvíjeno v | C |
Typ softwaru | terminal pager |
Licence | GNU General Public License, version 3.0 or later 2-clause BSD License |
Web | www |
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
$ 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
: (anglicky exit, tj. konec) Příkazless
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říkazuless
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
neboH
: (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říkazemless
:-)q
: Ukončí příkazless
.nMEZERA
: Stiskem mezerníku zobrazíte další obrazovku. S argumentem zobrazíte následujících n řádků.nd
nebon
Ctrl + 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říkazuless
novou implicitní hodnotou.nb
nebon
Ctrl + 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
nebonj
: (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ý-řá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á. To to 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
- Obrázky, zvuky či videa k tématu less na Wikimedia Commons
- less – manuálová stránka příkazu
less
(anglicky) – neplatný odkaz !