GNU/Linux의 일반적인 환경변수들을 한 번 알아보자.

환경변수 확인

환경변수 확인에는 set, printenv, env와 같은 3가지 정도의 명령어가 있다.

  1. set

    $ set
    
  2. printenv

    $ printenv
    

    printenv는 뒤에 옵션을 줄 수 있으나, env는 옵션을 줄 수가 없다.

    printenv [OPTION]... [VARIABLE]...
    
  3. env

    $ env
    

자주 사용되는 환경변수

  • SHELL: 커맨드쉘 프로그램의 경로, 기본으로 bash shell을 이용한다 (/bin/bash)

  • TERM: 현재 터미널 프로그램의 정보

  • USER: 사용자의 이름

  • UID: 현재 사용자의 UID

  • LS_COLORS: 색 코드를 이용하여 커맨드 창에 색깔을 나타내는 환경변수이다.

  • MAIL: 사용자의 메일이 저장되는 위치

  • PATH: 프로그램을 실행시킬 때, 실질적으로 프로그램이 위치하고 있는 장소들을 모은 환경 변수

  • PWD: 현재 작업 디렉토리

  • LANG: 언어 설정을 위한 환경변수

  • HOME: 현재 사용자의 홈 디렉토리

  • OLDPWD: 이전 작업 디렉토리

  • PS1: 쉘 세션의 모양을 정의한다.

  • PS2: 명령어가 여러줄에 걸져 있을 경우 모양을 정의한다.

  • _: 가장 최근에 실행한 명령어

  • OSTYPE: os의 타입 (centos는 linux-gnu)

  • HISTFILESIZE: 히스토리 기록의 최대 라인 수

특정 프로세스의 환경 변수 확인법

특정 프로세스의 환경 번수를 확인하고 싶다면 아래와 같이 입력하면된다.

cat /proc/프로세스번호/environ

여기서 특정 프로세스의 번호를 알고 싶다면 ps, pstree등의 명령을 사용하여 확인할 수 있고 /proc/폴더의 하위폴더 중 숫자번호로 이루어진 폴더 역시 프로세스의 번호이다.

$ pstree -pa 1472
bash,1472
  └─pstree,1782 -pa 1472

$ cat /proc/1472/environ
TERM=xterm-colorHOME=/rootSHELL=/bin/bashUSER=rootLOGNAME=rootPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binXDG_SESSION_ID=2n

centos에서 java version관리 (alternatives 사용)

개요 일반적으로 리눅스에서 자바를 셋팅하고 사용하다보면 버젼관리를 해야하는 경우가 반드시 생긴다. path 경로는 일반적으로 os가 부팅될때에 실행되는 파일들을 가지고 있다. 일반적으로 java를 설치했다면 /usr/bin/의 경로에 java가 실행파일로 운영이되고 있을 것이다. 이런경우 버젼을 올리거나 내리는 것이 매우 힘드므로 심볼릭 형태로 운영하도록...

더보기

리눅스에서 std(standard streams)란

리눅스에서 프로그램이 구동시 프로그램과 실행환경 사이를 소통하기 위해서는 미리 연결된 data stream이 필요하다. 프로그램에 기본적으로 표준입력, 표준출력, 표준에러 3가지의 데이터 스트림(data stream)이 연결(connected)된다. 이 3가지의 I/O 커넥션을 스텐다드 스트림(standard streams) 즉 STD라고 말한다. 원래 I/O 는 물리적은 장치에 의해 발생하지만,...

더보기