Ricerca nel sito web

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.

  1. vi è sempre disponibile (indipendentemente dalla distribuzione che stai utilizzando) poiché è richiesto da POSIX.
  2. 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:

    1. Digita "ap per inserire le righe copiate nel buffer dopo la riga corrente su cui è posizionato il cursore.
    2. 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.