LFCS #2: Kako instalirati i koristiti Vi/Vim u Linuxu


Prije nekoliko mjeseci, Linux Foundation pokrenuo je LFCS (Linux Foundation Certified Sysadmin) certifikaciju kako bi pomogao pojedincima iz cijelog svijeta da potvrde da su sposobni obavljati osnovne do srednje administrativne zadatke na Linux sustavima.

Zadaci administracije Linuxa uključuju rješavanje problema i održavanje iz prve ruke, plus inteligentno donošenje odluka kako biste znali kada je vrijeme da se problemi iznesu višim timovima za podršku.

Serijal će se zvati Priprema za LFCS (Linux Foundation Certified Sysadmin) dijelovi od 1 do 33 i pokrivat će sljedeće teme:

Part 1

Kako koristiti naredbu 'Sed' za manipuliranje datotekama u Linuxu

Part 2

Kako instalirati i koristiti Vi/Vim u Linuxu

Part 3

Kako komprimirati datoteke i direktorije i pronaći datoteke u Linuxu

Part 4

Particioniranje uređaja za pohranu, formatiranje datotečnih sustava i konfiguriranje swap particije

Part 5

Montirajte/demontirajte lokalne i mrežne (Samba & NFS) datotečne sustave u Linuxu

Part 6

Sastavljanje particija kao RAID uređaja – Stvaranje sigurnosnih kopija sustava i upravljanje njima

Part 7

