환경 변수 getnv environ

3222 단어
1. 환경 변 수 는 무엇 입 니까?
리 눅 스 는 다 중 사용자 의 운영 체제 다.다 중 사용 자 는 모든 사용자 가 시스템 에 로그 인 한 후에 자신 만 의 운영 환경 이 있다 는 것 을 의미한다.이 환경 은 한 그룹의 변수 에 의 해 정의 되 는데 이 변 수 는 환경 변수 라 고 불 린 다.사용 자 는 환경 에 대한 요구 에 도달 하기 위해 자신의 환경 변 수 를 수정 할 수 있다.
2. 맞 춤 형 환경 변수
환경 변 수 는 Shell 과 밀접 한 관 계 를 가지 고 있 으 며 Shell 명령 을 통 해 설정 되 어 있 습 니 다.환경 변 수 는 현재 사용자 가 실행 하고 있 는 모든 프로그램 에서 사용 할 수 있 습 니 다.bash 에 있어 서 변수 이름 을 통 해 해당 하 는 환경 변 수 를 방문 할 수 있 습 니 다.
다음은 몇 가지 실례 를 통 해 설명 한다
1. 환경 변수 홈 보이 기
$ echo $HOME
/home/admin
2. 새로운 환경 변수 NAME 설정
$ export NAME="RaidCheng"
$ echo $NAME
RaidCheng
3. env 명령 으로 모든 환경 변 수 를 표시 합 니 다.
$ env
HOSTNAME=test
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=202.xxx.xxx.xxx 53694 22
CATALINA_BASE=/usr/local/jakarta-tomcat
SSH_TTY=/dev/pts/0
ANT_HOME=/usr/local/ant
JAVA_OPTS=-server
USER=admin
...
4. set 명령 을 사용 하여 로 컬 정의 셸 변 수 를 표시 합 니 다.
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
CATALINA_BASE=/usr/local/jakarta-tomcat
CATALINA_HOME=/usr/local/jakarta-tomcat
...
5. unset 명령 을 사용 하여 환경 변 수 를 제거 합 니 다.
$ export NAME="RaidCheng"
$ echo $NAME
RaidCheng
$ unset NAME
$ echo $NAME
6. readonly 명령 을 사용 하여 읽 기 전용 변 수 를 설정 합 니 다.
$ export NAME="RaidCheng"
$ readonly NAME
$ unset NAME
-bash: unset: NAME: cannot unset: readonly variable
$ NAME="New" #이것 도 변 수 를 수정 할 수 없 음 을 발견 할 수 있 습 니 다.
-bash: TEST: readonly variable
3. 흔히 볼 수 있 는 환경 변수
PATH 는 셸 이 어떤 디 렉 터 리 에서 명령 이나 프로그램 을 찾 을 지 결정 합 니 다.
HOME 현재 사용자 홈 디 렉 터 리
HISTSIZE 역사 기록 수
LOGNAME 현재 사용자 의 로그 인 이름
호스트 이름
SHELL 이전 사용자 셸 형식
LANGUGE 언어 관련 환경 변수, 다 중 언어 는 이 환경 변 수 를 수정 할 수 있 습 니 다.
MAIL 현재 사용자 의 메 일 저장 디 렉 터 리
PS1       기본 프롬프트, 루트 사용자 에 게 는\#, 일반 사용자 에 게 는 $
PS2       부속 프롬프트, 기본 값 은 ">"입 니 다.
4. C 프로그램 을 통 해 환경 변 수 를 방문 하고 설정 합 니 다.
C 프로그램의 사용자 에 게 다음 세 가지 함 수 를 사용 하여 환경 변 수 를 설정 하거나 접근 할 수 있 습 니 다.
getenv () 환경 변 수 를 방문 합 니 다.입력 매개 변 수 는 접근 할 변수 이름 이 고 반환 값 은 문자열 입 니 다.접근 한 환경 변수 가 존재 하지 않 으 면 NULL 로 돌아 갑 니 다.
setenv () 프로그램 에 환경 변 수 를 설정 하 는 함수
unsetenv () 특정한 환경 변 수 를 제거 하 는 함수
또한, 모든 환경 변 수 를 포함 하 는 목록 을 가리 키 는 포인터 변수 environ 도 있 습 니 다.다음 프로그램 은 현재 실행 환경 에 있 는 모든 환경 변 수 를 출력 할 수 있 습 니 다.
#include
extern char**environ;
int main ()
{
char**var;
for (var =environ;*var !=NULL;++var)
printf ("%s  ",*var);
return 0;
}
*********************************
#include <stdio.h>
#include <stdlib.h>


int main(void)
{
	extern char **environ;
	int i;
	char *p;
	char str[1024];

	for(i = 0; environ[i] != NULL; i++){
		printf("%s
", environ[i]); } printf("-------------------------------
"); scanf("%s", str); // p = getenv(str); printf("%s
", getenv(str)); // printf("%s
", p); return 0; } *************************

환경 변수 파일
환경 정의 파일 을 수정 하여 환경 변 수 를 수정 합 니 다. 예 를 들 어 RedHat 에 대해 환경 관련 파일 은/etc/profile 과 ~/. bash profile 등 이 있 습 니 다. 수정 이 완료 되면 다시 로그 인하 거나 명령 source 를 실행 합 니 다. xxx 가 발효 되 었 다.

좋은 웹페이지 즐겨찾기