Shell Scripting en Linux : las computadoras en general entienden el lenguaje de 0 y 1 que se conoce como lenguaje binario. Hace décadas, la gente solía escribir programas y aplicaciones como incluso calculadoras en lenguajes binarios. Pero eso no fue bonito. ¡Solo imagina! ¿Quieres calcular 73 + 96, cómo escribirías? Tendría que calcular el entero binario para 73 y 96 y luego agregarlos. Una persona tiene que ser bastante estúpida para hacer eso. Uno preferiría calcular 73 y 96 en un papel y seguir adelante. Pero eso es para la parte más pequeña. ¿Qué sucede si tiene que calcular algo como (19273/23 * (2967 3))? Diría ahora que esto es bastante intenso.
Entonces, un hombre indeleble que aprende a codificar todo en lenguaje binario no tiene sentido. Esa es la razón principal por la cual las computadoras no eran populares en los años 70 y 80. Pero más tarde, incluso antes de que se desarrollara Windows, la gente comenzó a desarrollar núcleos y cosas similares que eran la parte central del sistema operativo. Los núcleos solían comprender el formato legible por humanos de un programa específico y luego convertirlo en código de máquina. Y aquí es donde surgieron los lenguajes de programación y cambiaron toda la era del mundo de la informática. Las aplicaciones se crearon en C y C ++, y más tarde con Java, Python, Ruby y Perl.
A partir de ahora hay más de 50 lenguajes de programación por todas partes. Y eso es al menos los que yo conozco. Sin mencionar el hecho de que hay otros lenguajes de programación que son aún más difíciles de entender que el código de máquina. Mi punto es, ejemplos como programación de pollo y Malbolge. Son algunas cosas desagradables con las que lidiar.
Programación de Shell … .errr … ¿Scripting?
Ahora puede que se pregunte por qué no he mencionado la programación de Shell anteriormente junto con los otros lenguajes de programación. La razón principal de ser Shell en sí no es un lenguaje de programación. Es un lenguaje de script. Shell es solo un programa interactivo para el usuario que interpreta cualquier entrada del usuario y proporciona el resultado siempre que el comando sea válido. Luego pasa el programa al kernel para ejecutarlo. El Shell no es parte del núcleo, sino que utiliza el núcleo para hacer su trabajo de ejecutar y crear archivos.
Tipos de programa de scripting de Shell
Ahora, a diferencia de C, C ++ o Java, hay varios otros tipos de shells que se pueden usar para Shell Scripting. Los siguientes son los cuatro tipos de shell disponibles hasta la fecha:
No. | Tipo de carcasa | Descripción |
1) | Bash alias Bourne Again Shell | Este es el shell más común disponible en todos los sistemas basados en Linux y Debian. Es de código abierto y gratuito. |
2) | CSH o C Shell | Este programa de script de Shell utiliza la sintaxis de shell de la programación C y es casi similar a C. |
3) | KSH o Korn Shell | Korn es un programa de secuencias de comandos Shell basado en Unix, inicialmente basado en las secuencias de comandos Bash Shell. Este shell es bastante avanzado y es un lenguaje de programación de alto nivel. |
4) | TCSH | No existe una forma completa específica de TCSH. Es como es. TCSH es una versión avanzada de Berkeley Unix C shell. De nuevo es compatible con la sintaxis de estilo C |
En cuanto a hoy, no estamos interesados en todos los shells anteriores aquí. Solo estamos interesados en el shell Bash, ya que es el shell más utilizado actualmente en el mundo.
The Bash Shell
El programa de scripting Bash Shell es un lenguaje de scripting de alto nivel, similar al de python. Pero si tiene alguna experiencia con Python antes, entonces encontrará que Bash Shell Scripting es mucho más fácil que cualquier otro lenguaje de scripting. Uno puede escribir scripts en bash mucho más rápido que en C, C ++, Java o Python. El terminal predeterminado en el entorno más actual de Linux, por ejemplo: Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux o cualquier otro entorno debian consiste en Bash como Shell predeterminado. Sin embargo, puede verificar todos los entornos de shell presentes en su sistema escribiendo lo siguiente en la Terminal predeterminada: -
$ gato / etc / conchas |
(Nota: el signo de dólar al inicio se usa para identificar una terminal).
La sintaxis 'cat' se usa para leer archivos de texto. Los tipos de programas de script de shell en un entorno Linux, Unix o Debian se almacenan en el archivo shell dentro del directorio, etc. Cada shell tiene su propio conjunto único de sintaxis y su propio conjunto de funciones integradas. El DOS o Windows también tienen su propio shell conocido como el infame 'símbolo del sistema' o 'powershell' desde Windows 8.1 en adelante, pero aún no es tan poderoso como el bash. La sintaxis cat le dará la lista de shells disponibles en el sistema, sin embargo, para encontrar el shell predeterminado o para verificar el shell actual, puede usar la siguiente sintaxis en el Terminal de secuencias de comandos de Shell:
$ echo $ SHELL |
La sintaxis 'echo' se usa para imprimir cualquier declaración. Aquí el 'SHELL' es una variable asignada para imprimir el shell actual. El signo de dólar después de 'echo' se usa para representar una variable en Shell Scripting.
Cursos recomendados
- Curso de Certificación en Hibernate Java
- Curso Java Spring
- Entrenamiento en línea de WordPress
- Entrenamiento de rubí
Shell Scripting
Entonces, ahora que sabe qué es un shell, echemos un vistazo a Shell Scripting y por qué se conoce como eso. Shell Scripting no es más que una serie de comandos en un archivo de texto simple que termina con una extensión '.sh'. El '.sh' determina que es un archivo ejecutable de shell. Después de escribir un script de shell, uno necesitaría cambiar el permiso ejecutable usando la 'función chmod'. Por defecto, cualquier shell recién creado no es ejecutable en el entorno UNIX o Linux a menos que los permisos se cambien específicamente. Shell Scripting es casi similar al de la programación Batch de Windows, pero la diferencia es que Shell Scripting es bastante más potente y proporciona un entorno interactivo mucho más sofisticado junto con compleciones de pestañas. Es necesario utilizar un buen editor de texto para escribir un script de shell. Pocos mejores que conozco son Vim, Gedit y Leafpad.
A diferencia de otros lenguajes de programación, los scripts de Shell son más rápidos de escribir y ejecutar. No necesita descargar ningún paquete específico o dependencias para ejecutar. Pueden ser utilizados no solo por un administrador del sistema, sino también por una persona normal para ejecutar scripts automáticos a diario. El siguiente es un ejemplo simple de un guión escrito aquí.
#! / bin / bash echo -e "Bienvenido al primer programa de shell. \ n" echo -e "Escriba algo aquí y este programa lo imprimirá de nuevo. \ n" #pidiendo al usuario la entrada de entrada leída # leyendo la entrada del usuario echo "Usted ingresado: $ input ” salida 0 |
Ahora déjame explicarte todos los parámetros en el código anterior. En primer lugar, escriba el código anterior en un archivo de texto en un formato 'tal cual' y guárdelo con una extensión que termine con '.sh'. Por ejemplo, nombre el archivo como 'main_program.sh'. Asegúrese de que no sea 'main_program.sh.txt'. La mayoría de los principiantes tienden a hacer lo mismo y luego no es ejecutable. Una vez que se copia el código anterior, cambie sus permisos utilizando la siguiente sintaxis en el terminal:
$ chmod + x main_program.sh O $ chmod 755 main_program.sh |
Siéntase libre de usar cualquiera de los comandos anteriores ya que ambos hacen lo mismo. En los programas de scripting de bash shell modernos, el '755' se cambia a '+ x'; así que no importa cuál uses en realidad. Después de haber cambiado los permisos, escriba lo siguiente para ejecutarlo.
$. / main_program.sh |
El punto y la barra oblicua se utilizan para identificar y ejecutar los scripts de shell. Una vez que ejecute el script anterior, imprimirá la primera declaración de eco y luego le pedirá que ingrese algo. Una vez que lo ingrese, le imprimirá lo mismo y saldrá del intérprete. Permítanme explicar todas las sintaxis anteriores. El '#! / Bin / bash' se usa para decirle al intérprete que se trata de un script bash y que el programa de script de shell Bash se encuentra en el directorio 'bin'. El comando 'echo' se usa para imprimir cualquier declaración y el indicador '-e' se usa para indicar al shell que habrá una nueva línea identificada como 'barra oblicua o \ n' o una pestaña 'barra oblicua' o ' t 'o similares dentro de la declaración repetida. La parte hash en la segunda línea se usa para identificar un comentario en un script bash. Lo que escribas después del hash se comenta y no se ejecutará. Pero esto no se aplica a '#! / Bin / bash' en la primera línea. Así es como debe funcionar el script. La sintaxis 'leer' se usa para leer cualquier entrada del usuario. Y la 'entrada' que he mencionado después de la sintaxis 'leer', es la variable en la que se almacena la entrada del usuario. Se puede usar cualquier variable en lugar de la entrada. En la segunda última línea, la entrada $ se usa para identificarse como una variable y generar la entrada almacenada dentro de ella. Finalmente, el comando de salida se usa para salir del intérprete con una salida cero limpia.
Scripting poco interactivo
Ahora el ejemplo anterior es bastante fácil. Pero hay módulos integrados que puede usar en lugar de dar todas las entradas usted mismo. A continuación se incluye un código que imprime el nombre de usuario que está actualmente conectado, la hora actual, la fecha del calendario y el número de inicios de sesión:
#! / bin / bash # Este script imprimirá la información actual del usuario conectado, el número de usuarios conectados, la fecha, la hora y el calendario echo “Hola, $ USER” echo “La fecha y hora de hoy es` date` ” echo“ Número de usuarios conectados: `who | wc -l` ”
echo "Calendario" California salida 0 |
Ejecute este script después de cambiar los permisos del archivo anterior. Ahora, puede que se pregunte que en el script anterior, en realidad ingresamos la entrada y luego la devolvió usando la variable th. Pero aquí, no hemos proporcionado ninguna entrada dentro de la variable '$ USER', entonces, ¿cómo es que imprime al usuario exacto? La razón principal es que estas cosas ya están configuradas en el sistema. ¿Recuerdas que te conté sobre $ SHELL anteriormente al principio, en cuanto a cómo se define por defecto? Sí, similar es el caso con el $ USER aquí. En cuanto a la fecha, si solo escribe 'fecha' sin comillas en el terminal, imprimirá la fecha y hora exactas. Solo utilicé la comilla simple (`) para identificarse como una sintaxis en lugar de una parte de la declaración de eco. La comilla simple (`) ejecutará cualquier sintaxis impresa en su interior, ya sea en una declaración o en cualquier otro lugar. En cuanto a la parte de la cantidad de usuarios, el comando 'who' se usa para verificar los usuarios actuales conectados junto con los procesos registrados y la fecha y hora en que se inició. Pero en cuanto al comando anterior, en realidad lo trunqué para generar el número de usuarios que lo registraron usando el comando 'wc -l'. La barra (|) o lo que popularmente se conoce como tubería se usa para combinar dos comandos. La tubería en realidad representa mucho más que eso, pero no voy a entrar en muchos detalles aquí. Y finalmente imprimí el calendario usando el comando incorporado 'cal' para imprimir la fecha actual en el calendario.
La salida cero
La salida cero es algo que no he explicado en ninguno de los programas escritos anteriores. La razón principal de ser 'Exit Zero' tiene mucha más gravedad que cualquiera de las sintaxis anteriores en Shell Scripting. Por defecto, cada vez que ejecuta un script en una distribución Linux o Unix, devuelve dos tipos de valores o más específicamente el estado de salida para verificar si la ejecución del script de shell es exitosa o no. Si devuelve el valor como Cero, entonces la ejecución fue exitosa, de lo contrario, no se ejecutó o hubo algún error durante la ejecución. Por lo tanto, al escribir 'salida 0' al final de cualquier secuencia de comandos se comprueba el estado de ejecución de la secuencia de comandos.
Todas las cosas que he cubierto aquí son solo la parte menos básica de las secuencias de comandos de Shell en la distribución de Linux. La salida de la parte cero y la tubería juegan un papel importante al ejecutar múltiples scripts de shell en comandos de Linux y usarlo junto con las instrucciones condicionales if y else.
Artículos relacionados:-
Aquí hay algunos artículos que lo ayudarán a obtener más detalles acerca de los Tipos de script de Shell para principiantes de Linux, así que solo vaya al enlace.
- Preguntas de la entrevista de Shell Scripting | Las 10 preguntas más útiles
- Linux vs Windows: descubra las 9 diferencias más impresionantes
- Preguntas y respuestas de la entrevista de Linux | Útil y más solicitado
- Carreras en la administración de Linux
- Reglas y regulaciones de los parámetros de Shell Script