Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

26 sept 2013

Shell Script; Estructuras de Control


 Bash incluye lo que cualquier lenguaje de programación necesita, las comprobaciones condicionales y los ciclos.

Una comprobación(test) es (test en español se traduce como prueba), como su nombre lo dice simplemente una función que se usa para verificar que determinada condición se cumpla (o bien que no); Mientras que un ciclo es un conjunto de instrucciones que se repitan mientras o hasta que la condición se cumpla.

La estructura condicional sirve para comprobar si se ejecuta un bloque de código cuando se cumple una cierta condición. Pueden anidarse varias estructuras dentro del mismo bloques de código, pero siempre existe una única palabra fi para cada bloque condicional.

Lo más básico. If then:

La estructura básica de este condicional va de la siguiente manera

[color=#000000]if expresion;
    then
        bloque;
fi[/color]


Como podemos ver el if se cierra con fi que al parecer un juego de palabras es fácil de recordar. Así tenemos que si se cumple la condición entraría por el then y finalizaría. Veamos un ejemplo.

[color=#000000]#! /bin/bash

clear
read -p "Cuanto es 9 * 9 " res
mult=$(echo "9*9" | bc -l)
if test $res == $mult
    then
        echo "El resultado es correcto"
fi[/color]


Explicación: Como podemos ver este script al ser ejecutado nos pide el resultado de la multiplicación de 9 y 9 y lo guarda en la variable $res, luego utilizamos lo que vimos en el capitulo anterior de operaciones aritméticas con bc para declarar la variable $mult. Algunos dirán: “¿No era más fácil decir que $mult= 8?” pues si, pero de esta manera practicamos lo de las operaciones aritméticas, lo de guardar comandos en variables y además así me parece más divertido que un insípido 81. Luego de esto entramos en el condicional y decimos que si se cumple la condición (Que la variable $res es igual a la variable $mult) entonces (then) mostramos en pantalla el mensaje “El resultado es correcto”.

Como vemos donde comienza el condicional if utilizamos la función test que como dijimos anteriormente nos verifica si se cumple la condición. Otra manera de hacer esto sin el test seria:

[color=#000000]if [ $res == $mult
 ]
    then
        echo "El resultado es correcto"
fi[/color]


Nota: Como vemos los corchetes remplazan el test. Pero cuidado, es importante respetar los espacios, si no no funciona. If (espacio) [ (espacio) condición (espacio) ].

Ahora bien, para los que ya se han preguntado “¿Y que pasa si no doy el resultado que es?” Si dejamos el script como esta simplemente no hará nada. “Pero yo quiero que me responda si me equivoco”, ok, para eso tenemos el else y funciona de la siguiente manera.

[color=#000000]#! /bin/bash

clear
read -p "Cuanto es 9 * 9 " res
mult=$(echo "9*9" | bc -l)
if [ $res == $mult
 ]
    then
        echo "El resultado es correcto"
else
    echo "Te has equivocado, el resultado es $mult"
fi[/color]


En español seria algo como: Si (if) lo que tu escribiste por el terminal ($rest) es igual a lo que es el verdadero resultado de 9 * 9 ($mult) entonces (then) muestra el mensaje “El resultado es correcto” si no (else) muestra el mensaje “Te has equivocado, el resultado es el verdadero valor de 9*9 ($mult)”

Ahora vamos a ponerle algo más de sabor al asunto. ¿Que tal si la persona al poner un numero cercano al resultado verdadero nos diga que estamos cerca.? Vamos a ello

[color=#000000]#! /bin/bash

clear
read -p "Cuanto es 9 * 9 " res
mult=$(echo "9*9" | bc -l)
if [ $res == $mult ]
    then
        echo "El resultado es correcto"
elif [ $res == 80 ] || [ $res == 82 ]
    then
        echo "Estuviste cerca pero no"
else
    echo "Te has equivocado, el resultado es $mult"
fi[/color]


Lo que se ve nuevo aquí es el elif y dentro de este probamos si la variable $res es igual a 80 o igual a 82 para el o usamos el operador lógico || entonces en español seria algo como: si (if) la variable $res es igual a la variable $mult entonces (then) muestra el mensaje “El resultado es correcto” pero si (elif) la variable $res es igual a 80 o (||) aigual a 82 muestra el mensaje “Estuviste cerca pero no” si no se cumple ninguna de las condiciones (else) muestra el mensaje “Te has equivocado, el resultado es $mult (81)”.

Veamos otro ejemplo que comprueba si existe la ruta a un directorio y muestra lo que tiene..

[color=#000000]#! /bin/bash

clear
read -p "Ruta al directorio: " ruta
if [ -e $url ]
    then
        echo "Si es un directorio y contiene: "
        ls -l $ruta
else
    echo "No es un directorio"
fi[/color]


Explicación: Como siempre limpiamos la pantalla, solicitamos la ruta al directorio (Ejemplo: /var/www/joomla/) y la guardamos en la variable $ruta luego utilizamos -e para comprobar que la ruta al directorio existe y si se cumple la condición entonces muestra el mensaje “Si es un directorio y contiene: ” y a continuación con ls -l mostramos la lista de todo lo que contiene el directorio, sencillo ¿no?.

Case Esac

Este tipo de sentencia, seria al equivalente al swicht en lenguaje C. Como otro tipo de estructura seria el equivalente a una serie de if anidados, con estos podría obtener el mismo resultado, la diferencia es que usando la sentencia case, el algoritmo es mas ordenado y completo.

vamos a ver el mismo ejemplo de hace rato pero con case:

[color=#000000]#! /bin/bash

clear
read -p "Cuanto es 9 * 9 " res
case $res in
    81)
        echo "El resultado es correcto"
    ;;
    80182)
        echo "Estuviste cerca pero no"
    ;;
    *)
        echo "Te has equivocado, el resultado es 81"
    ;;
esac[/color]


Explicación: Igual que en el ejemplo anterior pedimos que se introduzca un número por la terminal y lo guardamos en la variable $res y básicamente decimos que en caso de que la variable $res sea 81 me muestre el mensaje “El resultado es correcto”, en caso de que sea 80 u 82 “Estuviste cerca pero no” y en caso de que sea otro numero “Te has equivocado, el resultado es 81” aquí vemos el uso del operador binario | para comprobar si la variable $res es 80 u 82. El asterisco * en este caso es para indicar todo lo demas.

El siguiente ejemplo nos dice que tipo de tecla hemos presionado.

[color=#000000]#! /bin/bash

clear
read -n 1 -p "Pulsa cualquier tecla " tecla
clear
case $tecla in
    [a-z,A-Z])
        echo "Has introducido una letra"
    ;;
    [0-9])
        echo "Has introducido un numero "
    ;;
    *)
        echo "Has introducido un caracter especial"
    ;;
esac[/color]


Explicación: con la opción -n del comando read delimitamos la cantidad de caracteres que se pueden ingresar a 1 y guardamos el valor en la variable $tecla luego decimos que encaso de que la tecla presionada este entre la a y la zeta, mayúscula o minúscula [a-z,A-Z] muestre el mensaje “Has introducido una letra”, en caso de que sea un numero del 0 al 9 [0-9] muestre el mensaje “Has introducido un numero” y en caso contrario * muestre el mensaje “ Has introducido un carácter especial”.

Select

Para no tener que estar haciendo tantos echo y tener nuestros scripts mas ordenados, el bash nos ofrece un comando bastante útil, se trata de select, veamos como funciona.

[color=#000000]select variable in opcion1 opcion2
    do
        case $variable in
            opcion1)
                comando
            ;;
            opcion2)
                comando
            ;;
            *)
                comando
            ;;
        esac
    done[/color]


Ahora en funcionamiento con el siguiente script que nos permite elegir entre las opciones listar o salir.

[color=#000000]#! /bin/bash

clear
dir="/var/www/"
select opcion in lista salir
    do
        case $opcion in
            lista)
                ls -l $dir
            ;;
            salir)
                break
            ;;
            *)
                echo "Opcion incorrecta"
            ;;
        esac
    done[/color]


Explicación: declaramos la variable $dir como la ruta al directorio de nuestro servidor local /var/www/ y solicitamos que se introduzca la opción que se desea (1 lista o 2 salir). Para ello select nos da el prompt #? luego generamos la condición en caso de que se introduzca 1 se hará una lista del directorio y en caso de que se introduzca 2 se saldrá del script en caso de que se presione otra tecla se muestra el mensaje “Opción incorrecta”.

Recuerdan nuestro script para saber si un directorio existe? Vamos a mejorarlo y darle opciones

[color=#000000]#! /bin/bash

clear
read -p "Ruta al directorio: " ruta
if [ -d $ruta ]
    then
        PS3="$ruta Si es un directorio. Escoge una opcion: "
        select opt in lista salir
            do
                case $opt in
                    lista)
                        ls -l $ruta
                        break
                    ;;
                    salir)
                        break
                    ;;
                    *)
                        echo "Opcion Incorrecta"
                    ;;
                esac
            done
else
    echo "$ruta No es un directorio"
fi[/color]


