Búsqueda de sitios web

LFCS #2: Cómo instalar y usar Vi/Vim en Linux


Hace un par de meses, la Fundación Linux lanzó la certificación LFCS (Linux Foundation Certified Sysadmin) para ayudar a personas de todo el mundo a verificar que son capaces de realizar tareas de administración de sistemas básicas a intermedias en sistemas Linux.

Las tareas de administración de Linux implican mantenimiento y resolución de problemas de primera mano, además de una toma de decisiones inteligente para saber cuándo es el momento de plantear problemas a los equipos superiores de soporte.

La serie se titulará Preparación para el LFCS (Linux Foundation Certified Sysadmin) Partes 1 a 33 y cubrirá los siguientes temas:

Part 1

Cómo utilizar el comando 'Sed' para manipular archivos en Linux

Part 2

Cómo instalar y utilizar Vi/Vim en Linux

Part 3

Cómo comprimir archivos y directorios y buscar archivos en Linux

Part 4

Particionar dispositivos de almacenamiento, formatear sistemas de archivos y configurar la partición de intercambio

Part 5

Montar/desmontar sistemas de archivos locales y de red (Samba y NFS) en Linux

Part 6

Ensamblaje de particiones como dispositivos RAID: creación y administración de copias de seguridad del sistema

Part 7

Gestión de procesos y servicios de inicio del sistema (SysVinit, Systemd y Upstart

Part 8

Cómo administrar usuarios y grupos, permisos de archivos y acceso a Sudo

Part 9

Gestión de paquetes de Linux con Yum, RPM, Apt, Dpkg, Aptitude y Zypper

Part 10

Aprendizaje de secuencias de comandos de Shell básicas y solución de problemas del sistema de archivos

Part 11

Cómo administrar y crear LVM usando los comandos vgcreate, lvcreate y lvextend

Part 12

Cómo explorar Linux con herramientas y documentación de ayuda instaladas

Part 13

Cómo configurar y solucionar problemas de Grand Unified Bootloader (GRUB)

Part 14

Supervise el uso de recursos de los procesos de Linux y establezca límites de proceso por usuario

Part 15

Cómo configurar o modificar los parámetros de tiempo de ejecución del kernel en sistemas Linux

Part 16

Implementación de control de acceso obligatorio con SELinux o AppArmor en Linux

Part 17

Cómo configurar listas de control de acceso (ACL) y cuotas de disco para usuarios y grupos

Part 18

Instalación de servicios de red y configuración del inicio automático al arrancar

Part 19

Una guía definitiva para configurar un servidor FTP para permitir inicios de sesión anónimos

Part 20

Configure un servidor DNS de almacenamiento en caché recursivo básico y configure zonas para el dominio

Part 21

Cómo instalar, proteger y ajustar el rendimiento del servidor de base de datos MariaDB

Part 22

Cómo instalar y configurar el servidor NFS para compartir sistemas de archivos

Part 23

Cómo configurar Apache con alojamiento virtual basado en nombres con certificado SSL

Part 24

Cómo configurar un firewall de Iptables para permitir el acceso remoto a servicios en Linux

Part 25

Cómo convertir un Linux en un enrutador para manejar el tráfico de forma estática y dinámica

Part 26

Cómo configurar sistemas de archivos cifrados e intercambiarlos utilizando la herramienta Cryptsetup

Part 27

Cómo monitorear el uso del sistema, las interrupciones y solucionar problemas de servidores Linux

Part 28

Cómo configurar un repositorio de red para instalar o actualizar paquetes

Part 29

Cómo auditar el rendimiento, la seguridad y la resolución de problemas de la red

Part 30

Cómo instalar y administrar máquinas virtuales y contenedores

Part 31

Aprenda los conceptos básicos de Git para gestionar proyectos de forma eficiente

Part 32

Una guía para principiantes para configurar direcciones IPv4 e IPv6 en Linux

Part 33

Una guía para principiantes para crear enlaces y puentes de red en Ubuntu

Esta publicación es la Parte 2 de una serie de 33 tutoriales. Aquí, en esta parte, cubriremos las operaciones básicas de edición de archivos y los modos de comprensión en el editor Vi/Vim, que se requieren para el examen de certificación LFCS.

Realizar operaciones básicas de edición de archivos en Vi Editor

Vi fue el primer editor de texto de pantalla completa escrito para Unix. Aunque fue pensado para ser pequeño y simple, puede ser un poco desafiante para las personas acostumbradas exclusivamente a los editores de texto GUI, como NotePad++ o gedit, por nombrar algunos. ejemplos.

Para utilizar Vi, primero debemos comprender los 3 modos en los que opera este poderoso programa, para luego comenzar a aprender sobre sus poderosos procedimientos de edición de texto.

Tenga en cuenta que la mayoría de las distribuciones modernas de Linux vienen con una variante de vi conocida como vim (“Vi mejorado”), que admite más funciones que la versión anterior. El vi original lo hace. Por ese motivo, a lo largo de este tutorial usaremos vi y vim indistintamente.

Si tu distribución no tiene Vim instalado, puedes instalarlo de la siguiente manera.

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]    

