La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Linux RHC030 Modulo La Shell Bash Relator : Carlos Villanueva.

Presentaciones similares


Presentación del tema: "Linux RHC030 Modulo La Shell Bash Relator : Carlos Villanueva."— Transcripción de la presentación:

1 Linux RHC030 Modulo La Shell Bash Relator : Carlos Villanueva

2 Unidad 4 – La Shell Bash Introducción a Bash Lista de comando y script
Variables de Bash Expansión de la línea de comando Personalización de la Shell Lectura de scripts de shell e inicialización de shell

3 Introducción a Shell Bash
Conceptos Claves La shell por defecto en Red Hat Enterprise Linux es la shell bash. · La shell bash se puede utilizar de modo interactivo o como un lenguaje de escritura de gran alcance. ·Al arranque Bash ejecuta comandos hallados en el archivo ~/.bashrc, permitiéndole a los usuarios personalizar su shell. · La shell bash guarda el historial de las líneas de comando ejecutadas. La líneas de comando se pueden recuperar desde el historial. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

4 La Shell Bash. En Linux, la shell es el programa más utilizado y creado para el proyecto “GNU operating system”. . La shell es lo que usted ve cuando inicia sesión o cuando abre una terminal y lo que más usa para iniciar cada comando. Aunque hay una variedad de shells disponibles, pero todas siguen la misma conducta básica: Escuchar los comandos del usuario, Iniciar procesos como se especifica en los comandos Informar los resultados al usuario.

5 Los SHELLS de LINUX Además de BASH, en GNU/LINUX hay varios tipos de SHELLS, cada una con sus características propias, entre los más conocidos podemos nombrar: KORN SHELL (ksh) – Desarrollado por David Korn de los Laboratorios AT&T Bell en el comienzo de la década del 80. C SHELL (csh) – Desarrollado por Bill Joy en la Universidad de Berkeley, California. Desarrollar

6 La Shell Bash. La Shell Bash es la shell usada por defecto en Red Hat Enterprise Linux. La shell bash no sólo es de fácil uso para tareas sencillas, sino también tiene capacidades de gran alcance para facilitar tareas complejas o incluso hacerlas posibles. Como dato si vemos el manual del Bash este consta de 4500 líneas.

7 Características de BASH
BASH incluye, entre otras, las siguientes características: Edición y completación de comandos. Histórico de comandos. Control de procesos. Funciones SHELL y alias. Prompts personalizados Operaciones aritméticas. Desarrollar

8 Shells interactivas vs. Scripts de shell
La shell bash está diseñada para ser eficaz para dos tipos diferentes de uso. Shell Interactiva: esta característica de bash permiten a las personas escribir comandos de una manera más fácil y eficaz. Scripts de Shell: La shell bash también está diseñada para ser un lenguaje de escritura de gran alcance. Los scripts de la shell bash son programas pequeños escritos mediante la misma sintaxis que se utiliza en la línea de comandos.

9 Shells interactivas vs. Scripts de shell
Los scripts de shell permiten a los usuarios automatizar las acciones repetidas al combinar una serie de comandos. A diferencia de las shells interactivas, los scripts de shell suelen ejecutar una serie de comandos de modo no interactivo y muchas de estas características de la shell bash proveen una programación lógica (tales como ramas y bucles) para escribir scripts sofisticados.

10 Shells interactivas vs. Scripts de shell
Algunas características de bash, tales como el historial de comandos, que pronto veremos, son casi inútiles en los scripts de shell. Otros rasgos, tales como la sustitución aritmética, pueden no parecer útiles en la línea de comandos, pero pueden ser útiles en un script de shell. Si la utilidad de una característica de un bash no es de inmediato obvia, trate de verla en otro contexto.

11 Shell de Inicio En la práctica, los usuarios a veces necesitan iniciar una shell de modo manual. Cada vez que alguien inicie sesión o abra una terminal, una shell se inicia automáticamente. Sin embargo, a veces los usuarios desearían ejecutar una shell diferente u otra instancia de la misma shell. Dado que 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

