more (příkaz)
Platforma | multiplatformní software |
---|---|
Vyvíjeno v | C a jazyk symbolických adres |
Typ softwaru | terminal pager a standardní UNIXová utilita či příkaz |
Licence | BSD 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/2 i Microsoft 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
čiQ
či<interrupt>
: ukončení programus
: 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 podshelluv
: 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
- http://www.linuxmanpages.com/man1/more.1.php – manuálová stránka příkazu more – neplatný odkaz !
- https://web.archive.org/web/20090413025409/http://halwitz.org/halbert/more.html – historie příkazu more
Média použitá na této stránce
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.