GNU/Linux >> Tutoriales Linux >  >> Linux

Explicación del comando fuente en Linux

El comando fuente en Linux es una función bastante popular que ejecutan los administradores del sistema a diario.

Pero, ¿cuál es la función del comando fuente?

Se utiliza para actualizar el entorno de shell actual , el comando fuente también se puede usar para importar funciones a otros scripts de bash o para ejecutar scripts en el entorno de shell actual.

En el tutorial de hoy, vamos a ver cómo se debe usar el comando fuente en Linux.

Los comandos se ejecutarán en un entorno Debian 10 con GNOME, pero funcionarán para todas las distribuciones.

Interiores del comando fuente

Antes de comenzar, es importante tener una comprensión completa de qué son las variables de entorno y de shell.

De forma predeterminada, en Linux, su sistema ya posee un par de variables de entorno para almacenar diversa información, como el shell a utilizar, su nombre de host o su nombre de usuario actual.

Las variables de entorno son inicializadas por el sistema y son heredadas por todos los procesos del sistema. Como consecuencia, cuando ejecuta una instancia de shell, debe obtener el valor de las variables de entorno en su sistema.

$ echo $USER
devconnected

Por otro lado, las variables de shell son variables declaradas dentro del contexto de una instancia de shell y no se comparten con otros shells ni con procesos secundarios.

$ VARIABLE=devconnected
$ echo $VARIABLE
devconnected

En Linux, cuando ejecuta un script, lo más probable es que se ejecute en una subcapa.

Como consecuencia, no podrá tener las variables definidas en su primer shell ejecutándose en el script, simplemente no comparten el mismo entorno.

Esto es lo que resuelve el comando fuente.

El comando fuente se usa para evaluar el archivo pasado como argumento en el contexto de la ejecución actual. Abreviado como '.', el comando fuente se usa principalmente en el contexto de shells que se ejecutan en ventanas de terminal.

$ source filename [arguments]

Tenga en cuenta que cuando se proporcionan argumentos, se establecen como parámetros posicionales para el script especificado.

Nota :la documentación de origen se encuentra dentro de la documentación de bash. Para leerlo, escriba "man bash" y busque el párrafo de comando fuente.

Fuente para actualizar su entorno de shell actual (.bashrc)

Una de las principales razones para usar fuente es para actualizar el entorno de shell actual ejecutando el archivo bashrc.

Como recordatorio, .bashrc es un archivo de secuencia de comandos que se ejecuta cada vez que inicia una instancia de shell interactiva.

Se define por usuario y se encuentra en su directorio de inicio.

Digamos, por ejemplo, que desea agregar un nuevo alias a su entorno de shell.

Abra su archivo .bashrc y una nueva entrada.

alias ll='ls -l'

Ahora intente ejecutar su nuevo comando de alias directamente en la terminal.

Como puede ver, los cambios no se aplicaron directamente en su entorno actual.

Para que se apliquen los cambios, ejecute el comando fuente con el .bashrc archivo como argumento.

$ source ~/.bashrc

Una forma alternativa de hacerlo es ejecutarlo con la sintaxis de punto

$ . ~/.bashrc

Si intenta ejecutar su alias nuevamente, debería poder ejecutarlo

Fuente para ejecutar un script en el contexto actual

Como se explicó anteriormente, el comando fuente se puede usar para ejecutar un script en el contexto del entorno actual .

Para ilustrar este punto, definamos una variable de shell local en su entorno de shell actual.

$ VARIABLE=devconnected

Ahora, cree un nuevo script y pegue el siguiente contenido en él

#!/bin/bash

echo $VARIABLE
echo $LOGNAME

La variable VARIABLE representa la variable de shell local que creamos antes y la variable LOGNAME es una variable de entorno en su host.

Guarde su secuencia de comandos y otorgue permisos de ejecución a su secuencia de comandos recién creada (necesitará privilegios sudo para ejecutar este comando)

$ sudo chmod ugo+x <script>

Si intenta ejecutar el script, debería ver el siguiente resultado

Como puede ver, la variable local $VARIABLE no se imprimió en la salida estándar.

Esto se debe a que el script se ejecutó en una subcapa que tiene su propio conjunto de variables locales. Sin embargo, la variable de entorno se imprimió.

Para ejecutar este script en el contexto de nuestro shell actual, vamos a usar el comando fuente.

Como puede ver, en este caso, la variable $VARIABLE se imprimió correctamente en la salida estándar.

Fuente para importar una función de script

Una de las excelentes características del comando fuente es actualizar una función de secuencia de comandos, lo que permite una mayor reutilización de sus funciones de shell existentes.

Para ilustrar este punto, tomemos el ejemplo de una función que imprime el usuario actual en la salida estándar.

Cree un nuevo archivo de script y pegue el siguiente contenido dentro.

$ nano script

#!/bin/bash
# Print the current user to the standard output
printUser() {
   echo $USER
}

Cree otro script y use la función fuente para importar su función printUser.

$ nano import-script

#!/bin/bash
source ./script
printUser

Asigne los permisos correctos al archivo que desea ejecutar. No necesita tener permisos de ejecución para el archivo que contiene la función que desea importar.

$ sudo chmod u+x import-script
$ ./import-script

Esto es lo que deberías ver en tu pantalla.

Como puede ver, la función se importó y ejecutó correctamente, imprimiendo el nombre del usuario actual de mi host.

Fuente para leer variables de un archivo

Otro gran uso del comando source en Linux es leer variables de un archivo.

Digamos, por ejemplo, que tiene un archivo con el siguiente contenido en un archivo llamado "variables

NAME=devconnected
WEBSITE=devconnected.com
DESCRIPTION="best educational website online"

En otro archivo de script, podría usar esas variables usando el comando fuente para leer variables.

Cree un script y pegue el siguiente contenido en él.

$ nano variable-script

#!/bin/bash
source ./variables
echo $NAME is a website located at $WEBSITE and it is probably the $DESCRIPTION

Resolución de problemas

En algunos casos, puede encontrar errores al intentar obtener sus archivos con el comando fuente.

Aquí hay una lista de los errores comunes al intentar buscar archivos.

Comando fuente no encontrado en Linux

En algunos casos, puede encontrarse con este error

$ source: command not found

O usando sudo, también puede tener un error de comando fuente no encontrado.

$ sudo: source: command not found

La solución fácil aquí es ejecutar el comando como usuario raíz usando "su".

$ sudo -s
$ source .bashrc

Tenga en cuenta que también puede usar la "sintaxis de puntos", que es equivalente al comando fuente.

$ . .bashrc

Conclusión

En el tutorial de hoy, aprendió qué es el comando fuente en Linux y cómo puede usarlo para ejecutar scripts en el contexto del entorno actual.

También aprendió que se puede usar para importar funciones o variables desde un archivo simple a un archivo de secuencia de comandos.

Si desea más tutoriales relacionados con la administración del sistema Linux, tenemos una categoría completa dedicada a ello en devconnected. Haga clic en la imagen de abajo para leerlos.


Linux
  1. Comando de historial en Linux explicado en profundidad

  2. Comando ls en Linux:17 ejemplos útiles explicados

  3. comando linux mv

  4. Linux du comando

  5. Comando IP de Linux

Comando fuente en Linux

Comando procinfo en Linux explicado

Comando de pantalla en Linux explicado

Comando Arping en Linux explicado

Comando de exportación en Linux explicado

Exportar comando en Linux | Explicado