록키 리눅스에서 기본적으로 제공하는 셸은 bash(배시 셸) 이다. 

프로그래밍 언어를 배웠다면 크게 비슷하기 때문에 간략하게 정리만 하고 넘어간다.

 

셸의 명령문 처리방법

(프롬프트) 명령어 [옵션...] [인자...]

ls -l
rm -rf /mydir
find . / -name "*.conf*

사용 예시이다.

find . / -name "*.conf*

환경변수

echo $환경변수

 

주요 환경 변수는 다음과 같다

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

LANG : 기본 지원되는 언어

TERM : 로그인 터미널 타임

USER : 현재 사용자의 이름

COLUMNS : 현재 터미널의 컬럼 수

PS1 : 1차 명령 프롬프트 변수

BASH : bash 셸의 경로

HISTFILE : 히스토리 파일의 경로

HOSTNAME : 호스트의 이름

LONNAME : 로그인 이름

MAIL : 메일을 보관하는 경로

PATH : 실행 파일을 찾는 디렉토리 경로

PWD : 사용자의 현재 작업 디렉토리

SHELL : 로그인해서 사용하는 셸

DISPLAY : X 디스플레이 이름

LINES : 현재 터미널 라인 수

PS2 : 2차 명령 프롬프트(대개는 '>')

BASH_VERSION : bash번전

HISTSIZE : 히스토리 파일에 저장되는 개수

USERNAME : 현재 사용자 이름

LS_COLORS : ls 명령어의 확장자 색상 옵션

OSTYPE : 운영체제 타입

 

export 환경변수=값 형식으로 환경 변수 값을 변경한다.

그외 환경변수는 printenv

 

셸 스크립트 프로그래밍 실습

nano name.sh

나노 편집기 실행

name.sh

#!/bin/sh
echo "사용자 이름 :" $USER
echo "홈 디렉터리: " $HOME
exit 0

 

1행. 특별한 형태의 주석 #!으로 bash를 사용하겠다는 의미이다. 반드시 필요하다.

2행~3행 : echo는 화면에 출력하는 명령이다.

4행 : 종료 코드를 반환한다. 제대로 실행됐는지 확인하려면 적절한 종료 코드를 반환하는것이 좋다. 0은 성공을 의미한다.

 

sh 명령으로 실행

sh name.sh

 

'실행 가능' 속성으로 변경 후 실행

ls -l *.sh

권한을 확인하면 -rw-r-이다.

chmod +x name.sh

실행 권한을 추가하면

-rwxr- 로 변경된다.

./name.sh

실행이 가능해진다.

 

root 권한으로 설정했기 때문에 root 사용자만 사용할수 있다. 다른 사용자가 사용하게끔 하려면 /usr/local/bin/ 디렉터리에 복사하고 권한을 755로 변경해야 한다.

 

변수

변수는 필요한 값을 계속 변경해 저장할 때 사용한다.

변수의 모든 값은 문자열로 취급한다. 숫자를 넣어도 문자로 취급한다.

대소문자를 구분한다.

'=' 앞뒤에는 공백이 없어야 한다.

 

var1.sh 파일을 하나 생성해서 테스트 해본다. 

#!/bin/sh

myvar="Hi Devport"

echo $myvar

echo "$myvar"

echo '$myvar'

echo \$myvar

echo 값 입력 :

read myvar

echo '$myvar' = $myvar

exit 0

 

1.  $변수와 '$변수'는 같다 변수에 입력된 값에 공백이 포함될수 있다면 '$변수'를 사용하는 것이 오류방지에 도움이 된다.

2. '$변수'는 $를 포함한 변수라는 글자자체가 출력된다.

3. \ 역시 '$변수'와 같다.

4. read 는 키보드로 문자열을 입력한다.

 

숫자계산

numcalc.sh 파일을 생성한다.

#!/bin/sh

num1=100

num2=$num1+200

echo $num2

num3=$(expr $num1 + 200)

echo $num3

num4=$(expr \( $num1 + 200 \) / 10 \* 2)

echo $num4

exit 0

num2 는 단순히 100+200 문자열을 출력한다.

num3 은 계산하여 300을 출력한다.

num4에 \(, \),\*와 같이 괄호와 *(곱하기) 앞에는 예외적으로 \(역슬래시)를 붙여야 된다.

 

파라미터 변수

파라미터 변수는 $0, $1, $2 등의 형태를 갖는다.

paravar.sh 파일을 생성한다.

#!/bin/sh

echo "실행 파일 이름은 <$0>이다"

echo "첫번째 파라메터는 <$1>이고, 두번째 파라미터는 <$2>이다."

echo "전체 파라미터는 <$*>이다.

exit 0

sh paravar.sh 값1 값2 값3

과 같이 파라미터를 값을 지정해서 sh실행때 넣어줄 수 잇다.

 

if문과 case문

#!/bin/sh
if [ "devport" = "devport" ]
then
	echo "참입니다"
fi
exit 0
'[', ']'사이에 공백에 주의한다.

if~else문

#!/bin/sh
if [ "devport" = "dev" ]
then
	echo "참입니다"
else
	echo "거짓입니다"
fi
exit 0

조건문의 들어가는 비교 연산자

 

그 외

-n "문자열" 문자열이 null 이 아니면 참

-z "문자열" 문자열이 null이면 참

 

case-esac 문

 

실행할 구문이 더 없으면 뒤에 ;;를 붙인다.

 

AND,OR 연산자

and는 -a 또는 &&

or -o 또는 ||

 

반복문

for ~ in문

while 문

until 문

조건이 거짓이면 반복하고 참이면 중단한다.

 

break, continue,exit,return

break 반복문 종료

continue는 뒤 구문을 skip하고 while 조건식으로 돌아감

exit 해당 프로그램을 완전 종료

return 함수 안에 사용되며 함수를 호출한 곳으로 돌아가게 한다.

+ Recent posts