
정의
Environment variable (환경변수) 란,
- OS나 SW에서 참조하는 변수들로
- OS나 SW가 동작 (or 실행)에 영향을 주는 값을 가짐.
shell script 나 software들이 각 장비의 환경에 맞게 동작할 수 있도록 해 줌.
종류
Envrionment varible들은 text 형식의 name (or key)과 value를 가지고 있으며, 영향을 미치는 범위에 따라 구분됨.
- 시스템 변수 : 컴퓨터 시스템 전체에 영향을 미침 (해당 시스템에서 동작하는 모든 SW와 이를 이용하는 사용자 모두에게 영향을 줌)
- 사용자 변수 : 특정 사용자의 session에만 영향을 줌. (사용자 별로 다른 설정과 환경을 가질 수 있음)
사용자변수와 시스템변수의 name이 같은 경우, 사용자변수에 우선권이 있음.
Example
OS에서 executable file들의 경로를 PATH라는 environment variable을 가짐.
다음의 명령어로 환경변수 PATH의 값을 확인 가능함.
- linux :
echo $PATHenv |grep PATHprintenv |grep PATH
- windows :
- cmd (=command prompt)
echo %PATH%set PATH
- PowerShell
Get-ChildItem Env:: 전체 환경변수 확인$Env:PATH: PATH환경 변수 확인 ($Env:PATH -split ";")
- cmd (=command prompt)
SW들도 자신의 동작과 구성을 위해 environment variable들을 사용하는 경우가 많음.
Programming language들도 관련 library등이 위치하고 있는 경로 등을 찾기 위해 특정 environment variable을 사용함. 대표적인 예로 Python이 사용하는 PYTHONPATH를 들 수 있음.
Windows' Environment Variables
| 변수 | 내용 |
| OneDrive | 현재 컴퓨터의 OneDrive 주소값 |
| Path | 컴퓨터에 저장된 경로 |
| TEMP | 컴퓨터의 임시 저장 폴더 |
| TMP | 컴퓨터의 임시 저장 폴더 |
| windir | 윈도우 파일의 저장 경로 |
| USERNAME | 사용자 이름 |
| OS | 운영체제 이름 |
Linux's Environment Variables
| 변수 | 내용 |
| PATH | 실행 파일 찾는 경로 |
| LANG | 프로그램 사용 시 기본 지원되는 언어 |
| USER | 현재 사용자 이름 |
| GROUP | 현재 사용자 그룹 |
| PS1 | 명령 프롬프트 변수 |
| HOME | 현재 user의 home directory |
| PWD | 현재 working directory |
| EDITOR | 기본으로 사용하는 text editor의 실행파일 경로. (nano 또는 vim) |
| PAGER | 페이지보기를 해주는 실행파일 경로 (less의 경로) |
환경변수 다루기.
Linux
linux의 경우 export 를 이용하여 새로운 environment variable을 설정하거나 기존의 값을 수정함.
export 변수명=값
설정되어있는 environment variable을 제거하는 방법은 다음과 같음.
unset 변수명
일반적으로 bash에서 ~/.bash_profile 에 위의 export 문을 통해 사용자 변수를 영구적으로 지정하고, /etc/profile 을 사용하여 시스템 변수를 저장함.
Windows
Windows의 경우 command prompt를 기준으로 새로운 environment variable의 설정 및 수정은 다음으로 수행됨.
set 변수명=값
제거는 다음과 같음.
set 변수명=
- 위에서
=없이 수행할 경우, 해당 변수명의 값을 출력해주므로 주의할 것.
Windows PowerShell에서는 다음과 같음:
$Env:변수명=변수값
$: 뒤에 오는 것 (Env:변수명)이 변수임을 의미Env:: 환경변수용 특수 변수 드라이브로 일종의 변수 provider임.변수명: 환경변수 이름 (PATH,USERPROFILE등)
제거는 다음과 같음
remove-item Env:삭제할변수명
위의 경우들은 현재 session 에만 적용되는 것이라 새로 터미널을 띄울 경우 적용되지 않음.
영구적인 환경변수 설정
영구적인 환경변수 설정은
- Windows에서는 System 우클릭 등을 통해 시스템 설정 패널로 들어가,
- 해당 패널의 "고급 시스템 설정"에서 "환경변수"를 설정하는 방법이 더 일반적임.
Windows PowerShell에선 CLI에서도 가능함.
사용자 단위로 영구적인 환경변수 설정
[System.Environment]::SetEnvironmentVariable(
"변수명",
"변수값",
"User"
)
- 새로 시작되는 session부터 적용.
- 시스템 전체로 적용하려면,
- 관리자 권한이 필요.
"User"대신에"Machine"으로 대체하면 됨.
- 삭제도 같은 명령어를 사용하되
"변수값"대신에$null을 입력.
[System.Environment]::SetEnvironmentVariable(
"MY_VAR",
$null,
"Machine"
)
예제: 사용자 PATH에 c:\mybin을 영구 추가하기
$old = [Environment]::GetEnvironmentVariable("PATH", "User")
[Environment]::SetEnvironmentVariable(
"PATH",
"C:\mybin;$old",
"User"
)
다른 방법으로는 PowerShell의 Profile 을 에디터로 편집하는 것임:
notepad.exe $PROFILE
열린 파일에 마지막 라인 등에 다음을 기재하고 저장 (이후 session에 적용됨).
# PowerShell 시작 시 자동 설정
# PowerShell 전용
# cmd.exe / GUI 앱에는 적용 안 됨
$Env:MY_VAR = "hello"
profile 용 파일들에 대한 보다 자세한 내용은 다음을 참고:
다음은 GUI를 통한 windows11, 10에 대한 설정방법임 :
2023.07.01 - [개발환경] - [Env] Windows 환경변수 (Environment Variable) 설정 (Windows 11)
[Env] Windows 환경변수 (Environment Variable) 설정 (Windows 11)
Windows 키를 누르면 나오는 panel에서 Settings을 클릭. 왼쪽 사이드 바에서 System이 선택된 상태에서 아래로 내리면 About이 나옴. 이를 클릭. System > About 패널에서 중간에 있는 Related links 에서 Advanced sy
ds31x.tistory.com
2023.07.01 - [개발환경] - [Env] Windows : 환경변수 설정 (Windows 10)
[Env] Windows : 환경변수 설정 (Windows 10)
Windows 키를 누르면 나오는 panel에서 설정(Settings)을 클릭. 시스템(System)에서 왼쪽 사이드 바에 아래로 내리면 정보(About)이 나옴. 이를 클릭. 정보가 선택된 상태에서 오른쪽 패널에서 아래로 내리
ds31x.tistory.com
더 읽어보면 좋은 자료
2023.09.30 - [Python] - [Python] 환경변수 접근하기
[Python] 환경변수 접근하기
os 모듈의 environ 을 통해python은 환경변수를 일종의 dictionary (dict)로 관리함.환경변수 얻어오기dict 형의 경우처럼 key를 통한 직접 접근 key에 해당하는 환경변수가 없을 경우 KeyError 가 발생하므로,o
ds31x.tistory.com
2023.06.20 - [개발환경] - [Shell] env and Shebang line
[Shell] env and Shebang line
env 명령어는 주로environment variable들을 확인하거나특정 명령어 수행할 때 특정 environment variable을 지정해주는데 사용된다.The env command allows youto display your current environment or run a specified commandin a chan
ds31x.tistory.com
https://dsaint31.tistory.com/entry/Python-Module-Search-Path-and-syspath
[Python] Module Search Path and sys.path
Module Search Path and sys.path1. Module Search PathPython 에서 module을 찾는 경로 (Module Search Path)는 다음의 순서별로 우선권을 가짐.home directory of the program (main script file이 있는 위치 or python shell이 수행된 cwd)m
dsaint31.tistory.com
'개발환경' 카테고리의 다른 글
| [Env] PowerShell v7.3.5 (0) | 2023.06.28 |
|---|---|
| [Env] xterm: Font (0) | 2023.06.26 |
| [Env] VSCode : Terminal Font 변경: (0) | 2023.06.21 |
| [Shell] env and Shebang line (0) | 2023.06.20 |
| [Env] Oh-My-Posh (1) | 2023.06.20 |