Linux 운영체제의 환경변수에 대한 자세한 설명

목차

1. 환경변수의 기본 개념

2. 환경 변수 보기

3.경로

4. 루트 및 일반 사용자를 위한 HOME 

5. 환경변수 관련 명령어 

6. 환경 변수 구성 방법

6.1 코드를 통해 환경 변수 얻기

6.2 타사 변수 Environ을 통해 획득

6.3 시스템 호출을 통해 환경 변수 얻기

6.4 시스템 호출을 통한 환경 변수 설정


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 시스템 호출을 통한 환경 변수 설정

//

추천

출처blog.csdn.net/m0_74234485/article/details/132567912