¿Por qué debería querer aprender Vi?

Hay al menos dos buenas razones para aprender a editar vi.

  1. vi siempre está disponible (sin importar qué distribución esté utilizando), ya que POSIX lo requiere.
  2. vi no consume una cantidad considerable de recursos del sistema y nos permite realizar cualquier tarea imaginable sin levantar los dedos del teclado.

Además, vi tiene un manual incorporado muy extenso, que se puede iniciar usando el comando :help inmediatamente después de iniciar el programa. Este manual incorporado contiene más información que la página de manual de vi/m.

Lanzamiento del editor Vi

Para iniciar vi, escriba vi en el símbolo del sistema.

vi

Luego presione i para ingresar al modo Insertar y podrá comenzar a escribir.

Otra forma de iniciar vi/m es.

vi filename

Esto abrirá un nuevo búfer (más sobre los búferes más adelante) llamado nombre de archivo, que luego podrá guardar en el disco.

Comprender los modos Vi

El editor Vi tiene múltiples modos, cada uno de los cuales tiene un propósito distinto y permite a los usuarios realizar acciones específicas.

Estos son los modos principales que debes tener en cuenta:

Modo de línea de comandos Vi

En el modo de comando, vi permite al usuario navegar por el archivo e ingresar comandos vi, que son combinaciones breves que distinguen entre mayúsculas y minúsculas de uno o más letras. Casi todos ellos pueden tener el prefijo de un número para repetir el comando esa cantidad de veces.

Por ejemplo, yy (o Y) copia toda la línea actual, mientras que 3yy (o 3Y) copia la línea actual. toda la línea actual junto con las dos líneas siguientes (3 líneas en total).

Siempre podremos entrar al modo comando (independientemente del modo en el que estemos trabajando) pulsando la tecla Esc. El hecho de que en el modo de comando las teclas del teclado se interpreten como comandos en lugar de texto tiende a resultar confuso para los principiantes.

Modo ViEx

En el modo ex, podemos manipular archivos (incluido guardar un archivo actual y ejecutar programas externos). Para ingresar a este modo, debemos escribir dos puntos (:) desde el modo comando, seguido directamente por el nombre del comando ex-mode que debe usarse. Después de eso, vi vuelve automáticamente al modo comando.

Modo de inserción Vi

En el modo insertar (la letra i se usa comúnmente para ingresar a este modo), simplemente ingresamos texto. La mayoría de las pulsaciones de teclas dan como resultado que aparezca texto en la pantalla (una excepción importante es la tecla Esc, que sale del modo de inserción y regresa al modo de comando).

Uso de comandos Vi

La siguiente tabla muestra una lista de comandos vi comúnmente utilizados. Los comandos de edición de archivos se pueden aplicar agregando el signo de exclamación al comando (por ejemplo, :q! obliga a salir sin guardar).

 Key Command

 Descripción

 h or left arrow

Ir un carácter a la izquierda

 j or down arrow

baja una linea

 k or up arrow

Sube una línea

 l (lowercase L) or right arrow

Ir un carácter a la derecha

 H

Ir a la parte superior de la pantalla

 L

Ir al final de la pantalla

 G

Ir al final del archivo

 w

Mover una palabra a la derecha

 b

