체계
하드웨어 장치에 Ubuntu-20.04 LTS Live Server 이미지가 있습니다.
요구사항
컨테이너의 호스트 이름을 하드웨어 장치의 호스트 이름과 정확히 동일하게 설정하고 싶습니다.
TAB자동 완성을 누르면 $HOS
터미널에서 두 개의 환경 변수를 찾습니다.
HOSTNAME
HOSTTYPE
이러한 변수에 대한 흥미로운 점은 다음 위치에서 찾을 수 없다는 것입니다.
printenv
/etc/environment
/etc/bash.bashrc
안타깝게도 Docker 컨테이너에서 액세스할 수 없게 됩니다.
환경 변수에 대한 표준 파일의 일부가 아닌 경우 이러한 변수가 어디서 유래하는지 궁금합니다.
답변1
두 변수 모두 Ubuntu에서 대화형 쉘에 사용되는 쉘인 bash 쉘의 내장 변수입니다. 즉, 실행 중인 bash 셸에 존재하며 bash
로드 시 해당 값이 설정됩니다.
그 목적은 해당 정보를 즉시 쉘에서 시작된 프로세스에 대해 항상 사용할 수 있도록 만드는 것입니다. 이것이 없으면 해당 정보가 필요한 프로세스는 해당 정보를 얻기 위해 외부 도구를 시작해야 합니다. 따라서 이러한 기본 제공 변수의 이점은 해당 정보가 필요한 프로세스에 대한 편의성과 성능입니다.
dash
대조적으로, 우분투에서 프로세스를 시작하기 위해 사용되며 에 심볼릭 링크된 훨씬 슬림해진 셸은 sh
다음을 수행합니다.~ 아니다이러한 변수를 제공하십시오. 이 셸에서 실행되는 애플리케이션은 해당 정보를 얻기 위해 외부 도구에 의존해야 합니다.
$HOSTNAME
호스트 이름을 포함하고 $HOSTTYPE
시스템 하드웨어를 식별합니다.