12 Shell de Inicio Ejemplo
Cuando inicia una subshell bash, las diferencias aparentes entre la subshell y la shell padre son mínimas y se debe tener cuidado de seguir el rastro de la shell en la que se encuentra.

13 Inicialización del Bash
Cuando se inicializa la shell bash, este buscará en el directorio de inicio del usuario un archivo titulado .bashrc. El archivo se emplea para personalizar la shell bash. Cuando la shell inicia, los comandos listados en el archivo se ejecutan como si fueran escritos en la línea de comandos. Técnicamente, la shell bash "lee" el archivo. A continuación, madonna edita su archivo ~/.bashrc agregándole el comando cal, para que tras el arranque la shell bash se presente un calendario del mes actual.

14 Inicialización del Bash
Ejemplo Revisamos el contenido del archivo .bashrc

15 Inicialización del Bash
Resultado Ahora, cada vez que madonna inicia una shell bash (por ejemplo, iniciando en una consola virtual o abriendo otra ventana de terminal), se presenta un calendario.

16 Inicialización del Bash – Archivos de arranque del BASH
Cuando el BASH es invocado de manera interactiva, primero lee y ejecuta comandos desde el archivo /etc/profile, si es que existe. Una vez leído este archivo, BASH ejecuta comandos del primer archivo que exista y que BASH pueda leer de entre los siguientes archivos: ~/.bash_profile, ~/.bash_login, y ~/.profile, en ese orden. Desarrollar

17 Inicialización del Bash – Archivos de arranque del BASH
Cuando salimos de una “sesión de login”, BASH lee y ejecuta comandos desde el archivo ~/.bash_logout, si es que este archivo existe. Desarrollar

18 Introducir Comandos Las shells interactivas repiten el ciclo de escuchar una línea de comandos, evalúan el comando solicitado, realizan todas las acciones solicitadas y muestran los resultados. La shell escucha al teclado de entrada y emplea la tecla de ENTER para reconocer el final de la entrada como en la siguiente ejecución del comando echo.

19 Historial de Comandos Como conveniencia para los usuarios de shells interactivas, el comando shell bash mantiene el historial de cada uno de los comandos escritos por el usuario y ofrece una variedad de formas para hacer que los comandos desde este historial estén a su alcance. La forma más fácil de ver el historial actual es mediante el comando history. El comando history entrega un historial de los comandos previamente escritos, con cada entrada precedida por un "número de historial“.

20 Historial de Comandos Ejemplo

21 Gestión del histórico de comandos
Donde guardar el histórico: por defecto el histórico se guarda en ~/.bash_history pero podemos indicar donde guardarlo con la variable HISTFILE. Formatear la salida del histórico: la variable de entorno HISTTIMEFORMAT nos permite formatear la salida de history, agregando especificaciones de fecha y hora, por ejemplo. HISTFILE=~/.agenda Desarrollar

22 Gestión del histórico de comandos
$ export HISTTIMEFORMAT='- %F %T - ' $ history :56:49 - ls / :56:59 - cd ~ :57:01 – history Recordar que todas estas variables debemos ponerlas en un archivo donde se activen al arranque, por ejemplo, podría ser el archivo ~/.bash_profile. Desarrollar

23 Sustitución del Historial
Como una alternativa a las teclas de dirección, la shell bash también realiza "sustitución de historial", la cual se desencadena por el signo de exclamación. El siguiente cuadro resume la sintaxis de sustitución de historial más utilizada.

24 Sustitución del Historial
Ejemplo: Resultado:

25 Conservar el historial entre sesiones
No sólo él se mantiene un historial de comandos dentro de una sesión, sino que también se puede conserva los historiales de comandos entre sesiones. Cuando se sale de la shell se entrega el historial dentro de un archivo llamado .bash_history en un directorio de inicio del usuario. Tras el arranque, la shell inicializa el historial de comandos desde el contenido de este archivo.

