LFCS #2: Vi/Vim installeren en gebruiken in Linux
Een paar maanden geleden lanceerde de Linux Foundation de LFCS-certificering (Linux Foundation Certified Sysadmin) om individuen van over de hele wereld te helpen verifiëren dat ze in staat zijn om basis- tot middelmatige systeembeheertaken op Linux-systemen uit te voeren.
De Linux-beheertaken omvatten probleemoplossing en onderhoud uit de eerste hand, plus intelligente besluitvorming om te weten wanneer het tijd is om problemen voor te leggen aan de hogere ondersteuningsteams.
De serie heet Voorbereiding op de LFCS (Linux Foundation Certified Sysadmin) delen 1 tot en met 33 en behandelt de volgende onderwerpen:
- Part 1
Hoe u het ‘Sed’-commando gebruikt om bestanden in Linux te manipuleren
- Part 2
Vi/Vim installeren en gebruiken onder Linux
- Part 3
-
Bestanden en directoires comprimeren en bestanden zoeken in Linux
- Part 4
Partitioneren van opslagapparaten, formatteren van bestandssystemen en configureren van swappartitie
- Part 5
Mount/Unmount lokale en netwerkbestandssystemen (Samba en NFS) in Linux
- Part 6
Partities samenstellen als RAID-apparaten – Systeemback-ups maken en beheren
- Part 7
Systeemopstartprocessen en -services beheren (SysVinit, Systemd en Upstart
- Part 8
Hoe u gebruikers en groepen, bestandsrechten en Sudo-toegang beheert
- Part 9
Linux-pakketbeheer met Yum, RPM, Apt, Dpkg, Aptitude en Zypper
- Part 10
Leren van basisshellscripts en probleemoplossing voor bestandssystemen
- Part 11
LVM beheren en creëren met de opdrachten vgcreate, lvcreate en lvextend
- Part 12
Hoe Linux te verkennen met geïnstalleerde Help-documentatie en -hulpmiddelen
- Part 13
-
Grand Unified Bootloader (GRUB) configureren en problemen oplossen
- Part 14
Bewaak het resourcegebruik van Linux-processen en stel proceslimieten per gebruiker in
- Part 15
Kernel Runtime-parameters instellen of wijzigen in Linux-systemen
- Part 16
Implementatie van verplichte toegangscontrole met SELinux of AppArmor in Linux
- Part 17
Toegangscontrolelijsten (ACL's) en schijfquota instellen voor gebruikers en groepen
- Part 18
Netwerkservices installeren en automatisch opstarten bij opstarten configureren
- Part 19
Een ultieme handleiding voor het instellen van een FTP-server om anonieme aanmeldingen toe te staan
- Part 20
Stel een Basic Recursive Caching DNS-server in en configureer zones voor domein
- Part 21
Hoe u de MariaDB-databaseserver installeert, beveiligt en de prestaties afstemt
- Part 22
Hoe u NFS Server installeert en configureert voor het delen van bestandssystemen
- Part 23
-
Apache instellen met op naam gebaseerde virtuele hosting met SSL-certificaat
- Part 24
Hoe u een Iptables-firewall instelt om externe toegang tot services in Linux mogelijk te maken
- Part 25
Hoe u van een Linux een router kunt maken die verkeer statisch en dynamisch afhandelt
- Part 26
Hoe u gecodeerde bestandssystemen kunt instellen en uitwisselen met behulp van de Cryptsetup Tool
- Part 27
Systeemgebruik en -storingen controleren en problemen met Linux-servers oplossen
- Part 28
Hoe u een netwerkrepository instelt om pakketten te installeren of bij te werken
- Part 29
Netwerkprestaties, beveiliging en probleemoplossing controleren
- Part 30
Hoe u virtuele machines en containers installeert en beheert
- Part 31
Leer de basisprincipes van Git om projecten efficiënt te beheren
- Part 32
Een beginnershandleiding voor het configureren van IPv4- en IPv6-adressen in Linux
- Part 33
Een beginnershandleiding voor het creëren van netwerkbinding en -bridging in Ubuntu
Dit bericht is Deel 2 van een serie met 33 tutorials. Hier in dit deel behandelen we de basisbewerkingen voor bestanden en de begripsmodi in de Vi/Vim-editor, die vereist zijn voor het LFCS-certificeringsexamen.
Voer basisbewerkingen voor bestanden uit in Vi Editor
Vi was de eerste teksteditor op volledig scherm, geschreven voor Unix. Hoewel het bedoeld was om klein en eenvoudig te zijn, kan het een beetje uitdagend zijn voor mensen die uitsluitend gewend zijn aan GUI-teksteditors, zoals NotePad++ of gedit, om er maar een paar te noemen voorbeelden.
Om Vi te gebruiken, moeten we eerst de 3 modi begrijpen waarin dit krachtige programma werkt, om later te leren over de krachtige tekstbewerkingsprocedures.
Houd er rekening mee dat de meeste moderne Linux-distributies worden geleverd met een variant van vi, bekend als vim ("Vi verbeterd"), die meer functies ondersteunt dan de originele vi wel. Om die reden zullen we in deze tutorial vi en vim door elkaar gebruiken.
Als op uw distributie Vim niet is geïnstalleerd, kunt u dit als volgt installeren.
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]
Waarom zou ik Vi willen leren?
Er zijn minstens 2 goede redenen om vi-editor te leren.
- vi is altijd beschikbaar (ongeacht welke distributie u gebruikt) omdat dit vereist is door POSIX.
- vi verbruikt geen aanzienlijke hoeveelheid systeembronnen en stelt ons in staat elke denkbare taak uit te voeren zonder onze vingers van het toetsenbord te halen.
Bovendien heeft vi een zeer uitgebreide ingebouwde handleiding, die kan worden gestart met het :help
commando direct nadat het programma is gestart. Deze ingebouwde handleiding bevat meer informatie dan de manpagina van vi/m.
Vi-editor starten
Om vi te starten, typt u vi in uw opdrachtprompt.
vi
Druk vervolgens op i
om de Invoeg-modus te openen en u kunt beginnen met typen.
Een andere manier om vi/m te starten is.
vi filename
Hierdoor wordt een nieuwe buffer geopend (later meer over buffers) met de naam bestandsnaam, die u later op schijf kunt opslaan.
Vi-modi begrijpen
De Vi-editor heeft meerdere modi, die elk een ander doel dienen en gebruikers in staat stellen specifieke acties uit te voeren.
Dit zijn de belangrijkste modi waar u rekening mee moet houden:
Vi Commandoregelmodus
In de opdrachtmodus kan de gebruiker met vi door het bestand navigeren en vi-opdrachten invoeren, dit zijn korte, hoofdlettergevoelige combinaties van één of meer brieven. Bijna allemaal kunnen ze worden voorafgegaan door een nummer om de opdracht zo vaak te herhalen.
yy (of Y) kopieert bijvoorbeeld de gehele huidige regel, terwijl 3yy (of 3Y) de gehele huidige regel samen met de twee volgende regels (in totaal 3 regels).
We kunnen altijd naar de opdrachtmodus gaan (ongeacht de modus waaraan we werken) door op de Esc-toets te drukken. Het feit dat in de opdrachtmodus de toetsenbordtoetsen worden geïnterpreteerd als opdrachten in plaats van als tekst, kan voor beginners verwarrend zijn.
Vi Ex-modus
In de ex-modus kunnen we bestanden manipuleren (inclusief het opslaan van een huidig bestand en het uitvoeren van externe programma's). Om deze modus te openen, moeten we een dubbele punt (:
) typen vanuit de commandomodus, direct gevolgd door de naam van het ex-moduscommando dat moet worden gebruikt. Daarna keert vi automatisch terug naar de commandomodus.
Vi Invoegmodus
In de insert-modus (de letter i
wordt vaak gebruikt om deze modus te openen), voeren we eenvoudigweg tekst in. De meeste toetsaanslagen resulteren in het verschijnen van tekst op het scherm (een belangrijke uitzondering is de Esc-toets, die de invoegmodus verlaat en terugkeert naar de opdrachtmodus).
Gebruik van Vi-opdrachten
De volgende tabel toont een lijst met veelgebruikte vi-opdrachten. Opdrachten voor het bewerken van bestanden kunnen worden afgedwongen door het uitroepteken aan de opdracht toe te voegen (:q!
dwingt bijvoorbeeld afsluiten af zonder op te slaan).
- Key Command
Beschrijving
- h or left arrow
Ga één karakter naar links
- j or down arrow
Ga één regel naar beneden
- k or up arrow
Ga één regel omhoog
- l (lowercase L) or right arrow
Ga één karakter naar rechts
- H
Ga naar de bovenkant van het scherm
- L
Ga naar de onderkant van het scherm
- G
Ga naar het einde van het bestand
- w
Verplaats één woord naar rechts
- b
Verplaats één woord naar links
- 0 (zero)
Ga naar het begin van de huidige regel
- ^
Ga naar het eerste niet-lege teken op de huidige regel
- $
Ga naar het einde van de huidige regel
- Ctrl-B
Ga één scherm terug
- Ctrl-F
Ga één scherm vooruit
- i
Invoegen op de huidige cursorpositie
- I (uppercase i)
Voeg aan het begin van de huidige regel in
- J (uppercase j)
Verbind de huidige regel met de volgende (verplaats volgende opstelling)
- a
Toevoegen na de huidige cursorpositie
- o (lowercase O)
Creëert een lege regel na de huidige regel
- O (uppercase o)
Creëert een lege regel vóór de huidige regel
- r
Vervang het teken op de huidige cursorpositie
- R
Overschrijven op de huidige cursorpositie
- x
Verwijder het teken op de huidige cursorpositie
- X
Verwijder het teken onmiddellijk vóór (links) van de huidige cursorpositie
- dd
Knip (om later te plakken) de gehele huidige regel
- D
Knippen vanaf de huidige cursorpositie naar het einde van de regel (deze opdracht is gelijk aan d$)
- yX
Geef een bewegingscommando X, kopieer (ruk) het juiste aantal tekens, woorden of regels vanaf de huidige cursorpositie
- yy or Y
Yank (kopieer) de gehele huidige regel
- p
Plak na (volgende regel) de huidige cursorpositie
- P
Plak vóór (vorige regel) de huidige cursorpositie
- . (period)
Herhaal de laatste opdracht
- u
Maak de laatste opdracht ongedaan
- U
Maak de laatste opdracht op de laatste regel ongedaan. Dit werkt zolang de cursor nog op de regel staat.
- n
Vind de volgende overeenkomst in een zoekopdracht
- N
Zoek de vorige match in een zoekopdracht
- :n
Volgend bestand; wanneer meerdere bestanden zijn opgegeven om te bewerken, laadt deze opdracht het volgende bestand.
- :e file
Laad het bestand in plaats van het huidige bestand.
- :r file
Voeg de inhoud van het bestand in na (volgende regel) de huidige cursorpositie
- :q
Sluit af zonder de wijzigingen op te slaan.
- :w file
Schrijf de huidige buffer naar een bestand. Om aan een bestaand bestand toe te voegen, gebruik je :w >> bestand.
- :wq
Schrijf de inhoud van het huidige bestand en sluit af. Gelijk aan x! en ZZ
- :r! command
Voer de opdracht uit en voeg de uitvoer in na (volgende regel) de huidige cursorpositie.
Vi-opties
De volgende opties kunnen van pas komen tijdens het uitvoeren van vim (we moeten ze toevoegen aan ons ~/.vimrc bestand).
echo set number >> ~/.vimrc
echo syntax on >> ~/.vimrc
echo set tabstop=4 >> ~/.vimrc
echo set autoindent >> ~/.vimrc
- set nummer toont regelnummers wanneer vi een bestaand of nieuw bestand opent.
- syntaxis on schakelt syntaxisaccentuering in (voor meerdere bestandsextensies) om code- en configuratiebestanden leesbaarder te maken.
- set tabstop=4 stelt de tabgrootte in op 4 spaties (standaardwaarde is 8).
- set autoindent neemt de vorige inspringing over naar de volgende regel.
Zoek en vervang tekst in Vi
vi heeft de mogelijkheid om de cursor naar een bepaalde locatie te verplaatsen (op een enkele regel of over een heel bestand) op basis van zoekopdrachten. Het kan ook tekstvervangingen uitvoeren met of zonder bevestiging van de gebruiker.
Zoeken binnen een lijn
Het f
commando doorzoekt een regel en verplaatst de cursor naar de volgende keer dat een bepaald teken voorkomt op de huidige regel.
Het commando fh
verplaatst de cursor bijvoorbeeld naar de volgende instantie van de letter h
binnen de huidige regel. Houd er rekening mee dat noch de letter f
noch het teken dat u zoekt ergens op uw scherm verschijnen, maar dat het teken wordt gemarkeerd nadat u op Enter drukt.
Dit is bijvoorbeeld wat ik krijg nadat ik in de opdrachtmodus op f4
heb gedrukt.
Een heel bestand doorzoeken
Gebruik de opdracht /
, gevolgd door het woord of de zin waarnaar moet worden gezocht. Een zoekopdracht kan worden herhaald met behulp van de vorige zoekreeks met het n
commando, of de volgende (met het N
commando). Dit is het resultaat van het typen van /Jane
in de opdrachtmodus.
Tekst zoeken en vervangen
Vi gebruikt een commando (vergelijkbaar met dat van sed) om vervangingsbewerkingen uit te voeren over een reeks regels of een heel bestand.
Om het woord “oud
” te veranderen in “jong
” voor het hele bestand, moeten we het volgende commando invoeren.
:%s/old/young/g
Opmerking: de dubbele punt aan het begin van de opdracht.
De dubbele punt (:
) start het ex commando, s
in dit geval (ter vervanging), %
is een snelkoppeling die betekent van de eerste regel tot de laatste regel (het bereik kan ook worden gespecificeerd als n
,m
wat betekent “van regel n tot regel m ”), oud is het zoekpatroon, terwijl jong de vervangende tekst is, en g
geeft aan dat de vervanging bij elke gebeurtenis moet worden uitgevoerd van de zoekreeks in het bestand.
Als alternatief kan een c
aan het einde van de opdracht worden toegevoegd om om bevestiging te vragen voordat enige vervanging wordt uitgevoerd.
:%s/old/young/gc
Voordat de originele tekst wordt vervangen door de nieuwe, zal vi/m ons het volgende bericht presenteren.
- y: voer de vervanging uit (ja)
- n: sla deze gebeurtenis over en ga naar de volgende (nee)
- a: voer de vervanging uit in dit en alle volgende exemplaren van het patroon.
- q of Esc: stop met vervangen.
- l (kleine letter L): voer deze vervanging uit en stop (laatste).
- Ctrl-e, Ctrl-y: scroll respectievelijk omlaag en omhoog om de context van de voorgestelde vervanging te bekijken.
Meerdere bestanden bewerken in Vi
Laten we vim file1 file2 file3 typen in onze opdrachtprompt.
vim file1 file2 file3
Eerst zal vim bestand1 openen. Om naar het volgende bestand (file2) te gaan, moeten we de opdracht :n
gebruiken. Als we naar het vorige bestand willen terugkeren, zal :N
het werk doen.
Om over te schakelen van bestand1 naar bestand3.
a). Het :buffers
commando toont een lijst van het bestand dat momenteel wordt bewerkt.
:buffers
b). Het commando :buffer 3
(zonder de s
aan het einde) zal file3 openen om te bewerken.
In de afbeelding hierboven geeft een hekje (#
) aan dat het bestand momenteel geopend is, maar op de achtergrond, terwijl %a
het bestand markeert dat momenteel wordt bewerkt.
Aan de andere kant geeft een spatie na het bestandsnummer (3 in het bovenstaande voorbeeld) aan dat het bestand nog niet is geopend.
Tijdelijke Vi-buffers
Om een paar opeenvolgende regels (bijvoorbeeld 4) te kopiëren naar een tijdelijke buffer met de naam a (niet gekoppeld aan een bestand) en deze regels later in de huidige vi in een ander deel van het bestand te plaatsen sectie, we moeten...
- Druk op de
ESC
-toets om er zeker van te zijn dat we in de vi Command-modus zijn. - Plaats de cursor op de eerste regel van de tekst die we willen kopiëren.
- Typ “a4yy” om de huidige regel, samen met de drie daaropvolgende regels, te kopiëren naar een buffer met de naam a. We kunnen doorgaan met het bewerken van ons bestand – we hoeven de gekopieerde regels niet onmiddellijk in te voegen.
Wanneer we de locatie voor de gekopieerde regels bereiken, gebruikt u “a vóór de opdrachten p of P om de gekopieerde regels in de buffer met de naam < b>een:
- Typ “ap om de gekopieerde regels in de buffer in te voegen na de huidige regel waarop de cursor rust.
- Typ “aP om de regels in te voegen die vóór de huidige regel in buffer a zijn gekopieerd.
Als we dat willen, kunnen we de bovenstaande stappen herhalen om de inhoud van de buffer op meerdere plaatsen in ons bestand in te voegen. Een tijdelijke buffer, zoals die in deze sectie, wordt verwijderd wanneer het huidige venster wordt gesloten.
Samenvatting
Zoals we hebben gezien is vi/m een krachtige en veelzijdige teksteditor voor CLI. Voel je vrij om hieronder je eigen trucs en opmerkingen te delen.
Update: als je je vaardigheden als VI-editor wilt uitbreiden, raad ik je aan de volgende twee handleidingen te lezen, die je naar enkele nuttige VI-editortrucs en tips.
Het LFCS eBook is nu te koop. Bestel vandaag nog uw exemplaar en begin uw reis om een gecertificeerde Linux-systeembeheerder te worden!
Product Name | Price | Buy |
---|---|---|
The Linux Foundation’s LFCS Certification Preparation Guide | $19.99 | [Buy Now] |
Als laatste, maar daarom niet minder belangrijk, kunt u overwegen om uw examenvoucher te kopen via de volgende links. Zo verdient u een kleine commissie, waarmee we dit boek up-to-date kunnen houden.