¿PORQUE TRABAJAR EN LINUX ?

Linux es generalmente mas barato que los otros sistemas operativos
(o al menos no mas caro) y con frecuencia es menos problematico que algunos sistemas comerciales.
Puede que no sea el mejor sistema para sus aplicaciones en particular, pero para alguien que esta
interesado en utilizar las aplicaciones Unix disponibles para Linux, se trata de un sistema de alta
"performance".

OPERADORES


Hay una cierta cantidad de operadores; aqui hay una lista, en orden de prioridad decreciente.
n( expr n)
Fuerza el orden de prioridad. Los parentesis deben, por supuesto, estar entre comillas, ya que
tambien son muy signi cativos para el interprete de comandos.
! expr
-not expr
Cambia el verdadero valor de la expresion, esto es, si expr es verdadera, se vuelve falsa. El signo
de exclamacion no tiene que ser precedido de escape, porque esta seguido por un espacio en
blanco.
expr1 expr2
expr1 -a expr2
expr1 -and expr2
Todas corresponden con la operacion logica AND. El caso mas comun es el primero, en el cual
esta implicita. expr2 no se evalua, si expr1 es falsa.
expr1 -o expr2
expr1 -or expr2
corresponden a la operacion logica OR. expr2 no es evaluada, si expr1 es verdadera.
expr1 , expr2
es la declaracion de lista; ambas expr1 y expr2 se evaluan (junto con todos los efectos secundarios,
por supuesto!), y el valor nal de la expresion es el de expr2 .

EJEMPLOS
Si, find tiene demasiadas opciones, lo se. Pero, hay un monton de casos preparados que valen la
pena recordar, porque son usados muy a menudo. Veamos algunos de ellos.
$ find . -name foo\* -print
encuentra todos los nombres de chero que empiezan con foo. Si la cadena de caracteres esta
incluida en el nombre, probablemente tiene mas sentido escribir algo como \"*foo*"", en vez de
\foo".
$ find /usr/include -xtype f -exec grep foobar \
/dev/null {} \;
Es un grep ejecutado recursivamente que empieza del directorio /usr/include. En este caso,
estamos interesados tanto en cheros regulares como en enlaces simbolicos que apuntan a cheros
regulares, por tanto el test \-xtype". Muchas veces es mas simple evitar especi carlo, especialmente
si estamos bastante seguros cuales cheros binarios no contienen la cadena de caracteres deseada.
(>Y por que el /dev/null en el comando? Es un truco para forzar al grep a escribir el chero del
nombre donde se ha encontrado un emparejamiento. El comando grep se aplica a cada chero con
una invocacion diferente, y, por tanto no cree que sea necesario mostrar a la salida el nombre del
chero. Pero ahora hay dos cheros, esto es: find es un comando que consume mucho tiempo, ya que tiene que acceder
a cada uno de los nodos-i del sistema para realizar su operacion. Por lo tanto, es sabio combinar
cuantas operaciones sean posibles en una unica invocacion de find, especialmente en las tareas de
`mantenimiento interno' que usualmente se administran mediante un trabajo de la tabla de tareas
plani cadas. Un ejemplo informativo es el siguiente: supongamos que queremos borrar los cheros
que acaban en .BAK y cambiar la proteccion de todos los directorios a 771 y todos los cheros
que acaban en .sh a 755. Y quizas temgamos montado el sistema de cheros NFS en un enlace
telefonico, y no querramos examinar los cheros ahi. (>Por que escribir tres comandos diferentes?
La manera mas efectiva para realizar la tarea es esta:
$ find . \( -fstype nfs -prune \) -o \
\( -type d -a -exec chmod 771 {} \; \) -o \
\( -name "*.BAK" -a -exec /bin/rm {} \; \) -o \
\( -name "*.sh" -a -exec chmod 755 {} \; \)
Parece feo (
subyacente es bastante sencilla. Recuerde: lo que se hace es una evaluacion verdadero/falso; el
comando introducido es solo un efecto secundario. Pero esto signi ca que se ejecuta solo si find
puede evaluar la parte ejecutable de la expresion, esto es solo si la parte izquierda de la subexpresion
se evalua como verdadera. Asi, si por ejemplo el chero considerado en el momento es un directorio
entonces el primer ejecutable se evalua y el permiso del nodo-i se cambia a 771; de otra manera
olvida todo y pasa a la siguiente subexpresion. Probablemente, es mas facil verlo en la practica que
escribirlo; pero despues de un momento, llegara a ser una cosa natural para Vd.

No hay comentarios:

Publicar un comentario