Linux
          Professional Institute Learning Logo.
Pasar al contenido principal
  • Inicio
    • Todos los recursos
    • LPI Learning Materials
    • Conviértete en colaborador
    • Publishing Partners
    • Conviértase en un Publishing Partner
    • Acerca de nosotros
    • FAQ
    • Colaboradores
    • Contáctenos
  • LPI.org
103.8 Lección 1

Tema 101: Arquitectura del Sistema
101.1 Determinar y configurar los ajustes de hardware
  • 101.1 Lección 1
101.2 Arranque del sistema
  • 101.2 Lección 1
101.3 Cambiar los niveles de ejecución / objetivos de arranque y apagar o reiniciar el sistema
  • 101.3 Lección 1
Tema 102: Instalación de Linux y gestión de paquetes
102.1 Diseño del esquema de particionado del disco duro duro
  • 102.1 Lección 1
102.2 Instalar un gestor de arranque
  • 102.2 Lección 1
102.3 Gestión de librerías compartidas
  • 102.3 Lección 1
102.4 Gestión de paquetes Debian
  • 102.4 Lección 1
102.5 Gestión de paquetes RPM y YUM
  • 102.5 Lección 1
102.6 Linux como sistema virtualizado
  • 102.6 Lección 1
Tema 103: Comandos GNU y Unix
103.1 Trabajar desde la línea de comandos
  • 103.1 Lección 1
  • 103.1 Lección 2
103.2 Procesar secuencias de texto usando filtros
  • 103.2 Lección 1
103.3 Administración básica de archivos
  • 103.3 Lección 1
  • 103.3 Lección 2
103.4 Uso de secuencias de texto, tuberías y redireccionamientos
  • 103.4 Lección 1
  • 103.4 Lección 2
103.5 Crear, supervisar y matar procesos
  • 103.5 Lección 1
  • 103.5 Lección 2
103.6 Modificar la prioridad de ejecución de los procesos
  • 103.6 Lección 1
103.7 Realizar búsquedas en archivos de texto usando expresiones regulares
  • 103.7 Lección 1
  • 103.7 Lección 2
103.8 Edición básica de archivos
  • 103.8 Lección 1
Tema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos
104.1 Creación de particiones y sistemas de archivos
  • 104.1 Lección 1
104.2 Mantener la integridad de los sistemas de archivos
  • 104.2 Lección 1
104.3 Controlar el montaje y desmontaje de los sistemas de archivos
  • 104.3 Lección 1
104.5 Administración de los permisos y los propietarios de los archivos
  • 104.5 Lección 1
104.6 Crear y cambiar enlaces duros y simbólicos
  • 104.6 Lección 1
104.7 Encontrar archivos de sistema y ubicar archivos en el lugar correspondiente
  • 104.7 Lección 1
  1. Tema 103: Comandos GNU y Unix
  2. 103.8 Edición básica de archivos
  3. 103.8 Lección 1

103.8 Lección 1

Certificación:

LPIC-1

Versión:

5.0

Tema:

103 Comandos GNU y Unix

Objetivo:

103.8 Edición básica de archivos

Lección:

1 de 1

Introducción

En la mayoría de las distribuciones de Linux, vi, abreviatura de “visual”, está preinstalado y es el editor estándar en el entorno de shell. Vi es un editor de texto interactivo, muestra el contenido del archivo en la pantalla mientras se está editando. Como tal, permite al usuario moverse y realizar modificaciones en cualquier parte del documento. Sin embargo, a diferencia de los editores visuales del escritorio gráfico, el editor vi es una aplicación de shell con atajos de teclado para cada tarea de edición.

Una alternativa a vi, llamada vim (vi mejorado), a veces se usa como un reemplazo moderno de vi. Entre otras mejoras, vim ofrece soporte para resaltado de sintaxis, deshacer/rehacer multinivel y edición de varios documentos. Aunque tiene más recursos, vim es totalmente compatible con vi, lo que hace que ambos sean indistinguibles para la mayoría de las tareas.

