4.2 Temática de la Guía Taller Una vez que empiece a ver directorios con el
comando ls –la, puede ser facil perderse u
olvidar el nombre de la carpeta actual,
• El shell o interprete de comandos
recomendamos que utilice este comando muy
• Trabajando con Archivos y útil para saber donde se encuentra.
Directorios
• Cambiar los permisos de ficheros y $pwd
directorios
• Patrones de englobamiento del 4.4.3 Cambiar de Directorios
shell
• Redirecciones Esta es una operación sencilla utilice estos
• Tuberías ejemplos:
• Compresión y Descompresión
• Resumen de Comandos útiles $cd /home
$cd ..
$cd /usr/var/
$cd /var/ww/html
4.3 Introducción $cd ../../etc/X11
La ventaja principal del shell es el número de
4.4.4 Localizar Ficheros
utilitarios existentes: hay miles de ellos, y cada
uno está dedicado a una tarea en particular.
A menudo necesita buscar desde el interprete
Solo veremos un pequeño número de ellos
de comandos “archivos” y sus rutas, para
aquí. Una de las ventajas principales de Unix
poder realizar esta operación debería de estar
es la capacidad de combinar estos utilitarios,
esta actualizada la base de datos.
como veremos más adelante.
$updatedb
4.4 El shell
Ahora puede buscar
Se sugiere muchas veces a los usuarios
trabajar con el indicador de comandos shell, $locate archivo
por que es más rápido ejecutar los comandos
(Ver apartado 4.11) 4.5. Trabajando con Archivos y
Directorios
Algunas opciones:
$cat prueba.txt
-f: Fuerza el movimiento de archivos -- ninguna
4.5.2 Copiando Archivos advertencia en caso de que se esté sobre-
escribiendo un archivo que ya existe durante
La opción más sencilla es esta: la operación.
-i: La opción contraria -- pedir confirmación al
$cp archivo1 archivo2 usuario antes de sobre-escribir un archivo
existente.
Con opciones. Estas son las más utilizadas: -v: Modo verboso, reportar todos los cambios.
Algunos ejemplos:
-R: Copiar recursivamente; obligatoria para
copiar un directorio, incluso uno vacío. $mv -i /tmp/pics/*.gif . : Mover todos los
-i: Pedir confirmación antes de sobre-escribir archivos del directorio /tmp/pics/ cuyos
cualquier archivo. nombres terminan en .gif al directorio corriente
-f: Lo opuesto de -i, reemplazar cualquier (.), pidiendo confirmación antes de sobre-
archivo existente sin pedir confirmación escribir cualquier archivo existente.
alguna.
-v: Modo verboso, reporta todas las acciones $mv pepe pupu: Renombrar el archivo pepe
llevadas a cabo por cp. como pupu.
$cp pepe pupu: Hace una copia del archivo Entre las opciones, se encuentran:
pepe con el nombre pupu en el directorio
corriente. -r, o -R: Borrar recursivamente. Esta opción es
obligatoria para borrar un directorio, vacío o
4.5.2 Renombrando y Moviendo Archivos no. Sin embargo, también existe el comando
rmdir para borrar directorios vacíos.
-i: Pedir información antes de cada supresión. carpetas dentro de ejemplo, pero sin
Se recomienda hacer un alias del comando rm confirmación.
por rm -i en su shell, y de la misma forma para
los comandos cp y mv. 4.6 Cambiar los permisos de ficheros y
-f: La opuesta de -i, fuerza la supresión de los directorios
archivos o directorios, incluso si el usuario no
tiene derecho de escritura sobre los archivos. Es importante revisas la documentación de
chmod, chown y chgrp, son los comandos que
Algunos ejemplos: utilizaremos
La cuarta columna 4348, nos dice el tamaño Da permisos rwx a user, rx a group y ninguno
del fichero. a others
La quinta columna Nov 24 16:19, nos dice cual Existe otro método que utiliza números, en vez
es la fecha y hora de la última modificación. de letras para asignar permisos, la siguiente
tabla nos puede ayudar un poco a comprender
La sexta columna test, nos dice cual es el esta manera:
nombre del fichero/directorio.
r w x VALOR DECIMAL
En resumen, el fichero test de nuestro ejemplo
tiene los siguientes permisos: 000 0 (000 binario es 0 en decimal)
001 1 .........
Usuario “pepito” puede leer, escribir/modificar, 010 2 .........
y ejecutar el fichero test. 011 3 .........
100 4 (100 binario es 4 en decimal)
Grupo “trabajo” puede leer, y ejecutar pero no 101 5 .........
escribir/modificar. 110 6 .........
111 7 (111 binario es 7 en decimal)
Los demás usuarios no pueden hacer nada, ni
leerlo, ni escribir/modificar, ni ejecutarlo.
1 significa activado y 0 desactivado, o sea 101
4.6.2 Cambiar Permisos , Dueño y Grupo activa r y x, y desactiva w.
Para cambiar el dueño del fichero: Sabiendo esto solo tenemos que usar el valor
decimal, un ejemplo aclarara esto.
$chown usuario fichero
$chmod 750 test
Para cambiar el grupo del fichero: da permisos rwx al usuario (7=111)
da permisos r-x al grupo (5=101)
$chgrp grupo fichero da permisos --- a los demas (0=000)
Para cambiar los permisos se utiliza el 4.7 Patrones de englobamiento del shell
comando:
Cuando Ud. ingresa un comando como ls *.txt
$chmod permisos fichero y presiona Intro, la tarea de encontrar cuales
archivos se corresponden con el patrón *.txt
Los permisos se pueden especificar de no la realiza el comando ls, sino el shell en sí
diferentes maneras, ejemplos: mismo.
Esto significa que la salida estándar de este También puede ser útil redirigir los errores
comando (1) se redirecciona (>) al archivo estándar. Por ejemplo, Ud. quiere saber a
denominado lista_de_archivos. El operador > cuales directorios de /shared no tiene acceso:
es el operador de redirección de la salida. Si el una solución es listar este directorio
archivo de redirección no existe, se crea, pero recursivamente y redirigir los errores a un
si existe se sobre-escribe su contenido. Sin archivo, mientras no se muestran por el canal
embargo, es el descriptor predeterminado que de salida estándar:
redirecciona este operador es la salida
estándar y no es necesario especificarla en la $ls -R /shared >/dev/null 2>errores
línea de comandos. Ud. podría haber escrito
simplemente: lo que significa que se redireccionará la salida
estándar (>) a /dev/null, un archivo especial
$ ls images/*.gif >lista_de_archivos donde todo lo que escribe se pierde (es decir
que, como efecto secundario, no se muestra la
y el resultado será exactamente el mismo. salida estándar) y el canal de error estándar
Luego, Ud. puede mirar el archivo usando un (2) se redirecciona (>) al archivo errores.
visualizador de archivos de texto tal como less.
4.9 Tuberias
Imagine ahora que Ud. quiere saber cuantos
de estos archivos hay. En vez de contarlos a Las tuberías (pipes, en inglés) son de alguna
mano, Ud. puede usar el utilitario denominado forma, una combinación de redirecciones de la
wc (Word Count, «contador de palabras») con entrada y la salida. Su principio es el de un
la opción -l, que escribe en la salida estándar tubo, de aquí el nombre: un proceso envía
el número de líneas en el archivo. Una datos por un extremo del tubo y otro proceso
solución es la siguiente: lee los datos en el otro extremo. El operador
de la tubería es |. Volvamos al ejemplo de la
$wc -l 0<lista_de_archivos lista de archivos. Suponga que Ud. quiere
encontrar directamente cuantos archivos hay
y esto da el resultado deseado. El operador < sin tener que almacenar la lista en un archivo
es el operador de redirección de la entrada, y temporal, entonces Ud. usa el comando
similarmente el descriptor redirigido siguiente:
predeterminadamente es el de la entrada
estándar, es decir, 0, y Ud. simplemente tiene $ls images/*.gif | wc -l
que escribir la línea:
lo cual significa que la salida estándar del
$wc -l <lista_de_archivos comando ls (es decir, la lista de archivos) se
redirecciona a la entrada estándar del
Suponga ahora que Ud. quiere consultar esta comando wc. Ud. obtiene así, el resultado
lista, quitar todas las «extensiones» de los deseado.