PROGRAMACIÓN DEL INTÉRPRETE DE COMANDOS DE UNIX/LINUX

Documentos relacionados
$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Shell Script Sistemas Operativos III - ITS EMT - CETP

Sistemas Operativos sesión 13: shell-scripting

Programación shell-scripts 1 LA SHELL

Programación shell en Unix/Linux ksh, bash, sh (con ejercicios corregidos) (4ª edición)

LINUX - El intérprete de órdenes II

Taller de programación shell

LINUX - Los archivos de órdenes I

Programación shell en Unix/Linux sh, ksh, bash (con ejercicios corregidos) (3ª edición)

PROGRAMACIÓN DEL SHELL

Programación en Shell Bash

Estructuras de Control. Cecilia Curlango Rosas

Que es el Shell? Kernel. Other programs. csh. bash. X window

PHP: Lenguaje de programación

Introducción a Python. Cecilia Manzino

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

PROGRAMACIÓN DE LA SHELL DE UNIX/LINUX

Tipos de Datos en C. Palabras reservadas en C

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Programación con bash

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

Scripting en el cliente: Javascript. Tecnologías Web

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Principios de Computadoras II

El entorno de programación UNIX. CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

El lenguaje C. 1. Identificadores, constantes y variables

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Informática Ingeniería en Electrónica y Automática Industrial

REFERENCIA DEL LENGUAJE

SEMANA N 9 NOMBRE EXPERIENCIA: Funciones, variables y arreglos en BASH UNIDAD DE APRENDIZAJE: Introducción a los SCRIPTS

Prácticas de Fundamentos del Software

Cuales son los tipos de instrucciones que se utilizan en la programación?

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Curso de Java Introducción a la Programación I

Generador de analizadores léxicos FLEX

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Programando con el intérprete de órdenes (shell) de UNIX

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

Lección 2 Introducción al lenguaje C

EJERCICIOS. 2) Hacer un script que muestre información sobre los parámetros del programa. (params.sh)

Prácticas de Fundamentos del Software

UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS LÉXICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007

Programación: QBASIC

Tema 2. El lenguaje JAVA

Comandos MS-DOS carpetas archivos Ampliación de Comandos: DATE TIME PATH

PROCESADORES DE LENGUAJES

FUNDAMENTOS DE INFORMÁTICA

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema

Estructuras de Control

Introducción al lenguaje C

Texto estructurado (ST)

Programación MATLAB: Programas y Funciones.

Conceptos Fundamentales sobre UNIX Laboratorio Listados de Directorios con Metacaracteres (Tiempo estimado: 30 min.)

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

CONCEPTOS BASICOS DEL LENGUAJE JAVA

5. Sentencias selectivas o condicionales

Programación SHELL. Resumen de Programación en Shell. Álvaro Tomás Marín Vílchez

Estructuras de control

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Expresiones Regulares

GENERALIDADES DEL LENGUAJE C

TEMA 4. ESTRUCTURAS DE CONTROL

GUÍA BÁSICA DE SCHEME v.4

MANUAL DE RUBY (PARTE I) Luis José Sánchez González

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

Construcciones del Lenguaje Java

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Guía práctica de estudio 05: Pseudocódigo

Introducción a PL/SQL

GENERALIDADES DEL LENGUAJE C. Nota: Los ejemplos y ejercicios especifican el tipo de archivo a enviar a

Tema: Estructuras de Selección en C#.

Tema 3. Patrones y Definiciones de Funciones

INICIACIÓN A LA PROGRAMACIÓN II

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Elementos de un programa en C

Tema 3.- Predicados y sentencias condicionales

Repaso Visual Basic Interfaz Gráfica

Shell scripting en Linux. Introducción

Programación Estructurada

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:


Estatutos de Control C# Estatutos de Decisión (Selección)

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

ESTRUCTURAS DE CONTROL

PHP 7 Desarrollar un sitio web dinámico e interactivo

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Herramientas computacionales para la matemática MATLAB: Scripts

Manual de turbo pascal

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Transcripción:

PROGRAMACIÓN DEL INTÉRPRETE DE COMANDOS DE UNIX/LINUX Sesión 16/05/2016

