El sitio web www.vuestroslibros.com utiliza cookies propias y de terceros para recopilar información que ayuda a optimizar su visita a sus páginas web.
No se utilizarán las cookies para recoger información de carácter personal. Usted puede permitir su uso o rechazarlo; también puede cambiar su configuración siempre que lo desee.
Encontrará mas información en nuestra política de Cookies.

ACEPTAR Leer más

 
Programación shell en Unix/Linux | 9782409008023 | Portada

PROGRAMACIóN SHELL EN UNIX/LINUX

sh, ksh, bash (con ejercicios corregidos)

Christine DEFFAIX RÉMY

Precio: 29.90€

Oferta: 28.41€ (-5%)

Añadir a la cesta

Datos técnicos

  • Edición
  • ISBN 9782409008023
  • Año Edición 2017
  • Páginas 516
  • Encuadernación Rústica
  • Idioma Español
 

Sinopsis

Este libro acerca de la programación shell se dirige a los usuarios y administradores de sistemas Unix/Linux que deseen formarse en la escritura de scripts shell. Se detallan las funcionalidades de los shells ksh 88, ksh93, bash, al igual que su predecesor el shell Bourne y se señalan sus diferencias. Los temas se presentan de forma progresiva y pedagógica, lo que hace que este libro sea un soporte ideal destinado tanto a la formación profesional como a la autoformación.

Los primeros capítulos se dedican al funcionamiento del shell: ejecución de un comando, caracteres especiales del shell empleados con frecuencia (redirecciones, tubos...), configuración del entorno de trabajo del usuario (variables y archivos de entorno...). Se explican e ilustran los mecanismos internos con numerosos esquemas.

La continuación del libro se dedica a la programación propiamente dicha. Las bases de la programación (variables, estructuras de control, comandos de test y de cálculo, ...) se presentan e ilustran con muchos ejemplos. Luego se detallan los aspectos avanzados de la programación shell (gestión de archivos, funciones, ...).

La última parte del libro trata las herramientas conjuntas indispensables para el tratamiento de cadenas de caracteres y de archivos de texto: las expresiones regulares básicas y extendidas, el editor no interactivo sed, una visión extendida del lenguaje awk rico en funcionalidades gawk, al igual que los principales comandos filtro de los sistemas Unix. El capítulo Cómo hacer... resume las problemáticas principales y presenta diferentes métodos de resolución

Los ejercicios permitirán al lector practicar la escritura de scripts shell a lo largo del libro. Las soluciones se presentan en el último capítulo.

Los ejemplos de los scripts presentados en el libro, al igual que los scripts de solución a los ejercicios pueden descargarse

Índice

