환경 변수 쉘에서 정의되고 실행되는 동안 프로그램에서 필요로 하는 몇 가지 특수 변수입니다. 시스템 정의 또는 사용자 정의일 수 있습니다. 시스템 정의 변수는 시스템에서 설정하고 시스템 수준 프로그램에서 사용하는 변수입니다.
예를 들어 비밀번호 명령은 현재 작업 디렉토리를 저장하는 데 사용되는 매우 일반적인 시스템 변수입니다. 사용자 정의 변수는 일반적으로 현재 쉘에 대해 일시적으로 또는 영구적으로 사용자가 설정합니다. 환경 변수 설정 및 설정 해제의 전체 개념은 일부 파일 세트와 몇 가지 명령 및 다른 셸을 중심으로 이루어집니다.
더 넓은 의미에서 환경 변수는 세 가지 유형이 될 수 있습니다.
현재 세션에 대해 정의된 것입니다. 이러한 환경 변수는 원격 로그인 세션이든 로컬 터미널 세션이든 현재 세션까지만 지속됩니다. 이러한 변수는 구성 파일에 지정되지 않으며 특별한 명령 세트를 사용하여 생성 및 제거됩니다.
특정 사용자에 대해 정의된 변수로 사용자가 로컬 터미널 세션을 사용하여 로그인하거나 해당 사용자가 원격 로그인 세션을 사용하여 로그인할 때마다 로드됩니다. 이러한 변수는 일반적으로 다음 구성 파일에서 설정되고 로드됩니다. .bashrc
, .bash_profile
, .bash_login
, .프로필
사용자의 홈 디렉토리에 있는 파일.
이는 시스템 전체, 즉 해당 시스템에 있는 모든 사용자가 사용할 수 있는 환경 변수입니다. 이러한 변수는 다음 디렉토리 및 파일에 있는 시스템 전체 구성 파일에 있습니다. /etc/environment
, /etc/profile
, /etc/profile.d/
, /etc/bash.bashrc
. 이러한 변수는 시스템 전원이 켜질 때마다 로드되고 사용자가 로컬 또는 원격으로 로그인합니다.
여기에서는 시스템 전체 또는 사용자별 환경 변수를 보유하는 위에 나열된 다양한 구성 파일에 대해 간략하게 설명합니다.
이 파일은 사용자가 새 로컬 세션, 즉 간단히 말해서 새 터미널을 열 때마다 로드되는 사용자별 파일입니다. 이 파일에 생성된 모든 환경 변수는 새 로컬 세션이 시작될 때마다 적용됩니다.
이 파일은 사용자별 원격 로그인 파일입니다. 이 파일에 나열된 환경 변수는 사용자가 ssh 세션을 사용하여 원격으로 로그인할 때마다 호출됩니다. 이 파일이 없으면 시스템은 다음 중 하나를 찾습니다. .bash_login
또는 .프로필
파일.
이 파일은 환경 변수를 생성, 편집 또는 제거하기 위한 시스템 전체 파일입니다. 이 파일에서 생성된 환경 변수는 로컬 및 원격으로 모든 사용자가 시스템 전체에서 액세스할 수 있습니다.
시스템 전체 bashrc
파일. 이 파일은 사용자가 로컬 터미널 세션을 열 때마다 모든 사용자에 대해 한 번 로드됩니다. 이 파일에서 생성된 환경 변수는 모든 사용자가 액세스할 수 있지만 로컬 터미널 세션을 통해서만 액세스할 수 있습니다. 해당 시스템의 사용자가 원격 로그인 세션을 통해 원격으로 액세스할 때 이러한 변수는 표시되지 않습니다.
시스템 전체 프로필 파일. 이 파일에 생성된 모든 변수는 시스템의 모든 사용자가 액세스할 수 있지만 해당 사용자의 세션이 원격으로 호출된 경우에만, 즉 원격 로그인을 통해 액세스할 수 있습니다. 이 파일의 모든 변수는 로컬 로그인 세션, 즉 사용자가 로컬 시스템에서 새 터미널을 열 때 액세스할 수 없습니다.
메모: 다음을 사용하여 생성된 환경 변수 시스템 전체 또는 사용자 전체 구성 파일은 이러한 파일에서만 제거하여 제거할 수 있습니다. 이 파일을 변경할 때마다 로그아웃했다가 다시 로그인하거나 터미널에 다음 명령을 입력하면 변경 사항이 적용됩니다.
$ 소스
로컬 환경 변수 다음 명령을 사용하여 생성할 수 있습니다.
$ var=값 또는. $ 내보내기 변수=값.
이러한 변수는 세션 전체에 적용되며 현재 터미널 세션에만 유효합니다. 이러한 세션 전체 환경 변수를 지우려면 다음 명령을 사용할 수 있습니다.
기본적으로, "환경"
명령은 모든 현재 환경 변수를 나열합니다. 하지만, 함께 사용하는 경우 '-NS'
스위치를 사용하면 모든 환경 변수를 일시적으로 지우고 모든 환경 변수가 없는 경우 사용자가 현재 세션에서 명령을 실행할 수 있습니다.
$ env –i [Var=값]… 명령 인수…
여기, 변수=값
이 명령에만 사용하려는 모든 로컬 환경 변수에 해당합니다.
$ env -i bash.
일시적으로 환경 변수가 없는 bash 쉘을 제공합니다. 그러나 셸을 종료하면 모든 변수가 복원됩니다.
로컬 환경 변수를 지우는 또 다른 방법은 unset 명령을 사용하는 것입니다. 로컬 환경 변수를 일시적으로 설정 해제하려면
$ 미설정
어디에, 변수 이름
설정을 해제하거나 지우려는 지역 변수의 이름입니다.
또 다른 덜 일반적인 방법은 지우려는 변수의 이름을 다음으로 설정하는 것입니다. ''
(비어있는). 이렇게 하면 활성 상태인 현재 세션에 대한 로컬 변수 값이 지워집니다.
노트 – 시스템 또는 사용자 환경 변수를 가지고 놀거나 값을 변경할 수도 있지만 변경 사항은 현재 터미널 세션에만 반영되며 영구적이지 않습니다.
섹션에서는 아래의 예를 통해 Linux에서 로컬, 사용자 및 시스템 전체 환경 변수를 설정하거나 설정 해제하는 방법을 배울 것입니다.
NS.) 여기서 지역변수를 생성한다. VAR1
임의의 값으로 설정합니다. 그런 다음 unset을 사용하여 해당 지역 변수를 제거하고 마지막에 해당 변수를 제거합니다.
$ VAR1='TecMint는 Linux 기사를 위한 최고의 사이트입니다' $ 에코 $VAR1. $ 미설정 VAR1. $ 에코 $VAR1.
NS.) 지역 변수를 만드는 또 다른 방법은 다음을 사용하는 것입니다. 내 보내다
명령. 생성된 로컬 변수는 현재 세션에서 사용할 수 있습니다. 변수 설정을 해제하려면 변수 값을 다음으로 설정하면 됩니다. ''
.
$ export VAR='TecMint는 Linux 기사를 위한 최고의 사이트입니다' $ 에코 $VAR. $ VAR= $ 에코 $VAR.
씨.) 여기에서 우리는 지역 변수를 생성했습니다. VAR2
값으로 설정합니다. 그런 다음 모든 로컬 및 기타 환경 변수를 일시적으로 지우는 명령을 실행하기 위해 다음을 실행했습니다. '환경 - 나는'
명령. 여기에서 이 명령은 다른 모든 환경 변수를 지워서 bash 셸을 실행했습니다. 입장 후 '출구'
호출된 bash 셸에서 모든 변수가 복원됩니다.
$ VAR2='TecMint는 Linux 기사를 위한 최고의 사이트입니다' $ 에코 $VAR2. $ env -i bash. $ 에코 $VAR2
NS.) 수정하다 .bashrc
추가해야 하는 환경 변수를 내보내거나 설정하려면 홈 디렉토리에 파일을 추가하십시오. 이후 원천 파일을 변경하여 변경 사항을 적용합니다. 그러면 변수('CD'
내 경우), 적용됩니다. 이 변수는 이 사용자에 대해 새 터미널을 열 때마다 사용할 수 있지만 원격 로그인 세션에는 사용할 수 없습니다.
$ vi .bashrc.
에 다음 줄을 추가하십시오. .bashrc
하단에 파일.
export CD='TecMint 홈입니다'
이제 다음 명령을 실행하여 새 변경 사항을 적용하고 테스트합니다.
$ 소스 .bashrc $ 에코 $CD.
이 변수를 제거하려면 다음 줄을 제거하십시오. .bashrc 파일을 만들고 리소스를 다시 지정합니다.
NS.) 원격 로그인 세션에 사용할 수 있는 변수를 추가하려면(즉, 원격 시스템에서 사용자에게 ssh할 때) 다음을 수정하십시오. .bash_profile
파일.
$ vi .bash_profile.
에 다음 줄을 추가하십시오. .bash_profile
하단에 파일.
export VAR2='TecMint 홈입니다'
이 파일을 소싱할 때 이 사용자에게 ssh할 때 변수를 사용할 수 있지만 새 로컬 터미널을 열 때는 사용할 수 없습니다.
$ 소스 .bash_profile $ 에코 $VAR2.
여기, VAR2
처음에는 사용할 수 없지만 localhost에서 사용자에게 ssh를 수행하면 변수를 사용할 수 있게 됩니다.
$ SSH [이메일 보호됨]
$ 에코 $VAR2.
이 변수를 제거하려면 다음 라인을 제거하십시오. .bash_profile
추가한 파일의 소스를 다시 지정합니다.
노트: 이 변수는 현재 사용자로 로그인할 때마다 사용할 수 있지만 다른 사용자는 사용할 수 없습니다.
NS.) 시스템 전체에 로그인 없는 변수를 추가하려면(즉, 모든 사용자가 새 터미널을 열 때 모든 사용자가 사용할 수 있지만 시스템 사용자가 원격으로 액세스할 때는 사용할 수 없음) 변수를 다음에 추가합니다. /etc/bash.bashrc
파일.
export VAR='이것은 시스템 전체 변수입니다'
그런 다음 파일을 소싱합니다.
$ 소스 /etc/bash.bashrc
이제 이 변수는 모든 사용자가 새 터미널을 열 때 사용할 수 있습니다.
$ 에코 $VAR. $ sudo su. $ 에코 $VAR. $ 수 - $ 에코 $VAR.
여기에서 동일한 변수를 사용할 수 있습니다. 뿌리 사용자뿐만 아니라 일반 사용자. 다른 사용자로 로그인하여 이를 확인할 수 있습니다.
NS.) 컴퓨터의 사용자가 다음과 같을 때 환경 변수를 사용할 수 있도록 하려면 원격으로 로그인했지만 로컬 시스템에서 새 터미널을 열지 않은 경우 다음을 편집해야 합니다. 파일 – '/etc/프로필'
.
export VAR1='이것은 원격 세션만을 위한 시스템 전체 변수입니다'
변수를 추가한 후 파일의 소스를 다시 지정하기만 하면 됩니다. 그러면 변수를 사용할 수 있습니다.
$ 소스 /etc/profile.d $ 에코 $VAR1.
이 변수를 제거하려면 다음에서 행을 제거하십시오. /etc/profile
파일을 만들고 리소스를 다시 가져옵니다.
씨.) 그러나 시스템 전체에서 사용할 수 있는 환경을 추가하려는 경우 원격 모든 사용자에 대한 로그인 세션 및 로컬 세션(즉, 새 터미널 창 열기)은 변수를 내보내기만 하면 됩니다. 입력 /etc/environment 파일.
export VAR12='나는 어디에서나 가능합니다'
그런 다음 파일을 소싱하면 변경 사항이 적용됩니다.
$ 소스 /etc/environment.conf $ 에코 $VAR12. $ sudo su. $ 에코 $VAR12. $ 출구. $ ssh 로컬 호스트. $ 에코 $VAR12.
여기에서 볼 수 있듯이 환경 변수는 일반 사용자, 루트 사용자 및 원격 로그인 세션(여기서는 로컬 호스트).
이 변수를 지우려면 /etc/environment 파일을 찾고 리소스를 다시 얻거나 다시 로그인하십시오.
노트: 파일을 소싱할 때 변경 사항이 적용됩니다. 그러나 그렇지 않은 경우 로그아웃했다가 다시 로그인해야 할 수 있습니다.
따라서 환경 변수를 수정할 수 있는 몇 가지 방법이 있습니다. 동일한 방법에 대한 새롭고 흥미로운 트릭을 찾으면 의견에 언급하십시오.