Vyhledávání na webu

Řada RHCSA: Úpravy textových souborů pomocí Nano a Vim/Analýza textu pomocí grep a regexps - Část 4


Každý správce systému se musí v rámci svých každodenních povinností vypořádat s textovými soubory. To zahrnuje úpravy existujících souborů (nejspíše konfiguračních souborů) nebo vytváření nových. Bylo řečeno, že pokud chcete ve světě Linuxu zahájit svatou válku, můžete se zeptat sysadminů, jaký je jejich oblíbený textový editor a proč. V tomto článku to neuděláme, ale uvedeme několik tipů, které vám pomohou používat dva z nejpoužívanějších textových editorů v RHEL 7: nano (kvůli jeho jednoduchosti a snadnosti použití, speciálně pro nové uživatele) a vi/m (kvůli několika funkcím, které jej převádějí na více než jednoduchý editor). Jsem si jistý, že můžete najít mnohem více důvodů, proč používat jeden nebo druhý, nebo možná nějaký jiný editor, jako je emacs nebo pico. Je to zcela na vás.

Úpravy souborů pomocí Nano Editoru

Chcete-li spustit nano, stačí do příkazového řádku zadat nano, případně název souboru (v tomto případě, pokud soubor existuje , otevře se v režimu úprav). Pokud soubor neexistuje nebo pokud vynecháme název souboru, nano se také otevře v režimu edice, ale zobrazí se prázdná obrazovka, abychom mohli začít psát:

Jak můžete vidět na předchozím obrázku, nano zobrazuje ve spodní části obrazovky několik funkcí, které jsou dostupné prostřednictvím uvedených zkratek (^, neboli stříška, označuje Ctrl). Abychom jmenovali alespoň některé z nich:

  1. Ctrl + G: vyvolá nabídku nápovědy s úplným seznamem funkcí a popisy: Ctrl + X: ukončí aktuální soubor. Pokud změny nebyly uloženy, jsou zahozeny.
  2. Ctrl + R: umožňuje vybrat soubor, jehož obsah chcete vložit do aktuálního souboru, zadáním úplné cesty.

  1. Ctrl + O: uloží změny provedené v souboru. Umožní vám uložit soubor se stejným nebo jiným názvem. Poté stiskněte Enter pro potvrzení.

  1. Ctrl + X: Ukončí aktuální soubor. Pokud změny nebyly uloženy, jsou zahozeny.
  2. Ctrl + R: umožňuje vybrat soubor, jehož obsah chcete vložit do aktuálního souboru, zadáním úplné cesty.

vloží obsah /etc/passwd do aktuálního souboru.

  1. Ctrl + K: ořízne aktuální řádek.
  2. Ctrl + U: vložit.
  3. Ctrl + C: zruší aktuální operaci a přesune vás na předchozí obrazovku.

Pro snadnou navigaci v otevřeném souboru nabízí nano následující funkce:

  1. Ctrl + F a Ctrl + B posouvají kurzor dopředu nebo dozadu, zatímco Ctrl + P a Ctrl + N jej posouvají o řádek nahoru nebo dolů, stejně jako klávesy se šipkami.
  2. Ctrl + mezerník a Alt + mezerník posouvají kurzor dopředu a dozadu po jednom slově.

Konečně,

  1. Ctrl + _ (podtržítko) a následným zadáním X,Y se dostanete přesně na řádek X, sloupec Y, pokud chcete umístit kurzor na konkrétní místo v dokumentu.

Výše uvedený příklad vás zavede na řádek 15, sloupec 14 v aktuálním dokumentu.

Pokud si pamatujete na své začátky Linuxu, zvláště pokud jste přišli z Windows, pravděpodobně budete souhlasit, že začít s nano je nejlepší způsob, jak jít pro nového uživatele.

Úpravy souborů pomocí editoru Vim

Vim je vylepšená verze vi, známého textového editoru v Linuxu, který je dostupný na všech systémech *nix kompatibilních s POSIX, jako je RHEL 7. Pokud máte možnost a můžete nainstalovat vim, pokračujte; pokud ne, většina (pokud ne všechny) tipy uvedené v tomto článku by také měly fungovat.

Jednou z charakteristických vlastností vim jsou různé režimy, ve kterých funguje:

  1. Příkazový režim vám umožní procházet soubor a zadávat příkazy, což jsou stručné kombinace jednoho nebo více písmen, u kterých se rozlišují velká a malá písmena. Pokud potřebujete jeden z nich několikrát opakovat, můžete mu předřadit číslo (z tohoto pravidla existuje jen několik výjimek). Například yy (nebo Y, zkratka pro yank) zkopíruje celý aktuální řádek, zatímco 4yy (nebo 4Y) zkopíruje celý aktuální řádek spolu s dalšími třemi řádky (celkem 4 řádky).
  2. V ex režimu můžete manipulovat se soubory (včetně ukládání aktuálního souboru a spouštění externích programů nebo příkazů). Abychom vstoupili do režimu ex, musíme zadat dvojtečku (:) počínaje příkazovým režimem (nebo jinými slovy Esc + :), za kterou přímo následuje název příkazu v režimu ex, který chcete použít.
  3. V režimu vkládání, ke kterému se dostanete zadáním písmene i, jednoduše zadáme text. Většina stisknutí kláves vede k zobrazení textu na obrazovce.
  4. Vždy můžeme vstoupit do příkazového režimu (bez ohledu na režim, na kterém pracujeme) stisknutím klávesy Esc.

Podívejme se, jak můžeme provádět stejné operace, které jsme nastínili pro nano v předchozí části, ale nyní s vim. Nezapomeňte stisknout klávesu Enter pro potvrzení příkazu vim!

Chcete-li získat přístup k úplné příručce vim z příkazového řádku, zadejte v příkazovém režimu :help a poté stiskněte Enter:

Horní část představuje rejstříkový seznam obsahu s definovanými sekcemi věnovanými konkrétním tématům o vim. Chcete-li přejít do sekce, umístěte na ni kurzor a stiskněte Ctrl + ] (zavírá hranatá závorka). Všimněte si, že spodní část zobrazuje aktuální soubor.

1. Chcete-li uložit změny provedené v souboru, spusťte některý z následujících příkazů z příkazového režimu a bude to stačit:

:wq!
:x!
ZZ (yes, double Z without the colon at the beginning)

2. Chcete-li ukončit zahazování změn, použijte :q!. Tento příkaz vám také umožní opustit nabídku nápovědy popsanou výše a vrátit se do aktuálního souboru v příkazovém režimu.

3. Vyjmout N počet řádků: v příkazovém režimu zadejte Ndd.

4. Zkopírujte M počet řádků: v příkazovém režimu zadejte Myy.

5. Vložení řádků, které byly dříve vyříznuty nebo zkopírovány: v příkazovém režimu stiskněte klávesu P.

6. Vložení obsahu jiného souboru do aktuálního souboru:

:r filename

Chcete-li například vložit obsah /etc/fstab, postupujte takto:

7. Postup vložení výstupu příkazu do aktuálního dokumentu:

:r! command

Chcete-li například vložit datum a čas do řádku pod aktuální pozici kurzoru:

V jiném článku, pro který jsem psal (2. část série LFCS), jsem podrobněji vysvětlil klávesové zkratky a funkce dostupné ve vim. Další příklady použití tohoto výkonného textového editoru si můžete přečíst v tomto kurzu.