Upravljanje procesima i uslugama pokretanja sustava (SysVinit, Systemd i Upstart

Part 8

Kako upravljati korisnicima i grupama, dopuštenjima za datoteke i Sudo pristupom

Part 9

Upravljanje Linux paketima uz Yum, RPM, Apt, Dpkg, Aptitude i Zypper

Part 10

Učenje osnovnog skriptiranja ljuske i rješavanja problema sa datotečnim sustavom

Part 11

Kako upravljati i stvoriti LVM pomoću naredbi vgcreate, lvcreate i lvextend

Part 12

Kako istražiti Linux s instaliranom dokumentacijom za pomoć i alatima

Part 13

Kako konfigurirati i riješiti probleme Grand Unified Bootloadera (GRUB)

Part 14

Pratite korištenje resursa Linux procesa i postavite ograničenja procesa za svakog korisnika

Part 15

Kako postaviti ili izmijeniti parametre vremena izvođenja jezgre u Linux sustavima

Part 16

Implementacija obvezne kontrole pristupa sa SELinuxom ili AppArmorom u Linuxu

Part 17

Kako postaviti popise kontrole pristupa (ACL) i diskovne kvote za korisnike i grupe

Part 18

Instaliranje mrežnih usluga i konfiguriranje automatskog pokretanja pri dizanju

Part 19

Vrhunski vodič za postavljanje FTP poslužitelja za dopuštanje anonimnih prijava

Part 20

Postavite osnovni DNS poslužitelj rekurzivnog predmemoriranja i konfigurirajte zone za domenu

Part 21

Kako instalirati, osigurati i podesiti performanse MariaDB poslužitelja baze podataka

Part 22

Kako instalirati i konfigurirati NFS poslužitelj za dijeljenje sustava datoteka

Part 23

Kako postaviti Apache s virtualnim hostingom temeljenim na imenu sa SSL certifikatom

Part 24

Kako postaviti Iptables vatrozid za omogućavanje udaljenog pristupa uslugama u Linuxu

Part 25

Kako pretvoriti Linux u usmjerivač za statički i dinamički rukovanje prometom

Part 26

Kako postaviti šifrirane datotečne sustave i zamijeniti ih pomoću alata Cryptsetup

Part 27

Kako pratiti korištenje sustava, ispade i otkloniti probleme s Linux poslužiteljima

Part 28

Kako postaviti mrežno spremište za instaliranje ili ažuriranje paketa

Part 29

Kako provjeriti rad mreže, sigurnost i rješavanje problema

Part 30

Kako instalirati i upravljati virtualnim strojevima i spremnicima

Part 31

Naučite osnove Gita za učinkovito upravljanje projektima

Part 32

Vodič za početnike za konfiguriranje IPv4 i IPv6 adresa u Linuxu

Part 33

Vodič za početnike za stvaranje mrežnog povezivanja i premošćivanja u Ubuntuu

Ovaj post je 2. dio serije od 33 vodiča, ovdje u ovom dijelu, pokrit ćemo osnovne operacije uređivanja datoteka i načine razumijevanja u Vi/Vim uređivaču, koji su potrebni za LFCS certifikacijski ispit.

Izvršite osnovne operacije uređivanja datoteka u Vi Editoru

Vi je bio prvi uređivač teksta preko cijelog zaslona napisan za Unix. Iako je zamišljeno da bude malen i jednostavan, može biti pomalo izazovno za ljude koji koriste isključivo GUI uređivače teksta, kao što su NotePad++ ili gedit, da spomenemo samo neke primjeri.

Da bismo koristili Vi, prvo moramo razumjeti 3 načina rada u kojima ovaj moćni program radi, kako bismo kasnije počeli učiti o njegovim moćnim postupcima za uređivanje teksta.

Imajte na umu da se većina modernih distribucija Linuxa isporučuje s varijantom vi poznatom kao vim (“Vi poboljšani”), koja podržava više značajki od originalni vi radi. Iz tog razloga, tijekom ovog vodiča, koristit ćemo vi i vim naizmjenično.

Ako vaša distribucija nema instaliran Vim, možete ga instalirati na sljedeći način.

sudo apt install vim         [On Debian, Ubuntu and Mint]
sudo yum install vim         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim  [On Gentoo Linux]
sudo apk add vim             [On Alpine Linux]
sudo pacman -S vim           [On Arch Linux]
sudo zypper install vim      [On OpenSUSE]    

Zašto bih trebao naučiti Vi?

Postoje barem 2 dobra razloga da naučite vi editor.

  1. vi je uvijek dostupan (bez obzira koju distribuciju koristite) budući da ga zahtijeva POSIX.
  2. vi ne troši znatnu količinu sistemskih resursa i omogućuje nam obavljanje bilo kojeg zamislivog zadatka bez dizanja prstiju s tipkovnice.

Osim toga, vi ima vrlo opsežan ugrađeni priručnik, koji se može pokrenuti pomoću naredbe :help odmah nakon pokretanja programa. Ovaj ugrađeni priručnik sadrži više informacija nego vi/m-ova man stranica.

Pokretanje Vi Editora

Za pokretanje vi upišite vi u naredbeni redak.

vi

Zatim pritisnite i za ulazak u mod Insert i možete početi tipkati.

Drugi način pokretanja vi/m je.

vi filename

Ovo će otvoriti novi međuspremnik (više o međuspremnicima kasnije) pod nazivom filename, koji kasnije možete spremiti na disk.

Razumijevanje Vi modova

Vi uređivač ima više načina rada, od kojih svaki služi različitoj svrsi i omogućuje korisnicima izvođenje određenih radnji.

Ovo su glavni načini kojih biste trebali biti svjesni:

Vi način naredbenog retka

U naredbenom načinu, vi omogućuje korisniku kretanje po datoteci i unos vi naredbi, koje su kratke kombinacije jednog ili više slova. Gotovo svaki od njih može imati prefiks s brojem da ponovi naredbu taj broj puta.

Na primjer, yy (ili Y) kopira cijeli trenutni redak, dok 3yy (ili 3Y) kopira cijeli trenutni red zajedno sa dva sljedeća retka (ukupno 3 retka).

Uvijek možemo ući u naredbeni način (bez obzira na način na kojem radimo) pritiskom na tipku Esc. Činjenica da se u naredbenom načinu rada tipke na tipkovnici tumače kao naredbe umjesto teksta obično zbunjuje početnike.

Vi Ex način

U ex načinu rada možemo manipulirati datotekama (uključujući spremanje trenutne datoteke i pokretanje vanjskih programa). Da bismo ušli u ovaj način, moramo utipkati dvotočku (:) iz naredbenog načina rada, nakon čega slijedi naziv naredbe bivšeg načina rada koju treba koristiti. Nakon toga, vi se automatski vraća u naredbeni mod.

Vi način umetanja

U načinu umetanja (za ulazak u ovaj način obično se koristi slovo i), jednostavno unosimo tekst. Većina pritisaka tipki dovodi do pojavljivanja teksta na zaslonu (jedna važna iznimka je tipka Esc, koja izlazi iz načina umetanja i vraća se u naredbeni način).

Upotreba Vi naredbi

Sljedeća tablica prikazuje popis najčešće korištenih vi naredbi. Naredbe za izdavanje datoteke mogu se nametnuti dodavanjem znaka uzvika naredbi (na primjer, :q! nameće izlazak bez spremanja).

 Key Command

 Opis

 h or left arrow

Idi jedan znak ulijevo

 j or down arrow

Spustite se jednu liniju

 k or up arrow

Idi jedan red gore

 l (lowercase L) or right arrow

Idi jedan znak udesno

 H

Idite na vrh zaslona

 L

Idite na dno ekrana

 G

Idi na kraj datoteke

 w

Pomakni jednu riječ udesno

 b

Pomakni jednu riječ ulijevo

 0 (zero)

Idi na početak trenutnog retka

 ^

Idi na prvi znak koji nije prazan u trenutnom retku

 $

Idi na kraj trenutnog retka

 Ctrl-B

Vratite se jedan zaslon unatrag

 Ctrl-F

Idi naprijed jedan zaslon

 i

Umetni na trenutnu poziciju kursora

 I (uppercase i)

Umetni na početak trenutnog retka

 J (uppercase j)

Spoji trenutni red sa sljedećim (pomakni sljedeći redak)

 a

Dodajte nakon trenutne pozicije pokazivača

 o (lowercase O)

Stvara prazan redak nakon trenutnog retka

 O (uppercase o)

Stvara prazan redak prije trenutnog retka

 r

Zamijenite znak na trenutnoj poziciji kursora

 R

Prepiši na trenutnoj poziciji kursora

 x

Izbrišite znak na trenutnoj poziciji kursora

 X

Izbrišite znak neposredno ispred (lijevo) trenutne pozicije kursora

 dd

Izrežite (za kasnije lijepljenje) cijelu trenutnu liniju

 D

Izrežite od trenutne pozicije kursora do kraja retka (ova naredba je ekvivalentna d$)

 yX

Dajte naredbu za kretanje X, kopirajte (povucite) odgovarajući broj znakova, riječi ili redaka s trenutne pozicije kursora

 yy or Y

Yank (kopiraj) cijeli trenutni redak

 p

Zalijepi nakon (sljedeći red) trenutne pozicije kursora

 P

Zalijepi ispred (prethodnog retka) trenutne pozicije kursora

 . (period)

Ponovite zadnju naredbu

 u

Poništavanje zadnje naredbe

 U

Poništavanje zadnje naredbe u zadnjem retku. Ovo će raditi sve dok je kursor još na liniji.

 n

Pronađite sljedeće podudaranje u pretrazi

 N

Pronađite prethodno podudaranje u pretrazi

 :n

Sljedeća datoteka; kada je za uređivanje navedeno više datoteka, ova naredba učitava sljedeću datoteku.

 :e file

Učitajte datoteku umjesto trenutne datoteke.

 :r file

Umetnite sadržaj datoteke nakon (sljedeći redak) trenutne pozicije kursora

 :q

Zatvori bez spremanja promjena.

 :w file

Zapišite trenutni međuspremnik u datoteku. Za dodavanje postojećoj datoteci upotrijebite :w >> datoteka.

 :wq

Napišite sadržaj trenutne datoteke i zatvorite. Ekvivalentno x! i ZZ

 :r! command

Izvršite naredbu i umetnite izlaz nakon (sljedeći red) trenutne pozicije kursora.

Vi opcije

Sljedeće opcije mogu biti korisne dok izvodite vim (moramo ih dodati u našu datoteku ~/.vimrc).

echo set number >> ~/.vimrc
echo syntax on >> ~/.vimrc
echo set tabstop=4 >> ~/.vimrc
echo set autoindent >> ~/.vimrc

  • set number prikazuje brojeve redaka kada vi otvori postojeću ili novu datoteku.
  • Sintaksa uključena uključuje označavanje sintakse (za više ekstenzija datoteka) kako bi kod i konfiguracijske datoteke bile čitljivije.
  • set tabstop=4 postavlja veličinu kartice na 4 razmaka (zadana vrijednost je 8).
  • set autoindent prenosi prethodnu uvlaku u sljedeći redak.

Traži i zamijeni tekst u Vi

vi ima mogućnost pomicanja pokazivača na određeno mjesto (u jednom retku ili preko cijele datoteke) na temelju pretraživanja. Također može izvršiti zamjenu teksta sa ili bez potvrde korisnika.

Pretraživanje unutar retka

Naredba f pretražuje redak i pomiče kursor na sljedeće pojavljivanje navedenog znaka u trenutnom retku.

Na primjer, naredba fh pomaknula bi kursor na sljedeću instancu slova h unutar trenutnog retka. Imajte na umu da se ni slovo f niti znak koji tražite neće pojaviti nigdje na vašem zaslonu, ali znak će biti istaknut nakon što pritisnete Enter.

Na primjer, ovo dobivam nakon pritiska f4 u naredbenom modu.

Pretraživanje cijele datoteke

Upotrijebite naredbu /, nakon koje slijedi riječ ili izraz za pretraživanje. Pretraživanje se može ponoviti korištenjem prethodnog niza pretraživanja pomoću naredbe n ili sljedećeg (korištenjem naredbe N). Ovo je rezultat upisivanja /Jane u naredbenom modu.

Traži i zamijeni tekst

Vi koristi naredbu (sličnu sed-ovoj) za izvođenje operacija zamjene u nizu redaka ili cijeloj datoteci.

Kako bismo promijenili riječ “old ” u “young ” za cijelu datoteku, moramo unijeti sljedeću naredbu.

 :%s/old/young/g 

Obavijest: dvotočka na početku naredbe.

Dvotočka (:) započinje naredbu ex, s u ovom slučaju (za zamjenu), % je prečac koji znači od prvog do zadnjeg retka (raspon se također može navesti kao n,m što znači “od retka n do retka m ”), star je uzorak pretraživanja, dok je mlad zamjenski tekst, a g označava da se zamjena treba izvršiti pri svakom pojavljivanju niza za pretraživanje u datoteci.

Alternativno, c se može dodati na kraj naredbe kako bi se tražila potvrda prije izvođenja bilo kakve zamjene.

:%s/old/young/gc

Prije zamjene originalnog teksta novim, vi/m će nam predstaviti sljedeću poruku.

  • y: izvršite zamjenu (da)
  • n: preskoči ovu pojavu i idi na sljedeću (ne)
  • a: izvedite zamjenu u ovoj i svim sljedećim instancama uzorka.
  • q ili Esc: odustanite od zamjene.
  • l (malo L): izvedite ovu zamjenu i izađite (zadnji).
  • Ctrl-e, Ctrl-y: Pomaknite se prema dolje odnosno prema gore da biste vidjeli kontekst predložene zamjene.

Uređivanje više datoteka u Vi

Ukucajmo vim file1 file2 file3 u naš naredbeni redak.

vim file1 file2 file3

Prvo će vim otvoriti file1. Za prebacivanje na sljedeću datoteku (file2), moramo upotrijebiti naredbu :n. Kada se želimo vratiti na prethodnu datoteku, :N će obaviti posao.

Za prebacivanje s file1 na file3.

a). Naredba :buffers prikazat će popis datoteke koja se trenutno uređuje.

