0% encontró este documento útil (0 votos)
22 vistas94 páginas

Curso Básico de Shell

Este documento proporciona una introducción al curso de programación en Bash Shell. Presenta al instructor Marco Antonio Toscano y explica brevemente qué es la programación Shell y Bash scripting. Luego, cubre temas como editores de texto, cómo crear scripts, declaración de variables, operadores, scripts con argumentos y más.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
22 vistas94 páginas

Curso Básico de Shell

Este documento proporciona una introducción al curso de programación en Bash Shell. Presenta al instructor Marco Antonio Toscano y explica brevemente qué es la programación Shell y Bash scripting. Luego, cubre temas como editores de texto, cómo crear scripts, declaración de variables, operadores, scripts con argumentos y más.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 94

Curso de Programación

en Bash Shell
Marco Antonio Toscano
Marco Antonio Toscano

● Quito - Ecuador
● Ingeniero en Sistemas
Escuela Politécnica Nacional
● Experto en tecnologías Java, Linux, Open Source

www.youtube.com/user/matoosfe
@martosfre
www.marcotoscano.org
¿Qué es la
programación Shell?
Linux
Linux consta de algunas partes principales:

Aplicaciones

Shell

Kernel
Tipos de Shells (Formato Lectura)

SH BASH

KSH CSH
¿Qué es el bash scripting?
La idea básica de bash scripting o
programación en shell es poder ejecutar
múltiples comandos de forma secuencial
para automatizar una tarea en específico.
Estos comandos son colocados en un
archivo de texto simple y ejecutados en
un terminal por el usuario.
¿Cómo preparar
el editor de texto?

● Para crear un programa necesitarás


utilizar un editor de texto ya sea en
terminal o modo gráfico. Nosotros
utilizaremos vim basado en terminal.
● Comandos Principales.
Configuraciones VIM

● set showmode
● set autoindent
● set tabstop=4
● set expandtab
● syntax on
Configuraciones VIM
¿Cómo crear nuestro primer script?
Crear un archivo con la extensión sh, para lo cual
nos ubicamos en el directorio $HOME y ejecutamos
el siguiente comando vim utilityPostgres.sh
Nuestro Primer Script
Tipos Comentarios VIM

● Simple
● Multilínea
Comentarios Script
Ejecutar Script

● Utilizando
comando Bash
● Modo Standalone
Ejecutar Script
¿Cómo asegurar un nombre único?
Se puede verificar a través del comando type con
las siguientes opciones:
● type archivo. Determina el tipo y la ubicación.
● type -a archivo. Imprime todos los archivos
encontrados si el nombre no es único.
● type -t archivo. Imprime el tipo del archivo.
Nombre Único Archivo
Programación
Shell Básica
¿Cómo se realiza la
declaración de variables?
Las variables permiten almacenar información de
algún tipo como númerica, cadena, boolean, etc.
Existen dos tipos de variables:
● Entorno
● Usuario
¿Qué alcance tienen las variables ?
El alcance que tienen las variables
definidas en un script está limitada al
proceso que lo creó; es decir no pueden
usarse en otro script a menos que sea
visible a nivel del sistema utilizando el
comando EXPORT.
Declaración y Alcance Variables
Tipos de Operadores

● Aritméticos
● Relacionales
● Lógicos
● Asignación
● Bitwise
Operadores
¿Cómo ejecutar un script
con argumentos?
Identificador Descripción

$0 El nombre del script

El número de argumento, si son más


$1 al ${10}
de un dígito se utiliza las llaves

$# Contador de argumentos

$* Refiere a todos los argumentos


