09 Shell Linux

  • Upload
    dzier

  • View
    236

  • Download
    0

Embed Size (px)

Citation preview

  • 8/14/2019 09 Shell Linux

    1/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl 1

    Shell - GNU/Linux

  • 8/14/2019 09 Shell Linux

    2/17

  • 8/14/2019 09 Shell Linux

    3/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell

    Algunos Shell conocidos ... (Cont.) csh

    Presente mejoras con respecto a sh Fue escrito por Bill Joy. Debe su nombre al lenguaje de programacin C.

    Al desarrollar scripts en este Shell puede utilizarse una sintaxissimilar a la de C.

    bash Es uno de los ms avanzados. Es muy popular en la comunidad GNU/Linux.

    El nombre significa Bourne Again Shell. Tiene licencia GNU y se suele incluir como Shell predeterminado en

    las distribuciones. Ofrece las mismas capacidades que csh, pero incluye funciones

    avanzadas, tanto para el usuario como para el programador.

  • 8/14/2019 09 Shell Linux

    4/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell

    Algunos Shell conocidos ... (Cont.) bash (Cont.)

    Provee acceso a un historial de comandos ejecutados. Se conserva incluso al cambiarse de sesin. Para acceder se utilizan los cursores.

    Completa nombres de comandos y archivos automticamente. Presionando la tecla TAB.

    Hay muchas otras versiones de Shell adems de las mencionadas, peroson muy similares.

  • 8/14/2019 09 Shell Linux

    5/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell - Metacaracteres

    Adems de ejecutar comandos, un Shell es capaz de interpretar ciertoscaracteres especiales llamados metacaracteres.

    Cuando se utiliza algn metacaracter, los comandos no lo reciben, sino queel Shell lo reemplaza por lo que corresponda, y le pasa al comandoejecutado el resultado de ese reemplazo.

    Eso es lo que entendemos por interpretar, reemplazar el caracter por otrocaracter o por una cadena de caracteres, segn corresponda.

    Algunos metacaracteres relacionados con archivos ... *:

    Cuando el shell encuentra un *, lo reemplaza por una lista de losarchivos que concuerdan con la expresin indicada. Por ejemplo:

    echo * nos mostrar todos los archivos del directorio. echo a* nos mostrar todos los archivos del directorio que

    comiencen con a. echo *o nos mostrar todos los archivos que terminen con o.

  • 8/14/2019 09 Shell Linux

    6/17

  • 8/14/2019 09 Shell Linux

    7/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell - Metacaracteres

    [ ]: Encerrados por los corchetes, podemos escribir un rango de

    caracteres con los cuales queremos que el Shell concuerde. Por ejemplo:

    ls [af]* nos mostrar todos los archivos que comienzan con a ocon f.

    Podemos adems especificar un rango de caracteres, con un guinen el medio. Por ejemplo:

    a-z (letras minsculas). 0-9 (nmeros). Combinarlos con caracteres individuales siempre que no sea

    ambigua la interpretacin. Por ejemplo, Si querer slo los archivos que comienzan con nmeros

    seguidos de un -, en ese caso escribiramos ls [0-9]-* o ls[0-9][0-9]-*, si comienzan con dos nmeros seguidos de un-.

  • 8/14/2019 09 Shell Linux

    8/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell - Metacaracteres

    [ ]: Cuando al comienzo de la cadena que est encerrada por los

    corchetes encontramos el carcter ^, estamos indicando que debeconcordar los caracteres que no se encuentran en el rango. Por ejemplo:

    ls [^0-9]*, nos listar todos los archivos que no comiencen conun nmero.

    Algunos metacaracteres relacionados con comandos ... Ejecutar un comando es tan sencillo como escribir el comando y apretar

    ENTER. Sin embargo, utilizando algunos de los metacaracteres deShell podemos combinar comandos para lograr resultados mucho ms

    importantes. Algunos ejemplos: ( ):

    Los parntesis sirven para encerrar grupos de comandos, ytratarlos como si fueran uno solo.

  • 8/14/2019 09 Shell Linux

    9/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell - Metacaracteres

    Algunos metacaracteres relacionados con comandos ... Ejecutar un comando es tan sencillo como escribir el comando y apretar

    ENTER. Sin embargo, utilizando algunos de los metacaracteres deShell podemos combinar comandos para lograr resultados mucho msimportantes. Algunos ejemplos:

    ( ): Los parntesis sirven para encerrar grupos de comandos, y

    tratarlos como si fueran uno solo. ;:

    El ; es un separador de comandos, nos permite ejecutar uncomando a continuacin de otro.

    Es equivalente a lo que sucedera si ejecutramos primero uno, y alterminar ejecutramos el siguiente.

    Por ejemplo: Si escribimos ls; echo Hola veremos la salida del echo a

    continuacin de la del ls.

  • 8/14/2019 09 Shell Linux

    10/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell - Metacaracteres

    &: Manda al comando a background (nos devuelve la lnea de

    comandos inmediatamente despus de apretar Enter, mientras elcomando sigue ejecutndose en segundo plano.

    Sus resultados pueden corroborarse utilizando el comando jobs.

    Por ejemplo: sleep 20; echo Hola & nos mostrar el PID del proceso queestamos ejecutando, y nos devolver el shell; 20 segundosdespus, veremos aparecer Holaen nuestra lnea decomandos.

    Antes de que termine de ejecutarse, podemos ejecutar jobs y

    observar que el proceso se est ejecutando, o bien ps y observar que el comando en ejecucin es sleep. Adems, & nos permite separar comandos.

    Mandar al comando que est a su izquierda a background.

  • 8/14/2019 09 Shell Linux

    11/17

  • 8/14/2019 09 Shell Linux

    12/17

  • 8/14/2019 09 Shell Linux

    13/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell Entrada y Salida

    GNU/Linux tiene un extenso manejo de entrada y salida. Es una de las caractersticas principales que nos permite combinar

    pequeas herramientas para lograr resultados ms complejos.

    La mayora de los comandos GNU/Linux tienen una entrada estndar, unasalida estndar y una salida para errores estndar.

    Las denominamos stdin, stdout y stderr respectivamente. La entrada estndard por omisin es el teclado

    La salida estndard y la salida de errores son, por omisin, la pantalla.

    Un comando genrico, lee datos de la entrada estndar, los procesa dealguna manera, y luego emite el resultado por la salida estndar.

    En el caso de que durante el proceso hubiera algn error, se emitiruna aviso de error por la salida de errores.

    El Shell se encarga de relacionar estos tres, lo cual no impide que undeterminado programa maneje su entrada y su salida de una maneradiferente.

  • 8/14/2019 09 Shell Linux

    14/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell Entrada y Salida

    >: nos permite direccionar la salida estndar de un comando a un

    archivo. Por ejemplo: ps ax > procesos guardar en el archivo procesos la salida del

    ps.

    >: Usar un >> en lugar de un > nos permite direccionar la salida

    estndar a un archivo, sin sobreescribirlo, sino que le agrega losdatos que nosotros queramos al final.

    Por ejemplo:

  • 8/14/2019 09 Shell Linux

    15/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Shell Entrada y Salida

    2>: Nos permite redirigir la salida de errores a un archivo. Por ejemplo:

    ls archivomalo 2> prueba, el error del ls indicndonos que elarchivomalo no existe se almacenar en prueba.

    |:

    Para relacionar la salida estndard de un comando, con la entradaestndard de otro comando, utilizamos el caracter |. Por ejemplo: ls | wc, la salida de este comando ser la cantidad de lneas,

    palabras y caracteres que produjo ls. Este comando recibe el nombre de pipe, que en ingls significa

    caera o tubera. Es decir que es un comando que entuba la salidade un comando con la entrada de otro.

    Qu pasa si ejecutamos ls > nuevo-archivo? Aparece o no el nuevoarchivo dentro del listado?

    Finalmente, no es posible utilizar un mismo archivo como entrada y salidaestndard.

  • 8/14/2019 09 Shell Linux

    16/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl

    Bonus Track

    Explicar cual es la diferencia entre ls * y echo *. Explicar en qu se diferencia ls / y echo /.

    Crear un archivo que contenga la cantidad de archivos en un directorio.

    Crear un archivo a.txt, que contenga hola, y otro b.txt, que contenga chau.Luego concatenarlos en un archivo ab.txt.

  • 8/14/2019 09 Shell Linux

    17/17

    Antonio Varas 666 Providencia, Santiago, Chile Fono: (562) 354 04 00 Email: [email protected] WEb: www.duoc.cl 17

    Consultas?