A veces estamos realizando tareas de mantenimiento en algún viejo servidor GNU/Linux y nos pasa algo parecido a lo siguiente cuando tratamos de editar un archivo:
# nano /etc/sysconfig/network-scripts/ifcfg-eth1 bash: nano: command not found
Esto significa que el sistema no tiene instalado el editor nano
. Si tenemos suerte podemos utilizar mcedit
(por ejemplo si es un viejo RedHat o derivado) pero es nada más que una excusa para evitar el viejo y conocido vi
.
A pesar de ser un editor de texto odiado por muchos y amado por otros "chapados a la antigua" la edición de archivos utilizando vi
es sencilla, el problema radica en que generalmente nadie conoce o recuerda sus comandos básicos.
Veamos como editar el archivo utilizando vi
:
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
Al abrir el archivo con vi
lo primero que se observa es el contenido (relleno con caracteres ~
hasta completar la pantalla). En este caso se trata de un archivo de configuración de una interfaz de red:
DEVICE=eth1 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.10 NETMASK=255.255.255.0 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "/etc/sysconfig/network-scripts/ifcfg-eth1" 5L, 82C
La última línea muestra el nombre del archivo seguido por la cantidad de líneas (5L) y caracteres (82C). Con las teclas direccionales es posible moverse por el documento. Es posible buscar patrones mediante el comando /
(lo mismo que se hace en nano
utilizando el comando Ctrl+W
), es decir el mismo comportamiento que el comando man
.
Para comenzar a editar se debe presionar la [Insert]
. Verán que la última línea de la pantalla cambia y aparece la leyenda -- INSERT --
para indicar que estamos en el modo edición:
DEVICE=eth1 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.10 NETMASK=255.255.255.0 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -- INSERT --
En el modo edición es posible realizar modificaciones en el archivo. Para finalizar la edición se debe presionar la tecla [Esc]
.
Para cerrar vi
(es necesario salir del modo edición) se debe utilizar alguna de las siguientes secuencias de comandos:
- Si no se ha editado el archivo:
:q
- Si se ha editado el archivo y se desea guardar:
:wq
- Si se ha editado el archivo pero no se desea guardar (descartar los cambios):
:q!
Por ejemplo:
DEVICE=eth1 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.11 NETMASK=255.255.255.0 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :wq
Con esto tienen lo básico para salvar las papas cuando se necesita modificar un archivo y sólo se dispone del editor vi
. Para aprender a utilizar a fondo vi
es posible acceder al manual completo ejecutando vimtutor
.