목차
1. 환경변수의 기본 개념
환경 변수는 일반적으로 운영 체제의 운영 환경을 지정하기 위해 운영 체제에서 사용되는 일부 매개 변수를 나타냅니다 . 예를 들어 C/C++ 코드를 작성하고 링크할 때 우리가 연결하는 동적 변수와 정적 변수를 결코 알 수 없습니다. 라이브러리가 있는 곳에서도 성공적으로 링크하고 실행 가능한 프로그램을 생성할 수 있는데, 그 이유는 컴파일러가 라이브러리를 찾는 데 도움이 되는 관련 환경 변수가 있기 때문입니다. 환경 변수는 일반적으로 특별한 목적을 가지며 일반적으로 시스템에서 전역 속성을 갖습니다.
2. 환경 변수 보기
echo $NAME //NAME:你的环境变量名称
3.경로
일부 명령은 경로 없이 직접 실행될 수 있는데 바이너리 프로그램에는 실행 경로가 필요한 이유는 무엇입니까?
프로그램 경로를 환경 변수 PATH에 추가하고 PATH=$PATH를 내보낼 수 있습니다. hello 프로그램의 경로
구체적인 작업은 다음과 같습니다
환경 변수를 먼저 구성하세요.
source 명령은 일반적으로 새로 수정된 초기화 파일을 다시 실행하여 로그아웃했다가 다시 로그인할 때까지 기다리지 않고 즉시 적용되도록 하는 데 사용되며 기능은 점 기호 "."와 동일합니다.
그런 다음 어떤 경로에서든 프로그램을 실행할 수 있습니다.
4. 루트 및 일반 사용자를 위한 HOME
5. 환경변수 관련 명령어
Linux에서 환경 변수의 시작 프로세스
1. echo: 显示某个环境变量值
2. export: 设置一个新的环境变量
3. env: 显示所有环境变量
4. unset: 清除环境变量
5. set: 显示本地定义的shell变量和环境变量
export [-fnp] [变量名称key] = [变量值value]
#参数说明
-f:代表[变量名称]中为函数名称
-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中
-p:列出所有的shell赋予程序的环境变量
셸에는 내부 변수, 환경 변수, 사용자 변수라는 세 가지 유형의 변수 환경이 있습니다.
- 내부 변수: 시스템에서 제공되며 정의할 필요가 없고 수정할 수 없습니다.
- 환경 변수: 시스템에서 제공하며 정의할 필요가 없으며 수정 가능하며 내보내기를 사용하여 사용자 변수를 환경 변수로 변환합니다.
- 사용자 변수: 사용자가 정의하고 수정할 수 있습니다.
쉘에서 프로그램을 실행하면 쉘은 일련의 환경 변수를 제공합니다. 쉘 명령 창이 열리면 쉘 환경이 로드된다는 의미입니다.
- 내보내기는 환경 변수를 설정하거나 표시하는 데 사용됩니다.
- 내보내기는 환경 변수를 추가, 수정 또는 삭제할 수 있습니다.
- 내보내기 범위는 이번에 설정된 연결 로그인 작업으로 제한됩니다.
내보내기 구문은 다음과 같습니다.
set 및 env는 환경 변수를 표시할 수도 있습니다.
- set은 지역 변수와 환경 변수를 표시하는 데 사용됩니다.
- env는 환경 변수를 표시하는 데 사용됩니다.
- 내보내기는 환경 변수를 표시하고 설정하는 데 사용됩니다.
- set은 현재 사용자의 변수(환경 변수)를 포함하여 현재 쉘의 변수(로컬 변수)를 표시합니다.
- env는 현재 사용자의 변수(환경 변수)를 표시합니다.
- 내보내기는 현재 사용자 변수로 내보낸 쉘 변수(환경 변수)를 표시합니다.
6. 환경 변수 구성 방법
각 프로그램은 환경 테이블을 수신합니다. 환경 테이블은 문자 포인터의 배열입니다. 각 포인터는 '\0'으로 끝나는 환경 문자열을 가리킵니다.
6.1 코드를 통해 환경 변수 얻기
#include <stdio.h>
int main(int argc, char *argv[], char *env[])
{
int i = 0;
for(; env[i]; i++){
printf("%s\n", env[i]);
}
return 0;
}
6.2 타사 변수 Environ을 통해 획득
#include <stdio.h>
int main(int argc, char *argv[])
{
extern char **environ;
int i = 0;
for(; environ[i]; i++){
printf("%s\n", environ[i]);
}
return 0;
}
libc에 정의된 전역변수인 environ은 환경변수 테이블을 가리키며, 어떤 헤더파일에도 environ은 포함되지 않으므로 사용시 반드시 extern으로 선언해야 한다.
6.3 시스템 호출을 통해 환경 변수 얻기
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%s\n", getenv("PATH"));
return 0;
}
6.4 시스템 호출을 통한 환경 변수 설정
//