:buffers

b). Naredba :buffer 3 (bez s na kraju) otvorit će file3 za uređivanje.

Na gornjoj slici, znak funte (#) označava da je datoteka trenutno otvorena, ali u pozadini, dok %a označava datoteku koja se trenutno uređuje.

S druge strane, prazan prostor iza broja datoteke (3 u gornjem primjeru) označava da datoteka još nije otvorena.

Privremeni međuspremnici Vi

Da biste kopirali nekoliko uzastopnih redaka (recimo 4, na primjer) u privremeni međuspremnik pod nazivom a (nije pridružen datoteci) i smjestili te retke u drugi dio datoteke kasnije u trenutnom vi odjeljak, moramo...

  • Pritisnite tipku ESC kako biste bili sigurni da smo u vi Command modu.
  • Postavite kursor na prvi redak teksta koji želimo kopirati.
  • Upišite “a4yy” za kopiranje trenutnog retka, zajedno s 3 sljedeća retka, u međuspremnik pod nazivom a. Možemo nastaviti s uređivanjem naše datoteke – ne moramo odmah umetati kopirane retke.
  • Kada dođemo do lokacije za kopirane retke, upotrijebite “a prije naredbi p ili P da biste umetnuli retke kopirane u međuspremnik pod nazivom < b>a:

    1. Upišite “ap da biste umetnuli retke kopirane u međuspremnik nakon trenutnog retka na kojem se nalazi kursor.
    2. Upišite “aP da biste umetnuli retke kopirane u međuspremnik a prije trenutnog retka.

Ako želimo, možemo ponoviti gornje korake kako bismo umetnuli sadržaj međuspremnika na više mjesta u našoj datoteci. Privremeni međuspremnik, poput onog u ovom odjeljku, uklanja se kada se trenutni prozor zatvori.

Sažetak

Kao što smo vidjeli, vi/m je moćan i svestran uređivač teksta za CLI. Slobodno podijelite svoje trikove i komentare ispod.

Ažuriranje: Ako želite proširiti svoje vještine VI uređivača, predlažem da pročitate sljedeća dva vodiča koji će vas voditi do nekih korisni VI uređivački trikovi i savjeti.

LFCS e-knjiga sada je dostupna za kupnju. Naručite svoju kopiju već danas i krenite na svoje putovanje do certificiranog administratora Linux sustava!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Na kraju, ali ne manje važno, razmislite o kupnji vaučera za ispit koristeći sljedeće veze kako biste zaradili malu proviziju, koja će nam pomoći da ovu knjigu ažuriramo.