770 likes | 1.07k Views
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.
E N D
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
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
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
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
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
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
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
Sustitución de historial • La shell bash también realiza "sustitución de historial", la cual se desencadena por el signo de exclamación
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
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
Capitulo 2 Listas de comandos y scripts
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.
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
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
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.
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
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
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 $?
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
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
Capitulo 3 Variable de bash
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
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
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
Variables de Bash Variables Bash de sólo lectura
Variables de Bash Variables Bash preasignadas
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
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.
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
Capitulo 4 Expansión de la línea de comandos
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
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
Expansión de llaves [prince@station prince]$ mkdir chap{01,02,03,04} |-- chap01/ |-- chap02/ |-- chap03/ `-- chap04/
Expansión de llaves [prince@station prince]$ mkdir chap{01,02}/{html,text} |-- chap01/ | |-- html/ | `-- text/ |-- chap02/ | |-- html/ `-- text/
Expansión de tilde • expande un ~nombredeusuario para el usuario del directorio de inicio del nombredeusuario
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.
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)
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.
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.
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.
Otras expansiones • Expansión de variables • $VARNAME o ${VARNAME} • Expansión del historial
Capítulo 5 Personalización de la shell