Introducción
1. Definición del shell
2. Características de un intérprete de comandos
3. Intérpretes de comando (shells)
3.1 Historia
3.2 ¿Con qué shell hay que programar?
3.2.1 Scripts de inicio
3.2.2 Otros scripts
3.3 Nombre de los ejecutables en Unix
4. Shells tratados en este libro
Mecanismos esenciales del shell
1. Comandos internos y externos
1.1 Comandos externos
1.2 Comandos internos
1.3 Implementación interna e implementación externa
2. Impresión por pantalla
2.1 El comando echo
2.1.1 El carácter "\n"
2.1.2 El carácter "\c"
2.1.3 El carácter "\t"
2.1.4 Listado de caracteres de escape
2.2 Los comandos print y printf
3. El carácter ~ (tilde)
4. El comando interno cd
5. Sustitución de nombres de archivos
5.1 Expresiones básicas
5.1.1 El carácter *
5.1.2 El carácter ?
5.1.3 Los caracteres [ ]
5.2 Expresiones complejas
5.2.1 ?(expresión)
5.2.2 *(expresión)
5.2.3 +(expresión)
5.2.4 @(expresión)
5.2.5 !(expresión)
5.2.6 Alternativas
5.3 Interpretación del shell
6. Separador de comandos
7. Redirecciones
7.1 Entrada y salidas estándar de los procesos
7.1.1 Entrada estándar
7.1.2 Salida estándar
7.1.3 Salida de error estándar
7.2 Herencia
7.3 Redirección de las salidas en escritura
7.3.1 Salida estándar
7.3.2 Salida de error estándar
7.3.3 Salida estándar y salida de error estándar
7.3.4 Protección ante borrado involuntario de un archivo
7.3.5 Eliminar las impresiones por pantalla
7.3.6 Mecanismo interno
7.4 Redirección de la entrada estándar
7.5 Redirecciones avanzadas
7.5.1 Redirigir los descriptores 1 y 2 hacia el mismo archivo
7.5.2 La redirección doble en lectura
7.5.3 Cierre de un descriptor
8. Tuberías de comunicación
8.1 Comandos que no leen su entrada estándar
8.2 Comandos que leen su entrada estándar
8.2.1 Ejemplos triviales
8.2.2 Caso de los filtros
8.3 Complementos
8.3.1 Encadenar tuberías
8.3.2 Duplicar las salidas
8.3.3 Enviar la salida estándar y la salida de error estándar por la tubería
9. Agrupación de comandos
9.1 Paréntesis
9.2 Las llaves
9.3 Conclusión
10. Procesos en segundo plano
11. Ejercicios
11.1 Funcionalidades varias
11.1.1 Ejercicio 1: comandos internos y externos
11.1.2 Ejercicio 2: generación de nombres de archivo
11.1.3 Ejercicio 3: separador de comandos
11.2 Redirecciones
11.2.1 Ejercicio 1
11.2.2 Ejercicio 2
11.2.3 Ejercicio 3
11.2.4 Ejercicio 4
11.2.5 Ejercicio 5
11.2.6 Ejercicio 6
11.3 Tuberías de comunicación
11.3.1 Ejercicio 1
11.3.2 Ejercicio 2
11.3.3 Ejercicio 3
11.3.4 Ejercicio 4
Configuración del entorno de trabajo
1. Variables de entorno
1.1 Listado de variables
1.2 Mostrar el valor de una variable
1.3 Modificación del valor de una variable
1.4 Variables principales
1.4.1 HOME
1.4.2 PATH
1.4.3 PWD
1.4.4 PS1
1.4.5 PS2
1.4.6 TMOUT
1.4.7 TERM
1.4.8 LOGNAME
1.4.9 Procesos y variables de entorno
1.5 Exportación de variables
1.5.1 Listado de variables exportadas
1.5.2 Variables que deben exportarse
1.5.3 Exportar una variable
2. Las opciones del shell
2.1 Activar y desactivar una opción del shell
2.2 Visualizar la lista de opciones
2.3 Opciones principales
2.3.1 ignoreeof
2.3.2 noclobber
2.3.3 emacs y vi
2.3.4 xtrace
3. Los alias
3.1 Definir un alias
3.2 Visualizar la lista de alias
3.2.1 Visualizar todos los alias
3.2.2 Visualizar un alias en particular
3.3 Eliminar un alias
4. Histórico de comandos
4.1 Configurar la recuperación de comandos en ksh
4.1.1 Opción vi
4.1.2 Opción emacs
4.2 Configurar la recuperación de comandos en bash
4.3 Completar nombres de archivo
4.3.1 Completar en bash
4.3.2 Completar en ksh
4.3.3 Tabla resumen
4.4 Otras formas de completar
5. Los archivos de entorno
5.1 Características de los archivos de entorno
5.1.1 Shell de conexión
5.1.2 Archivos de entorno leídos por el shell de conexión
5.2 Sesión utilizando un Bourne Shell
5.3 Sesión utilizando un Korn Shell
5.4 Sesión utilizando un Bourne Again Shell
6. Ejercicios
6.1 Variables de entorno
6.1.1 Ejercicio 1
6.1.2 Ejercicio 2
6.2 Alias de comandos
6.2.1 Ejercicio 1
6.2.2 Ejercicio 2
Las bases de la programación shell
1. Las variables de usuario
1.1 Poner nombre a una variable
1.2 Definir una variable
1.2.1 Asignar un valor a una variable
1.2.2 Asignar un valor con al menos un espacio
1.2.3 Variable indefinida
1.2.4 Borrar la definición de una variable
1.2.5 Aislar el nombre de una variable
1.2.6 Variables numéricas
1.2.7 Variables complejas
1.3 Sustitución de variables
2. Sustitución de comandos
3. Caracteres de protección
3.1 Las comillas simples
3.2 El carácter \
3.3 Las comillas dobles
4. Recapitulación
5. Interpretación de una línea de comandos
6. Escritura y ejecución de un script en shell
6.1 Definición
6.2 Ejecución de un script por un shell hijo
6.3 Ejecución de un script por el shell actual
6.4 Comentarios
7. Variables reservadas del shell
7.1 Los parámetros posicionales
7.2 El comando shift
7.2.1 Sintaxis
7.2.2 Principio
7.3 Código de retorno de un comando
7.3.1 La variable $?
7.3.2 El comando exit
7.4 Otras variables especiales
7.4.1 PID del shell intérprete
7.4.2 PID del último proceso ejecutado en segundo plano
8. El comando read
8.1 Sintaxis
8.2 Lecturas del teclado
8.3 Código de retorno
8.4 La variable IFS
9. Ejecución de verificaciones
9.1 Introducción
9.2 El comando test
9.2.1 Sintaxis
9.2.2 Verificaciones de archivos
9.2.3 Verificaciones de cadenas de caracteres
9.2.4 Verificaciones de números
9.2.5 Los operadores
9.2.6 Ejemplo concreto de uso
9.3 El comando [[ ]]
10. Los operadores del shell
10.1 Evaluación del operador &&
10.2 Evaluación del operador ||
11. Aritmética
11.1 El comando expr
11.1.1 Sintaxis
11.1.2 Operadores
11.2 El comando (( ))
11.2.1 Sintaxis
11.2.2 Uso
11.3 El comando let
11.4 Aritmética de punto flotante
11.4.1 ksh93
11.4.2 Otros shells
12. Sustitución de expresiones aritméticas
13. Corrección de un script
13.1 Opción -x
13.2 Otras opciones
14. Las estructuras de control
14.1 if
14.2 case
14.2.1 Sintaxis
14.2.2 Principio
14.2.3 Uso
14.3 Bucle for
14.4 Bucle while
14.4.1 Sintaxis
14.4.2 Uso
14.4.3 Bucle infinito
14.5 until
14.5.1 Sintaxis
14.5.2 Uso
14.6 break y continue
15. Ejercicios
15.1 Variables, caracteres especiales
15.1.1 Ejercicio 1: variables
15.1.2 Ejercicio 2: variables
15.1.3 Ejercicio 3: sustitución de comando
15.1.4 Ejercicio 4: caracteres de protección
15.2 Variables, visualización y lectura del teclado
15.2.1 Ejercicio 1: variables
15.2.2 Ejercicio 2: parámetros posicionales
15.2.3 Ejercicio 3: lectura de teclado
15.3 Tests y aritmética
15.3.1 Ejercicio 1: tests a los archivos
15.3.2 Ejercicio 2: tests de cadenas de caracteres
15.3.3 Ejercicio 3: tests numéricos
15.3.4 Ejercicio 4: aritmética
15.3.5 Ejercicio 5: operadores lógicos de los comandos [ ], [[ ]] y operadores lógicos del shell
15.4 Estructuras de control if, case, bucle for
15.4.1 Ejercicio 1: los comandos [ ] y [[ ]], la estructura de control if
15.4.2 Ejercicio 2: estructura de control case, bucle for
15.5 Bucles
15.5.1 Ejercicio 1: bucle for, comando tr
15.5.2 Ejercicio 2: bucle for, aritmética
15.5.3 Ejercicio 3: bucles for, while
Aspectos avanzados de la programación shell
1. Comparación de las variables $* y $@
1.1 Uso de $* y de $@
1.2 Uso de "$*"
1.3 Uso de "$@"
2. Sustitución de variables
2.1 Longitud del valor contenido en una variable
2.2 Manipulación de cadenas de caracteres
2.2.1 Eliminar el fragmento más pequeño de la izquierda
2.2.2 Eliminar el fragmento más grande de la izquierda
2.2.3 Eliminar el fragmento más pequeño de la derecha
2.2.4 Eliminar el fragmento más grande de la derecha
3. Tablas
3.1 Asignar un elemento
3.2 Referenciar un elemento
3.3 Asignación global de una tabla
3.4 Referenciar todos los elementos de una tabla
3.5 Obtener el número de elementos de una tabla
3.6 Obtener la longitud de un elemento de una tabla
3.7 Tablas asociativas
4. Inicialización de parámetros posicionales con set
5. Funciones
5.1 Definición de una función
5.2 Código de retorno de una función
5.3 Ámbito de las variables
5.4 Definición de variables locales
5.5 Paso de parámetros
5.6 Utilizar la salida de una función
5.7 Programa completo del ejemplo
6. Comandos de salida
6.1 El comando print
6.1.1 Uso simple
6.1.2 Supresión del salto de línea natural de print
6.1.3 Mostrar argumentos que comienzan por el carácter "-"
6.1.4 Escritura hacia un descriptor determinado
6.2 El comando printf
7. Gestión de entradas/salidas de un script
7.1 Redirección de entradas/salidas estándar
7.2 Gestión de archivos
7.2.1 Apertura de archivo
7.2.2 Lectura a partir de un archivo
7.2.3 Escritura en un archivo
7.2.4 Cierre de un archivo
7.3 Tratamiento de un archivo
7.3.1 Información previa
7.3.2 Las diferentes formas de explotar un archivo
7.3.3 Repartir una línea en campos
7.3.4 Modificar el separador de línea
8. El comando eval
9. Gestión de señales
9.1 Señales principales
9.2 Ignorar una señal
9.3 Modificar el comportamiento asociado a una señal
9.4 Restablecer el comportamiento por defecto del shell respecto a una señal
9.5 Usar trap desde un script de shell
10. Gestión de menús con select
11. Análisis de las opciones de un script con getopts
12. Gestión de un proceso en segundo plano
13. Script de archivado incremental y transferencia sftp automática
13.1 Objetivo
13.2 El archivo uploadBackup.sh
13.3 El archivo funciones.inc.sh
14. Ejercicios
14.1 Funciones
14.1.1 Ejercicio 1: funciones simples
14.1.2 Ejercicio 2: funciones simples, valor de retorno
14.1.3 Ejercicio 3: paso de parámetros, retorno de valor
14.1.4 Ejercicio 4: archivos
14.1.5 Ejercicio 5: archivos, funciones, menú select
14.1.6 Ejercicio 6: archivos, tablas asociativas (bash 4, ksh93)
Expresiones regulares
1. Introducción
2. Caracteres comunes en ERb y ERe
3. Caracteres específicos de ERb
4. Caracteres específicos de ERe
5. Uso de expresiones regulares por comandos
5.1 El comando vi
5.2 El comando grep
5.3 El comando expr
5.4 sed y awk
6. Ejercicios
6.1 Expresiones regulares
6.1.1 Ejercicio 1: expresiones regulares con vi
6.1.2 Ejercicio 2: grep
El comando sed
1. Uso del comando sed
2. Ejemplos
2.1 Uso de sed en línea de comandos
2.1.1 El comando d (delete)
2.1.2 El comando p (print)
2.1.3 El comando w (write)
2.1.4 Negación de un comando (!)
2.1.5 El comando s (sustitución)
2.2 Script sed
3. Ejercicios
3.1 Expresiones regulares
3.1.1 Ejercicio 1: inserción de marcadores en un archivo
3.1.2 Ejercicio 2: formato de archivos
El lenguaje de programación awk
1. Principio
1.1 Sintaxis
1.2 Variables especiales
1.2.1 Variables predefinidas a partir de la ejecución de awk
1.2.2 Variables inicializadas en el momento del tratamiento de una línea
1.2.3 Ejemplos simples
1.3 Criterios de selección
1.3.1 Expresiones regulares
1.3.2 Verificaciones lógicas
1.3.3 Intervalos de líneas
1.4 Estructura de un script awk
1.4.1 BEGIN
1.4.2 Secciones intermedias
1.4.3 END
1.4.4 Comentarios
1.4.5 Variables
1.4.6 Ejemplo
2. Operadores
3. La función printf
4. Redirecciones
5. Lectura de la línea siguiente: next
6. Estructuras de control
6.1 if
6.2 switch
6.3 for
6.4 while
6.5 do-while
6.6 break
6.7 continue
7. Finalizar un script
8. Tablas
8.1 Tablas indexadas con un número
8.2 Tablas indexadas por una cadena de caracteres
8.3 Verificar la existencia de un elemento
8.4 Eliminar un elemento
8.5 Número de elementos de una tabla
8.6 Orden de recorrido de los elementos
8.7 Probar una tabla
9. Tablas multidimensionales
9.1 Simulación de tablas multidimensionales
9.2 Verdaderas tablas multidimensionales
9.3 Probar si una variable es una tabla
10. Los argumentos de la línea de comandos
11. Funciones integradas
11.1 Funciones que trabajan con cadenas
11.2 Funciones matemáticas
11.3 Funciones vinculadas a las tablas
11.4 Otras funciones
11.4.1 La función getline
11.4.2 La función close
11.4.3 La función system
12. Funciones de usuario
13. Inclusión de archivos
14. Ejercicios
14.1 awk en línea de comandos
14.1.1 Ejercicio 1: awk y otros filtros
14.1.2 Ejercicio 2: criterios de selección
14.1.3 Ejercicio 3: criterios de selección, visualización de campos, secciones BEGIN y END
14.2 Scripts awk
14.2.1 Ejercicio 4: funciones
14.2.2 Ejercicio 5: análisis de un archivo de log
14.2.3 Ejercicio 6: generación de un archivo de etiquetas
Los comandos filtro
1. Introducción
2. Sintaxis de llamada a comandos filtro
3. Visualización de datos
3.1 Consulta de datos, creación de archivos: cat
3.2 Valor de los bytes de un flujo de datos: od
3.3 Filtrado de líneas: grep
3.4 Últimas líneas de un flujo de datos: tail
3.5 Primeras líneas de un flujo de datos: head
3.6 Duplicación de la salida estándar: tee
3.7 Numeración de líneas: nl
3.8 Presentación de un flujo de datos: pr
4. Tratamiento de datos
4.1 Recuento de líneas, de palabras y caracteres: wc
4.2 Extracción de caracteres: cut
4.3 Ordenación de datos: sort
4.4 paste
4.5 split
4.6 Transformación de caracteres: tr
4.7 Eliminación de líneas repetidas: uniq
5. Compresión, archivado y conversión
5.1 Compresión: gzip, bzip2
5.2 Archivos tar
5.3 Archivos cpio
5.4 Copia física, tranformaciones: dd
5.5 Cambio de codificación: iconv
6. Comandos de red seguros
6.1 Conexión remota: ssh
6.2 Transferencia de archivos: sftp
6.2.1 Comandos de sftp que se ejecutan en la máquina local
6.2.2 Comandos que se ejecutan en el equipo remoto
6.2.3 Comandos de transferencia
6.2.4 Conexión automática sin contraseña
7. Otros comandos
7.1 El comando xargs
7.2 Comparar dos archivos: cmp
7.3 Líneas comunes entre dos archivos: comm
Cómo hacer ... (síntesis)
1. Introducción
2. Información
3. Plantillas de nombres de archivo
4. Verificar el código de retorno de un comando
5. Test de igualdad entre dos cadenas
6. Comparación de una variable en relación a una plantilla
7. Eliminar el comienzo o final de una cadena
8. Recuperar el campo de una línea
9. No mostrar algunas líneas de un flujo
10. Pruebas numéricas
11. Cálculos
12. Ejecutar un script de otro lenguaje a partir de un shell
13. Acceder a una base MySQL a partir de un shell
Soluciones a los ejercicios
1. Soluciones del capítulo Mecanismos esenciales del shell
1.1 Funcionalidades varias
1.1.1 Ejercicio 1: comandos internos y externos
1.1.2 Ejercicio 2: generación de nombres de archivo
1.1.3 Ejercicio 3: separador de comandos
1.2 Redirecciones
1.2.1 Ejercicio 1
1.2.2 Ejercicio 2
1.2.3 Ejercicio 3
1.2.4 Ejercicio 4
1.2.5 Ejercicio 5
1.2.6 Ejercicio 6
1.3 Tuberías de comunicación
1.3.1 Ejercicio 1
1.3.2 Ejercicio 2
1.3.3 Ejercicio 3
1.3.4 Ejercicio 4
2. Soluciones del capítulo Configuración del entorno de trabajo
2.1 Variables de entorno
2.1.1 Ejercicio 1
2.1.2 Ejercicio 2
2.2 Alias de comandos
2.2.1 Ejercicio 1
2.2.2 Ejercicio 2
3. Soluciones del capítulo Las bases de la programación shell
3.1 Variables, caracteres especiales
3.1.1 Ejercicio 1: variables
3.1.2 Ejercicio 2: variables
3.1.3 Ejercicio 3: sustitución de comando
3.1.4 Ejercicio 4: caracteres de protección
3.2 Variables, visualización y lectura del teclado
3.2.1 Ejercicio 1: variables
3.2.2 Ejercicio 2: parámetros posicionales
3.2.3 Ejercicio 3: lectura de teclado
3.3 Tests y aritmética
3.3.1 Ejercicio 1: tests a los archivos
3.3.2 Ejercicio 2: tests de cadenas de caracteres
3.3.3 Ejercicio 3: tests numéricos
3.3.4 Ejercicio 4: aritmética
3.3.5 Ejercicio 5: operadores lógicos de los comandos [ ], [[ ]] y operadores lógicos del shell
3.4 Estructuras de control if, case, bucle for
3.4.1 Ejercicio 1: los comandos [ ] y [[ ]], la estructura de control if
3.4.2 Ejercicio 2: estructuras de control case, bucle for
3.5 Bucles
3.5.1 Ejercicio 1: bucle for, comando tr
3.5.2 Ejercicio 2: bucle for, aritmética
3.5.3 Ejercicio 3: bucles for, while
4. Soluciones del capítulo Aspectos avanzados de la programación shell
4.1 Funciones
4.1.1 Ejercicio 1: funciones simples
4.1.2 Ejercicio 2: funciones simples, valor de retorno
4.1.3 Ejercicio 3: paso de parámetros, retorno de valor
4.1.4 Ejercicio 4: archivos
4.1.5 Ejercicio 5: archivos, funciones, menú select
4.1.6 Ejercicio 6: archivos, tablas asociativas (bash 4, ksh93)
5. Soluciones del capítulo Expresiones regulares
5.1 Expresiones regulares
5.1.1 Ejercicio 1: expresiones regulares con vi
5.1.2 Ejercicio 2: grep
6. Soluciones del capítulo El comando sed
6.1 Expresiones regulares
6.1.1 Ejercicio 1: inserción de marcadores en un archivo
6.1.2 Ejercicio 2: formato de archivos
7. Soluciones del capítulo El lenguaje de programación awk
7.1 awk en línea de comandos
7.1.1 Ejercicio 1: awk y otros filtros
7.1.2 Ejercicio 2: criterios de selección
7.1.3 Ejercicio 3: criterios de selección, visualización de campos, secciones BEGIN y END
7.2 Scripts awk
7.2.1 Ejercicio 4: funciones
7.2.2 Ejercicio 5: análisis de un archivo de log
7.2.3 Ejercicio 6: generación de un archivo de etiquetas
Anexos
1. Caracteres especiales de shell
2. Comandos internos de shell
3. Orden de interpretación de un comando
índice

 

2024 © Vuestros Libros Siglo XXI | Desarrollo Web Factor Ideas

Producto añadido al carrito.

Si desea ver la cesta de la compra haga click aquí.