En una entrada anterior se habló de los guiones ("scripts", en inglés) de intérpretes de comandos ("shell", en inglés), creados, principalmente, para realizar ciertas tareas en un sistema operativo. Uno de los tipos de lenguaje de comandos que se emplean para crear estos guiones es bash, que se utiliza, sobretodo, en los sistemas operativos Linux.
El elemento básico de este lenguaje de comandos son los comandos que causan acciones, mas también es compatible, como casi todos los lenguajes que se utilizan para programar, con el agrupamiento de nombres de archivo (coincidencia de comodines), tuberías, here documents, sustitución de comandos, variables y estructuras de control para pruebas de condición e iteración.
Un guión en bash es interpretado por el intérprete de comandos Bash, que suele ser el propio de las terminales de Linux.
La sintaxis de comandos del lenguaje bash consiste en un superconjunto de instrucciones basadas en la sintaxis del Bourne Shell (programa informático cuya función consiste en interpretar comandos, utilizado en las primeras versiones de Unix).
La mayoría de los guiones que funcionan en el Bourne Shell también pueden ejecutarse por Bash sin ningún cambio, con la excepción de aquellos guiones del intérprete de comandos, bourne que hacen referencia a variables especiales de bourne o que utilizan un comando interno de bourne. La sintaxis de órdenes de Bash incluye ideas tomadas desde los intérpretes Korn shell (ksh) y C shell (csh), como la edición de la línea de comandos, el historial de comandos, la pila de directorios, las variables $RANDOM y $PPID, y la sintaxis de substitución de órdenes POSIX: $(...). Cuando se utiliza como un intérprete de comandos interactivo, Bash proporciona autocompletado de nombres de programas, nombres de archivos, nombres de variables, etc., cuando el usuario pulsa la tecla de tabulación.
Básicamente, se pueden emplear los mismos comandos utilizados en cualquier terminal de cualquier sistema operativo de Linux. Además, emplea los mismos tipos de datos básicos que cualquier lenguaje de programación (booleanos, caracteres, numéricos, cadenas, matrices, etc.).
Sin embargo, este lenguaje tiene una vulnerabilidad, conocida popularmente, en el mundo de la informática, como "Shellshock". Este agujero de seguridad consistiía, en realidad, en una familia de fallos de seguridad descubierta en el 2014 (CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186 y CVE-2014-7187) para la que actualmente ya existen parches de seguridad predeterminados que palian sus efectos.
Como ya se ha comentado en otras entradas, el uso de este tipo de lenguaje puede emplearse directamente en ciertos archivos del sistema linux, como, por ejemplo, el archivo de configuración de Bash (".bashrc", ".bash_profile", etc.) situado en la ruta "home/<directorio del usuario>", si es el del usuario estándar, o en el directorio "root", si se quiere utilizar con el usuario administrador directamente, o bien en un archivo de guión de intérprete de comandos (normalmente con la extensión ".sh").
En el último caso, el archivo debe tener los permisos adecuados de ejecución para poder ser utilizado mediante el comando ./<ruta del archivo de guión>, y, a veces, el usuario también debe poder acceder abiertamente al archivo y ejecutarlo sin trabas, es decir, debe tener permisos de administrador. No obstante, lo habitual es que el archivo de guión tenga los permisos que permiten ejecutarlo sólo al usuario que lo diseñó. Para dar los permisos a un archivo de este tipo se utilizará el comando chmod u+x <nombre del archivo de guión>. Dicho archivo, como es de texto plano, se puede crear con cualquier editor de texto que tenga el sistema operativo.
Aguardo que la presente entrada haya sido del gusto del lector. De ser así, espero que el lector la comente y/o la comparta, por favor.
El elemento básico de este lenguaje de comandos son los comandos que causan acciones, mas también es compatible, como casi todos los lenguajes que se utilizan para programar, con el agrupamiento de nombres de archivo (coincidencia de comodines), tuberías, here documents, sustitución de comandos, variables y estructuras de control para pruebas de condición e iteración.
Un guión en bash es interpretado por el intérprete de comandos Bash, que suele ser el propio de las terminales de Linux.
La sintaxis de comandos del lenguaje bash consiste en un superconjunto de instrucciones basadas en la sintaxis del Bourne Shell (programa informático cuya función consiste en interpretar comandos, utilizado en las primeras versiones de Unix).
La mayoría de los guiones que funcionan en el Bourne Shell también pueden ejecutarse por Bash sin ningún cambio, con la excepción de aquellos guiones del intérprete de comandos, bourne que hacen referencia a variables especiales de bourne o que utilizan un comando interno de bourne. La sintaxis de órdenes de Bash incluye ideas tomadas desde los intérpretes Korn shell (ksh) y C shell (csh), como la edición de la línea de comandos, el historial de comandos, la pila de directorios, las variables $RANDOM y $PPID, y la sintaxis de substitución de órdenes POSIX: $(...). Cuando se utiliza como un intérprete de comandos interactivo, Bash proporciona autocompletado de nombres de programas, nombres de archivos, nombres de variables, etc., cuando el usuario pulsa la tecla de tabulación.
Básicamente, se pueden emplear los mismos comandos utilizados en cualquier terminal de cualquier sistema operativo de Linux. Además, emplea los mismos tipos de datos básicos que cualquier lenguaje de programación (booleanos, caracteres, numéricos, cadenas, matrices, etc.).
Sin embargo, este lenguaje tiene una vulnerabilidad, conocida popularmente, en el mundo de la informática, como "Shellshock". Este agujero de seguridad consistiía, en realidad, en una familia de fallos de seguridad descubierta en el 2014 (CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186 y CVE-2014-7187) para la que actualmente ya existen parches de seguridad predeterminados que palian sus efectos.
Como ya se ha comentado en otras entradas, el uso de este tipo de lenguaje puede emplearse directamente en ciertos archivos del sistema linux, como, por ejemplo, el archivo de configuración de Bash (".bashrc", ".bash_profile", etc.) situado en la ruta "home/<directorio del usuario>", si es el del usuario estándar, o en el directorio "root", si se quiere utilizar con el usuario administrador directamente, o bien en un archivo de guión de intérprete de comandos (normalmente con la extensión ".sh").
En el último caso, el archivo debe tener los permisos adecuados de ejecución para poder ser utilizado mediante el comando ./<ruta del archivo de guión>, y, a veces, el usuario también debe poder acceder abiertamente al archivo y ejecutarlo sin trabas, es decir, debe tener permisos de administrador. No obstante, lo habitual es que el archivo de guión tenga los permisos que permiten ejecutarlo sólo al usuario que lo diseñó. Para dar los permisos a un archivo de este tipo se utilizará el comando chmod u+x <nombre del archivo de guión>. Dicho archivo, como es de texto plano, se puede crear con cualquier editor de texto que tenga el sistema operativo.
Aguardo que la presente entrada haya sido del gusto del lector. De ser así, espero que el lector la comente y/o la comparta, por favor.
No hay comentarios:
Publicar un comentario
Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.