Urejanje besedila v terminalu: osnove nano in vim

Linux Branje: 3 min

Večina nastavitev strežnika je v besedilnih konfiguracijskih datotekah, ki jih je treba urejati prek SSH, v terminalu. Za to sta se uveljavila dva urejevalnika: preprosti nano, priporočen za začetnike, in vim (ali vi), ki ga najdeš v skoraj vsakem sistemu Linux, a je na prvi pogled nenavaden.

Preden se lotiš konfiguracijske datoteke

Naredi kopijo izvirnika, da ga lahko ob napaki obnoviš:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Za urejanje sistemskih datotek potrebuješ pravice root, zato urejevalnik zaženi s sudo.

nano

Namestitev

Na cloud image AlmaLinux 9 in 10 v preizkusu nano ni bil nameščen; na Ubuntu 24.04 in Debianu 12 je bil (različica 7.2), tam je tudi privzeti urejevalnik. Če ukaza nano ni mogoče najti:

# AlmaLinux, Rocky Linux
sudo dnf install nano

# Ubuntu, Debian
sudo apt install nano

Uporaba

sudo nano /etc/hosts

Prikaže se vsebina datoteke, premikaš se s puščicami in lahko takoj tipkaš. Na dnu zaslona so vidni najpogostejši ukazi; znak ^ pomeni tipko Ctrl, M- pa tipko Alt.

Tipka Dejanje
Ctrl+O, nato Enter shranjevanje
Ctrl+X izhod (če nisi shranil, vpraša: Y da, N ne)
Ctrl+W iskanje (naslednji zadetek: Alt+W)
Ctrl+\ iskanje in zamenjava
Ctrl+K izrez trenutne vrstice
Ctrl+U lepljenje izrezane vrstice
Alt+U razveljavitev
Ctrl+_ skok na določeno vrstico (npr. na številko vrstice iz sporočila o napaki)
Alt+N vklop in izklop številk vrstic

Besedilo s svojega računalnika prilepiš z običajno funkcijo lepljenja terminala (v Windows Terminalu in PuTTY z desnim gumbom miške, v macOS s Cmd+V, v Linuxu s Ctrl+Shift+V).

vim

Vim je na voljo na vsakem strežniku (vsaj pod imenom vi), v AlmaLinux in Rocky Linux pa ga več ukazov (na primer crontab -e ali visudo) odpre privzeto. Če se nepričakovano znajdeš v njem, je ta del dobro poznati.

V AlmaLinux 9 in 10 je privzeto nameščen le paket vim-minimal, ki da ukaz vi; ukaza z imenom vim ni („command not found”). Uporabi ukaz vi (spodnje tipke v njem delujejo enako) ali namesti polni vim: sudo dnf install vim-enhanced. Na Ubuntuju in Debianu je na voljo tudi vim.

Načini

Najpomembnejša posebnost vima je, da ima več načinov delovanja:

  • Normalni način: v njem se zažene. Tipke so tu ukazi, ne pišejo besedila.
  • Način vstavljanja: vanj vstopiš s tipko i, takrat lahko tipkaš. Spodaj se prikaže -- INSERT -- (ali -- VNOS -- v slovenskem vmesniku).
  • Ukazni način: v normalnem načinu se odpre s tipko :, spodaj. Tu vneseš ukaze za shranjevanje in izhod.

Tipka Esc te vedno vrne v normalni način.

Urejanje, shranjevanje, izhod

  1. Odpri datoteko: sudo vim /etc/hosts (v AlmaLinux brez vim-enhanced: sudo vi /etc/hosts)
  2. S puščicami se premakni na mesto, ki ga želiš spremeniti.
  3. Pritisni tipko i in vpiši besedilo.
  4. Pritisni tipko Esc.
  5. Vpiši :wq, nato Enter.
Ukaz (v normalnem načinu) Dejanje
:w shranjevanje
:q izhod (če ni neshranjenih sprememb)
:wq ali ZZ shranjevanje in izhod
:q! izhod brez shranjevanja, z zavrženjem sprememb
u razveljavitev
Ctrl+r ponovitev (razveljavitev razveljavitve)
dd brisanje (izrez) trenutne vrstice
yy kopiranje trenutne vrstice
p lepljenje pod kazalec
/szoveg, nato Enter iskanje (naslednji zadetek: n)
gg / G skok na začetek / konec datoteke
:42 skok na 42. vrstico
:set number prikaz številk vrstic

Lepljenje v vim

Če se zamik besedila, prilepljenega v vim, stopničasto zamika, pred lepljenjem vklopi način lepljenja: v normalnem načinu :set paste, nato i in lepljenje. Potem :set nopaste.

Nastavitev privzetega urejevalnika

crontab -e in več drugih ukazov odpre urejevalnik, naveden v okoljski spremenljivki EDITOR. Če želiš vedno uporabljati nano, ga dodaj v svojo datoteko ~/.bashrc:

echo 'export EDITOR=nano' >> ~/.bashrc
source ~/.bashrc

Na Ubuntuju in Debianu lahko sistemsko privzeto izbiro določiš tudi z ukazom sudo update-alternatives --config editor; v preizkusu je bil na obeh nastavljen nano (/etc/alternatives/editor -> /bin/nano).

Po spremembi

Večina storitev spremenjeno konfiguracijo prebere šele po ponovnem zagonu ali ponovnem nalaganju (glej: Upravljanje storitev z ukazom systemctl). Pred tem, če storitev to omogoča, preveri pravilnost nastavitve, na primer:

sudo sshd -t        # SSH szerver
sudo nginx -t       # Nginx
sudo apachectl -t   # Apache
Nazaj: Linux – članki (76)