Explicación: Guardamos la ruta que obtenemos por consola en la variable $ruta, creamos la primera condición; si la variable $ruta es un directorio entonces muestra el mensaje “Si es un directorio. Escoge una opcion: “ la variable global PS3 es algo parecido al read -p, en otro capitulo lo explicaremos bien, por ahora sabemos que nos hace escoger entre las opciones 1 y 2, lista y salir respectivamente, en caso de que escojamos 1 hará una lista con ls -l de la ruta incluid en la variable $ruta y saldrá, en caso de que la opción se 2 saldrá y en caso contrario nos dará el mensaje “ Opcion Incorrecta”y nos tendremos que ingresar 1 o 2 para continuar ahora en caso de que en un principio la ruta que hayamos puesto en la variable $ruta no sea valida nos dirá que$ruta No es un directorio”.

El Clásico For

El ciclo for es ampliamente usado en programación en la mayoría de los lenguajes, en el cual por cada elemento en determinada variable se repetirán determinadas acciones, esto hasta que lo haya hecho con todos los elementos indicados, entonces el ciclo habrá terminado y solo entonces.

Se puede utilizar de las siguientes formas

[color=#000000]for i in var1 var2 var3 var4
    do
        echo "Esa es la variable $i"
    done[/color]


el valor de i se va sustituyendo por el valor de las variables en las que esta iterando así que el resultado seria

[color=#000000]Esta es la variable var1
Esta es la variable var2
Esta es la variable var3
Esta es la variable var4[/color]


Otra manera:

[color=#000000]for i in `seq 1 10` 
    do
        echo $i
    done[/color]


En este caso se pide iterar en los números comprendidos del 1 10 así que el bucle se ejecutara hasta llegar a 10 mostrando los números del 1 al 10

[color=#000000]for ((i=1;i<=20;i++))
    do
        echo "Prueba"
    done[/color]


Esta otra manera, que tambien es bastante usada en otros lenguajes, dice que la variable a evaluar es igual a x numero y menor o mayor que otro numero y se manda a auto-incrementar o auto-disminuir. En este caso la variable $i es igual 1 pero menor que 20 y se manda a auto-incrementar lo cual repetirá el comando echo “Prueba” Hasta que la variable $i llegue a 20.

Veamos un ejemplo. Supongamos que tenemos 10 directorios en una carpeta con nombres 1, 2, 3, etc y en uno de esos directorios hay un archivo llamado prueba.txt. Hagamos un script para conseguir ese archivo y poder borrarlo

[color=#000000]#! /bin/bash

clear
for ((i=1;i<=10;i++))
    do
        if [ -e /home/santiago/prueba_sh/prueba/$i/prueba.txt ]
            then
                cd /home/santiago/prueba_sh/prueba/$i
                pwd
                select opt in borrar salir
                    do
                        case $opt in
                            borrar)
                                rm prueba.txt
                                break
                            ;;
                            salir)
                                break
                            ;;
                        esac
                    done
            fi

    done[/color]


Explicación: primero decimos que la variable $i que será nuestro contador es igual a 1 y menor o igual a 10, de esta manera nos iterara entre el 1 y el 10 luego la mandamos a auto-incrementarse con el operador ++ luego verificaremos que la ruta /home/santiago/prueba_sh/prueba/$i/prueba.txt sea valida, donde $i es el nombre del directorio y cuando se cumpla la condición entrara al directorio con cd mostrara la ruta con pwd y luego nos dará la opción de eliminar el archivo (1) o salir (2) si ingresamos 1 borrara el archivo con rm y saldrá del script, si presionamos 2 saldrá del script.

While

While es una instrucción de control que sirve para generar bucles, en los cuales grupos de instrucciones se ejecutan de forma repetida hasta que se cumpla una condición. Cabe destacar que while, primero comprobará si se cumple la condición y si se cumple y sólo si se cumple entonces pasará a ejecutar secuencialmente las instrucciones contenidas entre do y done.

Cada vez que se ejecuta un bucle completo (paso de bucle) vuelve a verificar si se cumple la condición antes de volver a ejecutar otro paso de bucle.

Ejemplo de uso:

[color=#000000]while [ condicion ]
    do
        accion
    done[/color]


Las acciones entre "do" y "done" se repetirán secuencialmente mientras se cumpla la "condición lógica". Cuando la "condición lógica" deje de ser verdadera, no se ejecutará ninguna "acción". Por ejemplo:

[color=#000000]#! /bin/bash

clear
limite=5
i=0
while [ $limite -ge $i ]
    do
        echo "Accion $i ejecutada"
        let i=$i+1
    done[/color]


Explicación: Primero guardamos en una variable $limite un valor numérico, en este caso 5, y le damos valor a la variable $i que sera nuestro contador. Decimos que mientras se cumpla la condición de que la variable $limite mayor o igual que la variable $i se mostrara el mensaje “ Accion $i ejecutada” y nuestro contador aumentara 1, el resultado de este script seria algo como:

[color=#000000]Accion 0 ejecutada
Accion 1 ejecutada
Accion 2 ejecutada
Accion 3 ejecutada
Accion 4 ejecutada
Accion 5 ejecutada[/color]


Vemos que cuando la variable $i llega a 5 muestra por ultima vez el mensaje y se detiene el script, esto es porque al aumentar 1 valor mas,$i pasa a ser igual a 6 y como ya dijimos $limite es igual a 5 esto quiere decir que la condición de que $limite sea mayor o igual a $i deja de cumplirse por lo tanto se sale del bucle.

Veamos el ejemplo de la serie fibonacci con while

[color=#000000]#! /bin/bash

clear
read -p "Limite: " num
a=1
b=1
count=1
echo "Serie Fibonacci"
while [ $count -le $num ]
    do
        echo $b
        let b=$b+$a
        let a=$b-$a
        let count=$count+1

    done
exit[/color]


Pedimos un numero entero para guardarlo en la variable $num como limite declaramos las variables $a y $b que serán igual a 1 y la variable $count que sera nuestro contador y sera igual a uno. Luego iniciamos el bucle y ponemos como condición para que la variable $count sea menor o igual que la variable $num, mientras esta condición se cumpla se mostrara el valor de $b luego $b sera igual a su valor mas el valor de $a y $a sera igual a $b menos su propio valor, $count sera igual a su valor mas uno y se repetirá esto hasta que el contador llegue al valor de $num. Digamos que $num es 10, entonces el resultado sera algo como esto:

[color=#000000]Serie Fibonacci
1
2
3
5
8
13
21
34
55
89[/color]


Until

Until es igual que while pero se diferencia en que ahora el bucle se ejecuta mientras la condición sea falsa.

[color=#000000]#! /bin/bash

clear
num=50
until [ $num -eq 76 ]
    do
        echo "numero: $num"
        num=`expr $num + 1`
    done[/color]


En este ejemplo declaramos la variable $num con valor 50 y decimos que hasta que $num sea igual a 76 mostrara “numero: $num y el valor de $num sera igual a su valor mas 1. Con esto obtendremos algo como esto.

[color=#000000]numero: 50
numero: 51
numero: 52
numero: 53
numero: 54
numero: 55
numero: 56
numero: 57
numero: 58
numero: 59
numero: 60
numero: 61
numero: 62
numero: 63
numero: 64
numero: 65
numero: 66
numero: 67
numero: 68
numero: 69
numero: 70
numero: 71
numero: 72
numero: 73
numero: 74
numero: 75[/color]


Vamos a ver un Script Interesante que se me ocurrió para quitarme la odiosa tarea de crear un archivo para cada script hecho para estos tutoriales con los comandos por consola o por la interfaz. Creé un script que solo me solicita el nombre del archivo para crearlo, escribir la primera linea con #! /bin/bash darle permisos de ejecución y abrirlo listo para editar.

#! /bin/bash

cd ~/prueba_sh/
clear
read -p "Nombre del archivo con su extensión: " fileName
if [ -e /home/santiago/prueba_sh/$fileName ]
then
echo "El archivo $fileName ya existe"
else
> $fileName
echo "#! /bin/bash" > $fileName
sudo chmod +x $fileName
gedit $fileName &
fi


Explicación: Me posiciono en el directorio donde estoy creando mis scripts que en este caso es prueba_sh, pido que se introduzca el nombre del archivo con todo y extensión y se guarda en la variable $fileName. Luego comprobamos si el archivo existe dentro del directorio en el que estamos creándolo, si existe se muestra el mensaje “ El archivo $fileName ya existe” si no procedemos a crear el archivo, le ponemos su primera linea #! /bin/bash pasamos a darle permisos de ejecución con chmod y lo abrimos con el editor gedit listo para trabajar en él.

Hasta aquí por ahora con todo esto de los condicionales y los bucles.. Espero que les sea de utilidad.

24 sept 2013

Shell Script; Las expresiones aritméticas y condicionales


Una expresión es una combinación de valores y operaciones que, al ser evaluados, entregan un valor.

El interprete bash soporta una gran variedad de expresiones en el desarrollo de programas, aquí veremos dichas expresiones.

1) Expresiones aritméticas:

A la hora de escribir un programa siempre se precisa de operaciones matemáticas básicas o complejas.

Aquí tenemos una lista de operaciones aritméticas:

Var++: Post-incremento de variable.
Var--: Post-decremento de la variable.
++Var: Pre-incremento de variable.
--Var: Pre-decremento de la variable.
+Expr: Más, numero positivo
-Expr: Menos, numero negativo
! Expr: Negación lógica
~ Expr: Negación binaria.
E1 ** E2 Exponente. E1 elevado a la E2.
E1 * E2: Multiplicación
E1 / E2: División.
E1 % E2: Resto.
E1 + E2: Suma
E1 E2: Resta.
Expr << N: Desplazamiento binario a la izquierda un numero (N) de veces.
Expr >> N: Desplazamiento binario a la derecha un numero (N) de veces.
E1 < E2: Menor que
E1 > E2: Mayor que
E1 <= E2: Menor o igual que
E1 >= E2: Mayor o igual que
E1 = E2: Igualdad.
E1 != E2: Desigualdad.
E1 & E2: Operación binaria Y
E1 ^ E2: Operación binaria O exclusiva
E1 | E2: Operación binaria O
E1 && E2: Operación lógica Y
E1 || E2: Operación Binaria O
E1 ? E2 : E3 Evaluación Lógica Si E1=cierto, devuelve E2; si no, E3
E1 Op= E2: Asignación normal con pre-operación.(*=, /=, %=, +=, -=, <<=, >>=, &=, ^ =, !=) Funciona como E1 = E1 Op E2
E1, E2: Operaciones independientes. Se ejecutan en orden.

Veamos ahora como podemos utilizar algunos operadores aritméticos para realizar algunas operaciones matemáticas básicas: suma resta multiplicación división y módulos.

Comando expr.

expr 10 + 2
#Resultado 12

expr 10 - 2
#Resultado 8

expr 10 * 2
#Resultado 20

expr 10 / 2
#Resultado 5

expr 10 % 2
#Resultado 0


También podemos hacerlo utilizando el comando echo de la siguiente manera:

echo $((10+2))
#Resultado 12

echo $((10-2))
#Resultado 8

echo $((10*2))
#Resultado 20

echo $((10/2))
#Resultado 5

echo $((10%2))
#Resultado 0


Nota: Los comandos expr y echo solo admiten y devuelven enteros, Es importante utilizar espacios para las operaciones con expr, notese la diferencia en el siguiente ejemplo


expr 2+2 #todo pegado
#devuelve 2+2

expr 2 + 2 #con espacios
#devuelve 4


Al utilizar el asterisco * para una operación de multiplicación con el comando expr es importante hacerlo con una barra invertida, si no, nos da error. Ejemplo


expr 2 * 5
#devuelve error

expr 2 * 5 #la barra invertida va antes del * pero aquí no se visualiza
#devuelve 10


otra manera de realizar estas operaciones es con bc que es una potente calculadora que viene instalada en muchas distribuciones GNU/Linux. Par usar bc tenemos dos formas:

bc

abre la calculadora.

Colocas la operación que necesitas realizar

5*5

Al pulsar enter te devolverá el resultado en este caso:

25

quit


con quit salimos.

La otra manera es la siguiente:

echo "5*5" | bc -l
#Resultado 25


En este contexto la segunda manera de usar bc nos podría resultar útil pues como ya sabemos es posible guardar salidas de comandos en variables por ejemplo

$var=$(echo  "6*8" | bc -l)
echo $var
#Resultado 48


Veamos ahora un par de ejemplos.

#! /bin/bash 

clear 
echo "Operaciones Matemáticas" 
read -p "Ingresa el primer valor " val1 
read -p "ingresa el operador bien sea + - / o * " opr 
read -p "Ingresa el segundo valor " val2 
echo "Estamos procesando" 
sleep 2 
res=$(echo "$val1$opr$val2" | bc -l) 

echo $res


Explicación:

Como asumo que ya se han leído los dos tutoriales anteriores solo diré, de las lineas 4, 5 y 6 que pedimos los valores que usaremos y los guardamos en variables, el comando sleep sirve para detener un poco la ejecución del script para dar la sensación de que nuestro “Complejisimo programa calculadora esta leyendo miles de lineas de código para dar un resultado” XD por ultimo guardamos en una variable $res el comando para realizar la operación con bc e imprimimos la variable $res

Una manera mas sencilla pero mas eficaz pues nos permitirá realizar operaciones mas complejas seria:

#! /bin/bash 

clear 
echo "Operaciones Matemáticas" 
read -p "Ingresa tu operación " opr 
echo "Estamos procesando" 
sleep 2 
echo "$opr" | bc -l


con este código podríamos ingresar directamente operaciones como (2*2)*(5*5)-99 y arrojaría 1 como resultado.

2) Expresiones Condicionales

Las expresiones condicionales son evaluadas por los mandatos internos del tipo test, dando como resultado un valor de cierto o de falso. Suelen emplearse en operaciones condicionales y bucles, aunque también pueden ser empleadas en órdenes compuestas.

Podemos dividir las expresiones condicionales en varios tipos según el tipo de parámetros o su modo de operación:

Expresiones con ficheros: que comprueba la existencia, el tipo, los permisos o la facha de archivos o directorios.

Expresiones comparativas numéricas
que evalúan la relación de orden numérico entre los parámetros.

Expresiones comparativas de cadenas
que establecen la relación de orden alfabético entre los parámetros.

a) Expresiones de ficheros.

Son expresiones condicionales que devuelven el valor de cierto si se cumple la condición especificada; en caso contrario da un valor de falso. Hay una gran variedad de expresiones relacionadas con fichero

lista de expresiones

-e Fich: El fichero existe
-s Fich: El fichero esta vacío
-f Fich: Es un Fichero Normal
-d Fich: Es un directorio
-b Fich: Es un dispositivo de bloques
-c Fich: Es un dispositivo de caracteres
-p Fich: Es una tubería
-h Fich:
-L Fich: Es un enlace simbólico
-S Fich: Es un socket de comunicaciones.
-t Fich: El descriptor esta asociado a una terminal
Fich1 -ef Fich2: Los dos ficheros son enlaces hacia el mismo archivo

La siguiente lista de condiciones de permiso comprueban si el usuario que realiza la comprobación puede ejecutar la operación deseada sobre determinado fichero.

-r Fich: Permiso de lectura
-w Fich: Permiso de escritura
-x Fich: Permiso de ejecución
-u Fich: Permiso SUID
-g Fich: Permiso SGID
-t Fich: Permiso de directorio compartido o fichero en cache
-O Fich: es el propietario del archivo
-G Fich: El usuario pertenece al grupo con el GID del fichero

Ahora los operadores relacionados a las fechas

-N Fich: El fichero ha sido modificado desde la ultima lectura
Fich1 -nt Fich2: El Fich1 es mas nuevo que el Fich2
Fich1 -ot Fich2: El Fich1 es mas antiguo que el Fich2

b) Expresiones comparativas numéricas:

Aunque ya vimos los operadores de comparación numérica con las expresiones aritméticas a continuación daremos una lista de operadores ara este formato.

N1 -eq N2: Igual
N1 -ne N2: Diferente
N1 -lt N2: Menor que
N1 -gt N2: Mayor que

c) Expresiones comparativas de cadenas:

A continuación los formatos

Cad1 = Cad2: Igual
Cad1 != Cad2: Diferente
[-n] Cad: La cadena no esta vacía, su longitud no es 0
-z Cad: La longitud de la cadena es 0

El uso de estos los operadores condicionales los veremos más adelante en esta serie de tutoriales por ahora los dejamos en teoría teniendo en cuenta que es importante conocer detalles de este tipo pues aveces sucede que saltamos de variables a funciones y cuando venimos a ver no sabemos ni como hacer una suma y toca regresar.

Espero que les sea útil

Shell Script; Las Variables


 Introducción

Como vimos en la entrada anterior de, Shell Script Básico, un Script es un archivo que contiene una serie de comandos que son ejecutados secuencialmente por un interprete.

Aprendimos como crearlos, editarlos y ejecutarlos, además de que en un shell script podemos incluir los comandos básicos de Linux.

En esta ocasión continuaremos con algunos puntos más avanzados en la programación de scripts.

Las Variables.

Para los que no conocen de programación, veamos que es una variable: Las variables son espacios reservados en la memoria que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. De la siguiente manera le damos un valor a una variable:

nombre_variable=valor]

Sencillo no? También podemos guardar salidas de programas:

nombre_variable=`comando`
o
nombre_variable=$(comando)

Ejemplo:

variable=$(ls)

Al llamar la variable nos dará una lista de archivos y directorios de la ruta en l que nos encontramos.

También podemos asignarles valor a las variables con el comando (read).

read [ opciones] nombre_variable2 nombre_variableN

Ejemplo:

read -p "Introduce el Nombre y la edad" nombre edad

Las opciones mas usadas son:

-n num_car : Numero máximo de caracteres que se pueden introducir
-p "frase" : Muestra en la pantalla una frase
-d "delimitador" : Especifica un delimitador. Por ejemplo: si el delimitador es un ";" todo lo que este antes del signo lo tomara una variable y lo que este después en la siguiente variable.

Para utilizar los valores de una variable en el código lo hacemos así:

$nombre_variable

y para mostrarla:

echo $nombre_variable

Vamos a ver unos ejemplos sencillos que de una vez nos ayuden a repasar el post anterior.


#! /bin/bash
mkdir ~/Escritorio/Ejemlpo/
> ~/Escritorio/Ejemplo/ejemplo.txt
clear
read -p "Por favor Ingresa tu nombre y tu apellido " nombre apellido
saludo="Hola"
echo $saludo $nombre $apellido > ~/Escritorio/Ejemplo/ejemplo.txt
gedit ~/Escritorio/Ejemplo/ejemplo.txt &


Explicación:

1) Creamos un directorio llamado Ejemplo en el escritorio

2) Creamos un archivo ejemplo.txt dentro del directorio que recién creamos

3) Con el comando clear, Limpiamos la pantalla del terminal

4) le pedimos al usuario que ingrese su nombre y su apellido los cuales serán guardados en las variables nombre y apellido respectivamente

