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
Expandir