En esta sección estudiaremos comandos indispensables en el manejo de la consola de Unix. Así que comencemos de una vez 🙂
Paseando por el sistema de archivos.
Para movernos de un directorio a otro usamos el comando cd.
Modo de uso:
cd rutaDelDirectorio
Por ejemplo: si nos deseamos ir al directorio /home/user/docs/dir1/dir2 escribimos:
cd /home/user/docs/dir1/dir2
Usando rutas absolutas y relativas
Si estamos en /home/user/docs y deseamos movernos a /home/user/docs/dir1/dir2 escribimos:
cd dir1/dir2
Si estamos en /home/user/docs y deseamos movernos a /home/user podemos escribir
cd /home/user
ó
cd ..
Mostrando el contenido de un directorio.
Para mostrar el contenido de un directorio utilizamos el mandato ls.
Modo de uso:
ls [opciones] ruta
# ls /home/user/nombres
maria eva ana julio veronica
jaime ruth angel eduardo victoria
ls tiene muchas opciones pero las más usadas son -l y -a
la opción -l muestra el contenido del directorio en modo de lista mostrando los permisos, el propietario, el grupo propietario, el tamaño y la fecha de modificación de cada elemento contenido en el directorio, la opción -a muestra todos los elementos contenidos en el directorio, incluidos los archivos ocultos, el directorio actual y el superior (. y .. respectivamente).
Ejemplo:
# ls -l /home/user/ciudades
-rwxrwxrwx 1 root root 22534 mar 25 13:22 guayaquil
-rwxrwxrwx 1 root root 25531 mar 25 13:28 lima
-rwxrwxrwx 1 root root 32499 mar 25 12:12 quito
-rwxrwxrwx 1 root root 16483 mar 21 10:15 bogota
# ls -a /home/user/ciudades
. guayaquil quito
.. lima bogota
combinando estas dos opciones
ls -la /home/user/ciudades
drwxrwxr– 1 root root 8192 mar 25 13:22 .
drwxrwxr– 1 root root 4096 mar 25 13:22 ..
-rwxrwxrwx 1 root root 22534 mar 25 13:22 guayaquil
-rwxrwxrwx 1 root root 25531 mar 25 13:28 lima
-rwxrwxrwx 1 root root 32499 mar 25 12:12 quito
-rwxrwxrwx 1 root root 16483 mar 21 10:15 bogota
Copiando, moviendo y eliminando archivos.
Para copiar se usa el comando cp
Modo de uso:
cp [opciones] rutaOrigen rutaDestino
Ejemplo:
Si deseamos copiar el archivo copiame.txt que se encuentra en /home/user/dir1 a /home/user/respaldo/dir1 escribimos:
cp /home/user/dir1/copiame.txt /home/user/respaldo/dir1/
haciendo esto, se copiará el archivo a la ruta indicada con el mismo nombre, si queremos copiar este archivo con un nombre diferente , por ejemplo que el archivo copiame.txt se copie con el nombre copiado.txt se ejecuta:
cp /home/user/dir1/copiame.txt /home/user/respaldo/dir1/copiado.txt
también podemos copiar directorios y árboles de directorios enteros con la opción -pR
cp -pR /home/user/dir1 /home/user2/
Para mover archivos usamos el comando mv
Modo de uso:
mv rutaOrigen RutaDestino
Por ejemplo si deseamos mover un archivo llamado mueveme.mp3 de /home/user/music a /home/user/music/mp3 escribimos:
mv /home/user/music/mueveme.mp3 /home/user/music/mp3/mueveme.mp3
tambén podemos usar mv para renombrar archivos, por ejemplo si queremos cambiarle el nombre al archivo mueveme.mp3 a renombrado.mp3 escribimos:
mv mueveme.mp3 renombrado.mp3
Si deseamos mover un árbol de dierctorio completo usaremos la opción -vf
Para eliminar un archivo usamos elcomando rm
Modo de uso:
rm [opciones] rutaArchivo
Ejemplo:
Si deseamos eliminar un archivo llamado borrame.doc que se encuentra en /home/user/docs escribimos:
rm /home/user/docs/borrame.doc
Si deseamos que el sistema pida confirmación de cada archivo a borrar usamos la opción -i, si deseamos borrar un árbol de directorios o un directoio no vacío usamos laopción -rf
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