5) Guardamos la cadena "Hola" en la variable saludo

6) Imprimimos las variables $salud $nombre y $apellido en el archivo que creamos en el directorio Ejemplo

7) Por ultimo abrimos el archivo ejemplo.txt con gedit

A continuación un script que se me ocurrió el cual podría resultar útil para los diseñadores web para crear estructuras básicas para paginas web de ejemplos o cosas por el estilo con solo ejecutar un script


#! /bin/bash
clear
read -p "Por favor Ingresa el nombre del directorio raíz de tu pagina " dir
read -p "Por favor Ingresa el titulo tu pagina " titulo
read -p "Por favor Ingresa el nombre de tu pagina " nombreapp
read -p "Por favor Ingresa los tags de tu pagina " tags
read -p "Por favor Ingresa la descripción de tu pagina " descripcion
read -p "Por favor Ingresa el nombre el autor de tu pagina " autor
mkdir /var/www/$dir/;mkdir /var/www/$dir/js;mkdir /var/www/$dir/css;
mkdir /var/www/$dir/img
> /var/www/$dir/index.html; > /var/www/$dir/css/style.css
(
    echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
    echo '<html xmlns="http://www.w3.org/1999/xhtml" lang="es">'
    echo '    <head>'
    echo "        <title>$titulo</title>"
    echo '        <meta name="application-name" content="'$nombreapp'" />'
    echo '        <meta name="keywords" content="'$tags'" />'
    echo '        <meta name="description" content="'$descripcion'" />'
    echo '        <meta name="author" content="'$autor'" />'
    echo '        <meta http-equiv="content-type" content="text/html; charset=utf-8" />'
    echo '        <link href="css/style.css" rel="stylesheet" type="text/css" media="screen" />'
    echo '        <script type="text/javascript">'
    echo '        </script>'
    echo '    </head>'
    echo '    <body>'
    echo '    </body>'
    echo '</html>'
) > /var/www/$dir/index.html
firefox /var/www/$dir/index.html &
gedit /var/www/$dir/index.html &


