IT수업/리눅스

IT 수업 25주차 (204) 변수

워제하 2024. 6. 12. 10:51

 

● 변수란 

변수 : 변하는 수(값)
변수지정 : 변수를 지정할 '공간 설정'

 

1.형태 : 이름=값

2. 값의 내용을 그대로 출력할 때는 'echo $' 사용한다

3.값은 기본적으로 문자열 으로 인식한다

4.'이름'과 '=' 과 '값' 사이는 공백을 두지않는다.

5. $ 는 변수 내의 명령어나 스크립트 결과를  출력할때 사용되는 특수문자이다.

6. ' '(홑따옴표)는  명령어나 스크립트 처리 결과를 변수에 저장

7. 변수의 연산은 'expr' 라는 스크립터 프로그램을 이용한다

 

 

 

 

< 실습 >

 



변수 종류(적용되는 범위에 따라)
------------------------------------------------------

지역변수 : 계정별 따로 적용 (서브쉘 x)

지정 : itbank=“heath”  
확인 : echo $itbank  
해제 : unset itbank

전역변수 : 전체계정에 적용( 서브쉘 o) ex)PATH, HOME

지정 : export ITBANK=“heath”
확인 : echo $ITBANK
해제 : unset ITBANK

cf) 
set  :모든변수 확인 명령어(지역변수 + 전역변수 + 환경변수)
env :환경변수 확인 명령어

 

 

 

linux 라는 변수를 설정해주고 echo 하면 값을 볼 수 있다.

 

 

set |grep을 사용해서 linux 변수를 확인 해본다.

 

 

 

 

 

echo로 확인해보는데 b는 연산이지만 문자열로 인식한다.

 

그래서 연산하기 위해 '' (홑따옴표) 안에 expr을 사용해서 작성해주고 $변수명으로 확인하면 된다.

만약 echo $변수명 하면 문자열로 그대로 나오게 된다.

 

 

root 라는 계정에서만 지역변수를 사용했으므로 user3 으로는 변수를 확인 할 수 없다.

 

하지만 exit 로 다시 root로 나온 뒤 echo로 변수를 확인하면 root에서는 변수가 나오는 것을 확인 할 수 있다.

 

 

그래서 root에서 작성한 변수를 전역변수로 바꿔 다른 계정에서도 변수명을 사용할 수 있도록 export를 사용해서 작성해본다.

그러면 root에서 작성한 VAR2 변수가 user3에서도 나타나는 것을 확인 할 수 있다.

 

 




● 환경변수 종류 :사전에 의미가 정해진 전역변수

(프로필 파일에 정의되어있다)
------------------------------------------------------

HISTFILE : 히스토리(History) 파일의 절대 경로
HISTSIZE : 히스토리 파일에 저장되는 명령어의 개수(줄기준)
HISTFILESIZE : 히스토리 파일의 파일 크기
HOME : 사용자 홈 디렉토리의 절대 경로
HOSTNAME : 시스템의 호스트명
LANG : 쉘 사용 시 기본으로 지원되는 언어
LOGNAME : 사용자 계정 이름
MAIL : 도착한 메일이 저장되는 경로
PATH : 명령을 탐색할 경로
PS1 : 1차 프롬프트 변수
PS2 : 2차 프롬프트 변수(명령어 대상 경로를 계속 추가해서 적용시 사용 )
CDPATH : cd 명령 사용시 인자로 주어진 디렉토리를 찾을 경로
PWD : 작업 디렉토리 절대 경로
SHELL : 로그인 쉘 
TERM : 로그인한 터미널 종류
UID : 사용자의 UID
USER : 사용자의 이름

 

 


● 주요 프롬프트 형식

\d : '요일 월 일' 형태로 날짜를 표시(ex "Wed jan 15")
\h : 호스트 이름
\s : 사용 중인 쉘의 이름
\t : 24시 형태의 현재 시간(ex , HH:MM:SS)
\T : 12시 형태의 현재 시간(ex , HH:MM:SS)
\@ : 12시 형태의 현재 시간에 AM/PM을 추가로 표시
\u : 현재 사용자의 이름
\w : 현재 작업 디렉토리(홈 디렉토리의 위치를 ~로 표시)
\W : 현재 작업 디렉토리 중 마지막 디렉토리만 표시
\! : 현재 명령의 히스토리 번호
\\ : \를 표시

 

 

echo 사용해서 $PS1 으로 프롬프트 형식을 살펴볼 수있다.

 

이 프롬프트 형식을 내가 원하는데로 변경할 수 있다.

 

 

이번에는 보조 프롬프트를 변경해준다.

변경 전
변경 후

 

 

 

이번에는 경로를 변경해본다.

exit로 user3에서 root로 변경시켜주고 echo로 $PATH를 확인한다.

변경 전

 

 

 

newbin을 사용하기 위해 cd로 이동해주고 PATH에 $PATH:/newbin을 등록시켜준다.

그리고 echo 하면 경로 뒤에 :/newbin이 나오는 것을 확인 할 수 있다.

변경 후