La forma estándar de iniciar vi es darle una ruta a un archivo como parámetro. Para saltar directamente a una línea específica, su número debe ser informado con un signo más, como en vi +9 /etc/fstab para abrir /etc/fstab/ y colocar el cursor en la novena línea. Sin un número, el signo más por sí solo coloca el cursor en la última línea.

La interfaz de vi es muy simple: todo el espacio disponible en la ventana de la terminal está ocupado para presentar un archivo, normalmente informado como un argumento de comando, al usuario. Las únicas pistas visuales son una línea de pie de página que muestra la posición actual del cursor y una tilde ~ que indica dónde termina el archivo. Hay diferentes modos de ejecución para vi donde cambia el comportamiento del programa. Los más comunes son: modo inserción y modo normal.

Modo de Inserción

El modo de inserción es sencillo: el texto aparece en la pantalla a medida que se escribe en el teclado. Es el tipo de interacción que la mayoría de los usuarios esperan de un editor de texto, pero no es la forma en que vi presenta un documento por primera vez. Para ingresar al modo de inserción, el usuario debe ejecutar un comando de inserción en el modo normal. La tecla Esc finaliza el modo de inserción y vuelve al modo normal, el modo vi predeterminado.

Note

Si está interesado en saber más sobre los otros modos de ejecución, abra vi y escriba:

:help vim-modes-intro

Modo Normal

El modo normal, también conocido como modo de comando, es cómo se inicia vi de forma predeterminada. En este modo, las teclas del teclado están asociadas con comandos para tareas de manipulación de texto y navegación. La mayoría de los comandos de este modo son teclas únicas. Algunas de las teclas y sus funciones en modo normal son:

0, $

Ve al principio y al final de la línea.

1G, G

Vaya al principio y al final del documento.

(, )

Vaya al principio y al final de la oración.

{, }

Vaya al principio y al final del párrafo.

w, W

Saltar palabra y saltar palabra, incluida la puntuación.

h, j, k, l

Izquierda, abajo, arriba, derecha.

e o E

Ir al final de la palabra actual.

/, ?

Busca hacia adelante y hacia atrás.

i, I

Ingrese al modo de inserción antes de la posición actual del cursor y al comienzo de la línea actual.

a, A

Ingrese al modo de inserción después de la posición actual del cursor y al final de la línea actual.

o, O

Agregue una nueva línea e ingrese al modo de inserción en la línea siguiente o en la línea anterior.

s, S

Borre el carácter debajo del cursor o toda la línea e ingrese al modo de inserción.

c

Cambie el (los) carácter (es) debajo del cursor.

r

Reemplaza el carácter debajo del cursor.

x

Elimina los caracteres seleccionados o el carácter debajo del cursor.

v, V

Inicie una nueva selección con el carácter actual o la línea completa.

y, yy

Copia (tira) los caracteres o la línea completa.

p, P

Pega el contenido copiado, antes o después de la posición actual.

u

Deshace la última acción.

Ctrl-R

Rehace la última acción.

ZZ

Cerrar y guardar.

ZQ

Cerrar y no guardar.

Si está precedido por un número, el comando se ejecutará el mismo número de veces. Por ejemplo, presione 3yy para copiar la línea actual más las dos siguientes, presione d5w para eliminar la palabra actual y las 4 palabras siguientes, y así sucesivamente.

La mayoría de las tareas de edición son combinaciones de varios comandos. Por ejemplo, la secuencia de teclas vey se utiliza para copiar una selección desde la posición actual hasta el final de la palabra actual. La repetición de comandos también se puede usar en combinaciones, por lo que v3ey copiaría una selección comenzando en la posición actual hasta el final de la tercera palabra desde allí.

vi puede organizar el texto copiado en registros, lo que permite mantener distintos contenidos al mismo tiempo. Un registro se especifica con un carácter precedido por " y una vez creado se mantiene hasta el final de la sesión actual. La secuencia de teclas "ly crea un registro que contiene la selección actual, que será accesible a través de la tecla l . Luego, el registro l se puede pegar con "lp.

