Este libro está dividido en cinco partes, que presentan en detalle las habilidades de programación de shell, varios comandos y sintaxis de UNIX, y también involucra el procesamiento de textos en UNIX y una pequeña cantidad de problemas de administración del sistema. Este libro tiene un contenido completo y un texto conciso y fluido, lo que lo hace adecuado para que los programadores de Shell lo aprendan y lo consulten.
Índice de contenidos Prefacio del traductor, primera parte Shell Capítulo 1 Seguridad de archivos y permisos 1 1.1 Documento 1 1.2 Tipo de archivo 2 1.3 Permiso 2 1.4 Cambiar permiso bit 4 1.4.1 Modo de símbolo 4 1.4.2 Ejemplo 5 del comando chmod 1.4.3 Modo absoluto 5 1.4.4 Otros ejemplos del comando chmod 6 1.4.5 Puedes elegir usar el modo simbólico o el modo absoluto 7 1.5 Contenido 7 1.6 suid/guia 7 1.6.1 Por qué utilizar suid/guid 8 1.6.2 Ejemplo de configuración de suid/guid 8 1.7 chown y cambio 9 1.7.1 ejemplo chown 9 1.7.2 ejemplo 9 de cambio 1.7.3 Descubra a qué grupos de usuarios pertenece 9 1.7.4 Descubra a qué grupos pertenecen otros usuarios10 1.8umamascara 10 1.8.1 Cómo calcular el valor de umask 10 1.8.2 Valor de máscara 11 de uso común 1.9 Enlaces simbólicos 12 1.9.1 Uso de enlaces suaves para guardar varias imágenes de un archivo 12 1.9.2 Ejemplo de enlace simbólico 12 1.10 Resumen 13 Capítulo 2 Usando find y xargs 14 2.1 buscar opciones de comando 14 2.1.1 Usando la opción de nombre 15 2.1.2 Usando la opción permanente 16 2.1.3 Ignorar un directorio 16 2.1.4 Uso de las opciones de usuario y nouser 16 2.1.5 Uso de las opciones de grupo y no grupo 16 2.1.6 Buscar archivos según el tiempo de cambio 17 2.1.7 Buscar archivos más nuevos o más antiguos que un determinado archivo 17 2.1.8 Usando la opción de tipo 17 2.1.9 Usando la opción de tamaño 18 2.1.10 Usando la opción de profundidad 18 2.1.11 Usando la opción de montaje 18 2.1.12 Usando la opción cpio 18 2.1.13 Utilice exec u ok para ejecutar comandos de shell 19 2.1.14 Ejemplo 20 del comando buscar 2,2 xargos 20 2.3 Resumen 21 Capítulo 3 Ejecutar comandos en segundo plano 22 3.1 cron y crontab 22 3.1.1 dominio crontab 22 3.1.2 Ejemplos de entradas de crontab 23 3.1.3 opción de comando crontab 23 3.1.4 Crear un nuevo archivo crontab 24 3.1.5 Listar archivos crontab 24 3.1.6 Editar archivo crontab 24 3.1.7 Eliminar archivo crontab 25 3.1.8 Recuperar archivos crontab perdidos 25 3.2 al mando 25 3.2.1 Utilice el comando at para enviar comandos o scripts 26 3.2.2 Lista de tareas enviadas 27 3.2.3 Borrar un trabajo 27 3.3 y comando 27 3.3.1 Enviar comando al fondo 28 3.3.2 Utilice el comando ps para ver el proceso 28 3.3.3 Eliminar procesos en segundo plano 28 3.4 comando nohup 29 3.4.1 Utilice el comando nohup para enviar trabajos 29 3.4.2 Enviar varios trabajos a la vez 29 3.5 Resumen 30 Capítulo 4 Reemplazo de nombre de archivo 31 4.1 Uso* 31 4.2 ¿Uso? 32 4.3 Usando [...] y [!...] 32 4.4 Resumen 33 Capítulo 5 Entrada y salida del Shell 34 5.1 eco 34 5.2 leer 35 5.3 gato 37 5.4 Tubería 38 5.5 camiseta 39 5.6 Entradas, salidas y errores estándar 40 5.6.1 Entrada estándar 40 5.6.2 Salida estándar 40 5.6.3 Error estándar 40 5.7 Redirección de archivos 40 5.7.1 Redirigir la salida estándar 41 5.7.2 Redirigir la entrada estándar 42 5.7.3 Error estándar de redireccionamiento 42 5.8 Uso conjunto de la salida estándar y el error estándar 43 5.9 Fusionar salida estándar y error estándar 43 5.10 ejecutivo 44 5.11 Uso de descriptores de archivos 44 5.12 Resumen 45 Capítulo 6 Secuencia de ejecución de comandos 46 6.1 Usando && 46 6.2 Uso || 46 6.3 Utilice () y { } para combinar comandos 47 6.4 Resumen 48 Parte 2 Filtrado de texto Capítulo 7 Introducción a las expresiones regulares 49 7.1 Uso de puntos para unir caracteres individuales 50 7.2 Haga coincidir una cadena o secuencia de caracteres con ^ al comienzo de la línea 50 7.3 Haga coincidir la cadena o el carácter 51 con $ al final de la línea 7.4 Utilice * para hacer coincidir un solo carácter o su secuencia repetida en una cadena 51 7.5 Utilice para enmascarar el significado de un carácter especial 52 7.6 Utilice [] para hacer coincidir un rango o conjunto52 7.7 Utilice {} para hacer coincidir el número de veces que aparece el resultado del patrón 53 7.8 Resumen 55 Capítulo 8 familia grep 56 8.1 grupo 57 8.1.1 Comillas dobles 57 8.1.2 opción grep 57 8.1.3 Consultar varios archivos 57 8.1.4 Coincidencia de líneas 57 8.1.5 Número de líneas 58 8.1.6 Mostrar líneas que no coinciden 58 8.1.7 Coincidencia exacta 58 8.1.8 Sensibilidad entre mayúsculas y minúsculas58 8.2 grep y expresiones regulares 58 8.2.1 Rango de modo 59 8.2.2 No coincide con el inicio de la línea 59 8.2.3 Establecer caso 59 8.2.4 Emparejar cualquier personaje 59 8.2.5 Consulta de fecha 59 8.2.6 Combinación de rangos 60 8.2.7 Probabilidad de aparición de patrones 60 8.2.8 Utilice grep para hacer coincidir patrones "Y" u "O" 61 8.2.9 Línea en blanco 61 8.2.10 Coincidir caracteres especiales 61 8.2.11 Consultar nombre de archivo formateado 61 8.2.12 Consultar dirección IP 61 8.3 Nombre de clase 62 8.4 Comando grep del sistema 62 8.4.1 Índice de contenidos 63 8.4.2 archivo contraseña 63 8.4.3 Usando el comando ps 63 8.4.4 Usando grep 64 en una cadena 8.5 egrep 64 8.6 Resumen 65 Capítulo 9 Introducción a AWK 66 9.1 Llamando a awk 66 9.2 script awk 67 9.2.1 Patrones y acciones 67 9.2.2 Dominios y registros 67 9.2.3 Expresiones regulares y sus operaciones en awk 70 9.2.4 Metacaracteres 70 9.2.5 Operadores condicionales 70 9.2.6 variables integradas de awk 73 9.2.7 NF, NR y NOMBRE DE ARCHIVO 74 9.2.8 operador awk 75 9.2.9 Funciones de cadena integradas 78 9.2.10 Secuencia de enmascaramiento de cadenas 80 9.2.11 función de salida awk printf 81 9.2.12 modificador printf 81 9.2.13 matriz awk 86 9.3 Resumen 88 Capítulo 10 Introducción al uso de sed 89 10.1 Cómo leer datos con sed 89 10.2 Llamar a sed 89 10.2.1 Guardar la salida sed 90 10.2.2 Cómo usar sed para consultar texto en un archivo 90 10.2.3 Comandos básicos de edición de sed 90 10.3 expresiones sed y regulares 91 10.4 Ejemplos básicos de programación sed 91 10.4.1 Usando p(rint) para mostrar la línea 91 10.4.2 Rango de impresión 91 10.4.3 Modo de impresión 92 10.4.4 Consulta utilizando patrones y números de línea 92 10.4.5 Metacaracteres coincidentes 92 10.4.6 Mostrar el archivo completo 92 10.4.7 Cualquier carácter 92 10.4.8 Primera línea 92 10.4.9 Última línea 93 10.4.10 Imprimir línea número 93 10.4.11 Texto adicional 93 10.4.12 Crear archivo de script sed 94 10.4.13 Insertar texto 94 10.4.14 Modificar texto 95 10.4.15 Eliminar texto 96 10.4.16 Texto de sustitución 96 10.5 Modificar cadenas mediante sustitución 97 10.6 Escribir resultados de sed en el comando de archivo 97 10.7 Leer texto de un archivo 98 10.8 Salir 98 después de hacer coincidir 10.9 Mostrar caracteres de control en archivos 99 10.10 Usando el sistema sed 99 10.10.1 Manejo de caracteres de control 99 10.10.2 Procesamiento de salida de mensaje 101 10.10.3 Eliminar el número 101 al principio de la línea 10.10.4 Texto adicional 102 10.10.5 Pasar el valor 102 de shell a sed 10.10.6 Configuración de variables de shell desde la salida de sed 102 10.11 Comandos rápidos de una línea 102 10.12 Resumen 103 Capítulo 11 Fusión y escisión 104 11.1 uso de clasificación 104 11.1.1 Descripción general 104 11.1.2 opciones de clasificación 104 11.1.3 Guardar resultados 105 11.1.4 método de inicio de clasificación 105 11.1.5 Cómo se refiere la ordenación a los dominios 105 11.1.6 Si el expediente ha sido clasificado105 11.1.7 Clasificación básica 106 11.1.8 inversión de clasificación 106 11.1.9 Clasificación por dominio designado 106 11.1.10 Clasificación de campos numéricos 106 11.1.11 Clasificación de unicidad 107 11.1.12 Otros métodos de clasificación usando k 108 11.1.13 Uso de k para la clasificación de claves de clasificación 108 11.1.14 Especificar secuencia de clasificación 108 11.1.15 uso pos 108 11.1.16 Clasificar la salida usando cabeza y cola 109 11.1.17 awk usa sort para generar resultados 109 11.1.18 Fusionar dos archivos de clasificación 110 11.2 Clasificación del sistema 110 11.3 uso único 111 11.4 uso de unión 112 11.5 uso de corte 114 11.5.1 Usar separadores de dominio 115 11.5.2 Cortar el campo especificado 115 11.6 uso de pasta 116 11.6.1 Especificación de columnas 116 11.6.2 Usar diferentes delimitadores de campo 116 11.6.3 pegar entrada de canalización de comando 117 11.7 uso dividido 117 11.8 Resumen 118 Capítulo 12 tr Uso 119 12.1 Acerca del tr 119 12.1.1 Rango de caracteres 119 12.1.2 Guardar resultados 120 12.1.3 Eliminar caracteres repetidos 120 12.1.4 Eliminar líneas vacías 120 12.1.5 De mayúsculas a minúsculas 121 12.1.6 De minúsculas a mayúsculas 121 12.1.7 Eliminar caracteres especificados 121 12.1.8 Conversión de caracteres de control 122 12.1.9 Conversión rápida 122 12.1.10 Coincidencia de más de un carácter 123 12.2 Resumen 123 Parte 3 Entorno de inicio de sesión Capítulo 13 Entorno de inicio de sesión 125 13.1 /etc/perfil 125 13.2 Perfil $HOME.del usuario 128 13.3 uso stty 129 13.4 Crear archivo .logout 131 13.5 Resumen 131 Capítulo 14 Variables de entorno y shell 132 14.1 ¿Qué son las variables de shell? 132 14.2 Variables locales 132 14.2.1 Variables de visualización 133 14.2.2 Borrar variables 133 14.2.3 Mostrar todas las variables del shell local 133 14.2.4 Combinando valores de variables 134 14.2.5 Probar si se ha establecido una variable 134 14.2.6 Usar variables para guardar los parámetros de comando del sistema 135 14.2.7 Configuración de variables de solo lectura 135 14.3 Variables ambientales 136 14.3.1 Configuración de variables de entorno 136 14.3.2 Mostrar variables de entorno 136 14.3.3 Borrar variables de entorno 137 14.3.4 Incrustar variables de shell 137 14.3.5 Otras variables de entorno 139 14.3.6 establecer comando 140 14.3.7 Exportar variables a procesos secundarios 140 14.4 Parámetros de variables posicionales 141 14.4.1 Uso de parámetros posicionales en scripts 142 14.4.2 Pasar parámetros a comandos del sistema 142 14.4.3 Parámetros variables específicos 143 14.4.4 Estado de salida final 144 14.5 Resumen 145 Capítulo 15 Citas 146 15.1 Necesidad de citación 146 15.2 Comillas dobles 146 15.3 Comillas simples 147 15.4 comillas invertidas147 15.5 Barra invertida 148 15.6 Resumen 149 Parte 4 Programación básica de Shell Capítulo 16 Introducción a los scripts de Shell 151 16.1 Razones para utilizar scripts de shell 151 16.2 Contenido del guión 151 16.3 Ejecutar un script 152 16.4 Resumen 153 Capítulo 17 Pruebas condicionales 154 17.1 Estado del archivo de prueba 154 17.2 Uso de operadores lógicos al realizar pruebas 155 17.3 Prueba de cadenas 155 17.4 Valor de prueba 156 17,5 uso expr 157 17.5.1 Conteo incremental 158 17.5.2 Pruebas numéricas 158 17.5.3 Coincidencia de patrones 158 17.6 Resumen 159 Capítulo 18 Estructuras de flujo de control 160 18.1 Estado de salida 160 18.2 Estructura de control 160 18.2.1 Control de flujo 161 18.2.2 Bucles 161 18.3 si entonces otra declaración 161 18.3.1 Declaración if simple 162 18.3.2 Prueba de valor variable 162 18.3.3 inspección de salida grep 163 18.3.4 Probar la salida de grep con variables 163 18.3.5 Comprobación de salida de copia de archivo 164 18.3.6 Prueba del directorio actual 164 18.3.7 Prueba de permisos de archivos 165 18.3.8 Parámetros de prueba pasados a scripts 165 18.3.9 Determinar si el script está en modo interactivo165 18.3.10 Declaración simple if else 166 18.3.11 Prueba de ajuste de variables 166 18.3.12 Detectar el usuario que ejecuta el script 166 18.3.13 Pasar parámetros de script a comandos del sistema 167 18.3.14 nulo: uso del comando 167 18.3.15 Resultados de la creación del directorio de prueba 168 18.3.16 Otra instancia de copia 169 18.3.17 Múltiples declaraciones if 169 18.3.18 Prueba y configuración de variables de entorno 169 18.3.19 Detectar el estado del último comando 170 18.3.20 Sumar y verificar valores enteros 171 18.3.21 Script de inicio de sesión seguro simple 172 18.3.22 uso de elif 173 18.3.23 Uso de elif para detección de múltiples condiciones 173 18.3.24 Detección de ubicación de múltiples archivos 174 18.4 declaración de caso 175 18.4.1 Declaración de caso simple 175 18.4.2 Usar patrones de coincidencia 176 18.4.3 Solicitud para escribir y o n 177 18.4.4 caso y parámetro de comando pasando 177 18.4.5 Capturar entradas y ejecutar un comando vacío 178 18.4.6 Valores de variables predeterminados 179 18,5 para bucle 180 18.5.1 Bucle for simple 181 18.5.2 Imprimir una lista de cadenas 181 18.5.3 Usando el comando ls con un bucle for 181 18.5.4 Usar parámetros con bucles for 182 18.5.5 Uso del bucle for para conectarse al servidor 183 18.5.6 Uso del bucle for para realizar copias de seguridad de archivos 183 18.5.7 Conversión de múltiples archivos 183 18.5.8 Múltiples operaciones de eliminación de sed 184 18.5.9 Conteo de bucles 184 18.5.10 para bucles y documentos locales 184 18.5.11 para incrustación de bucles 185 18.6 hasta el bucle 186 18.6.1 Simple hasta bucle 186 18.6.2 Archivos de seguimiento 187 18.6.3 Monitoreo del espacio en disco 187 18.7 mientras bucle 188 18.7.1 Bucle while simple 188 18.7.2 Usar el bucle while para leer la entrada del teclado 188 18.7.3 Leer datos de un archivo usando un bucle while 189 18.7.4 Lectura de archivos usando IFS 189 18.7.5 Procesamiento de archivos con condiciones de prueba 190 18.7.6 Escaneando líneas de archivo para contar 191 18.7.7 Leer un par de registros a la vez 193 18.7.8 Ignorar el carácter # 193 18.7.9 Procesamiento de informes formateados 194 18.7.10 bucles while y descriptores de archivos 196 18.8 Uso de pausa y continuación para controlar bucles 197 18.8.1 descanso 197 18.8.2 Salto de declaración de caso 197 18.8.3 continuar 197 18.8.4 Explorar líneas de archivos 198 18.9 Menú 199 18.10 Resumen 201 Capítulo 19 Funciones de Shell 202 19.1 Definición de funciones en scripts 203 19.2 Usar funciones en scripts 203 19.3 Pasar parámetros a funciones 203 19.4 Devolver 203 desde la función de llamada 19.5 Prueba del valor de retorno de la función 204 19.6 Usar funciones en el shell 204 19.7 Crear archivos de funciones 204 19.8 Localización de archivos 205 19.9 Comprobación de las funciones de carga 205 19.10 Ejecutar funciones de shell 205 19.10.1 Eliminar función de shell 206 19.10.2 Edición de funciones del shell 206 19.10.3 Ejemplos de funciones 207 19.10.4 Agrupar funciones juntas 219 19.11 Llamadas a funciones 219 19.11.1 Llamar a funciones en scripts 219 19.11.2 Llamar funciones desde archivos de funciones 220 19.12 Localizar archivos no es sólo para funciones 222 19.13 Resumen 223 Capítulo 20 Pasar parámetros a scripts 224 20.1 comando de cambio 225 20.1.1 Uso simple del comando de cambio 225 20.1.2 El último parámetro ingresado en la línea de comando 225 20.1.3 Usar shift para procesar la conversión de archivos 226 20.2 obtener opciones 229 20.2.1 Ejemplo de script getopts 229 20.2.2 Cómo utilizar getopts 231 20.2.3 Utilice getopts para especificar valores de variables 231 20.2.4 Método de valor de acceso 232 20.2.5 Usar getopts para manejar la conversión de archivos 233 20.3 Resumen 235 Capítulo 21 Creación de resultados en pantalla 236 21.1 uso de entrada 236 21.1.1 Salida de cadena 236 21.1.2 Salida digital 237 21.1.3 Salida booleana 237 21.2 uso de entrada 237 21.2.1 Configuración del comando tput 237 21.2.2 Usando salida booleana 237 21.2.3 Usar tput en scripts 237 21.2.4 Generando secuencias de escape 238 21.2.5 Posición del cursor 239 21.2.6 Mostrar texto en el centro de la pantalla 240 21.2.7 Encontrar atributos de terminal 240 21.2.8 Uso de teclas de función en scripts 241 21.2.9 Uso del color 242 21.2.10 Generando color 243 21.2.11 Crear menú exquisito 246 21.3 Resumen 251 Capítulo 22 Crear entrada de pantalla 252 22.1 Agregar registros 252 22.2 Eliminar registros 262 22.3 Registros de modificación 266 22.4 Ver registros 270 22.5 Resumen 273 Capítulo 23 Depuración de scripts 274 23.1 Errores generales 274 23.1.1 Error de bucle 274 23.1.2 Típicas comillas faltantes 274 23.1.3 Error de prueba 274 23.1.4 Caso de caracteres 275 23.1.5 para el bucle 275 23.1.6 eco 275 23.2 establecer comando 275 23.3 Resumen 276 Capítulo 24 Comandos de incrustación de Shell 277 24.1 Lista completa de comandos integrados en el shell 277 24.1.1 contraseña 277 24.1.2 conjunto 278 24.1.3 veces 278 24.1.4 tipo 278 24.1.5 límite 279 24.1.6 esperar 279 24.2 Resumen 279 Parte 5 Técnicas avanzadas de programación de Shell Capítulo 25 Discusión en profundidad