26 Conservar el historial entre sesiones
¿Qué repercusión tienen estas shells interactivas múltiples (pertenecientes a un mismo usuario) al ejecutar al mismo tiempo? Puesto que el historial solo se ha guardado en el disco cuando la shell sale, los comandos ejecutados en un proceso bash no están disponibles en el historial de comandos de un proceso bash ejecutado en forma simultánea. Además, la última shell al salir sobrescribirá las historias de las shells que salieron anteriormente.

27 Variables del historial

28 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 ;. Ejemplo:

29 Ejecución de comandos múltiples
El efecto es idéntico al escribir comandos en líneas separadas.

30 Ejecución de comandos en una subshell
La shell bash permite a los usuarios la fácil ejecución de comandos en una subshell, delimitando el comando entre paréntesis. Ejemplo:

31 Ejecución de comandos en una subshell

32 Introducción a los Scripts de shell
La clave para usar Red Hat Enterprise Linux de modo efectivo es la automatización. Un buen administrador de Linux debe ser en realidad extremadamente perezoso cuando se trata de hacer algo aburrido o repetitivo. Las secciones anteriores ilustraron la manera de encadenar comandos para ejecutar de modo consecutivo o simultáneo en lugar de esperar a que el comando termine antes de teclear el próximo.

33 Introducción a los Scripts de shell
También le introdujeron a las características del historial del bash y le mostraron cómo referirse a comandos tecleados previamente. Sin embargo, aún falta una parte importante de la caja de herramientas del administrador del sistema: la escritura de scripts. Un script, en su forma más simple, es un texto con una lista de comandos en él. Los comandos se envían a través de un programa específico llamado intérprete, el cual ejecuta un comando a la vez.

34 Introducción a los Scripts de shell
Este intérprete suele ser la shell bash (conocida como /bin/bash o /bin/sh) y cada comando es un comando común de Linux. Otros intérpretes permiten utilizar lenguajes de programación de gran alcance como Perl, Python y Ruby.

35 Datos Importantes: La primera línea de su script debe especificar a qué intérprete se van a enviar las instrucciones. Esto se hace con una cadena especial llamada "shebang” (pronunciada "shuh-bang"), la cual se ve así: #!. A la shebang le sigue el nombre del intérprete para este script. Ejemplo: para usar bash como su intérprete, se debería usar #!/bin/sh o #!/bin/bash.

36 Datos Importantes: La mayoría de los scripts sólo usan #!/bin/sh.
Al referirse al intérprete como #!/bin/bash se habilitan otras características, pero se limita la compatibilidad del script con los sistemas antiguos de Unix y rara vez es necesario.

37 chmod u+x <scriptname>.
Datos Importantes: Antes de ejecutar un script, usted debe habilitar el permiso "ejecutable" en él (de lo contrario, es sólo un archivo de texto). El comando para esto es: chmod u+x <scriptname>. Le otorga (y sólo a usted) permiso para ejecutar este script justo como usted haría con otro comando.

38 Datos Importantes: Si creó un script llamado foo.sh en su directorio de inicio y justo después tecleó foo.sh obtendría el mensaje de error "no existe tal directorio o archivo". Esto se debe a que cuando teclea un comando hay una serie de directorios en donde Linux busca ese comando.

39 Datos Importantes: Para resolver este problema tiene dos alternativas:
Usted usar ~/foo.sh o ./foo.sh ("." siempre se refiere al directorio actual). Puede colocar el script en un directorio que sea parte de su RUTA. Los usuarios que no son root no tienen permiso para colocar archivos en la mayoría de estos directorios, pero todos los usuarios tienen un bin personal, al cual pueden escribir en su directorio de inicio. Por lo tanto, si foo.sh fuera movido a ~/bin se podría ejecutar al teclear simplemente foo.sh en la línea de comandos.

