1 / 76

La Shell Bash

La Shell Bash. Capitulo 1. Introducción a Bash. Shell Bash. La shell es lo que ve cuando abre una terminal y lo que más usa para iniciar cada comando Hay una variedad de shells disponibles, pero todas hacen los mismo: Escuchar comandos Iniciar procesos informar los resultados.

inge
Download Presentation

La Shell Bash

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. La Shell Bash

  2. Capitulo 1 Introducción a Bash

  3. Shell Bash • La shell es lo que ve cuando abre una terminal y lo que más usa para iniciar cada comando • Hay una variedad de shells disponibles, pero todas hacen los mismo: • Escuchar comandos • Iniciar procesos • informar los resultados

  4. Shell Bash • La shell más utilizada en Linux es la shell bash, la cual es la shell por defecto en Red Hat Enterprise Linux • La shell bash tiene capacidades de gran alcance para facilitar tareas complejas o incluso hacerlas posibles. • Está diseñada para 2 tipos diferentes de uso shell interactiva y script de shell

  5. Shell interactiva • Permite interactuar con el usuario • Repiten el ciclo de : • Escuchar una línea de comandos • Evalúa el comando solicitado • Realiza todas las acciones solicitadas • Muestra los resultados • La shell escucha al teclado de entrada y emplea la tecla de ENTER para reconocer el final de la entrada

  6. Script de Shell • Los scripts de la shell bash son programas pequeños escritos mediante la misma sintaxis que se utiliza en la línea de comandos. • Permiten a los usuarios automatizar las acciones repetidas al combinar una serie de comandos • Ejecutan una serie de comandos en modo no interactivo • La shell bash provee una programación lógica (tales como ramas y bucles) para escribir scripts sofisticado

  7. Shell de inicio • Cada vez que alguien inicie sesión o abra una terminal, una shell se inicia automáticamente • La shell es sólo "otro programa", nuevas shells pueden iniciarse desde la shell existente • La nueva shell se denomina subshell de la shell original • Cuando se sale de la subshell, el control vuelve a la shell original

  8. El archivo ~/.bashrc • Al iniciarse la shell bash busca en el directorio de inicio del usuario un archivo titulado .bashrc • Los comandos listados en el archivo se ejecutan como si fueran escritos en la línea de comandos

  9. Historial de comandos • El comando shell bash mantiene el historial de cada uno de los comandos escritos por el usuario • Ofrece varias formas para desplegar el historial • La más común es con el comando History

  10. Sustitución de historial • La shell bash también realiza "sustitución de historial", la cual se desencadena por el signo de exclamación

  11. Conservar el historial entre sesiones • La shell bash conserva los historiales de comandos entre sesiones en el archivo .bash_history en el directorio de inicio • Los comandos ejecutados en un proceso bash no están disponibles en el historial cuando se ejecutan más de un bash en forma simultanea • La última shell al salir sobrescribirá las historias de las shells que salieron anteriormente

  12. Conservar el historial entre sesiones

  13. Trucos del historial de comandos • ESC-. y ALT-. • El último simbolo de un comando suele representar el objeto que alguien está manipulando. • CTRL-R • Muestra los comando tecleados anteriormente • fc • Permite editar el comando con el editor vi

  14. Capitulo 2 Listas de comandos y scripts

  15. Ejecución de comandos • Ejecución de comandos múltiples • La shell bash permite a los usuarios unir comandos múltiples en una sola línea de comandos separando los comandos con un ;. • Ejecución de comandos en una subshell • Permite a los usuarios la fácil ejecución de comandos en una subshell, delimitando el comando entre paréntesis. • Las subshells se utilizan para evitar efectos secundarios.

  16. Ejecución de comandos • Ejemplo con subshell • Ejemplo sin subshell [elvis@station elvis]$ (cd /etc/X11; ls) [elvis@station elvis]$ bash[elvis@station elvis]$ cd /etc/X11; ls [elvis@station elvis]$ exit

  17. Introducción a los scripts de shell • Los comandos se envían a través de un programa específico llamado intérprete, el cual ejecuta un comando a la vez. • Este intérprete suele ser la shell bash

  18. Que se debe saber de los script de shell • La primera línea de su script debe especificar a qué intérprete enviar las instrucciones. • Se hace con una cadena especial llamada "shebang" y le sigue el interprete para el script • Ejemplo, para usar bash como su intérprete usted debería usar #!/bin/sh o #!/bin/bash. • La mayoría de los scripts sólo usan #!/bin/sh.

  19. Que se debe saber de los script de shell • Antes de ejecutar un script, se debe habilitar el permiso "ejecutable" en él (de lo contrario, es sólo un archivo de texto). • Por seguridad no se puede ejecutar el script en el directorio actual, ya que existen rutas de ejecución • Se pueden utilizar comodines relativos (~/foo.sh o ./foo.sh) • colocar el script en un directorio que sea parte de su RUTA o crear una carpeta bin dentro del home

  20. Ejemplo de script

  21. Valores de retorno • Cada proceso en Linux tiene un ciclo de vida • los procesos comienzan a solicitud de otro proceso (a menudo shell). • El proceso solicitado se denomina padre y el proceso recién nacido el hijo • proceso hijo suele realizar sus deberes y luego muere • Un proceso de salida deja atrás una pequeña parte de información cuando muere (retorno o estatus de salida) • El proceso padre es responsable de reunir los valores de retorno de los hijos muertos

  22. Valores de retorno • Los valores de retorno vienen en forma de enteros los cuales van de 0 a 255 • Los programas pueden escoger libremente el valor al salir • Un programa devuelve en 0 para implicar "éxito" • Se almacena el valor de retorno del comando ejecutado anteriormente en una variable especial llamada ? • echo $?

  23. Ejecución de comandos múltiples de modo condicional • La shell bash usa &&y || para unir dos comandos de modo condicional • Cuando los comandos se unen de este modo, el primero siempre se ejecutará. • El segundo comando puede que se ejecute o no dependiendo del valor de retorno del primer comando

  24. Ejecución de comandos múltiples de modo condicional • Comando && (and) • En caso que el primer comando tenga éxito se ejecuta el siguiente comando • Comando || (or) • En caso que el primer comando fallara se ejecuta el siguiente

  25. Capitulo 3 Variable de bash

  26. Conceptos básicos de la variable de shell • La shell bash le permite a los usuarios establecer y hacer referencia a las variables de shell • Una variable de shell es simplemente un valor con nombre que la shell recuerda • Se pueden utilizar en comandos y scripts de shell y pueden también referenciarse en programas como opciones de configuración • Hay dos tipos de variables de shell: variables locales y variables de entorno

  27. Variables locales • Existe solo dentro de la shell en la cual se crea • Las shells hijas heredan las variables de entorno como cuando se lanza una terminal después de iniciar sesión • Las variables se establecen y se configuran con una sintaxis VAR=valory se referencian con una sintaxis $VAR. • La variable se referencia con el comando unset

  28. Detalles de la variable de shell • Los nombres de variables pueden ser cualquier cadena de caracteres alfanuméricos (A-Z, a-z, 0-9), y el guión bajo (_) • No pueden comenzar por un número • Distinguen mayúsculas de minúsculas • Si quiere establecer una variable a un valor que contenga espacios, debe incluir el valor entre comillas • Utilizar corchetes para delinear nombres de variable siempre es correcto

  29. Variables de Bash Variables Bash de sólo lectura

  30. Variables de Bash Variables Bash preasignadas

  31. Variables de entorno • Una variable de shell se crea y luego la variable de shell es "promovida" a una variable de entorno mediante el comando export

  32. Listado de variables • El comando set, sin argumentos, lista las variables de shell y las variables de entorno asociadas con la shell, mientras que el comando env, otra vez sin argumentos, lista sólo variables que han sido exportadas al entorno.

  33. Variables de entorno más utilizadas

  34. Variable PATH • Cuando se ingresa un comando por la shell bash la consola debe buscar el comando en el sistema • Si la búsqueda fuera completa demoraría mucho la consola • La variable de entorno PATH contiene una lista de directorios en los cuales deberían buscar los archivos ejecutables, separados por una coma

  35. Capitulo 4 Expansión de la línea de comandos

  36. Generalidades • Antes de ejecutar un comando, la shell bash ejecuta varias expansiones en la línea de comandos. • Varios tipos de expansiones de bash, tales como la expansón del nombre de ruta (comodín) y la expansión de variables ya se han descrito

  37. Expansión de la línea de comandos

  38. Expansión de llaves • La expansión de llaves expande una sola palabra en palabras múltiples • Sustituye uno de los elementos en "llave" para cada palabra. • Ejemplo • La expresión {c,b,r}at se expandiría en tres palabras cat bat rat

  39. Expansión de llaves [prince@station prince]$ mkdir chap{01,02,03,04} |-- chap01/ |-- chap02/ |-- chap03/ `-- chap04/

  40. Expansión de llaves [prince@station prince]$ mkdir chap{01,02}/{html,text} |-- chap01/ | |-- html/ | `-- text/ |-- chap02/ | |-- html/ `-- text/

  41. Expansión de tilde • expande un ~nombredeusuario para el usuario del directorio de inicio del nombredeusuario

  42. Expansión aritmética • La shell bash trata de manera especial texto delimitado con una sintaxis $((...)) • Las variables se tratan como enteros numéricos y los operadores matemáticos estándar como +, -, *, y / se tratan como tal. • La shell bash sólo soporta enteros aritméticos.

  43. Sustitución de comandos • Permite a los usuarios ejecutar comandos arbitrarios en la subshell e incorporar los resultados dentro de la línea de comandos • La sintaxis de antigua era encerrar el comando entre "acentos graves" • La sintaxis más moderna similar a la expansión aritmética, pero con solo un par de paréntesis: $(subcomando)

  44. Expansión de nombre de ruta

  45. Comillas y caracteres de escape • La shell bash proporciona tres mecanismos para evitar que los caracteres sean interpretados por la shell, escapando, utilizando comillas dobles o sencillas.

  46. Comillas y caracteres de escape

  47. Comillas y caracteres de escape • Comillas dobles: "..." • Las comillas dobles se utilizan en situaciones donde usted desearía tratar la mayoría de la puntuación literalmente o combinar palabras en un sólo símbolo, pero aún puede hacer uso de variables, sustitución de comandos y sustitución de historial • Comillas sencillas inclinadas a la derecha (apóstrofes): '...' • Las comillas sencillas son las más poderosas y se utilizan en situaciones similares a las comillas dobles cuando quiere que toda la puntuación, incluyendo las variables y la sustitución de comandos, se traten literalmente.

  48. Comillas y caracteres de escape • Comillas sencillas inclinadas hacia la izquierda (acentos graves): `...` • Los acentos graves son básicamente diferentes a las comillas simples o dobles, no son para citar. Estos acentos se utilizan para invocar la sustitución de comandos en el texto incluido.

  49. Otras expansiones • Expansión de variables • $VARNAME o ${VARNAME} • Expansión del historial

  50. Capítulo 5 Personalización de la shell

More Related