COMANDO NATIVOS DE BASH
Bash posee un sinumero de comandos nativos (embebidos) conocidos como built-in, y algunos de estos comandos poseen el mismo nombre de comandos de la paqueteria GNU instalados y disponibles en los sistemas linuxes. Porque quisiera alguien utilizarlos si ya existen disponibles en Linux? - seguramente te preguntaras - Pero, para sorpresa, es bastante probable que tu amig@ usuari@ uses estos comandos nativos de bash y pienses que estas utilizando comandos del sistema linux en su lugar. Por ejemplo, en Bash tenemos:
* Alias
* Palabras claves
* Funciones
* comandos nativos
* Scripts de ejecucion que estan en tu PATH
Por lo tanto, cuando ejecutas comandos como echo, kill, printf, pwd es bastante probable que estes ejecutando los comandos embebidos de Bash y no los comandos disponibles en tu sistema operativo por la GNU.
COMO SE SI ESTOY UTILIZANDO LOS EMBEBIDOS DE BASH?
Bien sencillo, ejecutando en Bash uno de sus tambien comandos embebidos:
$ command -V echo echo is a shell builtin $ command -V ping ping is /bin/ping
En el ejemplo anterior podemos ver claramente utilizando el comando "command" de Bash que comando es embebido y cual es del sistema operativo a la hora de llamarlo por terminal. Los comandos embebidos de Bash no poseen informacion en man, pero en su lugar poseen otro comando embebido llamado "help" que ofrece informacion adicional sobre que parametros acepta dicho comando.
$ help echo echo: echo [-neE] [arg ...] Write arguments to the standard output. Display the ARGs on the standard output followed by a newline. Options: -n do not append a newline -e enable interpretation of the following backslash escapes [...]
Ahora te preguntaras, porque estoy obligad@ a utilizar estos comandos embebidos de Bash y no los disponibles del sistema operativo. Bueno, de decir obligados no estamos, ya que perfectamente si quieres independizarte de esta regla de oro de Bash, basta con que llames al comando del sistema desde su ruta de origen:
$ ./bin/ping
Pero, como todo proyecto del software libre tienen propositos, existen ventajas de utilizar los comandos embebidos en vez de llamar a los nativos del sistema, me explico. Primeramente, utilizar los comandos embebidos de Bash nos permite mayor rapidez y menor consumo de ram, ya que cada vez que llames un comando del sistema operativo este comando necesita generar un fork o hijo el cual ocupa memoria ram y otros recursos como por ejemplo la utilizacion de varias librerias compartidas, puede que en una instancia digas que no importa porque el consumo de memoria es minimo y el tiempo de ejecucion y creacion del proceso hijo tambien, y tendrias toda la razon sobretodo en procesadores modernos de hoy dia. Pero cuando tienes tanto empeño en la optimizacion sueles tomar en cuenta y considerar todo lo que afecte el desenvolvimiento de un servidor.
Espero que esta nueva informacion te revele secretitos que existen en ambientes Posix y que generalmente siempre pasamos por alto.
Hasta otra.
No hay comentarios:
Publicar un comentario