Sistema
Tengo una imagen de Ubuntu-20.04 LTS Live Server en un dispositivo de hardware
Requisitos
Deseo configurar el nombre de host de un contenedor exactamente igual que el nombre de host del dispositivo de hardware
Al presionar TABpara autocompletar, $HOS
se encuentran dos variables de entorno en la terminal:
HOSTNAME
HOSTTYPE
Lo interesante de estas variables es que tampoco se encuentran en:
printenv
/etc/environment
/etc/bash.bashrc
Desafortunadamente, los hace inaccesibles para Docker Containers.
Tengo curiosidad de ¿de dónde provienen estas variables si no forman parte de los archivos estándar para variables de entorno?
Respuesta1
Ambas variables son variables integradas del shell bash, el shell que en Ubuntu se utiliza para shells interactivos. Esto significa que existen en cualquier shell bash en ejecución y su valor se establece cuando bash
se carga.
Su propósito es hacer que esa información esté disponible de inmediato y siempre para los procesos iniciados desde el shell. Sin esto, los procesos que necesitan esa información necesitarían lanzar herramientas externas para obtener esa información. Entonces, el beneficio de estas variables integradas es la conveniencia y el rendimiento para los procesos que necesitan esa información.
Por el contrario, el shell mucho más reducido dash
, utilizado en Ubuntu para iniciar procesos y vinculado simbólicamente a sh
, nonoproporcionar estas variables. Las aplicaciones que se ejecutan bajo este shell deben depender de herramientas externas para obtener esa información.
$HOSTNAME
contiene el nombre del host e $HOSTTYPE
identifica el hardware del sistema.
Respuesta2
Desde que etiquetaste estointento, estos los establece bash. Ver5.2 Variables de bash:
Bash establece o utiliza estas variables, pero otros shells normalmente no las tratan de manera especial.
...
NOMBRE DE HOST
El nombre del host actual.
TIPO DE HOST
Una cadena que describe la máquina en la que se ejecuta Bash.
¿De dónde obtiene Bash la información? creo que llamauname()
para éstos.