Mover una palabra a la izquierda

 0 (zero)

Ir al principio de la línea actual

 ^

Ir al primer carácter que no esté en blanco en la línea actual

 $

Ir al final de la línea actual

 Ctrl-B

Retroceder una pantalla

 Ctrl-F

Avanzar una pantalla

 i

Insertar en la posición actual del cursor

 I (uppercase i)

Insertar al principio de la línea actual

 J (uppercase j)

Unir la línea actual con la siguiente (mover la siguiente alineación)

 a

Agregar después de la posición actual del cursor

 o (lowercase O)

Crea una línea en blanco después de la línea actual

 O (uppercase o)

Crea una línea en blanco antes de la línea actual.

 r

Reemplazar el carácter en la posición actual del cursor

 R

Sobrescribir en la posición actual del cursor

 x

Eliminar el carácter en la posición actual del cursor

 X

Eliminar el carácter inmediatamente anterior (a la izquierda) de la posición actual del cursor

 dd

Cortar (para pegar más tarde) toda la línea actual

 D

Cortar desde la posición actual del cursor hasta el final de la línea (este comando es equivalente a d$)

 yX

Dé un comando de movimiento X, copie (tire) la cantidad apropiada de caracteres, palabras o líneas desde la posición actual del cursor

 yy or Y

Tirar (copiar) toda la línea actual

 p

Pegar después (siguiente línea) de la posición actual del cursor

 P

Pegar antes (línea anterior) de la posición actual del cursor

 . (period)

Repita el último comando

 u

Deshacer el último comando

 U

Deshaga el último comando en la última línea. Esto funcionará mientras el cursor esté todavía en la línea.

 n

Encuentra la siguiente coincidencia en una búsqueda

 N

Encuentra la coincidencia anterior en una búsqueda

 :n

Siguiente archivo; cuando se especifican varios archivos para editar, este comando carga el siguiente archivo.

 :e file

Cargue el archivo en lugar del archivo actual.

 :r file

Inserte el contenido del archivo después (siguiente línea) de la posición actual del cursor

 :q

Salir sin guardar los cambios.

 :w file

Escribe el búfer actual en un archivo. Para agregar a un archivo existente, use :w >> archivo.

 :wq

Escriba el contenido del archivo actual y salga. Equivalente ax! y ZZ

 :r! command

Ejecute el comando e inserte la salida después (siguiente línea) de la posición actual del cursor.

Opciones de VI

Las siguientes opciones pueden resultar útiles al ejecutar vim (necesitamos agregarlas en nuestro archivo ~/.vimrc).

echo set number >> ~/.vimrc
echo syntax on >> ~/.vimrc
echo set tabstop=4 >> ~/.vimrc
echo set autoindent >> ~/.vimrc

  • número de conjunto muestra los números de línea cuando vi abre un archivo nuevo o existente.
  • sintaxis activada activa el resaltado de sintaxis (para múltiples extensiones de archivo) para hacer que el código y los archivos de configuración sean más legibles.
  • set tabstop=4 establece el tamaño de la pestaña en 4 espacios (el valor predeterminado es 8).
  • set autoindent traslada la sangría anterior a la siguiente línea.

Buscar y reemplazar texto en Vi

vi tiene la capacidad de mover el cursor a una ubicación determinada (en una sola línea o en un archivo completo) según las búsquedas. También puede realizar reemplazos de texto con o sin confirmación del usuario.

Buscar dentro de una línea

El comando f busca una línea y mueve el cursor a la siguiente aparición de un carácter especificado en la línea actual.

Por ejemplo, el comando fh movería el cursor a la siguiente instancia de la letra h dentro de la línea actual. Tenga en cuenta que ni la letra f ni el carácter que está buscando aparecerán en ninguna parte de la pantalla, pero el carácter se resaltará después de presionar Entrar.

Por ejemplo, esto es lo que obtengo después de presionar f4 en modo comando.

Buscar un archivo completo

Utilice el comando /, seguido de la palabra o frase que desea buscar. Se puede repetir una búsqueda usando la cadena de búsqueda anterior con el comando n, o la siguiente (usando el comando N). Este es el resultado de escribir /Jane en modo comando.

Buscar y reemplazar texto

