[리눅스] 배시 쉘(bash shell) (환경)변수 - 기초 1편

반응형

 

Shell 변수란

- 데이터를 넣는 상자

- 다른 프로그래밍 언어와 다르게 변수 선언 없이도 사용 가능

- 문자, 숫자, _(언더바)로 구성

- 첫 시작이 숫자가 될 순 없음

- 일반 변수(프로그래밍 작업 때 사용되는 변수)와 환경 변수(시스템에 적용하는 변수)로 나뉠 수 있음

 

 

변수 선언

command : 

# (varname)=(value)

 

practice :

# city=seoul
# age=19

 

 

변수 확인

command :

# echo $(varname)

# set | grep (varname)

# set  /// shell에 저장된 모든 변수가 다 나오기 때문에 찾기 힘드므로 grep 명령어 사용 권장

 

 

practice :

# echo $city
seoul

# echo $age
19

 

# set | grep city
city=seoul

# set | grep age
age=19

 

 

변수 제거

command : 

# unset (varname)

 

practice :

# unset city

# unset age

 

 

Shell 환경 변수란?

- 동작되는 프로그램(애플리케이션)에 영향을 주는 변수

- 관념적으로 일반 변수는 소문자, 환경 변수는 대문자를 사용해 옴

 

 

환경 변수 선언

command :

# export (varname)=value

 

practice :

# export NAME=kim

 

 

환경 변수 확인

command :

# echo $(varname)

# env | grep (varname)

# env  // 환경변수만 표시되며, grep 명령어 활용 권장

 

practice :

# echo $NAME

kim

# env | grep NAME

HOSTNAME=eloquence

NAME=kim

LOGNAME=root

NAME이 포함된 변수가 3개나 있었군요~

 

 

환경 변수 제거

command :

# unset (varname)

 

practice :

# unset NAME

 

 

이것만큼은 기억하자

PATH 명령어 탐색 경로
HOME 홈 디렉토리 경로, cd 명령 실행 시 적용
USER 로그인 사용자 이름
SHELL 로그인 Shell 이름

practice :

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

# date
2022. 07. 03. (일) 13:20:52 KST

# ls
bin   dev  home  lib64  media  opt   root  sbin  sys   tmp  var
boot  etc  lib   local  mnt    proc  run   srv   test  usr

※. shell이 date와 ls라는 명령어를 환경 변수 PATH에 저장된 경로 중 /usr/bin 에서 찾은 다음 운영체제 커널에 전달한다.

PATH에 /usr/bin이 빠지게 된다면?

 

# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/root/bin

# date
bash: date: 명령을 찾을 수 없습니다...
# ls
bash: ls: 명령을 찾을 수 없습니다...
유사한 명령: 'lz'

 

위와 같은 결과가 나온다. 

 

다시 PATH에 /usr/bin을 추가 후 date와 ls 명령어 실행해볼게요.

# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/root/bin

# date
2022. 07. 03. (일) 13:20:52 KST

# ls
bin   dev  home  lib64  media  opt   root  sbin  sys   tmp  var
boot  etc  lib   local  mnt    proc  run   srv   test  usr

 

실습 끝!

반응형

댓글

Designed by JB FACTORY