Explicación:

1) Limpiamos la pantalla del terminal

2) Le pedimos al usuario ciertos datos necesarios y los guardamos en variables:

dir: Nombre del directorio raíz de la pagina
titulo: Titulo de la pagina
nombreapp, tags, descripcion y autor: para los meta datos application-name, keywords, description y author

3
) Creamos el directorio raíz como vemos en el código el nombre del directorio es el valor de la variable $dir. Dentro de este directorio crearemos los directorios css, js e img

4) Creamos los archivos index.html y style.css dentro del directorio raíz y el directorio css respectivamente

5) Definimos lo que sera el contenido del documento, como podemos ver en el código todos los echo están encerrados en paréntesis y se les dice que se harán dentro del archivo index.html. Con esto logramos que se escriba dentro del archivo en el orden en que aparecen en el script.

6) por ultimo abrimos la pagina en el navegador, en mi caso firefox y en el editor de texto gedit listo para ser editado.

Como siempre espero que les sea de gran utilidad.

Shell Script Básico




Antes de Adentrarnos en el mundo de los scripts es necesario conocer ciertos conceptos básicos que nos ayudaran a entender de una mejor forma que es lo que estamos haciendo.

Que es un Script?

Un script es un tipo de programación interpretada que debido a su facilidad y funcionalidad, se imponen cada día más en el mundo de la informática. Los scripts son generalmente desarrollados en con lenguajes de relativa facilidad pero eso no quiere decir que sean menos funcionales que programas creados con lenguajes de alto nivel.

Trabajando con Linux

El sistema operativo Linux esconde tras de si una larga lista de utilidades que se ejecutan a través de comandos bastante complicados y con muchos parámetros y argumentos. Lo que hace el script es recoger todos esos comando y presentarlos al usuario de una forma sencilla y de rápido acceso.

Que es Shell?

El shell es un programa que sirve como puente de comunicación entre el usuario y el sistema operativo, es equivalente al MSDOS pero mucho más potente.

El shell sirve como interprete de comandos recibiendo los mismos y encargándose de su ejecución; bien sean comandos internos del sistema operativo o escrito por los usuarios en forma de scripts. En el primero de los casos es el mismo shell quien se encarga de la ejecución y en el segundo el shell da paso al kernell y es este quien ejecuta y procesa las ordenes.

El shell también sirve como interprete de programación presentando las mismas características de un lenguaje de programación de alto nivel.

Que necesitamos para comenzar.

Para hacerlo de manera ordenada Vamos a crear una carpeta para guardar nuestros scripts y en ella crearemos nuestro primer script. Abrimos la terminal y ponemos lo siguiente:

Creamos la carpeta

mkdir script

Donde mkdir (make directory) es el comando para crear carpetas o directorios y script es el nombre que le pondremos a nuestro directorio.

Entramos a la carpeta

cd script/

Donde cd (changue directory) es el comando para cambiar de directorio y script es el nombre que le colocamos a nuestra carpeta.
creamos un archivo con extensión .sh que contendrá al

touch archivo.sh

Donde touch es el comando para crear archivos y script.sh es nuestro archivo con extensión .sh

Le damos permisos de ejecución al archivo

sudo chmod 777 script.sh

Donde sudo (super User do) sirve para acceder como super usuario, chmod (change mod) es para cambiar los permisos, 777 indica que todos los usuarios tendrán todos los permisos y script.sh es el archivo al que le daremos los permisos.

Luego al presionar Enter nos pedirá la contraseña de súper usuario, la ingresamos.

Comprobamos los permisos del archivo

ls -l script.sh

donde ls (list) nos muestra una lista y con la opción -l muestra información de permisos, número de enlaces asociados al archivo, usuario, grupo, tamaño y fecha de última modificación además del nombre y script.sh es el script al que le dimos permiso.

Nos debería aparecer algo como esto

script

Por ultimo abrimos nuestro archivo para comenzar a editarlo. Para ello podemos utilizar cualquier editor de texto de nuestra preferencia , en este caso usaremos gedit

gedit script.sh &

Donde gedit le indica al bash que ejecute el editor sobre el archivo script.sh y el símbolo & nos permite seguir utilizando la terminal así se halla ejecutado el editor desde ella.

Hola Mundo

#! /bin/bash
#Script de Hola Mundo
clear
echo “Hola Mundo”


Explicación del código.

1) El carácter #! se llama Sha Bang y esta en la linea que inicia un script y sirve para indicarle al sistema que lo que viene a continuación es una secuencia de códigos a ser interpretados, en otras palabras, se trata de un numero mágico de dos bytes que es un marcador especial para determinar el tipo de archivo, en este caso, indica que se trata de un script de shell ejecutable.

2)
El carácter # indica que lo que viene a continuación es un comentario.. los comentarios sirven para guiarnos a través del código.


3) El comando clear limpia la pantalla de nuestro terminal


4)
el comando interno echo es una de las instrucciones más simples de la shell. Se encarga de repetir o desplegar en la salida estándar cualquier argumento que se le indique (inclusive comodines), para posteriormente saltar una línea. En pocas palabras nos muestra en la pantalla de nuestro terminal el mensaje Hola Mundo.


Ejecutando el Script

Ahora bien, ya tenemos listo nuestro script ¿pero como demonios lo ejecutamos? Muy sencillo, escribimos en la terminal lo siguiente:

sh script.sh

Otra manera seria

,/script.sh

Nota: Para que el script se ejecute correctamente es necesario que tenga permisos de ejecución.


Hola Mundo en un Archivo de Texto

#! /bin/bash
#Script que crea un archivo y le agrega la cadena Hola Mundo
> ~/Escritorio/archivo.txt
echo “Hola Mundo” > ~/Escritorio/archivo.txt
gedit archivo.txt &


Explicación

1) como ya vimos las dos primeras lineas son el llamado al interprete y un comentario, la tercera nos dice que cree un archivo llamado archivo.txt en el escritorio, el símbolo > es equivalente a touch, osea, sirve para crear un archivo el símbolo ~ es equivalente a la ruta /home/carpeta_personal/, es decir, en la carpeta personal entonces la ruta absoluta de nuestro archivo en este caso es /home/carpeta_personal/Escritorio/archivo.txt

2) La siguiente Linea Imprime la cadena Hola Mundo pero esta vez la imprime dentro de archivo.txt usando >


3) La ultima linea abre el archivo en el editor de texto gedit.


Con este sencillo tutorial tenemos una base para la creación de scripts mas complejos. Todo es cuestión de practica. Espero les sirva de algo.

Instalar Ubuntu Studio paso a paso

 




Ubuntu Studio es un sabor de Ubuntu para la creación/edición multimedia. Esta construido para los entusiastas y profesionales de audio, video y gráficos en GNU/Linux.

Lo primero que debemos hacer es descargar la imagen de ubuntu studio y grabarla en un DVD , de acuerdo a la arquitectura de tu máquina. Una vez que bajaste la .iso y la has grabado en un DVD , introducimos el DVD y reiniciamos.
La primera pantalla será esta. Configura el lenguaje pulsando la tecla F2, el mapa de tu teclado con F3 y la resolución de tu monitor con F4.