También hay una forma de establecer marcas personalizadas en posiciones arbitrarias a lo largo del texto, lo que facilita el salto rápido entre ellas. Las marcas se crean presionando la tecla m y luego una tecla para abordar la posición actual. Una vez hecho esto, el cursor volverá a la posición marcada cuando se presione ' seguido de la tecla elegida.

Cualquier secuencia de teclas puede registrarse como una macro para su ejecución futura. Se puede grabar una macro, por ejemplo, para rodear un texto seleccionado entre comillas dobles. Primero, se selecciona una cadena de texto y se presiona la tecla q, seguida de una tecla de registro para asociar la macro, como d. La línea recording @d aparecerá en la línea del pie de página, indicando que la grabación está activada. Se supone que ya se ha seleccionado algún texto, por lo que el primer comando es x para eliminar (y copiar automáticamente) el texto seleccionado. Se presiona la tecla i para insertar dos comillas dobles en la posición actual, luego Esc regresa al modo normal. El último comando es P, para volver a insertar la selección eliminada justo antes de la última comilla doble. Si presiona q nuevamente, finalizará la grabación. Ahora, una macro que consta de la secuencia de teclas x, i, "", Esc y P se ejecutará cada vez que se presionen las teclas @d en modo normal, donde d es la clave de registro asociada con la macro.

Sin embargo, la macro estará disponible solo durante la sesión actual. Para que las macros sean persistentes, deben almacenarse en el archivo de configuración. Como la mayoría de las distribuciones modernas usan vim como editor compatible con vi, el archivo de configuración del usuario es ~/.vimrc. Dentro de ~/.vimrc, la línea let @d = 'xi"" P' establecerá el registro d en la secuencia de teclas entre comillas simples. El mismo registro asignado previamente a una macro se puede utilizar para pegar su secuencia de teclas.

Comandos Colon

El modo normal también admite otro conjunto de comandos vi: los comandos colon. Los comandos de dos puntos, como su nombre indica, se ejecutan después de presionar la tecla de dos puntos : en modo normal. Los comandos de dos puntos permiten al usuario realizar búsquedas, guardar, salir, ejecutar comandos de shell, cambiar la configuración de vi, etc. Para volver al modo normal, se debe ejecutar el comando :visual o la tecla Enter presionado sin ningún comando. Aquí se indican algunos de los comandos de dos puntos más comunes (la inicial no es parte del comando):

:s/REGEX/TEXT/g

Reemplaza todas las apariciones de la expresión regular REGEX por TEXT en la línea actual. Acepta la misma sintaxis del comando sed, incluidas las direcciones.

:!

Ejecutar el comando de shell especificado a continuación.

:quit o :q

Salir del programa.

:quit! o :q!

Salir del programa sin guardar.

:wq

Guardar y Salir.

:exit o :x o :e

Guardar y salir, si es necesario.

:visual

Volver al modo de navegación.

El programa estándar vi es capaz de realizar la mayoría de las tareas de edición de texto, pero se puede usar cualquier otro editor no gráfico para editar archivos de texto en el entorno de shell.

Tip

Los usuarios novatos pueden tener dificultades para memorizar todas las teclas de comando de vi a la vez. Las distribuciones que adoptan vim también tienen el comando vimtutor, que usa vim en sí para abrir una guía paso a paso de las principales actividades. El archivo es una copia editable que se puede utilizar para practicar los comandos y progresivamente acostumbrarse a ellos.
Se aconseja al alumno que práctique con el editor Vim ya que es el único que va a encontrar en instalaciones UNIX y GNU/Linux. Esto es debido a que cualquier software añadido (p.e editores más sencillos de manejar) implica la inclusión de software no necsario y por tanto problemas de mantenimiento y agujeros de seguridad. Aquí puede enlazar con una extensa y completa guía en español de este mágnífico editor.

Editores alternativos

Los usuarios que no estén familiarizados con vi pueden tener dificultades para adaptarse a él, ya que su funcionamiento no es intuitivo. Una alternativa más simple es GNU nano, un pequeño editor de texto que ofrece todas las funciones básicas de edición de texto como deshacer/rehacer, colorear sintaxis, búsqueda y reemplazo interactivos, sangría automática, números de línea, finalización de palabras, bloqueo de archivos, respaldo de archivos y apoyo a la internacionalización. A diferencia de vi, todas las pulsaciones de teclas se insertan en el documento que se está editando. Los comandos en nano se dan usando la tecla Ctrl o la tecla Meta (dependiendo del sistema, Meta es Alt o ⌘).

