Shell Bash

  • View
    14.282

  • Download
    5

Embed Size (px)

Text of Shell Bash

El shell Bash

El shell Bash

MacProgramadores

Acerca de este documentoEn este tutorial pretendemos ensear el manejo de Bash, el Bourne Again Shell de GNU. Este shell es el que proporcionan por defecto muchos sistemas UNIX entre ellos Mac OS X o Linux. Los ejemplos se explicarn sobre Mac OS X, pero debido a la interoperatividad que caracteriza a Bash, estos ejemplos deberan ser exactamente igual de tiles en otros sistemas UNIX. Cuando existan diferencias las indicaremos para que usuarios de otros sistemas puedan seguir correctamente este documento. El tutorial asume que el lector conoce los aspectos ms bsicos de qu es, y para qu sirve un terminal. A lo largo del documento comentaremos gran cantidad de comandos que estn relacionados con el shell, y que ayudan a hacer que los ejemplos resulten tiles. Sin embargo, resulta imposible abarcar todos los muchos y tiles comandos a los que podemos acceder desde el terminal. Al acabar este tutorial el lector debera de haber aprendido a personalizar su terminal para hacerlo ms manejable, a modificar o crear los scripts que configuran su sistema y a manipular texto mediante el uso de comandos como grep, sed y awk.

Nota legalEste tutorial ha sido escrito por Fernando Lpez Hernndez para MacProgramadores, y de acuerdo a los derechos que le concede la legislacin espaola e internacional el autor prohbe la publicacin de este documento en cualquier otro servidor web, as como su venta, o difusin en cualquier otro medio sin autorizacin previa. Sin embargo el autor anima a todos los servidores web a colocar enlaces a este documento. El autor tambin anima a cualquier persona interesada en conocer el shell Bash, y las ventajas que aporta tanto al usuario como al programador, a bajarse o imprimirse este tutorial. Madrid, Mayo 2009 Para cualquier aclaracin contacte con: fernando@DELITmacprogramadores.org

Pg 2

El shell Bash

MacProgramadores

Tabla de contenidoTEMA 1: Introduccin a Bash 1. El shell que estamos usando................................................................ 8 2. Expansin de nombres de ficheros y directorios .................................. 10 2.1. Los comodines ........................................................................... 10 2.2. El comodn tilde.......................................................................... 11 2.3. El comodn llaves........................................................................ 12 2.4. Comodines extendidos ................................................................ 13 3. Los comandos internos de Bash ......................................................... 15 4. Redirecciones y pipes........................................................................ 16 4.1. Operadores de redireccin .......................................................... 16 4.2. Pipes ......................................................................................... 17 5. Ejecucin secuencial y concurrente de comandos................................ 18 6. Caracteres especiales y entrecomillado............................................... 19 6.1. Entrecomillado ........................................................................... 19 6.2. Caracteres de escape.................................................................. 20 6.3. Entrecomillar los entrecomillados ................................................. 21 6.4. Texto de varias lneas ................................................................. 21 TEMA 2: Combinaciones de teclas 1. El historial de comandos.................................................................... 24 1.1. El comando fc ........................................................................... 24 1.2. Ejecutar comandos anteriores...................................................... 25 2. Las teclas de control del terminal....................................................... 26 3. Modos de edicin en la lnea de comandos ......................................... 27 3.1. Moverse por la lnea.................................................................... 27 3.2. Borrar partes de la lnea.............................................................. 28 3.3. Buscar en el historial................................................................... 29 3.4. Autocompletar con el tabulador ................................................... 29 4. La librera readline ............................................................................ 30 4.1. El fichero de configuracin .......................................................... 30 4.2. Asignacin de teclas de sesin..................................................... 32 TEMA 3: Personalizar el entorno 1. Los ficheros de configuracin de Bash ................................................ 35 2. Los alias........................................................................................... 36 3. Las opciones de Bash........................................................................ 37 4. Las variables de entorno ................................................................... 39 4.1. Variables y entrecomillado........................................................... 39 4.2. Personalizar el prompt ................................................................ 39 4.3. Variables de entorno internas ...................................................... 42 4.4. Exportar variables....................................................................... 42Pg 3

El shell Bash

MacProgramadores

TEMA 4: Programacin bsica del shell 1. Scripts y funciones............................................................................ 44 1.1. Scripts ....................................................................................... 44 1.2. Funciones .................................................................................. 44 1.3. Orden de preferencia de los smbolos de Bash .............................. 45 2. Variables del shell............................................................................. 47 2.1. Los parmetros posicinales ........................................................ 47 2.2. Variables locales y globales ......................................................... 48 2.3. Las variables $*, $@ y $# ........................................................... 51 2.4. Expansin de variables usando llaves ........................................... 54 3. Operadores de cadena ...................................................................... 55 3.1. Operadores de sustitucin ........................................................... 55 3.2. Operadores de bsqueda de patrones .......................................... 58 3.3. El operador longitud ................................................................... 61 4. Sustitucin de comandos................................................................... 62 TEMA 5: Control de flujo 1. Las sentencias condicionales ............................................................. 68 1.1. Las sentencias if, elif y else ................................................. 68 1.2. Los cdigos de terminacin ......................................................... 68 1.3. Las sentencias return y exit ................................................... 69 1.4. Operadores lgicos y cdigos de terminacin................................ 71 1.5. Test condicionales ...................................................................... 72 2. El bucle for..................................................................................... 78 3. Los bucles while y until ............................................................... 81 4. La sentencia case............................................................................ 82 5. La sentencia select ........................................................................ 84 TEMA 6: Opciones de lnea de comandos, expresiones aritmticas y arrays 1. Opciones de la lnea de comandos ..................................................... 87 1.1. La sentencia shift.................................................................... 87 1.2. El comando interno getopts...................................................... 89 2. Variables con tipo ............................................................................. 92 3. Expresiones aritmticas..................................................................... 95 3.1. Similitud con las expresiones aritmticas C ................................... 95 3.2. El comando interno let.............................................................. 96 3.3. Sentencias de control de flujo aritmticas..................................... 98 3.4. Arrays.......................................................................................100

Pg 4

El shell Bash

MacProgramadores

TEMA 7: Redirecciones 1. Redirecciones ..................................................................................107 1.1. Los descriptores de fichero.........................................................108 1.2. El comando exec ......................................................................110 1.3. Here documents ........................................................................111 2. Entrada y salida de texto..................................................................113 2.1. El comando interno echo...........................................................113 2.2. El comando interno printf.......................................................115 2.3. El comando interno read...........................................................118 3. Los bloques de comandos ................................................................121 4. Los comandos comand, builtin y enable.....................................124 5. El comando interno eval.................................................................125 TEMA 8: Manipular texto 1. Herramientas de manipulacin de texto......