LFCS #2: Come installare e utilizzare Vi/Vim in Linux
Un paio di mesi fa, la Linux Foundation ha lanciato la certificazione LFCS (Linux Foundation Certified Sysadmin) per aiutare le persone di tutto il mondo a verificare di essere in grado di svolgere attività di amministrazione di sistema di base e intermedie su sistemi Linux.
Le attività di amministrazione di Linux implicano la risoluzione dei problemi e la manutenzione in prima persona, oltre a un processo decisionale intelligente per sapere quando è il momento di sollevare problemi ai team di supporto superiori.
La serie sarà intitolata Preparazione per le parti da 1 a 33 di LFCS (Linux Foundation Certified Sysadmin) e tratterà i seguenti argomenti:
- Part 1
Come utilizzare il comando "Sed" per manipolare i file in Linux
- Part 2
Come installare e utilizzare Vi/Vim in Linux
- Part 3
-
Come comprimere file e directory e trovare file in Linux
- Part 4
Partizionamento dei dispositivi di archiviazione, formattazione dei file system e configurazione della partizione di swap
- Part 5
Monta/smonta filesystem locali e di rete (Samba e NFS) in Linux
- Part 6
Assemblaggio di partizioni come dispositivi RAID: creazione e gestione dei backup di sistema
- Part 7
Gestione dei processi e dei servizi di avvio del sistema (SysVinit, Systemd e Upstart
- Part 8
Come gestire utenti e gruppi, autorizzazioni file e accesso Sudo
- Part 9
Gestione dei pacchetti Linux con Yum, RPM, Apt, Dpkg, Aptitude e Zypper
- Part 10
Apprendimento degli script di shell di base e della risoluzione dei problemi del file system
- Part 11
Come gestire e creare LVM utilizzando i comandi vgcreate, lvcreate e lvextend
- Part 12
Come esplorare Linux con la documentazione e gli strumenti della Guida installati
- Part 13
-
Come configurare e risolvere i problemi di Grand Unified Bootloader (GRUB)
- Part 14
Monitora l'utilizzo delle risorse dei processi Linux e imposta i limiti dei processi in base al singolo utente
- Part 15
Come impostare o modificare i parametri di runtime del kernel nei sistemi Linux
- Part 16
Implementazione del controllo degli accessi obbligatorio con SELinux o AppArmor in Linux
- Part 17
Come impostare elenchi di controllo di accesso (ACL) e quote disco per utenti e gruppi
- Part 18
Installazione dei servizi di rete e configurazione dell'avvio automatico all'avvio
- Part 19
Una guida definitiva per configurare il server FTP per consentire accessi anonimi
- Part 20
Configura un server DNS di memorizzazione nella cache ricorsiva di base e configura le zone per il dominio
- Part 21
Come installare, proteggere e ottimizzare le prestazioni del server database MariaDB
- Part 22
Come installare e configurare il server NFS per la condivisione del file system
- Part 23
-
Come configurare Apache con hosting virtuale basato sul nome con certificato SSL
- Part 24
Come configurare un firewall Iptables per abilitare l'accesso remoto ai servizi in Linux
- Part 25
Come trasformare un Linux in un router per gestire il traffico in modo statico e dinamico
- Part 26
Come impostare filesystem crittografati e scambiare utilizzando lo strumento Cryptsetup
- Part 27
Come monitorare l'utilizzo del sistema, le interruzioni e la risoluzione dei problemi dei server Linux
- Part 28
Come configurare un repository di rete per installare o aggiornare i pacchetti
- Part 29
Come controllare le prestazioni, la sicurezza e la risoluzione dei problemi della rete
- Part 30
Come installare e gestire macchine virtuali e contenitori
- Part 31
Impara le basi di Git per gestire i progetti in modo efficiente
- Part 32
Una guida per principianti alla configurazione degli indirizzi IPv4 e IPv6 in Linux
- Part 33
Una guida per principianti alla creazione di collegamenti e bridging di rete in Ubuntu
Questo post è la Parte 2 di una serie di 33 tutorial, in questa parte tratteremo le operazioni di base di modifica dei file e le modalità di comprensione nell'editor Vi/Vim, necessarie per l'esame di certificazione LFCS.
Esegui operazioni di modifica di file di base in Vi Editor
Vi è stato il primo editor di testo a schermo intero scritto per Unix. Anche se doveva essere piccolo e semplice, può essere un po' impegnativo per le persone abituate esclusivamente a editor di testo GUI, come NotePad++ o gedit, per citarne alcuni esempi.
Per utilizzare Vi, dobbiamo prima comprendere le 3 modalità in cui opera questo potente programma, per iniziare a conoscere in seguito le sue potenti procedure di modifica del testo.
Tieni presente che la maggior parte delle distribuzioni Linux moderne vengono fornite con una variante di vi nota come vim ("Vi migliorato"), che supporta più funzionalità rispetto alla l'originale vi lo fa. Per questo motivo, in questo tutorial utilizzeremo vi e vim in modo intercambiabile.
Se la tua distribuzione non ha Vim installato, puoi installarlo come segue.
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]
Perché dovrei voler imparare Vi?
Ci sono almeno due buoni motivi per imparare l'editor vi.
- vi è sempre disponibile (indipendentemente dalla distribuzione che stai utilizzando) poiché è richiesto da POSIX.
- vi non consuma una quantità considerevole di risorse di sistema e ci permette di eseguire qualsiasi operazione immaginabile senza staccare le dita dalla tastiera.
Inoltre, vi dispone di un manuale integrato molto esteso, che può essere avviato utilizzando il comando :help
subito dopo l'avvio del programma. Questo manuale integrato contiene più informazioni della pagina man di vi/m.
Avvio dell'editor Vi
Per avviare vi, digita vi nel prompt dei comandi.
vi
Quindi premi i
per accedere alla modalità Inserisci e puoi iniziare a digitare.
Un altro modo per avviare vi/m è.
vi filename
Questo aprirà un nuovo buffer (ne parleremo più avanti sui buffer) denominato nomefile, che potrai successivamente salvare su disco.
Comprendere le modalità Vi
L'editor Vi dispone di più modalità, ciascuna delle quali ha uno scopo distinto e consente agli utenti di eseguire azioni specifiche.
Ecco le principali modalità di cui dovresti essere a conoscenza:
Modalità riga di comando Vi
Nella modalità comandi, vi consente all'utente di navigare nel file e inserire comandi vi, che sono brevi combinazioni con distinzione tra maiuscole e minuscole di uno o più lettere. Quasi tutti possono essere preceduti da un numero per ripetere il comando quel numero di volte.
Ad esempio, yy (o Y) copia l'intera riga corrente, mentre 3yy (o 3Y) copia la l'intera riga corrente insieme alle due righe successive (3 righe in totale).
Possiamo sempre accedere alla modalità comando (indipendentemente dalla modalità su cui stiamo lavorando) premendo il tasto Esc. Il fatto che in modalità comando i tasti della tastiera vengano interpretati come comandi anziché come testo tende a creare confusione per i principianti.
Modalità ViEx
In modalità ex, possiamo manipolare i file (incluso il salvataggio di un file corrente e l'esecuzione di programmi esterni). Per accedere a questa modalità, dobbiamo digitare i due punti (:
) dalla modalità comando, seguiti direttamente dal nome del comando ex-mode che deve essere utilizzato. Successivamente, vi ritorna automaticamente alla modalità comando.
Modalità di inserimento Vi
Nella modalità inserisci (la lettera i
è comunemente usata per accedere a questa modalità), inseriamo semplicemente il testo. La maggior parte dei tasti premuti fa apparire del testo sullo schermo (un'eccezione importante è il tasto Esc, che esce dalla modalità di inserimento e ritorna alla modalità di comando).
Utilizzo dei comandi Vi
La tabella seguente mostra un elenco dei comandi vi comunemente utilizzati. I comandi di edizione del file possono essere applicati aggiungendo il segno esclamativo al comando (ad esempio, :q!
impone l'uscita senza salvare).
- Key Command
Descrizione
- h or left arrow
Vai di un carattere a sinistra
- j or down arrow
Scendi di una riga
- k or up arrow
Sali di una riga
- l (lowercase L) or right arrow
Vai di un carattere a destra
- H
Vai nella parte superiore dello schermo
- L
Vai in fondo allo schermo
- G
Vai alla fine del file
- w
Sposta una parola a destra
- b
Sposta una parola a sinistra
- 0 (zero)
Vai all'inizio della riga corrente
- ^
Vai al primo carattere non vuoto della riga corrente
- $
Vai alla fine della riga corrente
- Ctrl-B
Torna indietro di una schermata
- Ctrl-F
Vai avanti di una schermata
- i
Inserisci nella posizione corrente del cursore
- I (uppercase i)
Inserisci all'inizio della riga corrente
- J (uppercase j)
Unisci la riga corrente con quella successiva (sposta la riga successiva)
- a
Aggiungi dopo la posizione corrente del cursore
- o (lowercase O)
Crea una riga vuota dopo la riga corrente
- O (uppercase o)
Crea una riga vuota prima della riga corrente
- r
Sostituisci il carattere nella posizione corrente del cursore
- R
Sovrascrivi nella posizione corrente del cursore
- x
Elimina il carattere nella posizione corrente del cursore
- X
Elimina il carattere immediatamente prima (a sinistra) della posizione corrente del cursore
- dd
Taglia (per incollare successivamente) l'intera riga corrente
- D
Taglia dalla posizione corrente del cursore alla fine della riga (questo comando equivale a d$)
- yX
Dai un comando di movimento X, copia (strappa) il numero appropriato di caratteri, parole o righe dalla posizione corrente del cursore
- yy or Y
Strappa (copia) l'intera riga corrente
- p
Incolla dopo (riga successiva) la posizione corrente del cursore
- P
Incolla prima (riga precedente) la posizione corrente del cursore
- . (period)
Ripeti l'ultimo comando
- u
Annulla l'ultimo comando
- U
Annulla l'ultimo comando nell'ultima riga. Funzionerà finché il cursore è ancora sulla linea.
- n
Trova la corrispondenza successiva in una ricerca
- N
Trova la corrispondenza precedente in una ricerca
- :n
File successivo; quando vengono specificati più file da modificare, questo comando carica il file successivo.
- :e file
Carica il file al posto del file corrente.
- :r file
Inserisci il contenuto del file dopo (riga successiva) la posizione corrente del cursore
- :q
Esci senza salvare le modifiche.
- :w file
Scrive il buffer corrente in un file. Per aggiungere a un file esistente, utilizzare :w >> file.
- :wq
Scrive il contenuto del file corrente ed esce. Equivalente a x! e Z.Z
- :r! command
Esegui il comando e inserisci l'output dopo (riga successiva) la posizione corrente del cursore.
Opzioni Vi
Le seguenti opzioni possono tornare utili durante l'esecuzione di vim (dobbiamo aggiungerle nel nostro file ~/.vimrc).
echo set number >> ~/.vimrc
echo syntax on >> ~/.vimrc
echo set tabstop=4 >> ~/.vimrc
echo set autoindent >> ~/.vimrc
- imposta numero mostra i numeri di riga quando vi apre un file esistente o uno nuovo.
- sintassi attiva attiva l'evidenziazione della sintassi (per più estensioni di file) per rendere il codice e i file di configurazione più leggibili.
- set tabstop=4 imposta la dimensione della tabulazione su 4 spazi (il valore predefinito è 8).
- set autoindent trasferisce il rientro precedente alla riga successiva.
Cerca e sostituisci testo in Vi
vi ha la capacità di spostare il cursore in una determinata posizione (su una singola riga o su un intero file) in base alle ricerche. Può anche eseguire sostituzioni di testo con o senza conferma da parte dell'utente.
Ricerca all'interno di una riga
Il comando f
cerca una riga e sposta il cursore alla successiva occorrenza di un carattere specificato nella riga corrente.
Ad esempio, il comando fh
sposterà il cursore all'istanza successiva della lettera h
all'interno della riga corrente. Tieni presente che né la lettera f
né il carattere che stai cercando appariranno in nessun punto dello schermo, ma il carattere verrà evidenziato dopo aver premuto Invio.
Ad esempio, questo è ciò che ottengo premendo f4
in modalità comando.
Ricerca di un intero file
Utilizzare il comando /
, seguito dalla parola o frase da cercare. È possibile ripetere una ricerca utilizzando la stringa di ricerca precedente con il comando n
, oppure quella successiva (utilizzando il comando N
). Questo è il risultato della digitazione di /Jane
in modalità comando.
Cerca e sostituisci testo
Vi utilizza un comando (simile a quello di sed) per eseguire operazioni di sostituzione su un intervallo di righe o su un intero file.
Per cambiare la parola “old
” in “young
” per l'intero file, dobbiamo inserire il seguente comando.
:%s/old/young/g
Avviso: i due punti all'inizio del comando.
I due punti (:
) iniziano il comando ex, s
in questo caso (per sostituzione), %
è un scorciatoia che significa dalla prima all'ultima riga (l'intervallo può anche essere specificato come n
,m
che significa "dalla riga n alla riga m ”), old è il modello di ricerca, mentre young è il testo sostitutivo e g
indica che la sostituzione deve essere eseguita ad ogni occorrenza della stringa di ricerca nel file.
In alternativa, è possibile aggiungere una c
alla fine del comando per chiedere conferma prima di eseguire qualsiasi sostituzione.
:%s/old/young/gc
Prima di sostituire il testo originale con quello nuovo, vi/m ci presenterà il seguente messaggio.
- y: effettua la sostituzione (si)
- n: salta questa occorrenza e vai a quella successiva (no)
- a: esegue la sostituzione in questa e in tutte le istanze successive del modello.
- q o Esc: termina la sostituzione.
- l (L minuscola): esegue questa sostituzione ed esce (per ultimo).
- Ctrl-e, Ctrl-y: scorri rispettivamente verso il basso e verso l'alto per visualizzare il contesto della sostituzione proposta.
Modifica di più file in Vi
Digitiamo vim file1 file2 file3 nel nostro prompt dei comandi.
vim file1 file2 file3
Innanzitutto, vim aprirà file1. Per passare al file successivo (file2), dobbiamo usare il comando :n
. Quando vogliamo tornare al file precedente, :N
farà il lavoro.
Per passare da file1 a file3.
a). Il comando :buffers
mostrerà un elenco del file attualmente in fase di modifica.
:buffers
b). Il comando :buffer 3
(senza s
alla fine) aprirà file3 per la modifica.
Nell'immagine sopra, un segno di cancelletto (#
) indica che il file è attualmente aperto ma in background, mentre %a
contrassegna il file attualmente in fase di modifica.
D'altra parte, uno spazio vuoto dopo il numero del file (3 nell'esempio sopra) indica che il file non è stato ancora aperto.
Buffer Vi temporanei
Per copiare un paio di righe consecutive (diciamo 4, per esempio) in un buffer temporaneo denominato a (non associato a un file) e posizionare tali righe in un'altra parte del file successivamente nel vi corrente sezione, dobbiamo...
- Premi il tasto
ESC
per essere sicuro di essere in modalità comando vi. - Posiziona il cursore sulla prima riga del testo che desideriamo copiare.
- Digita "a4yy" per copiare la riga corrente, insieme alle 3 righe successive, in un buffer denominato a. Possiamo continuare a modificare il nostro file: non è necessario inserire immediatamente le righe copiate.
Quando raggiungiamo la posizione delle righe copiate, usa "a prima dei comandi p o P per inserire le righe copiate nel buffer denominato < b>a:
- Digita "ap per inserire le righe copiate nel buffer dopo la riga corrente su cui è posizionato il cursore.
- Digita "aP per inserire le righe copiate nel buffer a prima della riga corrente.
Se lo desideriamo, possiamo ripetere i passaggi precedenti per inserire il contenuto del buffer in più punti del nostro file. Un buffer temporaneo, come quello in questa sezione, viene eliminato quando la finestra corrente viene chiusa.
Riepilogo
Come abbiamo visto, vi/m è un editor di testo potente e versatile per CLI. Sentiti libero di condividere i tuoi trucchi e commenti qui sotto.
Aggiornamento: se vuoi estendere le tue capacità di editor VI, ti suggerisco di leggere le seguenti due guide che ti guideranno verso alcuni utili trucchi e suggerimenti per l'editor VI.
L'eBook LFCS è ora disponibile per l'acquisto. Ordina la tua copia oggi e inizia il tuo viaggio per diventare un amministratore di sistema Linux certificato!
Product Name | Price | Buy |
---|---|---|
The Linux Foundation’s LFCS Certification Preparation Guide | $19.99 | [Buy Now] |
Ultimo ma non meno importante, considera l'acquisto del voucher per l'esame utilizzando i seguenti collegamenti per guadagnarci una piccola commissione, che ci aiuterà a mantenere aggiornato questo libro.