Woher stammen die speziellen Umgebungsvariablen HOSTNAME und HOSTTYPE?

Woher stammen die speziellen Umgebungsvariablen HOSTNAME und HOSTTYPE?

System

Ich habe ein Ubuntu-20.04 LTS Live Server-Image auf einem Hardwaregerät

Anforderungen

Ich möchte den Hostnamen eines Containers genau so einstellen, wie den Hostnamen des Hardwaregeräts

Wenn man TABauf Autovervollständigung drückt, $HOSfindet man im Terminal zwei Umgebungsvariablen:

  • HOSTNAME
  • HOSTTYPE

Das Interessante an diesen Variablen ist, dass sie weder in:

  • printenv
  • /etc/environment
  • /etc/bash.bashrc

Dadurch sind sie für Docker-Container leider unzugänglich.

Mich würde interessieren, woher diese Variablen stammen, wenn sie nicht zu den Standarddateien für Umgebungsvariablen gehören.

Antwort1

Beide Variablen sind eingebaute Variablen der Bash-Shell, der Shell, die in Ubuntu für interaktive Shells verwendet wird. Das bedeutet, dass sie in jeder laufenden Bash-Shell vorhanden sind und ihr Wert beim bashLaden festgelegt wird.

Ihr Zweck besteht darin, diese Informationen sofort und immer für Prozesse verfügbar zu machen, die von der Shell gestartet werden. Ohne diese Funktion müssten Prozesse, die diese Informationen benötigen, externe Tools starten, um diese Informationen abzurufen. Der Vorteil dieser integrierten Variablen liegt also in der Benutzerfreundlichkeit und Leistung für Prozesse, die diese Informationen benötigen.

Im Gegensatz dazu bietet die stark abgespeckte dashShell, die in Ubuntu zum Starten von Prozessen verwendet wird und mit der ein symbolischer Link verknüpft ist ,shnichtGeben Sie diese Variable an. Anwendungen, die unter dieser Shell ausgeführt werden, müssen sich auf externe Tools verlassen, um diese Informationen zu erhalten.

$HOSTNAMEenthält den Hostnamen und $HOSTTYPEidentifiziert die Systemhardware.

Antwort2

Da du dies markiert hast, diese werden von bash gesetzt. Siehe5.2 Bash-Variablen:

Diese Variablen werden von Bash festgelegt oder verwendet, aber andere Shells behandeln sie normalerweise nicht speziell.

...

HOSTNAME

Der Name des aktuellen Hosts.

HOSTTYPE

Eine Zeichenfolge, die die Maschine beschreibt, auf der Bash ausgeführt wird.

Woher bekommt Bash die Informationen? Ich glaube, es ruftuname()für diese.

verwandte Informationen