more (příkaz)

more
Unix more output.png
Platformamultiplatformní software
Vyvíjeno vC a jazyk symbolických adres
Typ softwaruterminal pager a standardní UNIXová utilita či příkaz
LicenceBSD licence
Některá data mohou pocházet z datové položky.

more je v informatice název utility, která umožňuje zobrazit delší text na terminál po jednotlivých stránkách. Program more je součástí mnoha operačních systémů (unixové systémy, DOS, OS/2Microsoft Windows). V původní implementaci bylo možné posouvat zobrazení pouze dopředu. V té době byl naprogramován nástroj less, který poskytoval stejnou funkčnost, ale navíc umožňoval též pohyb v textu zpět. Vylepšení později převzal i původní program more.

Historie

Původní verzi programu more napsal Daniel Halbert, postgraduální student na Kalifornské univerzitě v Berkeley v roce 1978. Příkaz byl poprvé začleněn do BSD verze 3.0 a od té doby je standardní součástí všech unixových systémů a pronikl jako užitečná utilita i do jiných operačních systémů.

Popis funkce

Program more umožňuje zobrazit delší text na terminál po jednotlivých stránkách, což bylo v dobách jednoduchých textově orientovaných terminálů jediným způsobem, jak zabránit odrolování vypisovaného textu nahoru mimo obrazovku. Proto je program označován jako pager (stránkovač). Program může být spuštěn s parametrem, který určuje jméno textového souboru, který bude po stránkách zobrazován. Nebo může být spuštěn bez parametru se jménem souboru, kdy se začne chovat jako filtr, který čte svůj vstup ze standardního vstupu (stdin) a obratem ho vypisuje na standardní výstup (stdout), což je využíváno zejména při řazení příkazů do kolon.

Ovládání

Program more zobrazí na terminál vždy jen tolik textu, aby zaplnil obrazovku (tj. aby žádný text nebyl odrolován a nezmizel uživateli z očí). V levém dolním rohu je zobrazen text --More-- (v českém překladu --Pokračování--) a procento vyjadřující množství již zobrazeného textu. Pak čeká na vstup od uživatele, který určuje pohyb v zobrazeném textu (další jeden řádek, další stránka atp., viz níže uvedené příkazy). Po dosažení konce souboru (100 %) more skončí. Příkazem je míněn stisk určité klávesy, ve většině případů mu může předcházet celé číslo (označeno jako k). Pokud není číslo zadáno, použije se implicitní hodnota, která je uvedena v závorkách:

  • <mezerník> : zobrazí dalších k řádků textu (aktuální velikost obrazovky)
  • <return> : zobrazí dalších k řádků textu (1)
  • d čiCtrl +D : posun o k řádků (aktuální velikost posunu, po spuštění 11)
  • q či Q či <interrupt> : ukončení programu
  • s : posun vpřed o k řádků (1)
  • f : posun vpřed o k stran (1)
  • b čiCtrl +B : posun vzad o k stran (1)
  • '  : přeskočí na místo, kde bylo zahájeno předchozí hledání
  • = : zobrazí číslo aktuálního řádku
  • /<regulární výraz> : hledá k. výskyt regulárního výrazu (1)
  • n : hledá k. výrazu posledního regulárního výrazu (1)
  • !<příkaz> či :!<příkaz> : spustí <příkaz> v podshellu
  • v : spustí /usr/bin/vi na aktuálním řádku
  • Ctrl +L : překreslí obrazovku
  • :n : přeskočí na k. následující soubor (1)
  • :p : přeskočí na k. předcházející soubor (1)
  • :f : vypíše jméno aktuálního souboru a číslo aktuálního řádku
  • . : zopakuje předcházející příkaz

Přepínače

Chování příkazu lze ovlivnit na příkazovém řádku pomocí přepínačů:

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file]
  • -num : Nastavení velikosti obrazovky (počet řádků).
  • -d : Do levého dolního rohu vedle počtu procent navíc zobrazí zprávu „Press space to continue, ‚q‘ to quit.“, v české verzi „stiskněte mazerník pro pokračování, ‚q‘ pro ukončení“ a při stisku špatné klávesy zobrazí „Press ‚h‘ for instructions“, v české verzi „stiskněte ‚h‘ pro nápovědu“.
  • -l : Se znakem ^L (Form feed – posun o stránku) se nebude nezacházet jako se speciálním znakem.
  • -f : Pokud soubor obsahuje řádky, které jsou delší než obrazovka, zobrazí se na více řádků a to se promítne do počtu řádků souboru. S parametrem -f se takový dlouhý řádek započítá jako jeden.
  • -p : Před zobrazením obsahu souboru a při posunu o obrazovku se nejprve celá obrazovka vyčistí.
  • -c : Obsah souboru se vypisuje na obrazovku vždy od shora a ostatní řádky se vyčistí podle toho, co je nich zobrazeno.
  • -s : Více po sobě jdoucích prázdných řádků se zobrazí jako jeden.
  • -u : Zakázání podtrhávání.
  • +/ : Před zobrazením souboru se v souboru vyhledá zadaný řetězec a soubor se zobrazí od prvního vyskytu zadaného řetězce.
  • +num : Nastavení řádku, od kterého se bude soubor zobrazovat.
Příklad
more -d -f -p -15 +/ahoj +20 soubor.txt

Přepínače v proměnné

Přepínače se obvykle zadávají přes příkazový řádek, ale lze je zadat i přes proměnnou prostředí $MORE. Pokud proměnná $MORE obsahuje nějakou hodnotu, pokládá se za parametry z příkazového řádku, přičemž stejný parametr zadaný na příkazovém řádku hodnotu předefinuje.

Příklad

Proměnná $MORE obsahuje:

-d -10

na příkazovém řádku uživatel zadá:

more -20 soubor

vykoná se:

more -d -20 soubor

Parametr -d je zůstal nezměněn, ale parametr -10 z proměnné $MORE byl nahrazen parametrem -20 z příkazového řádku.

Externí odkazy

Média použitá na této stránce

Unix more output.png
A screenshot of a terminal displaying output of the more command. It is currently outputting the GPL in plain-text format. This screenshot was taken by Andewulfe (Wikipedia user), under Ubuntu 6.06, and cropped with GIMP.