Linux RHC030 Modulo La Shell Bash Relator : Carlos Villanueva.

Slides:



Advertisements
Presentaciones similares
Comandos Sencillos.
Advertisements

Cuentas de Usuarios Como Mac OS X es un verdadero sistema operativo multiusuario, por tanto una computadora puede usar mas de un usuario, integrando.
UNIX COMP 240.
Enlaces con variables en la URL en PHP Programación en Internet II.
La Shell Bash.
Vi (Visual) es un simple procesador de texto, que no lo formatea en absoluto, pues no centra ni justifica párrafos pero permite mover, copiar, eliminar.
Programación II Ing. Diego J. Arcusin 3 – Uso del Shell.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Entornos de programación
Midnight Commander (MC)
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
DE LAS CUENTAS DE USUARIO Y OPCIONES DE CARPETA
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.
Las variables en PHP Programación en Internet II.
Curso Administrativo OTEC Unidad II : Configuración de Cursos Curso creado por : Libro de Clases Electrónico (LCE) ACTUALIZADO
Tema 6: Clases Antonio J. Sierra.
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE Instructor: Ingeniero Adrián Guerrero Taborda
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Ingeniero Anyelo Quintero
TRADUCTOR DE UN PROGRAMA
Programación de Computadores
Sistema Operativo. ¿Qué es el Sistema Operativo? Un sistema operativo (SO) es el conjunto de programas y utilidades software que permiten al usuario interactuar.
UNIDAD II. Manejo de archivos
Almacenar variables en cookies en PHP
COMPUTACIÓN APLICADA FACULTAD DE INGENIERÍA, UAQ Tablas Dinámicas, Macros Ma. Teresa García Ramírez.
Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa.
TRINO ANDRADE G UNIVERSIDAD ECOTEC. PRESENTACIÓN DE OUTLOOK EXPRESS Microsoft Outlook Express es una herramienta necesaria que le permite administrar.
UNIDAD 2:Crear, abrir y cerrar una base de datos Hacer clic sobre la opción Nuevo de la pestaña Archivo. Se mostrarán las distintas opciones para nuevos.
POP3 UCLV Mapas Conceptuales para la enseñanza de Redes de Computadoras.
File Ownerships and Permissions. Propiedades de Archivos regulares y Permisos.
PHP TODO SOBRE PHP.
Modulo Usuarios y Grupos
Particionado de discos duros
FORMULAS ESTADISTICAS.
MATERIA: SISTEMAS OPERATIVOS II INTEGRANTES: CARLOS NAJERA LUIS ACOSTA ANGEL CASTILLO.
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 5: Comandos de manipulación de Directorios y.
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
Administración de Servicios de Red 1 Escuela de Informática y Telecomunicaciones Suplementos: Shell scripts rpm RHA 030 Sistemas Operativos de Red.
Programación Aplicada
Lorenzo Vázquez Posadas 6 «H» informática
Equivale a un archivo.BAT de MSDOS, con las diferencias siguientes:  No tiene que terminar con la extensión.bat De hecho, no tiene porqué tener extensión.
INTRODUCCIÓN Se lo define como un programa para PRESENTACIONES. En sus orígenes estaba orientado a la creación de diapositivas para esquematizar contenidos.
Propiedades de Archivos regulares y Permisos  Linux es un entorno multiusuario  Varias personas pueden estar trabajando al mismo tiempo ◦ Ejemplo 
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
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.
Tema 6 – Servicio de Correo Electrónico
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.
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 9: Funciones, variables y arreglos en BASH Nombre.
Unidad 2: Tareas básicas de InfoPath 2010
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
Las variables de entorno forman un conjunto de valores dinámicos que normalmente afectan el comportamiento de los procesos en una computadora.
Las fórmulas más usadas en excel
Luis Villalta Márquez Servicios SFTP/SCP. SFTP SSH File Transfer Protocol (también conocido como SFTP o Secure File Transfer Protocol) es un protocolo.
Práctica Profesional PHP.
Introducción al lenguaje PROCESSING para ARDUINO
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Programación II Ing. Diego J. Arcusin 1 - Introducción a UNIX.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Módulo III.- Recursos en UPSA VIRTUAL Este módulo explica como configurar los distintos recursos que pueden encontrarse en un curso de MOODLE. Recurso:
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Transcripción de la presentación:

Linux RHC030 Modulo La Shell Bash Relator : Carlos Villanueva

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

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. [root@station station]# ls /boot boot.b lost+found System.map chain.b message System.map-2.4.21-9.EL config-2.4.21-9.EL message.ja vmlinux-2.4.21-9.EL grub module-info vmlinuz initrd-2.4.21-9.EL.img module-info-2.4.21-9.EL vmlinuz-2.4.21-9.EL kernel.h os2_d.b

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.

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

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.

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

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.

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.

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.

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

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.

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.

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

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.

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

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

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.

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

Historial de Comandos Ejemplo

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

Gestión del histórico de comandos $ export HISTTIMEFORMAT='- %F %T - ' $ history 1 - 2009-02-14 00:56:49 - ls / 2 - 2009-02-14 00:56:59 - cd ~ 3 - 2009-02-14 00: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

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.

Sustitución del Historial Ejemplo: Resultado:

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.

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.

Variables del historial

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:

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

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:

Ejecución de comandos en una subshell

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.

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.

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.

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.

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.

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.

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.

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.

Ejemplo:

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.

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:

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

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

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

Ejemplos

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'

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.

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'

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'

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'

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/

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