Ctrl-6 o Meta-A

Iniciar una nueva selección. También es posible crear una selección presionando Shift y moviendo el cursor.

Meta-6

Copia la selección actual.

Ctrl-K

Cortar la selección actual.

Ctrl-U

Pegar el contenido copiado.

Meta-U

Deshacer.

Meta-E

Rehacer.

Ctrl-\

Reemplazar el texto en la selección.

Ctrl-T

Iniciar una sesión de revisión ortográfica para el documento o la selección actual.

Emacs es otro editor de texto muy popular para el entorno de shell. Mientras que el texto se inserta simplemente escribiéndolo, como en nano, la navegación a través del documento es asistida por comandos de teclado, como en vi. Emacs incluye muchas características que lo convierten en algo más que un editor de texto. También es un IDE (entorno de desarrollo integrado) capaz de compilar, ejecutar y probar programas. Emacs se puede configurar como cliente de correo electrónico, noticias o RSS, lo que lo convierte en una auténtica suite productiva.

El propio shell ejecutará un editor de texto predeterminado, generalmente vi, cada vez que sea necesario. Este es el caso, por ejemplo, cuando se ejecuta crontab -e para editar cronjobs. Bash usa las variables de sesión VISUAL o EDITOR para encontrar el editor de texto predeterminado para el entorno de shell. Por ejemplo, el comando export EDITOR=nano define nano como el editor de texto predeterminado en la sesión de shell actual. Para que este cambio sea persistente en todas las sesiones, el comando debe incluirse en ~/.bash_profile.

Ejercicios Guiados

  1. vi se usa principalmente como editor para archivos de configuración y código fuente, donde la sangría ayuda a identificar secciones de texto. Una selección se puede sangrar a la izquierda presionando < y a la derecha presionando >. ¿Qué teclas deben presionarse en modo normal para sangrar la selección actual tres pasos a la izquierda?


  2. Se puede seleccionar una línea completa presionando V en el modo normal vi. Sin embargo, también se incluye el carácter de nueva línea de terminación. ¿Qué teclas se deben presionar en modo normal para seleccionar desde el carácter inicial hasta el carácter de nueva línea, pero sin incluirlo?


  3. ¿Cómo debería ejecutarse vi en la línea de comando para abrir ~/.bash_profile y saltar directamente a la última línea?


  4. ¿Qué teclas se deben presionar en el modo normal vi para eliminar caracteres desde la posición actual del cursor hasta el siguiente carácter de punto?


Ejercicios Exploratorios

  1. vim permite seleccionar bloques de texto con ancho arbitrario, no sólo secciones con líneas completas. Al presionar Ctrl+V en modo normal, se realiza una selección moviendo el cursor hacia arriba, abajo, izquierda y derecha. Con este método, ¿cómo se eliminaría un bloque que comienza en el primer carácter de la línea actual, que contiene las siguientes ocho columnas y cinco líneas de texto?


  2. Una sesión vi fue interrumpida por una falla de energía inesperada. Cuando se vuelve a abrir el archivo, vi pregunta al usuario si desea recuperar el archivo de intercambio (una copia automática realizada por vi). ¿Qué debe hacer el usuario para descartar el archivo de intercambio?


  3. En una sesión de vim, una línea fue previamente copiada al registro l. ¿Qué combinación de teclas registraría una macro en el registro a para pegar la línea en el registro l inmediatamente antes de la línea actual?


Resumen

Esta lección cubre el editor de texto estándar para el entorno de shell de Linux: el editor vi. Aunque intimida al usuario desconocido, vi tiene características que lo convierten en una buena opción para la edición de texto técnica y no técnica. La lección pasa por los siguientes pasos:

  • Uso básico de vi y funciones útiles.

  • ¿Qué es vim? - el vi mejorado - y otros editores alternativos.

  • ¿Cómo definir el editor de texto predeterminado para el entorno de shell?