ubuntustudio2.png
Como pueden ver esta no es una instalación tipo liveCD, es una instalación tipo alternate CD, luego no será de manera gráfica como en el Ubuntu que conocemos normalmente, será mas al estilo Windows XP, esta instalación alternativa conlleva algunas desventajas y otras ventajas a la vez. Las primeras es que no tendremos un Ubuntu útil como el Live CD del otro disco, ni podremos hacer otra cosa mientras instalamos.
Las ventajas radican en que como bien sabemos el Live CD tarda bastante en iniciarse y una vez que hemos conseguido alcanzar el escritorio el sistema va relativamente ágil, pero hay que tener en cuenta que no podremos usar toda nuestra memoria RAM en el proceso de instalación ya que una parte está destinada a dicho sistema Live.
Por otro lado, algunos equipos tienen problemas con el Live CD debido principalmente a incompatibilidades de algunos componentes hardware. En definitiva, si te da igual tener el Live CD (que en ocasiones es bueno tenerlo) y si lo primordial es la rapidez en la instalación, sin duda este tipo de instalación es la mejor opción, por lo pronto continuemos con nuestro paso a paso válido tanto para UbuntuStudio como para Ubuntu alternate install.
Una vez damos enter comienza el siguiente paso:
2.- Detección del hardware.
ubuntustudio4.png
3.-Servicios para las tarjetas detectadas.
ubuntustudio5.png
4.-Continúan componentes adicionales.
ubuntustudio6.png
5.- Arrancando los servicios de tarjetas de red.
ubuntustudio7.png
6.- Te pide el nombre de la máquina para activar la red. Escribimos nombre y tecleamos enter.
ubuntustudio9.png
7.- Continúa la detección de discos y demás hardware.
ubuntustudio10.png
8.- La hora de la verdad. El particionado. Si ya lo hiciste previamente y tienes nociones de las particiones será muy sencillo, si no, sera un poco complejo para los que estén internándose por primera vez en este tema, nos ubicamos en Manual y damos enter. Recordemos que por lo general utilizamos tres particiones, una primaria en la que guardaremos el Sistema Operativo con punto de montaje en la Raíz (/). Otra primaria donde guardaremos nuestros archivos con punto de montaje en home (/home) y una lógica del doble de la memoria ram que sera el area de intercambio.
ubuntustudio12.png
9.- Ubicamos con las teclas de flechas el subrayado en el dispositivo o disco que vamos a particionar para instalar UbuntuStudio Enter.
ubuntustudio13.png
10.- Nos advierte de todos los riesgos. Nos colocamos en <Sí> y damos enter.
ubuntustudio14.png
11.- Si ya habíamos particionado anteriormente y determinado el espacio para UbuntuStudio aquí lo veremos. Nos ubicaremos en la partición para UbuntuStudio y damos enter.
ubuntustudio15.png
12.- Nos colocamos en Crear una partición nueva. Enter.
ubuntustudio16.png
13.- Si ya habíamos particionado con anterioridad nos saldrá el espacio asignado que dimos. Si no es así, aquí debes asignar el espacio que darás (asegurate de no afectar el espacio de otro sistema operativo instalado). Damos enter.
ubuntustudio17.png
14.- Nos colocamos en Primaria. Enter.
ubuntustudio18.png
15.- Bien, para quienes ya habían asignado el espacio con anterioridad, colocamos el subrayado rojo en la parte donde dice Punto de Montaje. Damos enter y le decimos que ahí irá nuestro UbuntuStudio tecleando la barra raíz “/” (sin las comillas). Luego nos colocamos en Se ha terminado de definir la partición para pasar al otro paso.
Para quienes no definieron la partición previamente, antes de hacer el paso anterior en el que se define el lugar donde irá “/” entran en Utilizar como: para que le indiquen que debe formatear en el sistema ext4 transaccional. Enter y luegon pasamos a Se ha terminado de definir la partición para seguir al otro paso.
ubuntustudio19.png
16.- Te indica tus particiones. Para quienes lo hicieron con anterioridad, verán la partición de intercambio o swap reconocida automáticamente. Así que simplemente se ubican en Finalizar el particionado y escribir los cambios en el disco. Enter y continuamos.
Para quienes no definieron previamente la partición swap. Deberán abrirle un espacio.
ubuntustudio20.png
17.- Por último nos entrega un informe completo de cómo quedarán nuestros discos. Si todo está bien. Nos colocamos en <Sí>. Enter.
ubuntustudio21.png
18.- Le indicamos nuestro huso horario precisándole donde nos encontramos. Si no aparece el país donde vivimos, damos enter y posteriormente lo modificamos.
ubuntustudio22.png
19.- Si quieres que tu reloj vaya con los servidores UTC, “dile” que <Sí>
ubuntustudio23.png
20.- Escribe tu nombre con apellidos.
ubuntustudio24.png
21.- Tu nombre de usuario.
ubuntustudio25.png
22.- La contraseña.
ubuntustudio26.png
23.- Otra vez la misma contraseña. Memorízala o anotala en un lugar seguro.
ubuntustudio27.png
24.- Se instala el sistema base. Puedes ir por un buen café para esperar o por un agua aromática para soportar los sustos del particionado.

ubuntustudio28.png
25.- Instala el potente nucleo-rt
ubuntustudio30.png
26.- Descarga automáticamente de internet (si esta conectado, por supuesto) actualizaciones y módulos de tu hardware.
ubuntustudio31.png
27.- Te pregunta si configura todo a tu lenguaje, en este caso al español. Baja de los repositorios de Ubuntu. vía internet, los paquetes necesarios y los instala. Incluidos diccionarios del OpenOffice.
ubuntustudio32.png
28.- Esta es la parte más interesante. Te pregunta los paquetes de software que deseas instalar: Suite de creación y edición 2D/3D; Suite de creación y edición de audio; Plugins para efectos de audio y video; Escritorio de UbuntuStudio, con sus respectivos efectos 3D; y la suite de creación y edición de video. Con las flechas subes y bajas. Con la barra espaciadora marcas y salimos a Continuar con la tecla de sangrías (arriba del bloque de mayúsculas).
EN el post anterior esta la informacion de los paquetes.,
ubuntustudio33.png
29.- Marcamos la resolución de tu monitor. Marca el que vas a usar y uno o dos más por abajo.
ubuntustudio34.png
30.- Instala el arrancador dual GRUB, que te reconocerá sin problemas y en automático tus otros sistemas operativos.
ubuntustudio35.png
31.- The end. Continuar para reiniciar.
ubuntustudio36.png
32.- Listo ya tenemos nuestro Ubuntu Studio listo para ser configurado a nuestro gusto.

Este sistema Operativo no utiliza GNOME desde la versión 11.10, utiliza el entorno Xfce el cual, al igual que el Unity de Ubuntu 11.04, es un poco complejo cuando nos iniciamos en él; pero después de que nos acostumbramos nos daremos cuenta de que es bastante útil. 


Recordemos que Ubuntu Studio es un Ubuntu "corriente" con el kernell real time. Un kernell que prioriza el audio y video por sobre las demás tareas, lo que significa una latencia mínima. Y latencia mínima es algo muy importante si se quiere grabar, por ejemplo, una guitarra en la computadora. El problema que esto intenta solucionar es el de tocar un acorde y escucharlo sonar "en tiempo real" y no unos milisegundos después. en este caso es una transformación y por lo tanto solo obtendremos los programas que vienen por defecto en Ubuntu Studio y se vera muy similar. En otro tutorial mostraremos como Instalar el Ubuntu Studio desde cero paso a paso para obtener un mejor rendimiento de este.

Fuentes: Blogkode

Transformando Ubuntu en Ubuntu Studio

Ubuntu Studio es una distribución GNU/Linux basada en Ubuntu. Está orientada a la edición multimedia profesional de audio, video y gráficos.

El objetivo de esta distribución es hacer más accesible para los nuevos usuarios involucrarse en las herramientas que ofrece GNU/Linux para la edición, creación y producción multimedia. A demás, le muestra a los usuarios herramientas que quizás no conocían.