Desarrollar aplicaciones sencillas Scripting original: juntar varia órdenes e invocar su ejecución secuencial bajo un sólo comando. Desde el plano de la programación, no es compilado. Incluso admite cierta interacción (input). Ejecución lenta: es intérprete y en las últimas capas del esquema multinivel del computador. El intérprete de comandos puede ser Un shell (bash, csh, ) Shell scripting. Un lenguaje de programación (awk, perl ) Admite comandos para una aplicación/programa concreta (gnuplot, bc ) Aunque ya no es lo habitual, se pueden encontrarse aplicaciones muy complejas. Hoy en día, se programan en python o c++, ya que está incorporado en el propio S.O. 2

Shell scripting (bash) Los comentarios comienzan por # La primera línea indica el intérprete de comandos que debe usarse #!/bin/bash #!/bin/csh #!/usr/bin/gnuplot En un principio, podría pensarse que, en un script, la ejecución de los comandos en él contenido, es puramente secuencial. Esta es la opción por defecto, pero admite bifurcaciones condicionales (if) y bucles for, while, etc. Cada línea es una orden, formada por orden [-opciones] [argumentos] Atención a los separadores Cuando en la página del manual un elemento aparece entre corchetes, quiere decir que es opcional, pero si va sin corchetes, es obligatorio. 3

Primer ejemplo #!/bin/bash echo Mi nombre es: \'$USER\' y mi búsqueda de ejecutables por defecto es: echo $PATH 4

