La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

La Shell Bash.

Presentaciones similares


Presentación del tema: "La Shell Bash."— Transcripción de la presentación:

1 La Shell Bash

2 Capitulo 1 Introducción a Bash

3 Hay una variedad de shells disponibles, pero todas hacen los mismo:
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 Listas de comandos y scripts
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]$ (cd /etc/X11; ls) elvis]$ bash elvis]$ cd /etc/X11; ls 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=valor y 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 Expansión de la línea de comandos
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 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 |-- chap01/ |-- chap02/ |-- chap03/ `-- chap04/
prince]$ mkdir chap{01,02,03,04} |-- chap01/ |-- chap02/ |-- chap03/ `-- chap04/

40 Expansión de llaves |-- chap01/ | |-- html/ | `-- text/ |-- chap02/
prince]$ mkdir chap{01,02}/{html,text} |-- chap01/ | |-- html/ | `-- text/ |-- chap02/ `-- 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 Expansión de variables Expansión del historial
Otras expansiones Expansión de variables $VARNAME o ${VARNAME} Expansión del historial

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

51 Comandos internos de la shell
Al evaluar una línea de comandos, la shell trata la primera palabra como un comando. La shell bash implementa algunos comandos de modo interno, lo que significa que los comandos no existen en el sistema de archivos como un programa cargable, sino que la shell misma los implementa. Estos comandos se conocen como comandos internos de la shell. Estos suelen ser comandos sencillos relacionados con cambios a la shell misma.

52 Comandos internos de la shell
Los comandos internos al no ser parte de un programa cargado, al consultar su origen no va a mostrar nada (which cd) Un ejemplo de comando interno es el comando help Otros comandos utilizados son: cd, pwd, echo

53 Alias Los alias permiten a los usuarios personalizar los nombres de los comandos o enlazar comandos con las opciones o argumentos más utilizados. Una vez creados, los alias se utilizan como si fueran cualquier otro comando.

54 Alias Los alias se crean (y examinan) mediante el comando interno alias. alias NAME=VALOR Este comando crearía un alias denominado NOMBRE, el cual apuntaría al valor VALOR. La asignación de alias no permite espacios en ningún lado del signo de igual Las frases que contienen múltiples palabras (separadas por espacios) deben ir entre comillas El comando alias también se utiliza para examinar los alias actualmente definidos.

55 unalias Los alias se pueden suprimir con el comando interno de la shell unalias. Para suprimir un alias, pase el nombre de alias como un argumento al comando unalias

56 Evaluación de alias ¿Cuándo busca alias la shell de bash ?
Se busca alias en donde se espera un comando Si la primera palabra es reconocida como un alias , el alias se expande La excepción es si el alias se expande al comando que tiene el mismo nombre de alias en cuyo caso la shell simplemente ejecuta la expansión y sigue adelante

57 Algoritmo de Ejecución de comandos
Realiza cualquier expansión de la shell ¿La palabra se define como un alias? Si es así, expanda el alias y vuelva a comenzar (a menos que el alias se expanda a un comando que tenga el mismo nombre del alias en cuyo caso expande el alias y empieza de nuevo, pero no vuelve a expandir alias). ¿La palabra se define como una función de una shell? Si es así, llame la función de la shell en la shell actual, (las funciones de la shell van más allá del alcance de este curso, pero están incuídas aquí para completar la información). ¿La palabra es un comando intermo de la shell? Si es así, ejecute el comando interno. ¿La palabra contiene un /? Si es así, ejecute el archivo si existe y tiene permisos ejecutables. Si la palabra no contiene un /, busque un archivo con un nombre similar en todos los directorios en orden como se definió en el entorno de variable PATH. Si existe un archivo coincidente y tiene permisos ejecutables, ejecute el archivo.

58 Personalizar el intérprete de comandos de bash
Interprete Primario PS1 Escuchar Evaluar ¿Falta por ejecutar? Ejecutar Interprete Secundario PS2

59 Personalización de PS1 y PS2

60 Personalización de PS1 y PS2
Secuencias de escape comunes utilizadas en intérpretes de comandos bash

61 Banderas de la shell: el comando interno set
Cuando se utiliza con la línea de comandos, como suele ser el caso, el comando se utiliza para establecer, o anular las banderas de shell. Cuando se llamado sin argumentos, el comando set visualiza todas las variables de shell y sus valores

62 Banderas de la shell: el comando interno set

63 Banderas de la shell: el comando interno set
El comando set con la sintaxis normal de las opciones (tal como set -x) habilita la bandera especificada. Para inhabilitar la bandera, remplace el guión (-) por un signo más (+) (tal como set +x).

64 Opciones de la shell: el comando interno shopt
El comando bash también tiene una segunda serie de variables de configuración, las cuales se conocen como "opciones de shell“ Se establecen shopt -s nombreopción Se anulan shopt -u nombreopción stablece la opción nombreopción, y shopt -u nombreopción anula la opción.

65 Opciones de la shell: el comando interno shopt
El comando shopt nombreopción visualiza el estado actual de la opción Solo shopt visualiza todas las opciones de la shell

66 Opciones de la shell: el comando interno shopt
Se estará preguntando cómo recordar todas estas opciones y cómo recordar cuáles se modifican con set y cuáles con shopt. La respuesta es que no es necesario. Recuerde sin embargo, que hay dos mecanismos para establecer banderas de shell y opciones de shell (set y shopt, respectivamente) y recuerde dónde buscar información sobre cada una (el comando help y la página de manual bash(1)).

67 Lectura de scripts de shell e inicialización de shell
Capítulo 6 Lectura de scripts de shell e inicialización de shell

68 Lectura de scripts La shell bash lee el archivo de script y lo ejecuta como si ingresaran los comandos por teclado La ejecución puede modificar las variables y configuraciones de la shell actual

69 Las shell se pueden diferenciar en 2 grupos
Tipos de Shell Las shell se pueden diferenciar en 2 grupos Shells diferenciadas por el tipo de inicio Shell de inicio de sesión Shell de no inicio o de inicio manual Shells diferenciadas por la interacción con el usuario Shell interactiva Shell no interactiva

70 Tipos de Shell Shell de inicio de sesión
Shells que se accede al acceder a una consola virtual o maquina remota Primero se lee el archivo /etc/profile para inicializar variables de entorno Luego origina todos los archivos coincidentes al patrón /etc/profile.d/*.sh. Busca una serie de archivos en el directorio de inicio del usuario ~/.bash_profile Busca y origina el archivo~/.bashrc La version por defecto de este archivo apenas agrega $HOME/bin al PATH del usuario,

71 Shells de no-inicio de sesión (interactivas)
Tipos de Shell Shells de no-inicio de sesión (interactivas) El único archivo utilizado para personalizar shells de no-inicio de sesión es el archivo ~/.bashrc También existe el archivo de configuración global en /etc/bashrc Shells de no-inicio de sesión (no interactivas) No leen por defecto ninguno de los archivos de arranque (aunque esta conducta puede cambiarse estableciendo la variable de entorno BASH_ENV)

72 Archivos de configuración de arranque bash

73 ¿Por qué hay de shells de inicio y no inicio de sesión?
Al arrancar, los varios scripts de arranque leídos por shells de inicio tienden a emplear mucho tiempo personalizando variables de entorno Cuando las subsehells se inician, no se necesita repetir todo este trabajo. Cuando un proceso hijo es generado por la shell de inicio de sesión, las variables de entorno se copian automáticamente en el hijo

74 ¿Por qué hay de shells de inicio y no inicio de sesión?
Archivos de configuración de arranque bash

75 ¿Por qué hay shells interactivas y no - interactivas?
Las shells no-interactivas son shells iniciadas como resultado de ejecutar un script Con el fin de evitar posibles efectos secundarios del script de arranque, las shells no-interactivas no leen scripts de arranque tras el inicio.

76 Salida de las shells de inicio de sesión: ~/.bash_logout
Tras la salida, las shells de inicio de sesión leerán el archivo ~/.bash_logout si existe. En RHEL el archivo simplemente ejecuta el comando clear para que la pantalla se limpie de información tras la salida.


Descargar ppt "La Shell Bash."

Presentaciones similares


Anuncios Google