Saludos a mis lectores,
Dictaré un taller de Shell Script en vivo transmitido vía OpenFuture Solutions (www.openfs.com.ec)
Fecha: Martes 12 de Junio del 2009
Hora: 19:00
Click aquí para entrar a la página donde se transmitirá.
Editando archivos
A la hora de editar archivos de texto en la consola de un sistema UNIX la mejor opción es el comando vi.
Modo de uso:
vi rutaArchivo
vi tiene dos modos: modo de edición y modo de comandos.
El modo de edición permite modificar el contenido de un archivo como insertar o borrar caracteres y el modo de comandos permite ingresar comandos de vi como copiar, pegar, guardar, etc.
El programa vi se inicia por defecto en modo de comandos, a continuación se muestra una lista de los comandos más usados.
Comandos de edición de texto en vi
Comando |
Descripción |
i |
Inserta texto antes del carácter sobre el cual se encuentra el cursor (cambia al modo de edición) |
I |
Inserta texto al inicio de una línea (cambia al modo de edición) |
a |
Inserta texto después del carácter sobre el cual se encuentra el cursor (cambia al modo de edición) |
A |
Inserta texto al final de una línea (cambia al modo de edición) |
yy |
Copia una línea de texto |
p |
Pega una línea de texto |
dd |
Corta o elimina una línea de texto |
o |
Inserta una línea en blanco después de la línea en la que se encuentra el cursor (cambia al modo de edición) |
O |
Inserta una línea en blanco antes de la línea en la que se encuentra el cursor (cambia al modo de edición) |
r |
Reemplaza un carácter (se presiona r y luego se ingresa el carácter deseado) |
R |
Inserta texto poniendo el cursor en modo de sobre-escritura (cambia al modo de edición) |
Comandos para la navegación en el archivo
Comando |
Descripción |
j |
Desplaza el cursor hacia abajo |
k |
Desplaza el cursor hacia arriba |
h |
Desplaza el cursor hacia la izquierda |
l |
Desplaza el cursor hacia derecha |
gg |
Desplaza el cursor hacia una línea indicada, si no digitamos algún número antes de usar este comando,entonces desplazará el cursor al inicio del archivo. Ej: si deseamos dirigirnos a la línea 100 escribimos 100gg |
G |
Es equivalente a gg, solo que si no lo predecimos de algún número, entonces desplazará el cursor al final del archivo. |
0 |
Desplaza el cursor al inicio de la línea actual. |
$ |
Desplaza el cursor al final de la línea actual. |
Comandos útiles para la manipulación de vi
Comando |
Descripción |
ZZ |
Guarda los cambios y sale del editor |
:w |
Guarda los cambios en el archivo |
:wq |
Es equivalente al comando ZZ |
:/ |
Busca texto en el archivo. Ej: si deseamos buscar la palabra hola en el archivo usamos el comando :/hola y luego presionamos ENTER, se puede navegar entre las coincidencias encontradas usando n (siguiente) y N (anterior). |
:q |
Permite salir del editor si no se han realizados cambios en el archivo. |
:q! |
Salida de modo forzado, sale del editor sin guardar los cambios realizados al archivo. |
:! |
Permite ingresar un comando en el shell desde vi. Ej: si deseamos conocer la hora escribimos :!date y luego presionamos ENTER |
Para cambiar del modo de edición al modo de comandos se presiona la tecla ESC.
Saludos a todos mis lectores 🙂
He decidido crear una sección dedicada a la creación de Scripts sobre la shell de sistemas basados en Unix, los cuales son muy importantes ya que nos ayudarán mucho en la administración de estos sistemas.
Espero les sea de utilidad…
Manos a la obra
Conceptos básicos
Antes de entrar en el entorno de programación Unix es necesario tener conceptos básicos sobre estos sistemas operativos y el manejo de la consola.
¿Que es Unix?
Unix es el núcleo de un sistema operativo de tiempo compartido, un programa que controla los recursos de un equipo y los asigna entre los usuarios. Unix no solo abarca el núcleo, sino también todos los programas esenciales para el manejo del mismo como: editores, compiladores, y lenguajes de comandos, etc.
¿Qué es la Shell?
Es un programa que sirve de interfaz de comunicación entre el usuario y el sistema operativo que espera órdenes escritas por el usuario.
Sistema de archivos en Unix
En Unix todo funciona a base de archivos, todo lo que existe en Unix son archivos (directorios, drivers, ficheros, etc).
El sistema de archivos Unix se organiza de manera Jerárquica.
En Unix los archivos tienen asociado un nombre, contenido, ubicación y datos como dueño, tamaño, fecha de modificación, etc.
Un directorio en Unix es un archivo que contiene información de otros archivos, ya que el sistema de archivos un directorio es una ubicación que puede almacenar archivos y otros directorios.
En los sistemas Unix todo es contenido por el directorio raíz /. Este directorio es el de más alta jerarquía.
Rutas
Las rutas son un método de referenciar archivos y directorios en un sistema de archivos las cuales señalan la ubicación exacta de los mismos.
La forma de recorrer un árbol de directorios en Unix se lo hace directorio a directorio separándolos con la barra invertida «/».
Existen 2 formas de representar rutas en Unix, de manera absoluta y relativa.
Ruta absoluta: Señala la posición de un archivo o directorio desde el directorio raíz.
Ejemplo: /home/leo/Escritorio/carpeta1/
Ruta Relativa: Señala la posición de un archivo o directorio desde la ubicación actual.
Ejemplo:
Nos encontramos en /home ¿cuál es la ruta relativa a /home/leo/Escritorio/carpeta1?
La ruta relativa es leo/Escritorio/carpeta1
En las rutas relativas se usan dos representaciones especiales a directorios ./ y ../, el primero (./) hace referencia al directorio actual y el segundo (../) hace referencia al directorio superior. Veamos algunos ejemplos:
Estamos ubicados en /home/leo/Escritorio/carpeta1 ¿cuál es la ruta relativa a /home/leo/Escritorio y a /home/leo?
La ruta relativa a /home/leo/Escritorio es ../
La ruta relativa a/home/leo es ../../
Nótese que en el caso de la ruta relativa a /home/leo desde /home/leo/Escritorio/carpeta1 ésta fue ../../ porque se indica que es el directorio superior al directorio superior de carpeta1