Ricerca nel sito web

Serie RHCSA: Modifica di file di testo con Nano e Vim/Analisi del testo con grep e espressioni regolari - Parte 4


Ogni amministratore di sistema deve occuparsi dei file di testo come parte delle sue responsabilità quotidiane. Ciò include la modifica di file esistenti (molto probabilmente file di configurazione) o la creazione di nuovi. È stato detto che se vuoi iniziare una guerra santa nel mondo Linux, puoi chiedere agli amministratori di sistema qual è il loro editor di testo preferito e perché. Non lo faremo in questo articolo, ma presenteremo alcuni suggerimenti che saranno utili per utilizzare due degli editor di testo più utilizzati in RHEL 7: nano (per la sua semplicità e facilità di utilizzo, specialmente per i nuovi utenti) e vi/m (grazie alle sue numerose funzionalità che lo convertono in più di un semplice editor). Sono sicuro che potrai trovare molti altri motivi per utilizzare l'uno o l'altro, o magari qualche altro editor come emacs o pico. Dipende interamente da te.

Modificare file con Nano Editor

Per avviare nano, puoi semplicemente digitare nano al prompt dei comandi, facoltativamente seguito da un nome file (in questo caso, se il file esiste , verrà aperto in modalità edizione). Se il file non esiste, o se omettiamo il nome del file, nano si aprirà anche in modalità edizione ma presenterà una schermata vuota dove potremo iniziare a digitare:

Come puoi vedere nell'immagine precedente, nano mostra nella parte inferiore dello schermo diverse funzioni disponibili tramite le scorciatoie indicate (^, ovvero il cursore, indica il Ctrl). Per citarne alcuni:

  1. Ctrl + G: fa apparire il menu di aiuto con un elenco completo di funzioni e descrizioni: Ctrl + X: esce dal file corrente. Se le modifiche non sono state salvate, vengono scartate.
  2. Ctrl + R: consente di scegliere un file per inserirne il contenuto nel file presente specificando un percorso completo.

  1. Ctrl + O: salva le modifiche apportate a un file. Ti consentirà di salvare il file con lo stesso nome o con uno diverso. Quindi premere Invio per confermare.

  1. Ctrl + X: esce dal file corrente. Se le modifiche non sono state salvate, vengono scartate.
  2. Ctrl + R: consente di scegliere un file per inserirne il contenuto nel file presente specificando un percorso completo.

inserirà il contenuto di /etc/passwd nel file corrente.

  1. Ctrl + K: taglia la riga corrente.
  2. Ctrl + U: incolla.
  3. Ctrl + C: annulla l'operazione corrente e ti riporta alla schermata precedente.

Per navigare facilmente nel file aperto, nano fornisce le seguenti funzionalità:

  1. Ctrl + F e Ctrl + B spostano il cursore avanti o indietro, mentre Ctrl + P e Ctrl + N lo spostano rispettivamente su o giù di una riga alla volta, proprio come i tasti freccia.
  2. Ctrl + spazio e Alt + spazio spostano il cursore avanti e indietro di una parola alla volta.

Finalmente,

  1. Ctrl + _ (trattino basso) e quindi inserendo X,Y ti porterà esattamente alla riga X, colonna Y, se desideri posizionare il cursore in un punto specifico del documento.

L'esempio sopra ti porterà alla riga 15, colonna 14 nel documento corrente.

Se ricordi i tuoi primi giorni con Linux, specialmente se provieni da Windows, probabilmente sarai d'accordo sul fatto che iniziare con nano è il modo migliore per acquisire un nuovo utente.

Modifica di file con Vim Editor

Vim è una versione migliorata di vi, un famoso editor di testo in Linux disponibile su tutti i sistemi *nix conformi a POSIX, come RHEL 7. Se ne hai la possibilità e puoi installare vim, vai avanti; in caso contrario, dovrebbero funzionare anche la maggior parte (se non tutti) i suggerimenti forniti in questo articolo.

Una delle caratteristiche distintive di vim sono le diverse modalità in cui opera:

  1. La modalità comando ti consentirà di sfogliare il file e inserire comandi, che sono combinazioni brevi e con distinzione tra maiuscole e minuscole di una o più lettere. Se devi ripeterne uno un certo numero di volte, puoi prefissarlo con un numero (ci sono solo poche eccezioni a questa regola). Ad esempio, yy (o Y, abbreviazione di yank) copia l'intera riga corrente, mentre 4yy (o 4Y) copia l'intera riga corrente insieme alle tre righe successive (4 righe in totale).
  2. In modalità ex, puoi manipolare i file (incluso il salvataggio di un file corrente e l'esecuzione di programmi o comandi esterni). Per accedere alla modalità ex, dobbiamo digitare i due punti (:) a partire dalla modalità comando (o in altre parole, Esc + :), seguiti direttamente dal nome del comando modalità ex che si desidera utilizzare.
  3. Nella modalità di inserimento, a cui si accede digitando la lettera i, inseriamo semplicemente del testo. La maggior parte delle sequenze di tasti determina la visualizzazione del testo sullo schermo.
  4. Possiamo sempre accedere alla modalità comando (indipendentemente dalla modalità su cui stiamo lavorando) premendo il tasto Esc.

Vediamo come possiamo eseguire le stesse operazioni che abbiamo delineato per nano nella sezione precedente, ma ora con vim. Non dimenticare di premere il tasto Invio per confermare il comando vim!

Per accedere al manuale completo di vim dalla riga di comando, digita :help mentre sei in modalità comando e quindi premi Invio:

La sezione superiore presenta un indice dei contenuti, con sezioni definite dedicate ad argomenti specifici su vim. Per navigare in una sezione, posiziona il cursore su di essa e premi Ctrl + ] (parentesi quadra chiusa). Tieni presente che la sezione inferiore mostra il file corrente.

1. Per salvare le modifiche apportate a un file, esegui uno dei seguenti comandi dalla modalità di comando e funzionerà:

:wq!
:x!
ZZ (yes, double Z without the colon at the beginning)

2. Per uscire dall'eliminazione delle modifiche, utilizzare :q!. Questo comando ti consentirà anche di uscire dal menu di aiuto sopra descritto e di tornare al file corrente in modalità comando.

3. Taglia N numero di righe: digita Ndd in modalità comando.

4. Copia M numero di righe: digita Myy in modalità comando.

5. Incolla le linee precedentemente tagliate o copiate: premi il tasto P in modalità comando.

6. Per inserire il contenuto di un altro file in quello corrente:

:r filename

Ad esempio, per inserire il contenuto di /etc/fstab, eseguire:

7. Per inserire l'output di un comando nel documento corrente:

:r! command

Ad esempio, per inserire la data e l'ora nella riga sotto la posizione attuale del cursore:

In un altro articolo per cui ho scritto (Parte 2 della serie LFCS), ho spiegato in maggior dettaglio le scorciatoie da tastiera e le funzioni disponibili in vim. Potresti fare riferimento a quel tutorial per ulteriori esempi su come utilizzare questo potente editor di testo.