>

.bashrc 나 다른 설정 파일을 편집하지 않으면, 로그 아웃하거나 터미널을 끄면 설정 한 환경 변수가 사라집니다.

내가 궁금한 것은 '임시'환경 변수가 어디에 저장되어 있습니까?

내 생각에, 그들은 메모리에있을 수 있습니다. 터미널이 꺼지면 사라질 것이기 때문에 의미가 있습니다 (사용중인 터미널이 메모리에서 사라진 것과 같습니다). 제가 맞습니까?

  • 답변 # 1

    환경 변수는 프로세스와 관련된 메모리에 저장됩니다.

    모든 프로세스는 자체 환경 변수 세트에 액세스 할 수 있습니다. 하위 프로세스 ( "현재"프로세스로 시작된 프로세스)는 해당 변수의복사를 상속합니다. 어떤 프로세스도 다른 프로세스의 환경 변수를 변경할 수 없습니다.

    bash 와 같은 쉘 사용  로그인 할 때 환경 변수를 정의하거나 새 bash 를 시작할 수 있습니다  방법. 셸 자체는 여러 환경 변수 ( PWD )도 정의합니다.  의견에 의해 프롬프트가 표시되면 마음이 떠 오릅니다) 및 기타 환경 변수 (예 : PATH ) shell 보다 훨씬 더 깊은 수준에서 사용됩니다.  -이 예에서는 시스템 라이브러리에 의해 표시됩니다.

  • 답변 # 2

    예 및 아니요 (아니요보다 더 그렇습니다). 그것들은 쉘의 메모리에 있으므로 현재 쉘이 종료 될 때 사라질뿐만 아니라 현재 쉘 이외의 곳에서 새 쉘을 열면 거기에 있지 않습니다.

  • 답변 # 3

    엄밀하게 말하면, 환경 우리는 절약을 생각하는 경향이 있으므로 변수는 "저장되지 않습니다". 그것들은 프로세스의 메모리에 존재합니다. 프로세스가 시작될 때 생성됩니다 (아마도 호출 프로세스의 환경 변수 사본).

    Linux에서 환경 변수를 원하는 프로세스의 PID를 알고 있다면 실제로 "em"을 "파일"로 가져올 수 있습니다. 그들은 /proc/<pid>/environ 에있어 .

    bash에서는 환경 변수 $ 에서 PID를 얻을 수 있습니다 이므로 원하는 파일은 /proc/$$/environ 입니다. . 그것들은 이름 = 값 쌍으로 저장되며 그 사이에 null 문자가 있습니다. 이 파일은 실제로 파일이 아니며 쓸 수는 없지만 파일 인 것처럼액세스할 수 있습니다. 때로는 그렇게하는 것이 편리하기 때문입니다.

관련 자료

  • 이전 OpenBSD 59에 xcfe를 설치하는 방법
  • 다음 vi 모드가 활성화 된 bash에서 ci "(따옴표 내에서 변경)가 작동하지 않는 이유는 무엇입니까?