리눅스 셸(Shell) 프로그래밍 [ 1 ]

bi_sz·2020년 6월 21일
0

Linux

목록 보기
1/5

리눅스 셸

리눅스는 유닉스 기반의 운영체제로 하드웨어를 효율적으로 관리해주고
사용자에게 편의성을 제공해주는 커널과 이러한 커널을 사용할 수 있게 셸이나 X 윈도를 제공한다.
셸은 사용자가 입력한 문장을 분석해서 명령을 실행하는 인터프리터라고 볼 수 있다.

셸은 여러 종류거 있는데 리눅스는 bash라는 셸을 사용한다.
리눅스의 시스템 호출을 이용해서 프로그램을 작성할 수 있는 것과 같이,
셸도 자동화 등을 위한 프로그래밍을 제공한다.
스크립트 기반의 프로그래밍도 가능한데, 이러한 셸 스크립트 프로그래밍을 셸 프로그래밍이라고 한다.


라즈베리파이 화면을 따로 연결하지 않고 터미털창을 이용하기 위해 putty 프로그램을 사용중이다.

현재 시스템에서 지원하는 셸을 확인하는 명령어이다.

/etc/shells

리눅스 셸 프로그래밍

X 윈도가 나오기 전에는 셸로 리눅스를 이용했는데, 키보드를 이용해서 직접 명령어를 타이핑해야만 했다.
반복적인 작업을 수행하는 경우에 이러한 작업을 효율적으로 지원하기 위한 프로그래밍이다.

셸 프로그램을 이용하면 많이 반복되는 여러 명령어의 실행이나
C 언어 등으로 만들 수 있는 간단한 코딩을 보다 쉽게 할 수 있다.


'Hello World!' 메세지를 출력하는 셸 프로그램을 작성해본다.


셸 스크립트는 일반적으로 .sh라는 확장자를 가지고 있으며, 첫 줄은 #!/bin/sh 로 시작한다.
#는 주석을 의미하고, 이 주석을 이용해서
지시어로 셸 스크립트를 실행할 때 사용할 셸을 지정할 수 있다.
그리고 화면에 메세지를 출력하고 싶으면 유닉스의 echo 명령어를 이용하면 된다.

애플리케이션들이 모두 실행 파일인 것과 같이 셸 스크립트 파일도 실행 권한이 있어야만 실행할 수 있다.
chmod 명령어를 이용해서 실행 권한을 부여하고 스크립트 파일을 실행하면 된다.

echo 명령어는 C 언어에서 사용하는 printf 명령어를 이용해서 변경할 수도 있다.

제어 구조

셸 스크립트도 C 언어와 같이 반복문 ( 순환문 ) 이나 조건문과 같은 제어 구조를 제공한다.
반복문은 for 문과 while 문, 그리고 until 문을 제공하고, 조건문은 if 문을 제공한다.

for 문

숫자(인덱스)가 증가하거나 감소하는 반복 구조를사용하는 경우에 이용하는 반복문이다.

for 문의 형식

for 변수 in 변숫값리스트
do
	명령어 리스트
done

변수는 변숫값 리스트에서 넘어오는 값을 저장하기 위한 공간이며,
이 변수는 다음의 do ~ done 사이의 명령어 리스트에서 사용할 수 있다.
변숫값 리스트는 $(명령어)를 이용해서 명령어의 실행결과를 사용할 수도 있다.

0개의 댓글