40 Ejemplo:

41 Valores de retorno Un proceso de salida deja atrás una pequeña parte de información cuando muere, llamado el valor de retorno del proceso o estatus de salida. El proceso padre es responsable de reunir los valores de retorno de los hijos muertos. Los valores de retorno vienen en forma de enteros los cuales van de 0 a 255. Una convención de Linux es que un programa devuelve un 0 para implicar "éxito" en lo que estaba intentando hacer, y un valor de retorno de no cero que implica algún tipo de error.

42 Valores de retorno La shell bash almacena el valor de retorno del comando ejecutado anteriormente en una variable especial llamada ?. El valor de retorno del ultimo programa ejecutado e puede examinarse con el comando echo $?. Ejemplo:

43 Valores de retorno En contraste, los siguientes ejemplos muestran cómo responde el comando ls al listar un archivo que no existe. elvis]$ ls -l /etc/password ls: /etc/password: No such file or directory elvis]$ echo $? 1

44 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. Ejemplo: elvis]$ mkdir /tmp/boring && mv numbers.txt /tmp/boring

45

46 Variables de Bash Las variables de la shell:
Se asignan mediante una sintaxis A=apple. Se examinan con el caracter $, echo $A. En el nivel de kernel, cada proceso tiene una colección de variables de entorno que los procesos hijos heredan. El comando export convierte una variable de shell en una variable de entorno. Los comandos set y env listan las variables de shell y las variables de entorno, respectivamente

47 Ejemplos

48 Creación y Uso de Alias en Linux
Un alias es una cadena que sustituye un texto por otro, cuando es usada como la primera palabra de un comando simple. Como Configurar un Alias Un alias puede ser definido en la línea de comandos, en .bash_profile o en .bashrc usando la siguiente sintaxis: $ alias nombre='aquí escribes el comando completo y con opciones'

49 nombre - Es el nombre que deseas ponerle al alias, Esto quiere decir que "nombre" es un alias para dicho comando. Cada vez que "nombre" es escrito como un comando, bash reemplazará el comando correspondiente junto con las opciones especificadas en su lugar. Nota: No hay espacios en blanco entre el signo igual (=). Las comillas son necesarias si la cadena que se usara tiene mas de una palabra. Ejecutando este comando en la línea de comandos se creara un alias temporal. Eso quiere decir que el alias existirá hasta que salgas del terminal. Si guardas el alias en el archivo de inicio del bash (~/.bashrc) entonces el alias será permanente.

50 Ejemplos de Alias Los siguientes alias podrían ser útiles. Puedes configurarlos en el archivo ~/.bashrc. Buscar los 5 archivos mas grandes alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5" Ubicar los procesos bash: alias psg="ps -aux ¦ grep bash" Lista en formato largo: alias ll='ls -l'

51 Como Ver todos los Alias
Ejecuta el comando alias sin ningún argumento para ver la lista de los alias en un shell: $ alias alias ..='cd ..' alias ...='cd ../..' alias mnt='mount /mnt/cdrom' alias umnt='umount /mnt/cdrom' alias dus='df -h'

52 Ver Alias individual $ alias dus alias dus='df -h'
Para ver un alias en particular ingresa el comando con el formato "alias nombre" así como se muestra abajo: $ alias dus alias dus='df -h'

53 Detener Temporalmente el Uso de Alias
Cuando quieres llamar al comando en vez de a un alias, debes usar (\): $ \nombredelalias Por ejemplo, si has creado un alias que se llame cp y ahora deseas usar el comando cp en vez del alias, deberías hacer lo siguiente: \cp * /backup/archivos/

54 Como Remover un Alias $ unalias hcl $ hcl -bash: hcl: comando no encontrado Como Remover todos los Alias $ unalias -a $ alias

55


Descargar ppt "Linux RHC030 Modulo La Shell Bash Relator : Carlos Villanueva."

Presentaciones similares


Anuncios Google