Vi usa un comando (similar al de sed) para realizar operaciones de sustitución en un rango de líneas o en un archivo completo.

Para cambiar la palabra “old” a “young” para todo el archivo, debemos ingresar el siguiente comando.

 :%s/old/young/g 

Aviso: los dos puntos al principio del comando.

Los dos puntos (:) inician el comando ex, s en este caso (para sustitución), % es un significado de acceso directo desde la primera línea hasta la última línea (el rango también se puede especificar como n,m que significa “de la línea n a la línea m ”), old es el patrón de búsqueda, mientras que young es el texto de reemplazo y g indica que la sustitución debe realizarse en cada aparición. de la cadena de búsqueda en el archivo.

Alternativamente, se puede agregar una c al final del comando para solicitar confirmación antes de realizar cualquier sustitución.

:%s/old/young/gc

Antes de reemplazar el texto original por el nuevo, vi/m nos presentará el siguiente mensaje.

  • y: realizar la sustitución (sí)
  • n: salta esta ocurrencia y pasa a la siguiente (no)
  • a: realiza la sustitución en esta y todas las instancias posteriores del patrón.
  • q o Esc: dejar de sustituir.
  • l (L minúscula): realiza esta sustitución y sal (último).
  • Ctrl-e, Ctrl-y: desplácese hacia abajo y hacia arriba, respectivamente, para ver el contexto de la sustitución propuesta.

Editar varios archivos en Vi

Escribamos vim file1 file2 file3 en nuestro símbolo del sistema.

vim file1 file2 file3

Primero, vim abrirá el archivo1. Para cambiar al siguiente archivo (archivo2), necesitamos usar el comando :n. Cuando queramos volver al archivo anterior, :N hará el trabajo.

Para cambiar de archivo1 a archivo3.

a). El comando :buffers mostrará una lista del archivo que se está editando actualmente.

:buffers

b). El comando :buffer 3 (sin los s al final) abrirá el archivo3 para editarlo.

En la imagen de arriba, un signo de almohadilla (#) indica que el archivo está actualmente abierto pero en segundo plano, mientras que %a marca el archivo que se está editando actualmente.

Por otro lado, un espacio en blanco después del número de archivo (3 en el ejemplo anterior) indica que el archivo aún no se ha abierto.

Búfers Vi temporales

Copiar un par de líneas consecutivas (digamos 4, por ejemplo) en un buffer temporal llamado a (no asociado con un archivo) y colocar esas líneas en otra parte del archivo más adelante en el vi actual sección, necesitamos...

  • Presione la tecla ESC para asegurarse de que estamos en el modo de comando vi.
  • Colocamos el cursor en la primera línea del texto que deseamos copiar.
  • Escriba “a4yy” para copiar la línea actual, junto con las 3 líneas siguientes, en un búfer llamado a. Podemos continuar editando nuestro archivo; no necesitamos insertar las líneas copiadas inmediatamente.
  • Cuando lleguemos a la ubicación de las líneas copiadas, use “a antes de los comandos p o P para insertar las líneas copiadas en el búfer llamado < b>a:

    1. Escriba “ap para insertar las líneas copiadas en el búfer después de la línea actual en la que se encuentra el cursor.
    2. Escriba “aP para insertar las líneas copiadas en el búfer a antes de la línea actual.

Si lo deseamos, podemos repetir los pasos anteriores para insertar el contenido del buffer en varios lugares de nuestro archivo. Un búfer temporal, como el de esta sección, se elimina cuando se cierra la ventana actual.

Resumen

Como hemos visto, vi/m es un editor de texto potente y versátil para CLI. No dudes en compartir tus propios trucos y comentarios a continuación.

Actualización: si desea ampliar sus habilidades de edición de VI, le sugiero que lea las dos guías siguientes que le orientarán hacia algunas Trucos y consejos útiles del editor VI.

El libro electrónico LFCS ya está disponible para su compra. ¡Solicite su copia hoy y comience su viaje para convertirse en un administrador certificado de sistemas Linux!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

Por último, pero no menos importante, considere comprar su vale de examen utilizando los siguientes enlaces para ganarnos una pequeña comisión, que nos ayudará a mantener este libro actualizado.