Shell - Variables Declaración Nombre_variable=valor Si el valor contiene separadores, hay que entrecomillarlo. Variables pueden ser locales o exportadas a los intérpretes hijos. Un intérprete de comandos puede invocar a otro intérprete de comandos. El valor almacenado en una variable se obtiene anteponiendo el símbolo $ al nombre de la variable. Ver variables: echo $nombre_variable Se recomienda escribir ${nombre_variable} Uso de comillas: Las variables dentro de las comillas dobles se expanden por su valor. Las variables dentro de comillas simples no se expanden por su valor. El acento grave reemplaza las comillas por el resultado de la ejecución del comando entre comillas. Leer variables desde teclado de forma interactiva con el comando read. Los metacaracteres son interpretados por el Shell de manera especial <> `$ * @ #? & \ Para inhibir esa interpretación, hay que entrecomillarlos con o precederlos de \ 5

Segundo ejemplo Mostrar todos los dígitos de 0 a 9. Lo mismo, pero con todos los número decimales de dos cifras solamente. Igual, pero con una pausa cada diez. (man read) 6

Shell Ejecución de Scripts Recordar el significado de la variable PATH. El comando which Ejecución de scripts: sh f nombre_script sh < nombre_script./nombre_script Argumentos por línea de comandos a los scripts $0, $1, $9 Se puede acceder a más de 9 argumentos con el comando shift. Todos los argumentos $* Cuántos argumentos? $# Dar un valor de retorno con return N Dar un valor de salida al script: exit N Recoger el valor de salida del último comando/script $? 7

Ejemplo de argumentos #!/bin/bash echo $0, " $2", $4 echo $1, $3, $5 echo echo $* echo echo y tiene " $#" argumentos en total 8

Shell Control de flujo if expresión then comandos else comandos fi for var in [listavalores] do comandos done while expresión do comandos done until expresión do comandos done case cadena-prueba in patrón1) comandos1 ;; patrón2) comandos2 ;; patrónn) comandosn ;; esac break sale del bucle continue vuelve a evaluar la condición del bucle

Shell - Expresiones Las expresiones (condiciones en if/do/while) se evalúa con la orden test seguida de la expresión en sí, o bien escribiendo la expresión entre corchetes. if test $a lt $b then echo $a else echo $b fi o if [$a lt $b] then numéricas (int) sobre archivos -eq == -d Directorio? -lt < -f fichero? -le <= -r permi. lectura? -gt > -w perm. de escrit.? -ge <= -x permi. de ejec.? -ne <> -s archivo no vacío? Cadenas s1=s2 cadenas iguales? -z s1 cadena vacía? Lógicas -o (or) -a (and)! (not) 10

Ejemplo: Hacer un script que halle el número más pequeño y lo muestre por pantalla. Los datos serán suminstrados mediante read. 11 Otro script que calcule la suma de los dígitos dedimales por separado que conforman un número entero positivo. Por ejemplo: $./suma_digitos_decimales.sh 4567 $ El resultado es 22 Es decir tiene que sumar 4+5+6+7=22

Ejemplo: Hacer un script que compruebe si lo que se le pasa como primer parámetro, es un directorio, o no. En caso afirmativo que escriba: <1er. parámetro> es un directorio En caso contrario: <1er. parámetro> NO es un directorio 12

Shell Aritmética (Informativo) Aritmética entera expr 1 + 2 # El resultado va a la salida estándar Aritmética en punto flotante con la aplicación bc, que es capaz de leer la entrada estándar o de un fichero. Es totalmente programable. $ echo sqrt(10)+55.6 bc $ echo 'scale=10;sqrt(10)' bc 13

Shell Más sobre variables Hay variables predefinidas PATH, HOME, PWD, TERM, DISPLAY Vectores Empieza por el elemento 0. Los elementos del vector no tienen que ser consecutivos. a[1]= uno echo ${a[1]} a[7]= final echo ${a[2]} Los valores intermedios no están inicializados (null) echo ${a[*]} # muestra todos los valores. 14

Shell Más sobre variables Las cadenas de caracteres (strings) s=abcdefg echo ${s:3:2} # dos caracteres después del tercero de. echo ${#s} # La longitud de la cadena: 8 Ejemplo: Hacer una matriz de 6 elementos que almacenen los cuadrados de los 6 primeros naturales impares. Los muestre por pantalla 15

Shell Depuración de programas Se coloca set -x al principio del código que se quiere depurar Set +x al final de dicho código La salida muestra cada comando ejecutado después de sustituir los valores de las variables. Ejercicio: utilizar esto para ejemplo del condiconal es menor. 16

grep Búsqueda de texto Global Regular Expression Print Busca líneas dentro de un fichero de texto que contienen un patrón. Podemos hacer que coincidan exactamente en mayúsculas/minúsculas. Podemos buscar las líneas que no contengan ese patrón [-v]. Ejemplo grep i c*sa fichero 17

Ejemplo: Utilizando la orden ll, mostrar un listado de todos los directorio que cuelgan del actual. En previsión de que sean muchos y no dé tiempo a ver esta información completa, muéstrese pantalla a pantalla. Lo mismo que al principio, pero que sólo muestre los que comiencen por una determinada cadena de caracteres, como por ejemplo, los que empiecen por a. Los que empiecen por pp seguido de un dígito impar con extensión.txt Igual que lo anterior, pero sin restricción en la extensión 18

Expresiones regulares(informativo) Nombre Carácter Significado Cierre * (asterisco) El elemento precedente debe aparecer 0 o más veces Cierre positivo + (símbolo de la suma) El elemento precedente debe aparecer 1 o más veces Comodín. (punto) Un carácter cualquiera excepto salto de linea Condicional? (interrogante) Operador unario. El elemento precedente es opcional OR (barra vertical) Operador binario. Operador OR entre dos elementos. En el lenguaje aparecerá o uno u otro. Comienzo de línea ^ (ángulo superior) Comienzo de línea Fin de línea $ (símbolo del dólar) Fin de línea [...] (caracteres entre corchetes) Conjunto de caracteres admitidos [^...] (caracteres entre corchetes) Conjunto de caracteres no admitidos Operador de rango - (guión) Dentro de un conjunto de caracteres escrito entre corchetes, podemos especificar un rango (ej., [a-za-z0-9]) (...) (elementos entre paréntesis) Agrupación de varios elementos Carácter de escape \ (barra inversa) Debido a que algunos de los caracteres del alfabeto coinciden con meta- caracteres, el carácter de escape permite indicar que un meta-carácter se interprete como un símbolo del alfabeto Salto de línea \n (barra inversa + n) Carácter de salto de línea Tabulador \t (barra inversa + t) Carácter de tabulación 19

Ejemplo Ejecute la orden siguiente: for fichero in *; do echo $fichero; done Construir un script que recorra todos los elementos de un directorio y muestre aquellos que tiene permiso de ejecución. 20