Los comandos y procedimientos abordados fueron:

  • Editor vi y su versión mejorada vim.

  • Edición de texto básica en vi.

  • Editores alternativos emacs y nano.

Respuestas a los ejercicios guiados

  1. vi se usa principalmente como editor para archivos de configuración y código fuente, donde la sangría ayuda a identificar secciones de texto. Una selección se puede sangrar a la izquierda presionando < y a la derecha presionando >. ¿Qué teclas deben presionarse en modo normal para sangrar la selección actual tres pasos a la izquierda?

    Las teclas 3<, es decir, tres pasos a la izquierda.

  2. Se puede seleccionar una línea completa presionando V en el modo normal vi. Sin embargo, también se incluye el carácter de nueva línea de terminación. ¿Qué teclas se deben presionar en modo normal para seleccionar desde el carácter inicial hasta el carácter de nueva línea, pero sin incluirlo?

    Las teclas 0v$h, que significan 0 (“saltar al inicio de una línea”), v (“iniciar la selección de caracteres”), $ (“ir al final de la línea”) y h (“retroceder una posición”).

  3. ¿Cómo debería ejecutarse vi en la línea de comando para abrir ~/.bash_profile y saltar directamente a la última línea?

    El comando vi + ~/.bash_profile abrirá el archivo y colocará el cursor en su última línea.

  4. ¿Qué teclas se deben presionar en el modo normal vi para eliminar caracteres desde la posición actual del cursor hasta el siguiente carácter de punto?

    Las teclas dt, que significan d (“iniciar eliminación”), t (“saltar al siguiente carácter”) y . (carácter de punto).

Respuestas a ejercicios exploratorios

  1. vim permite seleccionar bloques de texto con ancho arbitrario, no sólo secciones con líneas completas. Al presionar Ctrl+V en modo normal, se realiza una selección moviendo el cursor hacia arriba, abajo, izquierda y derecha. Con este método, ¿cómo se eliminaría un bloque que comienza en el primer carácter de la línea actual, que contiene las siguientes ocho columnas y cinco líneas de texto?

    La combinación 0, Ctrl-V y 8l5jd seleccionará y eliminará el bloque correspondiente.

  2. Una sesión vi fue interrumpida por una falla de energía inesperada. Cuando se vuelve a abrir el archivo, vi pregunta al usuario si desea recuperar el archivo de intercambio (una copia automática realizada por vi). ¿Qué debe hacer el usuario para descartar el archivo de intercambio?

    Presione d cuando se lo solicite vi.

  3. En una sesión de vim, una línea fue previamente copiada al registro l. ¿Qué combinación de teclas registraría una macro en el registro a para pegar la línea en el registro l inmediatamente antes de la línea actual?

    La combinación qa"lPq, que significa q (“iniciar grabación de macro”), a (“asignar registro a a macro”), l (“seleccionar texto en registro l”), P (“pegar antes de la línea actual”) y q (“finalizar grabación macro”).

© 2020 Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://asir.sudo.es/docnux/learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

Siguiente lección

104.1 Creación de particiones y sistemas de archivos (104.1 Lección 1)

Leer la próxima lección

© 2020 Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://asir.sudo.es/docnux/learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

LPI es una organización sin fines de lucro.

Linux Professional Institute (LPI) es la organización global de certificación y apoyo académico para profesionales de código abierto. Con más de 200,000 titulares de certificación, es el primer y más grande organismo de certificación no comercial del mundo para Linux y Open Source. LPI cuenta con profesionales certificados en más de 180 países, realiza exámenes en varios idiomas y tiene cientos de socios de capacitación.

Nuestro propósito es hacer que las oportunidades económicas y creativas estén disponibles para todos, haciendo que el conocimiento de código abierto y la certificación sea universalmente accesible.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contáctenos
  • Política de privacidad y cookies

¿Detecta un error o desea ayudar a mejorar esta página? Por favor háznoslo saber.

© Copyright 1999-2020 The Linux Professional Institute Inc. Todos los derechos reservados.