La Shell Bash.

Slides:



Advertisements
Presentaciones similares
SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
Advertisements

Conocimiento, Uso y Evaluación de Medicamentos Genéricos
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
1 LA UTILIZACION DE LAS TIC EN LAS MICROEMPRESAS GALLEGAS. AÑO mayo 2005.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO de Junio de 2005.
Configuración de Control
Interfases Contables en CIO
El Asistente para Presupuestos
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Aladdín-respuestas 1.Vivía 2.Era 3.Amaba 4.Quería 5.Gustaban 6.Se sentía 7.Salía 8.Tenía 9.Decidió 10.escapó 11. Se vistió 12. Conoció 13. Vio 14. Pensó
Respuestas Buscando a Nemo.
AGENDA Actividad Recepción Objetivo Relación con otros componentes
Objetivo: Los estudiantes van a usar vocabulario del desayuno para comprender un cuento. Práctica: 1. ¿Te gusta comer? 2. ¿Te gusta beber Mt. Dew.
UNIX COMP 240.
Mulán /75 puntos. 1.Querían 2.Gustaban 3.Escuchó 4.Dijo 5.Tenía 6.Ayudaron 7.Maquillaron 8.Arreglaron 9.Dio 10.Estaba 11.Iba 12.Quería 13.Salió 14.Gritó
1 XML Extensible Markup Language HTML HyperText Markup Language normas06_01.xml.
C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281. C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281 1-Ingrese a menú 2-Ingrese a Mensajes 3-Ingrese a Correo 4-Seleccione.
William Shakespeare ( greg.), fue un dramaturgo, poeta y actor inglés. Conocido en ocasiones como el Bardo de Avon (o.
1 Reporte Componente Impacto Por Orden Territorial Por Departamento No Disponible ND *Los indicadores para el año 2008 no fueron calculados.
Funciones Excel. Parte 1. Introducción 2 Una función Excel es una fórmula o un procedimiento que se realiza en el ambiente de Visual Basic, fuera de.
Phone2Wave-Server Manual de Operación.
TELEFONÍA IP.
Parte 3. Descripción del código de una función 1.
Vocabulario querer comerlo -paja por supuesto - madera
FUNCIONES DE UNA VARIABLE REAL
Programación II Ing. Diego J. Arcusin 3 – Uso del Shell.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
1 PROYECTO DE PRESUPUESTO DE EGRESOS DE LA FEDERACION 2002 COORDINACIÓN DE POLITICA ECONOMICA GP-PRD.
Indicadores CNEP Escuela
Ecuaciones Cuadráticas
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
C REACIÓN DE B LOGS EN ESPOL Profesora: Eva María Mera Intriago Escuela Superior Politécnica del Litoral Impulsando la sociedad del conocimiento Instituto.
¡Primero mira fijo a la bruja!
Entornos de programación
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Índice Sesión I Bloque I (09:30 a 10:30 Horas) Configuración Inicial
Sistema de Ficheros, Permisos de archivos y Propietarios de los Mismos.
REGLAS DE LOS SIGNOS.
Los números. Del 0 al 100.
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Diagrama CAUSA_EFECTO ó ISHIKAWA ó ESPINA DE PESCADO

Estructuras de control
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Herramienta FRAX Expositor: Boris Inturias.
Sistema Operativo. ¿Qué es el Sistema Operativo? Un sistema operativo (SO) es el conjunto de programas y utilidades software que permiten al usuario interactuar.
Informática Ingeniería en Electrónica y Automática Industrial
File Ownerships and Permissions. Propiedades de Archivos regulares y Permisos.
PHP TODO SOBRE PHP.
Linux RHC030 Modulo La Shell Bash Relator : Carlos Villanueva.
FILTROS. Un filtro es un programa que recibe una entrada, la procesa y devuelve una salida. Relacionando filtros simples podemos hacer prácticamente cualquier.
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 7: Control del flujo en BASH Nombre unidad de.
Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.
Modulo 2. Filesystem Bàsico
Capítulo 1: Entrada estándar y salida estándar.  Programas gráficos: diseñados para ejecutarse en el entorno gráfico X. Utilizan mouse y teclado  Programas.
Administración de Servicios de Red 1 Escuela de Informática y Telecomunicaciones Suplementos: Shell scripts rpm RHA 030 Sistemas Operativos de Red.
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 8: Control del flujo en BASH Nombre unidad de.
PEDRO ALBERTO ARIAS QUINTERO. El shell es un intérprete de órdenes, los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como.
NOMBRE: LUIS VIRACOCHA CURSO: 5 B. Uso de la línea de comandos Muchas ordenes de gestión del sistema operativo El entorno de texto, es un sistema muy.
INSTRUCCIONES. El alumno, seguirá los pasos que se le va indicando a continuación. En el recuadro en blanco, debe ir añadiendo un pantallazo con la.
Vamos a tratar algunos temas que es necesario conocer a la hora de administrar un sistema informático y que nos van a ser útiles sin importar el sistema.
PRINCIPIOS DE PROGRAMACIÓN
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 9: Funciones, variables y arreglos en BASH Nombre.
Práctica Profesional PHP.
Transcripción de la presentación:

La Shell Bash

Capitulo 1 Introducción a Bash

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

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

Conservar el historial entre sesiones

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

Listas de comandos y scripts 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

Ejemplo de script

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=valor y 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.

Variables de entorno más utilizadas

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

Expansión de la línea de comandos 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 la línea de comandos

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 |-- chap01/ |-- chap02/ |-- chap03/ `-- chap04/ [prince@station prince]$ mkdir chap{01,02,03,04} |-- chap01/ |-- chap02/ |-- chap03/ `-- chap04/

Expansión de llaves |-- chap01/ | |-- html/ | `-- text/ |-- chap02/ [prince@station prince]$ mkdir chap{01,02}/{html,text} |-- chap01/ | |-- html/ | `-- text/ |-- chap02/ `-- 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)

Expansión de nombre de ruta

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 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.

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

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

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.

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

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.

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.

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

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

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.

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

Personalización de PS1 y PS2

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

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

Banderas de la shell: el comando interno set

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).

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.

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

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)).

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

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

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

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,

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)

Archivos de configuración de arranque bash

¿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

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

¿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.

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.