셸과 환경변수
여기위 글에서 언급 했듯이 셸에서 프로그래밍이 가능하다.
셸변수 선언
프로그래밍에서 변수를 사용하듯, 리눅스의 shell 프로그래밍에서는
'변수명=값'
'VAR=test'
의 문법을 이용해서 shell 변수를 생성한다.
- type 은 String 취급한다.
- 띄어쓰기가 존재하면 안된다.
셸변수 출력
echo $VAR
변수 출력은 echo 명령어로 변수명 앞에 '$' 기호를 붙여서 한다.
echo 자체는 원래 문자열을 출력하는 명령어로 사용된다.
셸변수 해제
unset VAR
unset 명령어를 이용해서 변수를 해제한다.
셸 환경변수
환경변수는 프롬프트 변경, PATH 병경 등과 같이 shell 의 환경을 정의하는 중요한 역할을 하는 변수를 의미한다.
셸을 활용하는데 중요한 개념 중 하나로, 미리 예약된 변수명을 사용하며
사용자가 임의로 원하는 값을 저장할 수 있다.
대부분의 환경변수는 일반 사용자 환경변수와 구별하기 위해 대문자만을 사용한다.
메모리에 데이터를 저장해서 shell에서 실행중인 모든 프로그램이나 스크립트에 쉽게 사용할 수 있다.
bash shell 은 두 가지 유형의 환경 변수가 있다.
- 전역 변수
- 전역 환경변수는 쉘 세션 및 파생된 자식 서브쉘에서 볼 수 있다.
- 지역 변수
- 지역 변수는 이를 만든 쉘에서만 사용할 수 있다.
부모 쉘의 정보가 필요한 자식 서브쉘을 만드는 APP에서는
전역 환경변수가 유용하다.
bash shell 에서 주요 환경변수
변수명 | 내용 |
HOME | 현재 사용자의 홈 디렉토리 |
LANG | 기본 지원 언어 |
TERM | 로그인 터미널 타입 |
USER | 사용자의 이름 |
COLUMNS | 현재 터미널의 컬럼 수 |
PS1 | 1차 명령프롬프트 변수 |
PS2 | 2차 프롬프트 변수 |
BASH | BASH 셸의 경로 |
HISTFILE | 히스토리 파일의 절대경로 |
HISTFILESIZE | 히스토리 파일의 크기 |
도착 메일이 저장되는 경로![]() |
|
TMOUT | 사용자가 로그인 한 후 일정 시간동안 작업을 하지 않을 때 로그아웃 시키는 시간으로 단위(초) |
UID | 사용자의 UID |
PATH | 실행 파일을 찾는 디렉토리 경로 /usr/bin/df 와 같이 명령어(파일)가 어느 디렉토리에 있는지 알 수 없는 경우, PATH 환경변수 설정을 통해 df 명령어를 어디서 찾을 수 있는지 미리 정의해놓는 것!! ![]() |
PWD | 사용자의 현재 작업 디렉토리 |
SHELL | 사용자의 로그인 셸 |
DISPLAY | X윈도에서 프로그램 실행 시 출력되는 창(?) |
LINES | 현재 터미널 라인 수 |
BASH_VERSION | BASH 버전 |
HISTSIZE | 히스토리 파일에 저장되는 명령어줄의 수 |
HOSTNAME | 시스템의 호스트명 |
LOGNAME | 로그인 이름 |
OSTYPE | 운영체제 타입 |
PS1, PS2 프롬프트 변수
프롬프트는 컴퓨터가 입력을 받아들이는 창을 의미합니다.
리눅스에는 PS1 과 PS2의 두가지 프롬프트가 있습니다.
보통 사용자가 작업하는 터미널은 PS1 프롬프트인데, 명령어가 완전히 입력되지 않으면 '>'가 뜹니다.
명령어가 완전히 입력되지 않은 상태가 PS2 입니다..
echo $PS1하면 프롬프트 1의 포맷정보를 출력해줍니다.
PATH 환경변수 추가하기
PATH=$PATH:/home/christine/Scripts
PATH=$PATH:[경로]
env
[ env ] 명령어를 사용하면 전체 환경변수의 설정된 값을 보여줍니다.
참고
링크1 링크2'Linux' 카테고리의 다른 글
리눅스에서 shell 이 뭘까?? (0) | 2022.02.26 |
---|---|
curl (0) | 2022.02.24 |
[Centos7] java 설치 및 환경변수 설정까지 (0) | 2022.02.23 |
[Centos7]리눅스 사용자 관리 (0) | 2022.02.22 |