Szövegszerkesztés a terminálban: nano és vim alapok

A szerver beállításainak többsége szöveges konfigurációs fájlokban van, amelyeket SSH-n keresztül, a terminálban kell szerkeszteni. Erre két szövegszerkesztő terjedt el: a kezdőknek javasolt, egyszerű nano, és a szinte minden Linux rendszeren megtalálható, de elsőre szokatlan vim (vagy vi).

Mielőtt hozzányúl egy konfigurációs fájlhoz

Készítsen másolatot az eredetiről, hogy hiba esetén vissza tudja állítani:

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

A rendszerfájlok szerkesztéséhez root jogosultság kell, ezért a szerkesztőt sudo-val indítsa.

nano

Telepítés

Ha a nano parancs nem található (például egy minimális AlmaLinux telepítésen):

# AlmaLinux, Rocky Linux
sudo dnf install nano

# Ubuntu, Debian
sudo apt install nano

Használat

sudo nano /etc/hosts

A fájl tartalma megjelenik, és a nyilakkal mozogva azonnal gépelhet. A képernyő alján a leggyakoribb parancsok láthatók; a ^ jel a Ctrl billentyűt, az M- az Alt billentyűt jelenti.

Billentyű Művelet
Ctrl+O, majd Enter mentés
Ctrl+X kilépés (ha nem mentett, rákérdez: Y igen, N nem)
Ctrl+W keresés (újabb találat: Alt+W)
Ctrl+\ keresés és csere
Ctrl+K az aktuális sor kivágása
Ctrl+U a kivágott sor beillesztése
Alt+U visszavonás
Ctrl+_ ugrás egy adott sorra (pl. hibaüzenetben megadott sorszámra)
Alt+N sorszámok be- és kikapcsolása

Szöveget a saját gépéről a terminál szokásos beillesztés funkciójával másolhat be (Windows Terminalban és PuTTY-ban jobb egérgomb, macOS-en Cmd+V, Linuxon Ctrl+Shift+V).

vim

A vim minden szerveren elérhető (legalább vi néven), és AlmaLinuxon, Rocky Linuxon több parancs (például a crontab -e vagy a visudo) alapértelmezésként ezt nyitja meg. Ha váratlanul ebben találja magát, ezt a részt érdemes ismerni.

Módok

A vim legfontosabb sajátossága, hogy több üzemmódja van:

  • Normál mód: ebben indul. A billentyűk itt parancsok, nem szöveget írnak.
  • Beszúrás mód: az i billentyűvel lép be, ekkor gépelhet. Alul -- INSERT -- (vagy -- BESZÚRÁS --) jelenik meg.
  • Parancssor mód: normál módban a : billentyűvel nyílik meg, alul. Itt adhatja ki a mentés és kilépés parancsokat.

Az Esc billentyű mindig visszavisz normál módba.

Szerkesztés, mentés, kilépés

  1. Nyissa meg a fájlt: sudo vim /etc/hosts
  2. Mozogjon a nyilakkal a módosítandó helyre.
  3. Nyomja meg az i billentyűt, és írja be a szöveget.
  4. Nyomja meg az Esc billentyűt.
  5. Írja be: :wq, majd Enter.
Parancs (normál módban) Művelet
:w mentés
:q kilépés (ha nincs mentetlen módosítás)
:wq vagy ZZ mentés és kilépés
:q! kilépés mentés nélkül, a módosítások elvetésével
u visszavonás
Ctrl+r újra (a visszavonás visszavonása)
dd az aktuális sor törlése (kivágása)
yy az aktuális sor másolása
p beillesztés a kurzor alá
/szoveg, majd Enter keresés (következő találat: n)
gg / G ugrás a fájl elejére / végére
:42 ugrás a 42. sorra
:set number sorszámok megjelenítése

Beillesztés vimbe

Ha a vimbe bemásolt szöveg behúzása lépcsőzetesen eltolódik, beillesztés előtt kapcsolja be a beillesztés módot: normál módban :set paste, majd i és beillesztés. Utána :set nopaste.

Az alapértelmezett szerkesztő beállítása

A crontab -e és több más parancs az EDITOR környezeti változóban megadott szerkesztőt nyitja meg. Ha mindig a nano-t szeretné használni, vegye fel a saját ~/.bashrc fájljába:

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

Ubuntun és Debianon a rendszerszintű alapértelmezést a sudo update-alternatives --config editor paranccsal is kiválaszthatja.

Módosítás után

A legtöbb szolgáltatás csak újraindítás vagy újratöltés után olvassa be a módosított konfigurációt (lásd: Szolgáltatások kezelése systemctl paranccsal). Előtte, ha a szolgáltatás lehetővé teszi, ellenőrizze a beállítás helyességét, például:

sudo sshd -t        # SSH szerver
sudo nginx -t       # Nginx
sudo apachectl -t   # Apache