Muchas ocasiones nos toca hacer un pequeño script  en pantalla para ejecutar alguna operación que puede ser automatizada , el editor "vi" 
No voy a entrar mucho a detalle en esto pero daré algunas tips que pueden ayudarnos 
1. en el editor vi , en ocasiones es necesario realizar búsquedas  se hacen con la / 
2. Para ejecutar algún comando  de sistema operativo son salir se realiza con !
3. para ejecutar el mismo comando sin repetir la instrucción !!
4. Para hacer referencia al nombre del script  utilizamos  %
5. si queremos correr el script sin salirmos hacemos lo siguiente !% 
6. Para grabar utilizamo la w
7. para grabar y salir usarmos x
8. para moverte al principio del archivo es con 1G
9. Para moverte al final del archivo es G
10. Para moverte al principio de la linea es 0
11. Para moverte al final de la linea es $
12. Para hacer un UNDO es con la letra u
13. Para remplazar caracteres utilizamos la r o R 
14. Con dd, borras toda la linea , con D borras el resto de la linea a partir del cursor.
Con esos basicos pasos podemos hacer uso eficiente te nuestro editor. 
Uso de variables, el sistema tiene variables de ambiente  que no debemos cambiar , pero podemos, estas las podemos consultar 
# env
para asignar un valor a una variable lo hacemos de la sig manera
# hola="hola Mundo"
# echo $hola 
estas variables solo se pueden usar en el script que se realiza , para que puedan ser utilizadas por diferentes aplicaciones tendremos que exportarlas 
# export hola 
Podemos agrupar la ejecucion de comandos  utilizando paréntesis  
# (
> ls
> df
> who
> )
Control de ejecución de comandos , para esto utilizaremos 
#  ls; df; who;
esto ejecutara un comando despues de otro .
una ejecución de comandos la podemos dividir con \ 
# ls ;  \
> df; \
> who 
  
existe también el re direccionamiento de resultados .
# ls &   
manda el comando a back ground
Para redireccionar el resultado de un comando utilizamo  |  
# ps axu |  grep sendmail 
este comando redirecciona el resultado del ps al grep para ser filtrados 
# ps axu > resultado 
redirecciona el resultado del ps  a un archivo llamado resultado
# ps axu >>  resultado 
redirecciona el resultado y lo concatena con el resultado ya existente en el archivo 
# ps axu >/dev/null 2>&1
redirecciona el resultado a la nada (el resultado y el error ) &1 significa que utilizara el mismo archivo . 
el argumento 2> redirecciona los errores  así que podemos dividirlo 
# ps aux > resultado 2> errores 
tenemos también las condicionantes para ejecución de comandos  que utilizaremos  &&  y || 
tenemos el siguiente ejemplo 
# mv file.txt file2.txt && echo " Si se armo" 
el resultado es , si el comando fue ejecutado correctamente y con status 0 , enviara el mensaje "Si se armo"  en caso contrario enviara el error y no correrá el segundo comando 
# mv file.txt file2.txt || echo " ya lo habias echo " 
este enviara el mensaje si al ejecutar el primer comando se ejecuta correctamente pero su estatus es diferente de 0 o con error . 
haa pero surge la pregunta  como saber si es un 0 o 1 , cuando se ejecuta un comando el sistema guarda en la variable $?  el estatus de la ejecución del comando anterior 
 
ejemplo 
# ls a
# echo $?
Sentencia condicional if 
la estructura es 
if comando 
then 
   comando
   comando
   comando
elif comando
then
   comando
else 
   comando
     
fi 
un ejemplo sencillo de esto
if ls usuarios.txt > /dev/null 2>&1 
then
     echo " Ya  existe el archivo"
elif who > usuario.txt
     echo "Archivo creado
else
    echo "No se pudo crear"
if 
para auxiliarnos en la evaluación de expresiones utilizaremos el comando test 
el comando test regresa un 1 si la evaluación es verdadera y un 0 si es falsa  , este cuenta con   operadores  para hacer multiples evaluaciones   veamos alguna de ellas 
1.  exp1 -a  exp2  # ambas epreciones verdaderas
2.  !exp           # negar la expresion 
3.  exp1 -o  exp2  # es las expresion o logica 
4.  -n string      # si la cadena es diferente de 0
5.  -z string      # si la cadena es 0
6. cadena1 = cadena2 # compara 2 cadenas iguales
7. cadena1 != cadena2 # compara 2 cadenas diferentes
8.  val1 -eq val2  #  valores iguales
9.  val1 -ge val2  #   mayor o igual que
10  val1 -gt val2  #  el valor es mayor que
11  val1 -le val2  #  menor o igual  a
12.  val1 -lt val2  #  menor que 
13. val1 -ne val2  #  no son iguales
14.  archivo -ef archivo1  # 
15.  archivo -nt archivo1  # arvhivo es mas nuevo que
16.  archivo -ot archivo1  # archivo es mas viejo que
17.  -e archivo # el archivo existe
18.  -d archivo # existe y es directorio
19.  -f archivo # existe y es un archivo regular
20   -xwr archivo # cada una de las letras por separado indica que existe y es ejecutable , escribible, o lecura
Sentencia case  para evaluar multiples 
case $valor in
      valor) comando ;;
      valor1) comando ;;
       *)  valor_default ;;
esac
se utiliza como if anidados ..
miércoles, 3 de noviembre de 2010
Suscribirse a:
Enviar comentarios (Atom)
 
No hay comentarios:
Publicar un comentario