Scripts con Argumentos
¿Cómo realizar la sustitución
de comandos en variables?
La idea de la sustitución de comandos en variables
es almacenar la salida de una ejecución de un
comando en una variable. Se puede realizar:
● Usando el backtick caracter. (`)
● Usando el signo de dólar con el formato
$(comando)
Command Substitution
¿Cómo realizar el debug de un script?
Hay dos opciones para realizar el debug
utilizando el comando bash.
● -v .- Utilizado para ver el resultado detallado
de nuestro script, evaluado línea por línea.
● -x .- Utilizado para ver desplegar la
información de los comandos que son
utilizados, capturando el comando y su salida.
Debugging
Creación scripts
interactivos
¿Cómo capturar la
información del usuario?
Se utiliza el comando read de dos maneras:
● Utilizando en conjunto con el comando echo.
● Utilizando directamente el comando read.

Usuario Información Programa

Icons from www.flaticon.com is licensed by CC 3.0 BY


Como capturar la
información del usuario
¿Cómo validar tamaños y tipo de
dato en el ingreso de la información?
● Para validar tamaños se utiliza el
comando el siguiente comando: read
-n<numero_caracteres>.
● Para validar el tipo de datos se utilizan
expresiones regulares.

Validación

Icons from www.flaticon.com is licensed by CC 3.0 BY


Validar tamaño información
Envío Opciones /
Parámetros

● Opciones vs Parámetros
● Envío Independiente
● Envío Complementario
● Leer los valores
¿Cómo conectarse a Internet
y descargarse un archivo?

wget
Usuario Internet

Archivo

Icons from www.flaticon.com is licensed by CC 3.0 BY


Descargar archivo
Condicionales
¿Cómo utilizar las sentencias
if,else if, else?

if [ condition ]; then Condition utiliza


statement 1 ● Operadores Lógicos
elif [ condition ]; then
● Operadores
statement 2
else
Condicionales
statement 3
fi
Sentencia If-Else
Sentencia If-Else
Sentencia if-else if - else
Sentencia if-else if - else
¿Cómo utilizar sentencias if anidadas?

if [condition]; then Condition utiliza


if [ condition ]; then ● Operadores
statement 1 Lógicos
else ● Operadores
statement 2 Condicionales
else
statement 3
fi
If Anidados
¿Cómo construir expresiones
condicionales?
● Utilizada en decisión, Iteración.
● Formada por una o más condiciones.
● Condiciones con tipos de datos diferentes:
● Utiliza los operadores relacionales y
condicionales.
¿ Cómo utilizar las sentencia case?

case expression in ● Mecanismo para evaluar


opcion1) una simple expresión sea
statements 1;; entero o cadena.
opcion2) ● Es muy similar a la
statement 2;; sentencia switch.
…. ● Puede evaluar rango de
esac caracteres.
Sentencia Case
Sentencias de Iteración
¿Cómo utilizar arreglos?
● Una variable con varios elementos.
● Para crear un arreglo se debe colocar los
elementos dentro de brackets nombreArreglo =
(valor1, valor2...valorN) o usar rangos.
● El índice de un arreglo comienza en cero.
● Para remover los elementos de un arreglo se
utiliza el comando unset nombreArreglo[pos]
¿Cómo utilizar la sentencia for loop?

for var in item1 item2… itemN


Se puede iterar lista de
do valores de: números,
statement1 cadenas, nombre de
statement2 archivos, argumentos de
…. línea de comandos.
statementN
Soporta también el For
done
loop three expression.
Sentencia Iteración For Loop
¿Cómo utilizar la sentencia while loop?

while [ condition ] Itera lista de valores


do basada en una condición
statement1 lógica que debe ser
statement2 evaluada a verdad.
….
statementN
done
Sentencia Iteración While Loop
¿ Cómo realizar loops anidados?

for var in item1 item2… itemN


do
for var2 in [A..Z]
do
statement1
….
statementN
done
done
Loop Anidados
¿ Cómo utilizar las sentencia
break y continue?
● Utilizar la sentencia break para salir de
la ejecución de los loops for, while; es
decir parar la iteración.
● Utilizar la sentencia continue para
continuar con la siguiente iteración.
Sentencias break y continue
Cómo generar un menú de opciones
Archivos
¿Cómo se realiza de creación
de directorios / archivos
● Para crear directorios se utiliza el comando
mkdir seguidor del nombre del directorio.
○ mkdir directorioBackup
● Para crear archivos se utiliza el comando
touch seguido del nombre del archivo.
○ touch respaldo20181207.sql
¿Cómo crear directorios/archivos?
¿Cómo crear directorios/archivos?
¿Cómo se escribe dentro
de un archivo?
● Para escribir dentro de un archivo
que se encuentra creado o para crear
uno con contenido se utiliza tanto el
comando echo como el comando cat.
● Con el comando cat se pueden
realizar más funcionalidades como
por ejemplo crear un archivo a partir
de la unión de varios archivos.
¿Cómo se escribe en un archivo?
¿Cómo se lee el contenido
de un archivo?
● Para leer el contenido de un archivo de
manera general; es decir, todo el contenido
se pueden utilizar los comandos cat.
● En el caso de que requiere procesar el
contenido línea por línea se deberá utilizar
una sentencia de iteración como el while.
¿Cómo se lee el contenido en un archivo?
¿Cómo se lee el contenido en un archivo?
¿Cómo se realizan las operaciones de
copiar, mover y eliminar archivos?
● Una vez que se tenga creado el archivo,
se pueden realizar varias operaciones
en torno a él como son copiar (cp),
mover(mv) y eliminar archivos (rm).
● Generalmente varias de estas
operaciones funcionan de manera
complementaria.
Operaciones Archivos
Empaquetamiento
¿Cómo se realiza el empaquetamiento
de archivos utilizando el comando tar?

● El comando tar puede ser usado para


empaquetar archivos, originalmente
diseñado para almacenar datos de
archivos de cintas.
● Permite almacenar archivos y
directorios en un simple archivo,
reteniendo todos los atributos del
archivo como propietario, permiso.
Empaquetamiento con tar
¿ Cómo se realiza el
empaquetamiento de archivos
utilizando el comando gzip?
● El comando gzip puede ser aplicado
solamente para comprimir un archivo
simple o flujo de datos; es decir, no
puede archivar directorios o múltiples
archivos.
¿ Cómo se realiza el
empaquetamiento de archivos
utilizando el comando gzip?
● Además permite configurar el ratio de
compresión de 1 a 9; siendo 1 la
compresión más baja pero más rapida y 9
la compresión mejor pero más lenta.
Empaquetamiento con gzip
¿ Cómo se realiza el
empaquetamiento de archivos
utilizando el comando pbzip2?
● El comando pbzip2 está diseñado para
correr en procesadores multicore, lo cual
permite optimizar el tiempo de
empaquetamiento de los archivos.
¿ Cómo se realiza el
empaquetamiento de archivos
utilizando el comando pbzip2?
● pbzip2 generalmente no viene instalada
en la mayoría de distros linux, se tiene
que instalar.
¿ Cómo se realiza el
empaquetamiento de archivos
utilizando el comando pbzip2?
● pbzip2 trabaja solo sobre un simple
archivo, para comprimir múltiples
archivos o directorios trabaja
conjuntamente con tar.
Empaquetamiento con bpzip2
¿Comó se realiza un respaldo de
información empaquetado y con
clave de acceso?
● Utilizaremos la herramienta zip.
● zip generalmente no viene instalada en la mayoría
de distros linux, se tiene que instalarla.
● Existen otras alternativas como GnuPG,
bcrypt,7zip entre otras.
Empaquetamiento con zip y con clave
¿Cómo transferir información
por la red empaquetada?
● Utilizaremos rsync, es un comando que puede
ser usado para sincronizar archivos y
directorios de una localización a otra mientras
minimiza la transferencia de datos.
● Soporta características de compresión,
encriptación entre otras.
¿Cómo transferir información
por la red empaquetada?
Funciones
¿Qué es una función y
cuál es su estructura?
Son bloques de código
con funcionalidad
function-name ( ) { específica que existen
<codeToExecute> en memoria y que
} ayudan a organizar el
código en un programa
Funciones
¿Cómo se llama a una función?
¿Cómo realizar el paso de
argumentos a una función?
● El paso de argumentos a una función se lo
realiza de igual manera que cuando se envía
parámetros para ejecutar un script; es
decir, en la llamada de la función se envía
los n argumentos y luego dentro de la
función se los lee a través de su posición.
¿Cómo se realiza el paso de
argumentos a una función?
¿Cómo ejecutar una función
en segundo plano?
● Para ejecutar una función en segundo plano
se utiliza el operador & al final del comando.
Lo cual pone al comando a ejecutarse en
background y libera al terminal.
● Es importante conocer cuál es el proceso
asociado a la ejecución de la función, en el
caso de que se requiera terminarlo.
Gracias

Icons from www.flaticon.com is licensed by CC 3.0 BY

También podría gustarte