Table of Contents
5 scripts de shell para que los principiantes de Linux aprendan la programación de shell-Parte II
Para aprender algo, debe hacerlo, sin temor a fracasar. Creo en la practicidad y, por lo tanto, lo acompañaré al mundo práctico del lenguaje de secuencias de comandos.
Aprenda las secuencias de comandos básicas de Shell
Este artículo es una extensión de nuestro primer artículo Comprender el Shell de Linux y el Scripting básico del Shell-Parte I, donde le dimos una muestra del Scripting, continuando que no lo decepcionaremos en este artículo.
Script 1: Dibujar un patrón especial
#!/Bin/bash MAX_NO = 0 echo-n “Ingrese un número entre (5 a 9):” leer MAX_NO si! [$ MAX_NO-ge 5-a $ MAX_NO-le 9]; luego repita “WTF … pido ingresar un número entre 5 y 9, Inténtelo de nuevo” salir 1 fi claro para ((i = 1; i <= MAX_NO; i ++)) hacer para ((s = MAX_NO; s> = i; s–)) hacer echo-n “” hecho para ((j = 1; j <= i; j ++)) hacer echo-n "." hecho echo "" hecho ###### Segunda etapa ##################### para ((i = MAX_NO; i> = 1; i–)) hacer para ((s = i; s <= MAX_NO; s ++)) hacer echo-n "" hecho para ((j = 1; j <= i; j ++)) hacer echo-n "." done echo "" done echo-e "\ n \ n \ t \ t \ t Siempre que necesite ayuda, Tecmint.com siempre estará ahí"
La mayoría de las ‘ palabras clave. ser conocido por usted y la mayoría de ellos se explican por sí mismos. Por ejemplo, MAX. establece el valor máximo de la variable, for es un bucle y cualquier cosa dentro del bucle se ejecuta una y otra vez hasta que el bucle es válido para el valor de entrada dado.
Ejemplo de salida [[email protected] ~] # chmod 755 Special_Pattern.sh [[email protected] ~] # ./Special_Pattern.sh Ingrese el número entre (5 a 9): 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Siempre que necesite ayuda, Tecmint.com siempre está ahí
Si está un poco al tanto de cualquier lenguaje de programación, aprender el script anterior no es difícil, incluso si es nuevo en computación, programación y Linux, no lo será. mucho difícil.
Descargar Special_Pattern.sh
Script 2: Creando Script Colorido
Quién dice, Linux es incoloro. y aburrido, guarda los códigos a continuación en cualquier cosa [ dot. sh. hazlo ejecutable y ejecútalo, no olvides decirme cómo fue, Piensa lo que puedes lograr, implementándolo en alguna parte.
#!/bin/bash clear echo-e “33 [1m Hello World” # bold effect echo-e “33 [5m Blink” # blink effect echo-e “33 [0m Hola mundo” # regreso al eco normal-e “33 [31m Hola mundo” # Color rojo eco-e “33 [32m Hola mundo” # Color verde eco-e “33 [33m Hola mundo” # Ver el resto en pantalla echo-e “33 [34m Hola mundo” echo-e “33 [35m Hola mundo” echo-e “33 [36m Hel lo Mundo “echo-e-n” 33 [0m “# regreso a la normalidad echo-e” 33 [41m Hola mundo “echo-e” 33 [42m Hola mundo “echo-e” 33 [43m Hola mundo “echo-e “33 [44m Hola mundo” echo-e “33 [45m Hola mundo” echo-e “33 [46m Hola mundo” echo-e “33 [0m Hola mundo” freestar.config.enabled_slots.push (LocationName: “tecmint_incontent “, slotId:” tecmint_incontent “);
Nota. No se preocupe por el código de color ahora, los que son importantes para usted estarán en su lengua, gradualmente.
Advertencia. Es posible que su terminal no tenga la capacidad de parpadear.
Salida de muestra [[email protected] ~] # chmod 755 Colorfull.sh [[email protegido] ~] # ./Colorfull.sh Hola mundo Parpadeo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo Hola mundo
Descargar Colorfull.sh
Script 3: Cifrar un archivo/directorio
Esta secuencia de comandos cifrará un archivo. (¿recuerdas? directorio. controlador. …. todo se trata como archivo, en Linux. . La limitación actual de la secuencia de comandos anterior es que no admite la finalización automática del nombre mediante TAB. Además, debe colocar el script y el archivo a cifrar en la misma carpeta. Es posible que deba instalar “ pinentry-gui. , utilizando yum. o apt. el paquete, si es necesario.
[[email protected] ~] # yum install pinentry-gui [[email protected] ~] # apt-get install pinentry-gui
Cree un archivo llamado “ Encrypt.sh. ”Y coloque el siguiente script, hágalo ejecutable y ejecútelo como se muestra.
#!/Bin/bash echo” Bienvenido, estoy listo para encriptar un archivo/carpeta para usted “echo” actualmente tengo una limitación, Colóqueme en la misma carpeta, donde está presente un archivo a cifrar. gpg-c $ file echo “He cifrado el archivo correctamente …” echo “Ahora eliminaré el archivo original” rm-rf $ file
Salida de muestra
[[email protected] ~] # chmod 755 Encrypt.sh [[email protected] ~] # ./Encrypt.sh Bienvenido, estoy listo para encriptar un archivo/carpeta para usted actualmente tengo una limitación, colóqueme en la misma carpeta, donde un archivo para ser encriptado está presente Introduzca el nombre exacto del archivo con la extensión package.xml ┌───────────────────────────────────── ────────────────┐ │ Ingrese la contraseña │ │ │ │ │ Contraseña ******* _________________________________ │ │ │ │ gpg-c. Esto cifrará su archivo, utilizando una clave de acceso también conocida como contraseña. En este proceso de aprendizaje, nunca hubiera pensado que el proceso real de aprendizaje podría ser tan fácil. Entonces, después de cifrar un archivo, ¿qué necesitas? ¡Obviamente! descifrando el archivo. Y quiero que usted, el alumno, el lector, escriba el guión de descifrado usted mismo, no se preocupe, no lo dejaré en el medio, solo quiero que obtenga algo de este artículo. Nota. gpg-d filename.gpg. filename. es lo que necesita implementar en su secuencia de comandos de descifrado. Puede publicar su script en el comentario si tiene éxito, de lo contrario, puede pedirme que lo escriba por usted. Descargar Encrypt.sh Verificar la utilización del servidor es una de las tareas importantes de un administrador, y un buen administrador es aquel que sabe cómo automatizar su tarea diaria. A continuación se muestra el script que proporcionará mucha información sobre su servidor. Compruébelo usted mismo. #!/bin/bash date; echo “uptime:” uptime echo “Actualmente conectado:” w echo “——————–” echo “Últimos inicios de sesión:” last-a | head-3 echo “——————–” echo “Uso de memoria y disco:” df-h | xargs | awk ‘print “Disco libre/total:” $ 11 “/” $ 9’ gratis-m | xargs | awk ‘print “Memoria libre/total:” $ 17 “/” $ 8 “MB”‘ echo “——————–” start_log = `head-1/var/log/messages | cut-c 1-12` oom = `grep-ci kill/var/log/messages` echo-n” Errores OOM desde $ start_log: “$ oom echo” “echo”——————–“echo” Utilización y procesos más costosos: “top-b | head-3 echo top-b | head-10 | tail-4 echo”——————–“echo” Puertos TCP abiertos: “nmap-p–T4 127.0.0.1 echo”——————–“echo” Conexiones actuales: “ss-s echo”——————–“echo” procesos: “ps auxf–width = 200 echo “——————–” echo “vmstat:” vmstat 1 5 Salida de muestra [[email protected] ~] # chmod 755 Server-Health.sh [ [email protected] ~] # ./Server-Health.sh Mar 16 de julio 22:01:06 IST 2013 tiempo de actividad: 22:01:06 hasta 174 días, 4:42, 1 usuario, promedio de carga: 0.36, 0.25, 0.18 Actualmente conectado: 22:01:06 hasta 174 días, 4:42, 1 usuario, carga promedio: 0.36, 0.25, 0.18 USUARIO TTY DE [email protected] IDLE JCPU PCPU QUÉ tecmint pts/0 116.72.134.162 21:48 0.00s 0.03s 0.03s sshd: tecmint [priv]——————–Últimos inicios de sesión: tecmint pts/0 Tue Jul 16 21:48 todavía conectado 116.72.134.162 tecmint pts/0 Tue Jul 16 21:24-21:43 (00:19) 116.72. 134.162——————–Uso de disco y memoria: Disco libre/total: 292G/457G Memoria libre/total: 3510/3838 MB——————–Errores OOM desde el 14 de julio 03:37: 0——————–Utilización y procesos más costosos: arriba-22:01:07 hasta 174 días, 4:42, 1 usuario, promedio de carga: 0.36, 0.25, 0.18 Tareas: 149 en total, 1 en ejecución, 148 en suspensión, 0 detenidas, 0 CPU (s) zombies: 0.1% us, 0.0% sy, 0.0% ni, 99.3% id, 0.6% wa, 0.0% hi, 0.0% si, 0.0% st PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 1 root 20 0 3788 1128932 S 0.0 0.0 0: 32.94 raíz de init 2 20 0 0 0 0 S 0.0 0.0 0: 00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0: 14.07 migración/0 Nota. le he dado el script que da la salida en el propio terminal, ¿qué tal obtener la salida en un archivo para referencia futura? Impleméntelo usando el operador de redireccionamiento. Descargar Server-Health.sh ¿Qué tal recibir un correo electrónico cuando el uso del disco en la partición PART. es mayor que el máximo permitido? Es un script que salva vidas para los administradores web con pocas modificaciones. MAX = 95 [email protected] PART = sda1 USE = `df-h | grep $ PART | awk ‘imprimir $ 5’ | cortar-d ‘%’-f1` si [$ USE-gt $ MAX]; luego repita “Porcentaje usado: $ USE” | mail-s “Se está quedando sin espacio en el disco” $ EMAIL fi Nota. Elimine “ USUARIO. con su nombre de usuario. Puede verificar el correo usando el comando ‘ mail. . Descargar Check-Disk-Space.sh La escritura y programación de scripts está más allá de los límites, cualquier cosa y todo podría implementarse según sea necesario. Eso es todo por ahora. En mi próximo artículo les daré algunos sabores diferentes de secuencias de comandos. Hasta entonces mantente fresco y sintonizado, disfruta. Script 4: Verificación de la utilización del servidor
Script 5: Verifique el espacio en disco y envíe una alerta por correo electrónico