Linux - 로컬 사용자 시스템 환경 변수 목록을 개별적으로 가져오기

Linux - 로컬 사용자 시스템 환경 변수 목록을 개별적으로 가져오기

printenv명령을 사용하여 시스템 환경 변수를 가져올 수 있지만 별도의 변수 데이터가 필요합니다.

로컬(세션 범위), 사용자(사용자 범위) 및 시스템(시스템 범위, 전역) 환경 변수 목록을 각각 어떻게 얻습니까?

운영 체제: Debian-like Linux (x64), kernel: 4.19.

답변1

Linux 환경 변수의 작동 방식에 대해 오해가있는 것 같습니다. 실행 중인 쉘의 환경 변수는 다음과 같습니다.저것실행 중인 셸의 인스턴스입니다. 그 외에는 의미나 관련성이 없습니다. 사용 중인 셸에서 $PATH 변수를 변경하면 변경 사항은 해당 셸 인스턴스에만 영향을 미치고 실행 중인 셸의 다른 인스턴스에는 영향을 주지 않습니다.

쉘이 시작되고 사용자가 로그인하면 시스템 전체 또는 사용자별로 기본 환경 변수를 정의할 수 있는 다양한 쉘 스크립트를 통해 환경 변수를 설정할 수 있습니다. 의 경우 (시스템 전체) 또는 또는 (사용자별)과 같은 스크립트입니다 bash. 내가 아는 한 실행 중인 셸에서 특정 변수가 설정된 위치를 확인할 수 있는 방법은 없습니다. 파일을 확인해야 합니다./etc/profile~/.bash_profile~/.bashrc

알아야 할 또 다른 개념은출구변하기 쉬운. exportin 명령은 bash실행 중인 셸에서 생성할 수 있는 새 하위 셸로 내보내야 하는 변수를 표시하는 데 사용할 수 있습니다.

또한 환경 변수는 특정 셸에만 적용되며 Linux 시스템 전체에 적용되는 것은 아닙니다. 따라서 bash(제가 예시로 사용한) 변수는 에서 사용된 변수와 동일할 수도 있고 csh(일부 유사점이 있을 수도 있음) 다른 기본값으로 설정될 수도 있습니다.

관련 정보