Caracteristicas principales


  • Usa solamente los paquetes de los repositorios oficiales de Ubuntu.
  • Utilizaba (hasta la versión 10.04 el kernel de Ubuntu en tiempo real. Ahora utiliza el kernel genérico de Ubuntu.
  • Usaba GNOME como entorno de escritorio hasta la versión 11.04. A partir de la versión 11.10 utiliza el entorno Xfce pero se le puede instalar GNOME
  • Aunque se le puede instalar, esta versión no incluye el software de ofimática OpenOffice.org ni LibreOffice.org, pero incluye programas de 2D y 3D, de edición de audio y vídeo además de otros plugins de audio.
  • Sólo existe versión alternate DVD.

Para mas información visita UbuntuEstudio.org



Ahora bien comencemos a transformar nuestro sistema operativo de Ubuntu en Ubuntu Studio. primero tengamos en cuenta lo siguiente.

En concreto, Ubuntu Studio es un Ubuntu "corriente" con el kernell real time. Un kernell que prioriza el audio y video por sobre las demás tareas, lo que significa una latencia mínima. Y latencia mínima es algo muy importante si se quiere grabar, por ejemplo, una guitarra en la computadora. El problema que esto intenta solucionar es el de tocar un acorde y escucharlo sonar "en tiempo real" y no unos milisegundos después. en este caso es una transformación y por lo tanto solo obtendremos los programas que vienen por defecto en Ubuntu Studio y se vera muy similar. En otro tutorial mostraremos como Instalar el Ubuntu Studio desde cero paso a paso para obtener un mejor rendimiento de este.

Podemos instalar los paquetes de acuerdo a nuestras necesidades. Tenemos paquetes de Audio, Video y Gráficos.

Audio

  • Ardour
  • Audacity
  • Hydrogen
  • JACK Audio Connection Kit
  • JAMin
  • LilyPond
  • Mixxx
  • MusE
  • Rosegarden
  • TiMidity++
  • Wired

Video

  • CinePaint
  • PiTiVi
  • Kino
  • Stopmotion
  • VLC media player

Graphics

  • Agave
  • Blender
  • Enblend
  • FontForge
  • GIMP
  • Inkscape
  • Scribus
  • Synfig

Primero que nada vamos a abrir la terminal. En Ubuntu con GNOME Clásico vamos a Aplicaciones/Accesorios/Terminal, mientras que en Ubuntu con Unity Abrimos nuestro menú de Aplicaciones y escribimos Terminal y allí aparecerá.

Instalando los paquetes de Audio


sudo apt-get install ubuntustudio-audio

sudo apt-get install ubuntustudio-audio-plugins 

Para Diseño Gráfico 


sudo apt-get install ubuntustudio-graphics 

Para video 


sudo apt-get install ubuntustudio-video

Ahora para que nuetro Ubuntu se parezca lo más posible a Ubuntu Studio

sudo apt-get install ubuntustudiolauncher 
Para lograr la apariencia de UbuntuStudio, hay que agregar su repositorio: “deb http://archive.ubuntustudio.org/ubuntustudio feisty main” cuya clave GPG podemos agregar fácilmente con


wget http://archive.ubuntustudio.org/ubuntustudio.gpg -O- | sudo apt-key add -


Ahora actualizamos la lista de paquetes.


sudo apt-get update


Procedemos a instalar el tema de Ubuntu Studio


sudo apt-get install ubuntustudio-look


O bien, podemos instalarlo parcialmente (instala el tema pero no el tema de gdm ni el splash screen):





sudo apt-get install ubuntustudio-theme ubuntustudio-icon-theme ubuntustudio-wallpapers

Instalación de LibreOffice.

Libre Office es una suit ofimática libre y gratuita que equivale al Microsoft Office de Windows y es compatible con Mac, Windows y GNU/Linux.

Libre Office cuenta con un procesador de texto (writer), un editor de hojas de calculo (calc), un creador de presentaciones (impress), un editor de imagenes vectoriales (draw), un gestor de base de datos (base) y un editor de formulas matemáticas (math).

Anteriormente la suit por exelencia de las distribuciones Linux era OpenOffice.org pero luego de la adquisicipón de esta por la empresa Oracle y debido a la nueva orientación de la empresa esta se dividio y nacion el proyecto Libre Office a manos de The Document Foundation.

Instalación de LibreOffice en Windows.

Requisitos del sistema


Los pre-requisitos de una instalación de LibreOffice en sistemas Windows son los siguientes:
  • Microsoft Windows 2000 (Service Pack 4 o superior), XP, Vista, o Windows 7;
  • PC compatible con Pentium (Pentium III, Athlon o versiones mas recientes del sistema son recomendadas); 256 Mb de RAM (512 Mb de RAM recomendada); 
  • 1,5 Gb de espacio disponible en el disco duro; 
  • Resolución de pantalla 1024x768 o superior (recomendado), con al menos 256 colores
Instalación
Es necesario contar con privilegios de administrador durante el proceso de instalación
El registo de LibreOffice como aplicación predeterminada para los formatos de archivo de Microsoft Office puede ser forzada o suprimida usando los siguientes parámetros de linea de comandos con el archivo de instalación
/ msoreg = 1 forzará el registro de LibreOffice como aplicación predeterminada para formatos de Microsoft Office;
/ msoreg = 0,suprimirá el registro de LibreOffice como aplicación predeterminada para formatos de Microsoft Office.
Si realiza una instalacion administrativa usando setup /a, tiene que asegurarse de que el archvio mmsvc90.dll esta instalado en el sistema. Este archivo es necesario para que LibreOffice arranque despues de una instalacion administrativa. Usted puede descargar el archivo aqui
Es una practica recomenda realizar una copia de seguridad de su sistema y de los datos antes de quitar o instalar software
No debe desinstalar cualquier versión previa de LibreOffice instalada. Si tiene una  instalación existente de LibreOffice, todas sus preferencias serán preservadas y esa vieja instalación será simplemente sobreescrita.
Descargue el instalador LibreOffice de su preferencia (puede optar por la versión “install_multi” con una selección de los idiomas más escogidos, o la versión “install_all” para contar con todos los idiomas disponibles). Escoja un directorio donde guardar el instalador. Su escritorio es un lugar aceptable, por ejemplo.
Diríjase al directorio escogido y haga doble clic en el instalador. Se abre una caja de dialogo informando que diciendo que se iniciará la preparación para el proceso de instalación.
Haga clic en “Siguiente”.

Caja de Diálogo #1: Preparación para la Instalación
Se abre otra caja de diálogo dando a elegir la carpeta donde serán extraidos los archivos de instalación. De manera predeterminada se sugiere una subcarpeta en su escritorio.
Haga clic en “Descomprimir” para inicar la extracción.

Caja de Diálogo #2: Carpeta para Descompresión
Aguarde mientras el proceso de descompresión finaliza.

Caja de Diálogo #3: Indicador del Proceso de Descompresión
Si su firewall le pregunta por autorizar la ejecución de los archivos de instalación, acepte la ejecución cada vez que se le pregunte.
Verá una caja de diálogo informándole que el proceso de instalación está por comenzar. Haga clic en “Siguiente”.


Caja de Diálogo #4: Comienzo de la Instalación
Verá una caja de diálogo invitándolo a ingresar su nombre y organización. Esta información es incluída en los archivos como información de autor (si habilita esa opción al usar LibreOffice). Es completamente opcional. Ingrese su nombre si lo desea, o déjelo en blanco. Puede cambiar esta información luego desde "Herramientas" -> "Opciones" -> "Datos del Usuario".
También puede escoger si todos los usuarios en su equipo deberían tener acceso a esta  instalación de LibreOffice (esta es la elección predeterminada). Escoja una opción. 
Cuando este listo presione “Siguiente”.
Caja de Diálogo #5: Información del Usuario
Otra caja de diálogo se abre para darle a escoger si prefiere la instalación predeterminada o quiere escoger ubicaciones y componentes especiales.
Si quiere la instalación predeterminada, solo presione “Siguiente”.
Si quiere jacer elecciones especiales, haga clic en “Personalizada” y luego presione “Siguiente”.

Caja de Diálogo #6: Elección de Instalación Típica o Personalizada
Si escoge instalación personalizada, verá uan caja de diálogo que le permite seleccionar que componentes de LibreOffice a instalar. Abra las listas desplegables y  haga sus elecciones.
En este punto, puede elegir los paquetes de iodioma que quiere sean instalados. El Inglés y el idioma de su sistema operativo son seleccionados de manera predeterminada. Además, todos los diccionarios son seleccionados de manera predeterminada. Usted podría querer seleccionar solamente aquellos que necesita. También puede deseleccionar extensiones no deseadas. Haga sus selecciones y presione “Siguiente”.

Caja de Diálogo #6: Personalización de la Instalación
Se abre otra caja de diálogo donde puede escoger si desea que los documentos de Microsoft Office se abran con LibreOffice. De manera predeterminada, esta característica no está habilitada. Si desea usar LibreOffice para abrir documentos de Microsoft Office en el futuro marque estas tres casillas.

Caja de Diálogo #8: Elección de Asociaciones de Tipo de Archivo
Se abre una nueva caja de diálogo preguntando si un enlace de inicio para abrir LibreOffice debería sera colocado en su escritorio. La opción predeterminada es crearlo.
Haga una elección y luego presione “Instalar”.

Caja de Diálogo #9: Creación de un Enlace de Inicio en el Escritorio
Otra caja de diálogo muestra el progreso del proceso de instalación, que puede tomar unos pocos minutos. En este punto tiene la última posibilidad de cancelar o abortar la instalación.

Caja de Diálogo #10: Indicador del Progreso de la Instalación
Cuando el proceso de instalación se haya completado, una caja de diálogo final informa que LibreOffice está instalado. Presione “Finalizar”.
LibreOffice está listo para ser usado.
Puede hacer doble clic en el enlace de su escritorio (si optó por colocar uno allí), o también ver en  el sub menú “Todos los  Programas” de su menú “Inicio”, haga clic en la carpeta “LibreOffice 3.3” para luego escoger el componente que quiere usar.
Instalación de LibreOffice en Mac

Requisitos del sistema

Los pre-requisitos de software y hardware para instalar LibreOffice en sistemas Macintosh son los siguientes:

  • MacOSX 10.4 (Tiger) o superior; 
  • Procesador Intel o PowerPC;512 Mb de RAM; 
  • 800 Mb de espacio disponible en el disco duro 
  • Resolución de pantalla 1024x768 o superior (recomendado), con al menos 256 colores 
Para algunas funciones del software - pero no la mayoría - se requiere Java. Java es especialmente necesario para Base.
Es una práctica recomendada realizar una copia de seguridad de su sistema y de los datos antes de quitar o instalar software.
Instalación

No necesita desinstalar ninguna versión previa de LibreOffice.
Descargue el archivo DMG de la página de Descargas.
Abra el archivo DMG descargado haciendo doble clic en él en la carpeta de Descargas, o haga clic en el lazador en el cajón de Descargas (en una configuración estándar Mac, usualmente está en el lado derecho del dock).




Cualquiera de estas acciones abre la ventana de instalación LibreOffice 3.3. Haga clic y arrastre el icono LibreOffice al icono de la carpeta Aplicaciones.

El proceso de instalación se iniciará. Es posible que tenga que introducir su contraseña de administrador antes de realizar la instalación (esto depende de la configuración particular de cada usuario, es decir, si existen o no cuentas de administrador por separado con diferentes derechos).

Si ve un mensaje requiriendo autenticación, haga clic en el botón Autenticación. En la siguiente ventana, escriba un nombre de administrador y contraseña. Haga clic en Aceptar.

Un indicador de progreso aparecerá. Cuando el proceso de instalación, verá el icono LibreOffice en la carpeta Aplicaciones. Para iniciar LibreOffice, haga doble clic en este icono.





Instalación del paquete de Idioma

Descargue el archivo DMG para el paquete de idioma que desea instalar.
Haga doble clic en el archivo descargado en su carpeta de Descargas.
Haga doble clic en el icono del Paquete de idioma de LibreOffice 3.3 para iniciar el proceso de instalación.
Si no hay ventanas de otras aplicaciones abiertas en el escritorio, un cuadro de diálogo mostrará un mensaje en el idioma del paquete a instalar. "Bienvenido al asistente de instalación del paquete de idiomas para LibreOffice 3.3. Esta instalación actualizará su versión instalada de LibreOffice. Esto puede tomar un tiempo." (Esta es una traducción al castellano del mensaje original, que debe mostrarse en el idioma que desea instalar). Si tiene ventanas de otras aplicaciones abiertas, entonces notará que el icono del Paquete de idioma, visible en el Dock, estará saltando lo que indica que requiere atención, pero se oculta a la vista. Si hace clic en este icono, el mensaje de bienvenida será llevado al primer plano y podrá continuar con la instalación del paquete de idioma.
Haga clic en Instalar.
Cuando la instalación haya finalizado, un mensaje le indica cómo cambiar el idioma de la interfaz de usuario desde LibreOffice.
Abrir LibreOffice e ir a LibreOffice > Preferencias > Configuración de idioma > Idiomas. En la lista Idioma de interfaz de usuario, seleccione el idioma deseado. Si sólo tiene un paquete de idioma instalado, ya debería estar activado y podría saltear este paso, pero cerciórese sólo para estar seguro.
Cierre LibreOffice y vulva a abrirlo (esto no debería ser necesario si el comportamiento indicado anteriormente se ha producido). La interfaz de usuario ahora estará en el idioma seleccionado.
Instalación de LibreOffice en Linux
Requisitos del sistema
Como regla general se recomienda instalar LibreOffice a través de los métodos de instalación recomendados por su distribución Linux (como el Centro de Software de Ubuntu, en el caso de Ubuntu Linux). Esto se debe a que suele ser la forma más sencilla de obtener una instalación que se integre de manera óptima en su sistema. De hecho, LibreOffice bien puede ser instalado de forma predeterminada al instalar inicialmente el sistema operativo Linux.
Los instaladores LibreOffice suministrados por la comunidad se proporcionan para los usuarios con necesidades especiales, y para los casos fuera de lo común
Algunas distribuciones de Linux vienen con una version “nativa” de LibreOffice que puede contener caracteristicas diferentes a las suministrada por la comunidad de LibreOffice. En muchos casos, puede instalar el LibreOffice suministrado por la comunidad junto a una versión "nativa". Sin embargo, puede que prefiera eliminar dicha versión antes de instalar la suministrada por la comunidad. Para obtener detalles sobre cómo hacerlo, por favor consulte los recursos de ayuda de usuario proporcionada por su proveedor de Linux.
Por favor, asegúrese de tener suficiente memoria libre en el directorio temporal de su sistema, y cerciórese que los permisos de lectura, escritura y ejecución han sido concedidos. Cierre todos los programas antes de iniciar el proceso de instalación.
Los pre-requisitos de software y hardware para la instalación en Linux son los siguientes:

  • Kernel de Linux versión 2.6.18 o superior; 
  • glibc2 versión 2.5 o superior; 
  • gtk versión 2.10.4 o superior 
  • PC compatible con Pentium (Pentium III, Athlon o versiones más recientes del sistema recomendadas); 
  • 256 MB de RAM (512 MB RAM recomendado); 
  • Hasta 1,55Gb de espacio disponible en disco duro; 
  • X Server con una resolución de 1024x768 (se recomienda mayor resolución), con al menos 256 colores; 
  • Gnome 2.16 o superior, con Gail 1.8.6 y en paquetes de spi-1.7 (necesario para las herramientas de tecnología de asistencia [TA]), u otro compatible con interfaz gráfica de usuario (por ejemplo, KDE, entre otros).
Para algunas funciones del software - pero no la mayoría - se requiere Java. Java es especialmente necesario para Base.
Es una práctica recomendada realizar una copia de seguridad de su sistema y de los datos antes de quitar o instalar software.
Instalación

Como regla general, se aconseja instalar LibreOffice a través de los métodos de instalación recomendados por su distribución de Linux en particular (como el Centro de Software de Ubuntu, en el caso de Ubuntu Linux). Esto se debe a que suele ser la forma más sencilla de obtener una instalación que se integre perfectamente en su sistema. De hecho, LibreOffice ya puede ser instalado de manera predeterminada con el sistema operativo Linux.
Los instaladores de LibreOffice suministrados por la comunidad son provistos por usuarios con necesidades especiales y casos fuera de lo común.
Si tiene una instalación previa del paquete LibreOffice para Linux suministrado por la comunidad, en primer lugar, siga las instrucciones de la sección "Desinstalación de una Versión Previa de LibreOffice Suministrado por la Comunidad para Linux" para removerlo.
Cuando esté listo para iniciar la instalación vaya a la página de Descarga y, en la lista desplegable de la izquierda, elija el paquete adecuado para su equipo, es decir, para sistemas basados en deb (para Debian, Ubuntu , ...), o para sistemas basados en rpm (para Fedora, Suse, Mandriva, ...) ya sea de 32-bit o 64-bits en cualquiera de los casos.
Si desea instalar LibreOffice en un idioma que no sea Inglés de EE.UU., también debe elegir un paquete de idioma para obtener una instalación LibreOffice en el idioma que prefiera. Una vez hecha su elección, descargue el/los paquete/s.

Instalación de LibreOffice en sistemas Linux basados en Debian/Ubuntu

Las siguientes instrucciones son para instalar LibreOffice en Inglés de EE.UU., en un sistema de 32 bits, habrá pequeñas diferencias en algunos nombres de directorio si está instalando LibreOffice en un sistema de 64 bits, pero el proceso es básicamente el mismo y - esperamos - que no encuentre difultad para seguir estas instrucciones.
Para obtener instrucciones sobre cómo instalar un paquete de idioma (después de haber instalado la versión en Inglés de EE.UU. de LibreOffice), por favor lea la sección “Instalando un Paquete de Idioma”.
1) Después de descargar el archivo de instalación, use Nautilus para descomprimirlo en un directorio de su elección (su Escritorio, por ejemplo). Después de descomprimir, verá que el contenido ha sido desempaquetado en un directorio llamado LibO_3.3.0_Linux_x86_install-deb_en-US.
2) Abra una ventana de terminal y desde la linea de comandos ingrese el siguiente comando (se le solicitará que ingrese la clave de superusuario antes que el comando sea ejecutado):
sudo dpkg -i ~/Escritorio/LibO_3.3.0_Linux_x86_install-deb_en-US/DEBS/*.deb
3) El comando dpkg anterior realiza la primera parte del proceso de instalación. Para completar el proceso, también necesita instalar el paquete de integración al escritorio. Para hacer esto, usen el siguiente comando:
sudo dpkg -i ~/Escritorio/LibO_3.3.0_Linux_x86_install-deb_en-US/DEBS/desktop-integration/*.deb
El proceso de instalación se ha completado, y debería tener iconos para todas las  aplicaciones de LibreOffice en su menú Aplicaciones/Oficina.

Instalación de LibreOffice en Fedora, Suse, Mandriva y otros sistemas Linux usando paquetes RPM

Las siguientes instrucciones son para instalar LibreOffice en Inglés de EE.UU., en un sistema de 32 bits, habrá pequeñas diferencias en algunos nombres de directorio si está instalando LibreOffice en un sistema de 64 bits, pero el proceso es básicamente el mismo y - esperamos - que no encuentre difultad para seguir estas instrucciones.
Para obtener instrucciones sobre cómo instalar un paquete de idioma (después de haber instalado la versión en Inglés de EE.UU. de LibreOffice), por favor lea la sección “Instalando un Paquete de Idioma”.
1) Después de descargar el archivo de instalación, use Nautilus para descomprimirlo en un directorio de su elección (su Escritorio, por ejemplo). Después de descomprimir, verá que el contenido ha sido desempaquetado en un directorio llamado LibO_3.3.0_Linux_x86_install-rpm_en-US.
2) Abra una ventana de terminal y desde la linea de comandos ingrese el siguiente comando (se le solicitará que ingrese la clave de superusuario antes que el comando sea ejecutado):
Para sistemas basados en Fedora:
su -c 'yum install ~/Escritorio/LibO_3.3.0_Linux_x86_install-rpm_en-US/RPMS/*.rpm'
Para sistemas basados en Mandriva:
su
seguido de
urpmi ~/Escritorio/LibO_3.3.0_Linux_x86_install-rpm_en-US/RPMS/*.rpm
Por otros sistemas que usan RPM (Suse, etc.):
su rpm -Uvh urpmi ~/Escritorio/LibO_3.3.0_Linux_x86_install-rpm_en-US/RPMS/*.rpm
3) Los comandos anteriores realizan la primera parte del proceso de instalación. Para completarlo, también necesita instalar los paquetes de integración al escritorio. Para hacer esto, use el siguiente comando:
Si tiene un sistema Fedora, ejecute este comando:
su -c 'yum install ~/Escritorio/LibO_3.3.0_Linux_x86_install-rpm_en-US/RPMS/desktop-integration/desktop-integration/libreoffice3.3-redhat-menus-3.3-1.noarch.rpm'
Si tiene un sistema Suse, ejecute este comando:
su -c 'rpm -Uvh install ~/Escritorio/LibO_3.3.0_Linux_x86_install-rpm_en-US/RPMS/desktop-integration/desktop-integration/libreoffice3.3-suse-menus-3.3-1.noarch.rpm'
Si tiene un sistema Mandriva  (ingrese la clave de superusuario cuando le sea solicitada):
su
Luego ejecute este comando:
urpmi ~/Escritorio/LibO_3.3.0_Linux_x86_install-rpm_en-US/RPMS/desktop-integration/desktop-integration/libreoffice3.3-mandriva-menus-3.3-1.noarch.rpm
El proceso de instalación se ha completado, y debería tener iconos para todas las  aplicaciones de LibreOffice en su menú Aplicaciones/Oficina.

Notas Sobre la Integración al Escritorio para Distributiones Linux No Cubiertas en las Instrucciones Anteriores

Debería ser fácil instalar LibreOffice en otras distribuciones Linux no específicamente cubiertas en estas instrucciones de instalación. El aspecto principal de las diferencias que se podrían encontrar es la integración de escritorio.
El directorio desktop-integration también contiene un paquete llamado libreoffice3.3-freedesktop-menus-3.3-3.noarch.rpm. Este es un paquete para todas las distribuciones Linux que soportan las especificaciones/recomendaciones de Freedesktop.org, y se provee para la instalación óptima de otras distribuciones Linux no previstas en estas instrucciones.
Hoy en día, la mayoría de distribuciones Linux cumple con las especificaciones de Freedesktop.org. Pero, al momento de añadir el paquete, muchas distribuciones utilizaban sus propios métodos para informar a sus entornos de escritorio sobre las aplicaciones instaladas y removidas, al igual que para el registro de tipos MIME.
Las especificaciones/propuestas de Freedesktop.org normalizan esto para utilizar algunas rutas conocidas y utilidades para actualizar esa información.
Están afectados las especificaciones del tema de iconos, de los tipos MIME y de archivos de escritorio (las definiciones de lanzadores de aplicación).
Para instalar la integración de escritorio en tales sistemas, utilice el siguiente comando (se le pedirá que introduzca la contraseña del superusuario de antemano):
su rpm -Uvh ~/Escritorio/LibO_3.3.0_Linux_x86_install-rpm_en-US/RPMS/desktop-integration/desktop-integration/libreoffice3.3-freedesktop-menus-3.3-3.noarch.rpm

Instalando un Paquete de Idioma

1) Ir a la página de Descargas y descargar el paquete de idioma para el idioma deseado. Desde el gestor de archivos Nautilus, descomprima el archivo descargado en un directorio (su Escritorio, por ejemplo). Verá que el contenido ha sido desempaquetado en un directorio llamado LibO_3.3.0_Linux_x86_langpack-deb_es.
2) Asegúrese de que ha salido de todas las aplicaciones LibreOffice (incluyendo el Inicio rápido, si estaba en ejecución).
Para sistemas basados en Debian/Ubuntu:
sudo dpkg -i ~/Escritorio/LibO_3.3.0_Linux_x86_langpack-deb_es/DEBS/*.deb
Para sistemas basados en Fedora:
su -c 'yum install ~/Escritorio/LibO_3.3.0_Linux_x86_langpack-rpm_es/RPMS/*.rpm'
Para sistemas basados en Mandriva, ejecute:
su
Luego ejecute este comando:
urpmi ~/Escritorio/LibO_3.3.0_Linux_x86_langpack-rpm_es/RPMS/*.rpm
Para otros sistemas que usen RPM (Suse, etc.):
su rpm -Uvh ~/Escritorio/LibO_3.3.0_Linux_x86_langpack-rpm_es/RPMS/*.rpm
Ahora inicie una de las aplicaciones de LibreOffice - Writer, por ejemplo. Del menú "Herramientas" seleccione "Opciones". En el cuadro de diálogo haga clic en "Configuración de idioma" y, a continuación, en "Idiomas". Despliegue  la lista "Interfaz del usuario" y seleccione el idioma que acaba de instalar. Si lo desea, haga lo mismo para la "Configuración regional", la "Moneda predeterminada", y el "Idioma predeterminado para los documentos".

Después de ajustar los valores, haga clic en "Aceptar". El cuadro de diálogo se cerrará y aparecerá un mensaje informativo que indica que los cambios sólo se activarán después de reiniciar LibreOffice (recuerde que también debe salir del Inicio rápido si estaba en ejecución).

La próxima vez LibreOffice se iniciará en el lenguaje que acaba de instalar.

Desinstalación de una Versión Previa De LibreOffice Suministrado por la Comunidad para Linux

Las instrucciones que se indican a continuación hacen uso del Gestor de paquetes Synaptic. Mientras que Synaptic está instalado de forma estándar en muchas distribuciones Linux en otras ya no. Por lo tanto, puede que tenga que instalarlo antes de seguir adelante. Al no estar instalado, por lo general, se encuentra  disponible desde los repositorios de software de su distribución Linux.
Para instalar Synaptic, use el instalador de software provisto por su distribución Linux (tal como el Centro de Software de Ubuntu Linux), o abra una ventana de terminal e ingrese los siguientes comandos (deberá ingresar la clave de superusuario de antemano):
sudo apt-get install synaptic
El proceso de instalación le puede solicitar la instalación de algunas dependencies para Synaptic, si ello ocurre, apruébelo.
Nota para usuarios de KDE: sI apt-get se queja de que Synaptic no está disponible, inicie KPackageKit y habilite todos los repositorios marcando las casillas correspondientes en la página "Configuración". Luego, desde la línea de comandos de una ventana de terminal actualize los repositorios ejecutando el comando sudo apt-get update (deberá ingresar la clave de superusuario antes que el comando sea ejecutado). Después de hacer esto, continue la instalación de Synaptic.
Una vez qeu se haya asegurado que Synaptic está instalado en su sistema, proceda como se indica a continuación para remover una instalación existente de LibreOffice:
1) Inicie el Gestor de paquetes Synaptic.
2) Haga clic en Buscar.
3) Ingrese la cadena “libreoffice”. Puede ser necesario que haga clic en el botón “Buscar” antes que vea este filtro aplicado.
4) Esta búsqueda mostrará una lista de paquetes coincidentes. Entre ellos, habrá uno que llamado simplemente “libreoffice3”. Haga clic con el botón derecho en ese paquete y, del menú contextual que se despliega, escoja “Marcar para Eliminación Completa”.
Se le solicitará el marcado de cambios adicionales, acéptelo.
En la lista de paquetes, desplácese hacia abajo hasta que aparezca el primer paquete que aún no está marcada para su eliminación. Haga clic derecho en el nombre del paquete y, en el menú contextual que se abre, seleccione “Marcar para eliminación completa”.
Do the same for the next package. You will be prompted to accept the marking of a number of additional changes. Accept these additional changes.
Haga lo mismo con el siguiente paquete. Se le pedirá el marcado de cambios adicionales. acéptelo.
Continue hasta el final de la lista y marque todos los paquetes mencionados para completar la eliminación.
Nota: La eliminación total es la mejor opción: “Marcar para eliminar” remueve la instalación, pero no elimina los archivos de su sistema;“Marcar para eliminación completa” también se eliminan los archivos de su sistema.
5) Haga clic en “Aplicar”. Un cuadro de diálogo se abrirá solicitando su confirmación. Haga clic en “Aceptar”. Permita que el proceso de instalación se complete.
6) Posteriormente, la lista de paquetes puede contener algunos más. Marque todos los paquetes restantes para eliminación, como se explicó en el paso 4.
7) Haga clic en Aplicar. Un cuadro de diálogo se abrirá solicitando su confirmación. Haga clic en “Aceptar”. Permita que el proceso de instalación se complete.
LibreOffice ha sido eliminado de su sistema.
Para asegurar la eliminación más limpia posible de una instalación previa de LibreOffice, opcionalmente puede también ejecutar el siguiente comando en una ventana de terminal y, a continuación, eliminar manualmente los archivos restantes descubiertos, usando Nautilus o el gestor de archivos proporcionado por su distribución Linux:
locate libreoffice | less
Saltarse este paso opcional no tendrá consecuencias graves para su sistema. Sólo tendrá un pequeño número de archivos obsoletos ocupando una cantidad bastante reducida de espacio en disco.
sudo dpkg -i ~/Escritorio/LibO_3.3.0_Linux_x86_install-deb_en-US/DEBS/*.deb