Dominando el Editor Vi y la Línea de Comandos Unix: Redirección, Tuberías y Utilidades Esenciales
Clasificado en Informática
Escrito el en
español con un tamaño de 4,71 KB
Editor Vi: Fundamentos y Modos de Operación
El sistema UNIX incorpora un editor de texto fundamental para facilitar la interacción del usuario. Al editar un fichero utilizando Vi, este trabaja con una copia del fichero, situándola en un buffer temporal. De esta manera, todas las modificaciones se realizan sobre esta copia y solo se actualizan en el fichero original al guardarlo.
Cuando se ejecuta Vi, se puede trabajar en los siguientes modos principales:
Modo Comando
En este modo, la pulsación de las teclas se interpreta como órdenes para manipular el texto o el cursor.
- i: Insertar texto en la posición actual del cursor.
- I: Insertar texto al comienzo de la línea actual.
- a: Añadir texto a la derecha del cursor.
- A: Añadir texto al final de la línea actual.
- o: Abrir una nueva línea debajo de la actual e insertar texto.
- O: Abrir una nueva línea encima de la actual e insertar texto.
- dd: Borrar la línea actual.
- 0 (cero): Mover el cursor al inicio de la línea actual.
- $: Mover el cursor al final de la línea actual.
Modo Texto (Inserción)
En este modo, la pulsación de las teclas se interpreta directamente como texto a insertar. Los cursores permiten desplazarse dentro del texto.
Modo de Ejecución de Comandos (Ex)
Se accede a este modo pulsando la tecla Esc seguida de :. Permite ejecutar comandos avanzados de Vi.
- :w: Guardar los cambios en el fichero.
- :w [nombre_fichero]: Guardar los cambios en un nuevo fichero con el nombre especificado.
- :q: Salir de Vi, solo si no hay modificaciones pendientes.
- :x: Guardar los cambios y salir de Vi.
- :q!: Salir de Vi sin guardar los cambios, forzando la salida.
Para salir sin guardar los cambios, la secuencia correcta es: Esc seguido de :q!.
Redireccionamiento, Tuberías (Pipes) y Filtros en Sistemas Unix/Linux
El objetivo principal de estas herramientas es la interconexión eficiente de procesos, permitiendo que la salida estándar de un comando pueda ser redirigida a la entrada de otro comando, a un fichero o a cualquier dispositivo.
A continuación, se presentan algunos comandos de filtro comunes que se utilizan en conjunto con tuberías y redireccionamientos:
- wc (word counter): Cuenta líneas, palabras y caracteres. Opciones:
-l(líneas),-c(caracteres),-w(palabras). - head: Muestra las primeras 10 líneas de un fichero por defecto. Se puede especificar el número de líneas con
-n. - tail: Muestra las últimas 10 líneas de un fichero por defecto. Se puede especificar el número de líneas con
-n.
Encadenamiento de Comandos en la Línea de Comandos
Además de los filtros y tuberías, se pueden encadenar varios comandos en la misma línea utilizando operadores específicos:
- ; (punto y coma): Separa comandos que se ejecutan de forma secuencial, independientemente del éxito del anterior.
- && (AND lógico): Ejecuta el segundo comando solo si el primero finaliza correctamente (código de salida 0).
- || (OR lógico): Ejecuta el segundo comando solo si el primero no finaliza correctamente (código de salida distinto de 0).
- & (ampersand): Ejecuta el comando precedente en segundo plano (background), permitiendo al usuario continuar trabajando en la terminal.
Utilidades para la Manipulación y Comparación de Ficheros
- sort: Ordena las líneas de uno o varios ficheros de texto según criterios específicos (alfabético, numérico, etc.).
- diff (para ficheros de texto): Muestra las diferencias línea por línea entre dos ficheros de texto.
- cmp (para cualquier tipo de fichero): Compara dos ficheros byte a byte y reporta la primera diferencia encontrada.
- cut: Extrae secciones (caracteres, campos) de cada línea de un fichero, utilizando delimitadores o posiciones específicas.
- paste: Combina líneas correspondientes de múltiples ficheros, fusionándolas en una única salida estándar.