Info y Manuales /

Tuto Linux Capitulo 3/9 (Uso y Configuracion Intermedia)

Participa en el tema Tuto Linux Capitulo 3/9 (Uso y Configuracion Intermedia) en el foro Info y Manuales.
Módulo III Uso y Configuración intermedia En este módulo se estudiará más en detalle el ...

Buscar en este tema:
 
  •  
    #1 Tuto Linux Capitulo 3/9 (Uso y Configuracion Intermedia)
    Módulo III

    Uso y Configuración intermedia

    En este módulo se estudiará más en detalle el uso de Linux, así como también herramientas que nos permitan administrar Linux.
    Editor “vi”

    El "vi" es un editor muy poderoso, podrá ser un editor muy poco amigable con el usuario, pero es el único editor que siempre va a estar en cualquier distribución de Linux (así como en cualquier otro Unix). Entendemos que es vital que cualquier persona que esté aprendiendo a manejarse dentro de Linux, debe poder utilizar este editor.

    Introducción al "vi"

    El editor "vi" tiene dos modos, modo edición y modo comando. Podríamos imaginar al modo comando como el momento en el cual estamos navegando dentro de los menues de cualquier editor tradicional de caracteres. Cualquiera que haya utilizado un editor tradicional de caracteres sabe que mientras se navega por los menues no se puede seguir escribiendo el texto editado. El modo comando del "vi" tiene esa semejanza, mientras estoy en el modo comando, no se puede escribir sobre el texto, sino darle ordenes al editor para que ejecute una u otra función predeterminada.
    Las ordenes que se le da al editor en el modo comando son muy específicas y muy puntuales. Como no existe semejante cosa como un menú de funciones en el "vi", se utilizan letras y combinaciones de ellas, para lograr la ejecución de las mismas.

    Modo Comando

    Cuando invocamos el editor con la línea "vi [nombre de archivo]", entramos en modo comando.
    La siguiente es una tabla que detalla algunos de los comandos mas utilizados. Es muy importante que se respeten las mayúsculas y minúsculas ya que significan cosas distintas.

    Comandos simples

    Comando Descripción
    "a" Entra al modo edición, una posición después de la ubicación del cursor (diminutivo de "append").
    "A" Entra al modo edición, al final de la línea en la que estamos ubicados.
    "i" Entra al modo edición, exactamente en la posición actual del cursor.
    "I" Entra al modo edición, al principio de la línea.
    "x" Borra el caracter que está debajo del cursor.
    "X" Borra el caracter que está detrás del cursor.
    "yy" Copia una línea entera en el buffer (un "copy").
    "p" Pega lo que tenga en el buffer en el lugar donde estamos ubicados (un "paste").
    "dd" Borra el contenido de una línea y lo copia al buffer (un "cut").
    Flechas Movimiento dentro del archivo.
    "h" Mueve el cursor hacia la izquierda.
    "l" Mueve el cursor hacia la derecha.
    "k" Mueve el cursor hacia arriba.
    "j" Mueve el cursor hacia abajo.
    "." Repite la ultima función.
    "cw" Nos permite reeditar caracteres hasta que se encuentre un ":", una ",", un "." o un espacio.
    "cW" Nos permite reeditar caracteres hasta que se encuentre un espacio (sin importar que caracteres haya hasta el espacio).
    "r" Reemplaza el caracter debajo del cursor.
    "R" Reemplaza todos los caracteres hasta el final de la línea o finalización del modo "reemplazo".
    "ZZ" Grabar el archivo y salir del editor.
    "u" Revertir el último comando ejecutado (o edición agregada).
    "G" Ir al final del archivo.
    "numero <comando>" El número representa cantidad de líneas, el comando puede ser cualquiera de los descriptos que se aplique. Por ejemplo para subir 10 líneas, podemos ejecutar "10k". Otro ejemplo sería, copiar 20 líneas, lo haríamos con "20yy".
    "o" Agregar una línea debajo de la que estamos ubicados y cambiar a modo edición.
    "O" Agregar una línea arriba de la que estamos ubicados y cambiar a modo edición.

    Comandos combinados

    Además de los comandos citados en la tabla anterior, existen muchos otros comandos o funciones que se pueden ejecutar desde el "vi" utilizando el comando simple ":". Cuando se teclea este símbolo, el editor nos lleva a la ultima línea de la pantalla donde podremos ejecutar diferentes funciones.
    La siguiente es una tabla con las funciones mas utilizadas, todas estas funciones se pueden ejecutar, únicamente, despues de teclear los ":".
    Es importante destacar que se pueden combinar estas funciones, por ejemplo, podríamos ejecutar ":wq" y además de grabar el archivo, se saldrá del editor.


    Función Descripción
    "w [nombre de archivo]" Grabar archivo (si le agregamos el símbolo de admiración "!", se fuerza la grabación).
    "q" Salir del editor (si le agregamos el símbolo de admiración "!", se sale del editor sin grabar).
    "n [nombre de archivo]" Editar el archivo pasado como argumento, manteniendo el anterior en memoria.
    "n #" Volver al archivo anterior.
    "r <nombre de archivo>" Insertar el archivo, pasado como argumento, dentro del archivo actual.
    "! <comando>" Ejecutar "<comando>" (del shell) y mostrar su salida.
    "!! <comando>" Ejecutar "<comando>" (del shell) y insertar la salida del mismo dentro del archivo en edición.
    "x" Grabar y salir del editor (sinónimo de ":wq")


    Modo Edición

    Para ingresar al modo edición se pueden utilizar varios comandos, la mayoría de ellos están descriptos en la tabla de comandos simples (ej.: "a", "i", "A", "I").

    Existe una única tecla para salir del modo edición y es la tecla "escape" ("Esc").

    Una vez que se ingresó al modo edición, simplemente tenemos que escribir el texto deseado.


    Programación en Bash

    Shell Scripts (programación en shell)
    Introducción
    Linux, así como la mayoría de los UNIX, utilizan shell scripts para realizar una infinidad de tareas. Un shell script es un programa que se escribe con una sintaxis particular, para que sea interpretado por un shell (en este caso /bin/bash).
    Un shell script es básicamente un programa que llama a otros programas, con la posibilidad de hacer algun tipo de procesamiento propio (como control de flujo, operaciones matemáticas simples, etc.)

    Existen muchos shells disponibles para Linux pero habitualmente se utiliza el bash (bourne again shell) para la programación en shell ya que está disponible libremente y es fácil de usar. Por lo tanto todos los scripts que escribamos en este artículo usarán el bash (aunque la mayoría de veces también funcionarán con su hermano mayor, el bourne shell).
    Para escribir nuestros programas en shell usaremos cualquier clase de editor de texto, p.ej. Vi, mcedit, joe... como con otros lenguajes de programación.
    El programa debe empezar con la siguiente línea (debe ser la primera línea del fichero):
    #!/bin/bash

    Los caracteres #! indican al sistema que el primer argumento que sigue en la linea es el programa a utilizar para ejecutar este fichero. En este caso usamos el shell /bin/bash.
    Cuando hallas escrito y guardado tu script debes hacerlo ejecutable para poder usarlo.
    Para hacer el script ejecutable debemos escribir el siguiente comando:

    chmod +755 nombre-del-script.

    Después puedes ejecutar tu script escribiendo:
    ./nombre-del-script

    Variables
    Asignación:
    La asignación de variables se realiza simplemente indicando su nombre, un signo =, y el valor, como en el siguiente ejemplo:

    nombre="Luis"

    Valor:
    El valor de una variable se toma anteponiendo un signo $ al nombre, así si queremos imprimir el valor de la variable nombre que creamos antes:

    echo $nombre

    Entradas/Salidas (I/O)
    La entrada salida puede manejarse con los comandos echo y read:

    echo $variable

    echo -n "Esto no imprime un carácter nueva línea al final"

    read ciudad

    read ciudad calle nro

    Este último ejemplo lee 3 valores desde el teclado, tomando como separador el estándar definido para el shell (usualmente el espacio). Los valores van a las variables que se están leyendo ($ciudad, $calle y $nro).

    Si se desea dirigir a pantalla múltiples líneas de texto, puede utilizarse un truquito con el comando cat:

    #!/bin/bash

    cat << IMPRIMIRHASTAAQUI
    Esto es un ejemplo
    de un texto realmente largo
    que debemos sacar por pantalla
    hasta llegar al punto indicado
    en el comando cat de arriba
    IMPRIMIRHASTAAQUI

    ?sigue el script?

    Variables predefinidas

    Variable Descripción
    $# Número de argumentos
    $* Todos los argumentos del shell
    $- Opciones suministradas al shell
    $? Valor de retorno del último comando ejecutado
    $$ Identificación del PID (número de proceso)
    Programación avanzada en shell scripts

    Los shell scripts son una herramienta muy utilizada en Linux, por lo tanto, es importante que el asistente logre un buen nivel de conocimiento en esta herramienta.
    En este nivel más avanzado se verá nueva sintaxis de shell script, que le permitirá al administrador escribir shell scripts más fáciles de leer y mucho más funcionales.

    Argumentos

    Los argumentos sirven para pasarle a un programa o una función valores desde la línea de comando.

    Variable Significado
    $* Todos los argumentos
    $# Cant. de argumentos
    $0 Nombre del script
    $1 Primer argumento
    $2 Segundo argumento
    $n Argumento 'enésimo'

    Ejemplo:

    #!/bin/sh
    #
    # Programa que recibe argumentos y los imprime por pantalla
    #

    echo "\$*: $*"
    echo "\$#: $#"
    echo "\$0: $0"
    echo "\$1: $1"
    echo "\$2: $2"

    Notas sobre el ejemplo:

    En la líneas de impresión (echo), para imprimir el símbolo "$" (pesos) se tiene que anteponer el símbolo "\" (contra barra), sino el shell lo va a interpretar como una variable, y si esta existe imprimirá su contenido.

    Argumentos

    Los argumentos que se pasan en el momento de invocar el script se asignan a las variables automáticas $1, $2, $3, etc...

    script perro gato loro

    $1 vale perro, $2 vale gato, $3 vale loro.

    En ocasiones se desea asignar a una variable el valor obtenido mediante la ejecución de otro comando. Esto se logra encerrando el comando entre ' como se ve en el siguiente ejemplo:

    horaydia='date'

    Otras variables automáticas son $0 que contiene el nombre del script, y $# que contiene la cantidad de argumentos ingresados durante la ejecución del script.

    Expresiones

    El comando test permite evaluar expresiones devolviendo verdadero o falso como resultado (usualmente se utiliza con el comando if):

    test "$nombre" = "Luis"

    El ejemplo de arriba chequea igualdad.
    Si deseamos chequear desigualdad debemos usar el operador != como en C:

    test "$nombre" != "Carlos"

    Otros operadores son:

    test $variable
    Chequea si la variable contiene algún dato, en cuyo caso devuelve verdadero.

    test -z $variable
    Chequea si la variable no contiene datos (longitud cero), en cuyo caso devuelve verdadero.

    test $variable1 -eq $variable2
    Chequea igualdad entre variables numéricas enteras, si son iguales devuelve verdadero.

    test $variable1 -ge $variable2
    Chequea si el primer valor es mayor o igual que el segundo, en cuyo caso devuelve verdadero.

    test $variable1 -gt $variable2
    Chequea si el primer valor es mayor que el segundo, en cuyo caso devuelve verdadero.

    test $variable1 -le $variable2
    Chequea si el primer valor es menor o igual que el segundo, en cuyo caso devuelve verdadero.

    test $variable1 -lt $variable2
    Chequea si el primer valor es menor que el segundo, en cuyo caso devuelve verdadero.

    test $variable1 -ne $variable2
    Chequea que los dos valores no sean iguales, en cuyo caso devuelve verdadero.

    test $archivo1 -nt $archivo2
    Chequea las fechas de modificación de dos archivos, devolviendo verdadero si el archivo1 es más nuevo que el archivo2.

    test -f $archivo
    Chequea si el archivo existe, en caso afirmativo devuelve verdadero.

    test -d $archivo
    Chequea si el archivo en cuestión es un directorio y si existe, en cuyo caso devuelve verdadero.

    test -r $archivo
    Chequea si tenemos permiso de lectura sobre el archivo, devolviendo verdadero en caso afirmativo.

    test -w $archivo
    Chequea si tenemos permiso de escritura sobre el archivo, devolviendo verdadero en caso afirmativo.

    test -x $archivo
    Chequea si tenemos permiso de ejecución sobre el archivo, devolviendo verdadero en caso afirmativo.

    test -b $archivo
    Chequea si el archivo es un block device, devolviendo verdadero en caso afirmativo.

    test -c $archivo
    Chequea si el archivo es un character device, devolviendo verdadero en caso afirmativo.
    Evaluando el resultado de un comando

    Dado que los comandos que se ejecutan con éxito devuelven un código de ejecución equivalente a verdadero, mientras que los que fallan devuelven un código de ejecución equivalente a falso, podemos evaluar directamente el resultado de un comando como en el siguiente ejemplo:

    grep "$nombre" /etc/passwd > /dev/null

    Si el usuario existe el resultado será verdadero, de lo contrario será falso.
    El '> /dev/null' es para evitar la salida del grep por pantalla.

    Condicionales y ciclos:
    if ... then ... else ... fi
    Un ejemplo simple de if donde se chequea el shell en el que estamos trabajando con la variable de entorno $SHELL.

    #!/bin/bash
    if [ "$SHELL" = "/bin/bash" ]; then
    echo "tu shell es el bash (bourne again shell)"
    else
    echo "tu shell no es bash sino $SHELL"
    fi
    Otro ejemplo donde el usuario ingresa por teclado su nombre y es comprarado con la variable nombre.
    #!/bin/bash
    echo -n Ingrese nombre de usuario:
    read usuario

    if test "$nombre" = "Luis"
    then
    echo "Hola Luis"
    else
    echo "Fuera de aquí!"
    fi


    &&
    (permite un if...then rápido, en realidad es un AND lógico)

    test "$nombre" = "Luis" && echo "Hola Luis!"
    ||
    (similar al anterior pero para el caso falso, en realidad es un XOR lógico)

    test "$nombre" = "Luis" || echo "Ud. no es Luis!"
    case ... in ... esac

    case $nombre in
    Luis) echo "Hola Luis, como va todo?"
    ;;
    Carlos) echo "Hola Carlos!"
    ;;
    Pepe) echo "Despertate Pepe!!!"
    ;;
    *) echo "no tengo idea de quién es Ud."
    esac
    while ... do ... done

    nombre="Lorenzo"
    while test "$nombre" = "Lorenzo"
    do
    echo -n "Ingrese su nombre, Lorenzo es inaceptable: "
    read nombre
    done
    until ... do ... done

    until test "$nombre" = "Lorenzo"
    do
    echo -n "Ingrese su nombre, Lorenzo es inaceptable: "
    read nombre
    done
    for ... in ... do ... done

    for nombrearchivo in *html
    do
    echo -n "El archivo: $nombrearchivo contiene "
    wc -l $nombrearchivo
    done

    Ese programa recorre todos los archivos con extensión html en el directorio actual, y cuenta las líneas en cada uno de ellos.

    Cómo evitar que salgan falsos positivos en el grep

    ps aux | grep httpd | grep -v grep > /dev/null

    El ps aux lista todos los procesos.
    El primer grep filtra todas las líneas que contienen httpd, pero por desgracia baja la línea grep httpd que estamos ejecutando.
    Por esto el segundo grep inverso, para mostrar las líneas que no contienen la palabra grep.
    Finalmente enviamos todo a /dev/null para evitar que salga por pantalla.

    Select

    La sentencia select es una extensión específica del bash y es muy útil para usos interactivos. El usuario puede escoger una opción de una lista de difirentes valores:
    select var in ... ; do
    break
    done
    .... ahora podemos usar $var ....
    Un ejemplo:
    #!/bin/sh
    echo "¿Cuál es tu sistema operativo favorito?"
    select var in "Linux" "Gnu Hurd" "Free BSD" "Otros"; do
    break
    done
    echo "Has seleccionado $var"
    Aquí tienes lo que haría el programa:
    ¿Cuál es tu sistema operativo favorito?
    1) Linux
    2) Gnu Hurd
    3) Free BSD
    4) Otros
    #? 1
    Has seleccionado Linux
    Funciones
    Las funciones son un recurso esencial para la buena programación, permiten escribir una sola vez un pedazo de código que se repita varias veces en el código, y así lograr minimizar el margen de error y también la cantidad de líneas codificadas en el programa.
    Para utilizarlas simplemente se hace un llamado a la función. Las funciones pueden estar dentro del mismo shell script, o en un archivo aparte. Cuando se escriben las funciones en un archivo aparte, es muy importante utilizar el comando "." (punto) para cargarlas en memoria. Si no se cargan en memoria de esta manera, las funciones no estarán disponibles.
    Ejemplo:
    #
    # Cargando las funciones en memoria
    # (Hay un espacio despues del .)
    . /home/pepe/funciones/funciones-arch.sh

    Uso

    La sintaxis para utilizar funciones es muy sencilla y no agrega mayor dificultad. El modo de uso se remite a definir la función especificando el nombre y paréntesis que abren y cierran. Todos los comandos que involucran la función se encierran con llaves.

    Ejemplo

    (archivo: lib/arch.sh)
    #
    # Funciones para manipulación de archivos
    #

    borrar ()
    {
    arch=$1

    if [ -z "$arch" ]
    then
    echo "No se recibió ningún archivo"
    return 2
    else
    if [ -f "$arch" ]
    then
    if [ -w "$arch" ]
    then
    rm -i $arch
    else
    echo "No tengo permisos para borrar $arch"
    fi
    else
    echo "$arch no es un archivo"
    fi
    fi
    }

    (archivo: principal.sh)
    #!/bin/bash
    #
    # Programa ejemplo para el uso de funciones en shell script
    #

    #
    # Cargo las funciones en memoria
    # CUIDADO CON EL ESPACIO!!!!!!
    . /lib/arch.sh

    dir=./

    for i in $dir/*
    do
    borrar $i
    done

    Notas sobre el ejemplo:

    (archivo: lib/arch.sh)
    Esta función toma el archivo a borrar como argumento (arch=$1), verifica que se le haya pasado un argumento realmente (if [ -z "$arch" ]), que un archivo pasado como argumento sea regular (if [ -f "$arch" ]) y que tenga permisos de escritura. En todos los casos de falsedad responde con un mensaje avisando el problema.

    (archivo: principal.sh)
    El programa hace un ciclo con los archivos de un directorio específico (for i in $dir/*) y se los pasa como argumento a la función borrar.

    Valores de Retorno

    Las funciones pueden devolver valores de error utilizando el comando "return <valor>". En caso de que no se especifique un valor de retorno de esta forma, el valor retornado será el que retorne el último comando ejecutado dentro de la función. Desafortunadamente no es posible asignar el valor retornado en una sola línea, siempre es necesario utilizar la variable especial "$?".

    Ejemplo:

    #!/bin/sh

    func () {
    return $1
    }

    func 0
    echo "ret: ($?)"
    func 1
    echo "ret: ($?)"
    func 2
    echo "ret: ($?)"
    func 3
    echo "ret: ($?)"

    Variables locales a la función

    Existe la posibilidad de utilizar variables locales a la función, esto significa que la variable solamente va a existir durante la ejecución de la función.
    Para crear una variable local a la función se utilizar el operador "local <nombre_de_variable>".

    Ejemplo:

    func () {
    local x
    x=$1
    echo "Dentro de la función \$x vale ($x)"
    }


    echo "Antes de ejecutar la función \$x vale ($x)"
    func HOLA!!
    echo "Después de ejecutar la función \$x vale ($x)"


    Ejercicios

    Realizar el ejemplo en la PC (utilizando un archivo con las funciones y otro archivo con el programa principal).
    Cambiar el ejemplo para que el directorio donde residen los archivos a borrar sea pasado como argumento al programa principal.
    Armar otra función, que en indique cuales de todos los archivos del directorio en cuestión, son subdirectorios del mismo.

    Operaciones Aritméticas

    Existen varias formas de calcular valores dentro de un shell script. Tradicionalmente, estos cálculos se hicieron con programas externos, esto generaba un retardo inmenso en la ejecución del shell script.
    Hoy los nuevos intérpretes traen la posibilidad de hacer cálculos internamente. Para esto se utiliza una sintaxis especial, y es muy importante que los valores de las variables que utilicen para hacer estos cálculos sean números únicamente.
    Uso

    La sintaxis para hacer operaciones aritméticas es la siguiente:

    $[<expresión>]

    Las operaciones que se pueden realizar son:
    suma ($[1+1])
    resta ($[2-1])
    multiplicación ($[2*2])
    división ($[2/2])
    otras como suma de bits, sacar el módulo, evaluación de igualdad, etc.

    Ejemplo

    #!/bin/sh
    #
    # Operaciones aritméticas
    #

    x=2

    tot=$[$x+1]

    echo "tot: ($tot)"

    Ejercicios

    Realizar un calculador (con funciones simples, suma, resta, multiplicación y división) pidiendo los datos por teclado.

    Ejercicios:

    Ejemplo 1
    1
    cd
    ls -1 >salida_script1.dat

    Ejemplo 2
    #! /bin/bash
    echo hola a todos
    ls -1 > borrama.txt

    Ejemplo 3
    echo $1 $2 $3

    Ejemplo 4
    #! /bin/bash
    variable1=$1
    variable2=$2
    variable3=$3
    echo Ud. Ingreso $variable1
    read variable1
    echo Ud. Ingreso $variable2
    read variable2
    echo Ud. Ingreso $variable3
    read variable3
    echo -n

    Ejemplo 5
    #! /bin/bash
    variable1=$1
    variable2=$2
    variable3=$3
    echo "Ingrese primer variable: "
    read variable1
    echo "Ingrese segunda variable: "
    read variable2
    echo "Ingrese tercer variable: "
    read variable3

    Ejemlplo 6
    Usuario=$1
    echo -n Ingrese nombre de usuario:
    read usuario
    If [ $usuario = "Luis" ]
    then
    echo Bienvenido $usuario
    else echo Permiso denegado
    Fi

    Ejemplo 7
    servicio=$1
    echo -n Ingrese el servicio
    read servicio
    If ps - aux | grep -v grep | grep $servicio
    then
    echo El servicio $servicio esta OK !!!!!
    else
    echo El servicio NO esta activo !!!!!!!
    fi

    Ejemplo 8
    Servicio=$1
    echo -n Ingrese el servicio
    read servicio
    If ps -aux | grep -v grep | grep $servicio >/dev/null
    then
    echo El servicio $servico esta OK !!!!!
    else
    echo El servicio NO esta activo !!!!
    fi

    Ejemplo 9
    #! /bin/bash
    if ps -aux |grep -v grep | grep smb >info9.txt
    then
    echo El servicio esta OK >>info9.txt
    mail -s "servicio OK" <info9.txt
    else
    echo El sservicio No esta activo >>info9.txt
    mail -s "servicio CAIDO" <info9.txt
    fi

    Ejemplo 10
    archivo=$1
    echo "Ingrese valor a testear "
    read archivo
    if [ -f $archivo ]
    then
    echo " Esto es un archivo "
    else
    echo " Esto no es un archivo "
    fi

    Ejemplo 11
    archivo=$1
    echo Ïngrese valor a testear "
    read archivo
    if test -f $ archivo
    then
    echo " Esto es un archivo "
    else
    echo "Esto no es un archivo "
    if

    Ejemplo 12
    # COMPARACIONES ##########################
    numuno=$1
    numdos=$2
    echo " Ingrese primer valor "
    read numuno
    echo " Ingrese segundo valor "
    read numdos
    if test $numuno -eq $numdos #comparacion -eq
    then
    echo " El primer valor es igual al segundo "
    else
    if test numuno -gt $numdos # -gt mayor que (operador logico)
    then
    echo " El primer valor es mayor que el segundo "
    else
    echo " El segundo valor es mayor que el primero "
    fi
    fi

    Ejemplo 13
    #! /bin/bash
    Servicio=$1
    If ps -aux | grep -v grep | grep $servicio > /dev/null
    then
    echo Servicio $servicio ACTIVO
    else
    echo Servicio $servcio CAIDO. Intentando iniciar.........
    /etc/rc.d/init.d/$servico start
    if ps -aux | grep -v grep | grep $servicio > /root/bin
    /info.txt
    then
    echo Servicio $servicio OK
    else
    echo Servicio $servicio Imposible de levantar
    mail -s "servicio CAIDO" <root
    /bin/info.txt
    fi
    fi

    Ejemplo 14
    #! /bin/bash
    nombre=$1
    echo Ingrese el nombre y la extención del archivo
    read nombre
    touch $nombre
    chmod 755 $nombre
    vi $nombre
    #!/bin/bash
    tar czvf /root/backup/prueba$ (date +&d%m%y). tar. gz /home
    echo Listo el backup.


    Ejemplo 15
    #! /bin/bash
    tar czvf /root/backup/prueba$ (date +&d%m%y). tar . gz /home
    echo Listo el backup.

    Ejemplo 16
    #! /bin/bash
    archiv=$1
    echo Ingrese el nombre del Archivo
    read archiv
    Iif [ -z $archiv ]
    then
    echo No se ingreso ningún parámetro
    else
    if [ -f $archiv ]
    then
    echo Es un archivo
    if [ -w $archiv ]
    then
    echo Se puede escribir
    else
    echo No se puede escribir
    fi
    else
    echo No es un archivo
    fi
    fi


    Ejemplo 17
    #!/bin/bash
    numuno=$1
    numdos=$2
    echo Ingrese Primer Numero
    read numuno
    echo Ingrese Segundo Numero
    read numdos
    total=$ [ $numuno + $numdos ]
    echo La Suma de los dos Numeros es $total
    total=$ [ $numuno - $numdos ]
    echo La Resta de los dos Numeros es $total
    total=$ [ $numuno / $numdos ]
    total=$ [ La Division de los dos Numeros es $total
    total=$ [ $numuno * $numdos ]
    echo La Multiplicación de los dos Numeros es $total

    Ejemplo 18
    #!/bin/bash
    nomb=$1
    echo Ingrese su nombre
    case $nomb in
    elreimon)
    echo Que tul $nomb ; ;
    NoName)
    echo Que tul sin permiso $nomb ; ;
    *)
    echo Ya fuiste ; ;
    esac

    Ejemplo 19
    #! /bin/bash
    mes=$1
    echo Ingrese un Mes
    read mes
    case $mes in
    ene?? | ENER? | fue* |nada)
    echo Entro en l;a 1ra opcion ; ;
    Dici* | DIC*| diciem* )
    echo Ya fue el anio ; ;
    *)
    echo Ya fuiste ; ;
    esac


    Ejemplo 20
    #! /bin/bash
    numuno=$1
    numdos=$2
    operacion=$3
    echo Ingrese Primer Numero
    read numuno
    echo Ingrese Segundo Numero
    read numdos
    echo "Ingrese la operación a realizar ( S R D M ) "
    read operación
    case $operación in
    S | s | + )
    total=$ [ $numuno + $numdos ]
    echo La Suma de los dos Numeros es $total ;;
    R | r | - )
    total =$ [ $numuno - $numdos ]
    echo la Resta de los dos Numeros es $total ; ;
    D | d| /)
    If [ $numdos !eq o ]
    Then
    Total=$ [ $numuno / $numdos ]
    Echo la Division de los dos Numeros es $total
    Else
    echo No se puede dividir por 0
    fi ; ;
    M|m|\*)
    total=$[ $numuno * $numdos ]
    echo la Multiplicacion de los dos Numeros es total ; ;
    *)
    echo Ingrese una operación valida!!!!!!!!!
    Esac

    Ejemplo 21
    #/bin/bash
    cd /tmp
    for i in `Is`
    do
    echo El aarchivo a copiar es $I
    cp -i $i /root/prueba
    done
    cd -

    Ejemplo 22
    #!/bin/bash
    for servicio in `cat ctrlserv.txt`
    do
    is ps -aux | grep -v grep | grep $servicio >/dev/null
    then
    echo $servicio ACTIVO
    #mail -s "servicio OK"
    else
    #echo $servicio CAIDO. Intentando iniciar......
    /etc/rc.d/init.d/$servicio start
    if ps -aux | grep -v grep | grep $servicio > /root/bin
    /info.txt
    then
    echo $servicio OK
    else
    #echo $servicio Imposible de levantar
    mai; -s "servicio CAIDO $servicio " < /root/bin/info.txt
    fi
    fi
    done

    Ejemplo 23
    # /bin/bash
    while sleep 7
    do
    if who | grep prueba > /dev/null
    then
    echo Hola Prueba
    else
    echo Prueba No esta
    exit
    fi
    done

    Ejemplo 24
    #/bin/bash
    until who | grep prueba
    do
    sleep 7
    echo Entro en verdadero
    done


    Ejemplo 25
    #! /bin/funciones/copiar.sh
    dir=./
    for bucle in `ls $dir`
    do echo $bucle
    copiar $bucle
    done

    Backup
    #!/bin/bash
    tar czvf /root/prueba/backuppreimon.tar.gz /root/bin

    Indice

    Módulo III 1
    Uso y Configuración intermedia 1
    Editor “vi” 2
    Introducción al "vi" 2
    Modo Comando 2
    Comandos simples 2
    Comandos combinados 3
    Modo Edición 3
    Programación en Bash 4
    Variables 4
    Valor: 5
    Entradas/Salidas (I/O) 5
    Variables predefinidas 5
    Programación avanzada en shell scripts 5
    Argumentos 6
    Notas sobre el ejemplo: 6
    Argumentos 6
    Expresiones 6
    Evaluando el resultado de un comando 8
    Condicionales y ciclos: 8
    Cómo evitar que salgan falsos positivos en el grep 9
    Funciones 10
    Uso 10
    Ejemplo 11
    Valores de Retorno 12
    Variables locales a la función 12
    Ejercicios 12
    Operaciones Aritméticas 13
    Uso 13
    Ejemplo 13
    Ejercicios 13
    Ejemplo 5 14
    Ejemlplo 6 14
    Ejemplo 7 14
    Ejemplo 10 15
    Ejemplo 13 15

    Que lo disfruten!!!

    Saludos
    Sir Tingal0

    UIN:92565677
    +
     
    0
    Me gusta
     
    | Más
  • #2

    lean
    Me gusta este mensaje
  • #3 Re: Tuto Linux Capitulo 3/9 (Uso y Configuracion Intermedia)

    Si no es mucha molesta te pediria que postees la fuente por favor. No para realizar una comparacion, si no que simplemente para tenerlo.
    Por otro lado te comento que este tema es el 2002, por lo tanto no hay mucho que podamos realizar a estas alturas respecto a este tema.
    Nos vemos
    Me gusta este mensaje
  • #4 Re: Tuto Linux Capitulo 3/9 (Uso y Configuracion Intermedia)

    gracias
    Me gusta este mensaje


Estadísticas del tema
  • 3 RESPUESTAS
  • 9357 VISTAS
  • 3 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB