Linux에서 각 프로세스가 한 번 실행될 환경 변수를 설정할 수 있습니까?

Linux에서 각 프로세스가 한 번 실행될 환경 변수를 설정할 수 있습니까?

Windows에서는 다음 창을 사용하여 각 프로세스가 한 번 실행될 환경 변수를 설정할 수 있습니다.

여기에 이미지 설명을 입력하세요

리눅스에서도 같은 일을 할 수 있나요?

답변1

사용자 인터페이스를 통해 사용자 애플리케이션에 대한 환경 변수를 설정하는 방법은 Windows와 Linux에서 다소 다르게 작동합니다. 사용 중인 Windows 인터페이스는 현재 세션의 변수 값과 향후 세션의 값을 모두 변경합니다.

Linux에서는 환경 변수를 설정하는 기존 방법이 로그인 시 작동합니다. 이를 수행하는 방법에는 여러 가지가 있지만 로그인 시에만 읽는 파일을 변경하는 것이 포함됩니다. 따라서 현재 세션에는 적용되지 않습니다. 이를 위해 사용할 수 있는 주요 파일은 .profile.pam_environment둘 다 홈 디렉토리에 있습니다. 보다환경 변수를 설정하는 가장 좋은 distro/shell 독립적 방법은 무엇입니까?더 자세한 논의를 위해.

현재 세션에 대한 환경 변수를 설정하려면 애플리케이션을 시작하는 프로세스인 GUI 셸에서 이를 설정해야 합니다. Windows에서는 실제로 GUI 셸을 선택할 수 없기 때문에 쉽습니다. (기본 쉘을 교체하는 것은 기술적으로 가능하지만 이를 수행하는 사용자는 거의 없습니다.) Linux에는 수백 가지의 가능한 GUI 쉘이 있습니다. 일반적으로 GUI 쉘은창 관리자, 때로는 별도의 구성 요소데스크탑 환경. 창 관리자나 데스크탑 환경에서 환경 변수를 설정하는 표준 방법은 없습니다. 각 WM/DE에는 고유한 방법이 있습니다(불행히도 일부는 없습니다).

환경 변수 변경에 구애받지 않는 WM/DE는 ~/.profile. 기본 구문(다른 방법도 있음)은 다음과 같습니다.

export MYVAR='the value of the variable'

그런 다음 쉘을 실행하는 터미널을 시작하고 해당 쉘 유형에서

. ~/.profile

그러면 에서 환경 변수의 새 값이 로드됩니다 .profile. 그런 다음 해당 셸에서 프로그램을 실행하면 새 변수가 해당 프로그램에 적용됩니다. 하지만 GUI 메뉴에서 직접 프로그램을 실행하면 해당 프로그램은 GUI 메뉴를 제공하는 프로그램의 환경을 상속받게 되므로 이를 변경하려면 해당 프로그램이 제공하는 방식을 모두 사용해야 합니다(또는 일부로 동반 프로그램을 사용해야 함). 데스크탑 환경의 경우).

답변2

파일 에서 변수를 설정할 수 있습니다 /etc/environment. 형식은 다음과 같아야 합니다.

VARIABLE=value

변수 확장이 작동하지 않으며 /etc/environment이 변수를 사용하거나 필요로 하는 모든 프로세스를 다시 시작해야 합니다.

답변3

환경 변수는 본질적으로 환경 변수를 설정하는 프로세스/셸에 의해 시작되는 모든 프로세스에서 사용할 수 있습니다.

Unix의 환경 변수는 다음을 사용하여 내보내는 쉘 변수입니다 export.

MYVAR="my value"
export MYVAR

일반적으로 쉘 시작 파일에서 환경 변수를 설정합니다. 의 경우에는 bash에 있고 ~/.bash_profile, 다른 많은 쉘에서는 를 사용합니다 ~/.profile.

/etc(예: /etc/profile) 아래에는 모든 사용자에 대한 환경을 사용자 정의하는 데 사용할 수 있는 시스템 전체 쉘 초기화 스크립트가 있습니다 .

환경 변수는 쉘에 구애받지 않는 방식으로 모든 사용자에 대해 전역적으로 설정될 수도 있지만 이는 Unix 취향에 따라 다르게 수행됩니다. 대부분의 BSD는 /etc/login.conf일부 Linux가 사용하는 동안 /etc/environment이나 다른 메커니즘을 수정하여 이를 수행할 수 있습니다 .

관련 정보