Via è uno dei migliori editor di testo altamente configurabili che include molte funzionalità uniche che non puoi trovare in altri editor di testo. Oggi parleremo di una delle utili funzioni:modificare i file del sistema remoto dal sistema locale . Significato:possiamo modificare un file archiviato in un sistema Linux remoto senza dover effettivamente accedere ad esso tramite SSH o altri metodi. Prima di conoscere questo trucco, di solito eseguo SSH nel sistema remoto e quindi modifico i file. Tuttavia, c'è anche un modo per modificare i file remoti con Vim dal tuo sistema locale. A partire dalla versione Vim 7.x, il plug-in netrw.vim è installato come plug-in standard. Questo plugin ti consente di modificare i file tramite ftp, rcp, scp o http.
Cos'è il plug-in Netrw?
Per chi se lo stesse chiedendo, il Netrw (Lettura, scrittura e navigazione orientate alla rete) il plug-in supporta la modifica, la lettura e la scrittura di file locali e remoti su reti. Supporta anche la navigazione nelle directory locali e remote. Per maggiori dettagli, digita :help netrw all'interno della tua sessione vim. Andiamo avanti e vediamo come modificare i file archiviati in un sistema Linux remoto dal nostro sistema locale usando Vim.
Modifica file remoti con Vim su Linux
Modificare un file remoto con Vim è molto semplice:
vim scp://[email protected]//path_to_file
Esempio:
Ho un file di testo chiamato info.txt nel mio sistema remoto con la seguente riga.
Welcome to OSTechNix
Ora modificherò quel file, apporterò alcune modifiche, quindi salverò e chiuderò il file. Tutto dal mio sistema locale!
Per farlo, eseguo semplicemente il seguente comando:
$ vim scp://[email protected]/info.txt
Ecco la demo visiva dell'attività di cui sopra:
Qui, dovresti prestare attenzione alle seguenti tre cose.
1. [email protetta] (Es. [email protetta]) - Qui sk è il nome utente del sistema remoto. 192.168.225.22 è l'indirizzo IP del sistema remoto.
2. Barra singola (/) - Se desideri modificare un file memorizzato nella $HOME directory di un sistema remoto, è necessario utilizzare una barra finale per separare l'indirizzo IP o il nome host del sistema remoto dal percorso del file. Nel caso precedente, ho archiviato il file info.txt nella directory $HOME, quindi ho utilizzato una singola barra finale.
3. // (Doppie barre) - Per specificare il percorso completo di un file, è necessario utilizzare doppie barre. Una barra (/) viene utilizzata per separare l'indirizzo IP o il nome host del sistema remoto dal percorso del file effettivo. E l'altra barra viene utilizzata per menzionare il percorso assoluto (completo) del file remoto. Ad esempio, supponiamo che tu stia modificando un file denominato info.txt che si trova in /home/sk/Documents/ directory del tuo sistema remoto. In questo caso, il comando sarebbe:
$ vim scp://[email protected]//home/sk/Documents/info.txt
Notare le doppie barre tra l'indirizzo IP del sistema remoto e il percorso del file. Le doppie barre sono richieste solo quando si menziona il percorso assoluto di un file remoto.
Verifica il contenuto del file remoto dal tuo sistema locale:
$ ssh [email protected] cat info.txt [email protected]'s password: Welcome to OSTechNix blog
Vedere? Ho aggiunto una parola in più "blog" nel file info.txt.
In alcune occasioni potresti aver cambiato la porta SSH predefinita per motivi di sicurezza. In tal caso, menziona la porta SSH non come di seguito.
$ vim scp://[email protected]:2200/info.txt
Sostituisci 2200 con il tuo numero di porta SSH.
Se non disponi dell'accesso ssh/scp, puoi utilizzare altri protocolli, ad esempio ftp , come di seguito.
$ vim ftp://[email protected]/path/to/file
Quindi cosa sta succedendo in background?
Quando modifichi il file remoto dal tuo sistema locale usando il comando seguente;
$ vim scp://[email protected]/info.txt
Potresti aver notato il seguente output nella parte inferiore del tuo editor Vim:
:!scp -q '[email protected]:info.txt' '/tmp/vsoDT6K/0.txt' "/tmp/vsOLzGf/0.txt" 1L, 21C
Significato:il comando scp copia il file richiesto dal sistema remoto e lo salva in /tmp directory del tuo sistema locale e quindi lo apre per la modifica. Dopo aver completato la modifica, il file viene caricato nuovamente sul sistema remoto utilizzando il comando scp.
Modifica file remoti all'interno della sessione Vim
Se sei già all'interno di una sessione Vim, puoi quindi modificare i file remoti dal tuo sistema locale come di seguito.
Apri il file da Vim in un nuovo buffer eseguendo il comando seguente:
:e scp://[email protected]/info.txt
Apporta le modifiche al file e premi ESC chiave e digita :wq per salvare e chiudere il file.
Dai un'occhiata alla seguente demo visiva.
Come puoi vedere nell'output sopra;
- Ho aperto l'editor Vim dal mio sistema locale,
- Poi ho aperto il file remoto chiamato info.txt all'interno della sessione di Vim in un nuovo buffer,
- E poi ha apportato alcune modifiche al file,
- Infine, salva le modifiche e chiude il file (ESC e :wq).
Puoi anche aprire il file in una nuova scheda eseguendo:
:tabe scp://[email protected]/info.txt
Spero questo sia di aiuto. Pubblicherò altri suggerimenti su Vim nei giorni a venire. Continua a visitare!
Lettura consigliata:
- Suggerimenti Vim:leggi e scrivi file remoti con Vim su Linux
- Esegui comandi su sistemi Linux remoti tramite SSH