2. Shell
● 여러가지 OS에서 사용되는 User Interface를
지칭 ( <----> Kernel )
● 사용자가 입력하는 명령을 처리함
● 대표적인 shell
○ ash, ksh, bash, zsh, dash, nash
○ cmd.exe, 4dos.com
○ explorer.exe(탐쉑히)
○ Finder.app
○ nautilus
○ konquerer
3. Shell Script
● 사용자가 지정해 놓은 일렬의 명령어들을 순
서대로 수행하도록 할 수 있는 파일
● 쉘에서 이해할 수 있는 문장(쉘 문법)으로 나
열됨
● 쉘 고유의 기능과 외부 명령어의 조합으로 사
용 됨
●
4. Shell Script 활용
● startx
○ X Window 시스템을 시작할 때 사용하는 스크립트
● /etc/init.d/apache2
○ 웹서버 시작 및 중지하기 위한 스크립트
● http://goo.gl/N9nxW
○ 쉘 스크립트로 구현된 웹서버
5. Shell Script 수행 방법
1. 처리하고자 하는 쉘에 인자로 넣어서 수행
○ bash gogi.sh
2. 쉘 스크립트 최상단에 처리할 수 있는 인터프
리터를 지정 후 실행 권한 부여
○ #!/usr/bin/env python
○ chmod +x im_hungry.py
○ ./im_hungry.py
3. 참고 소스
○ linux kernel에서 스크립트 수행하는 부분
■ http://goo.gl/iHBld
6. 조건문
● 주의!!!
○ 리턴값이 0이면 SUCCESS
○ 그 이외의 값은 FAIL
● if 명령어 ; then
fi
● test, [ 명령어
○ 조건을 검사하기 위한 기본적인 명령 (자세한건
manpage참조)
● cmd1 || cmd2
● cmd1 && cmd2
7. 조건문
● case X in
○ 1) blah
■ ;;
○ *)
■ ;;
● esac
● glob 형식의 패턴도 적용 가능
8. 반복문
● for X in item1 item2 item3
● do
○ excute something with $X
● done
● until/while
9. 변수
● 변수 확인
○ env 또는 export 명령
● 변수 할당
○ V1=x
○ V2=y
● 특수 변수
○ $@
○ $#
○ $?
●
10. 변수
● 내장 변수
○ PATH
○ PWD
○ HOME
○ LANG
○ PS1
○ SHELL
○
11. 변수
값 조작
○ V1="hello world"
○ echo ${V1/lo/hi}
● 값 계산
○ V1=$((1 + 2))
○ echo $V1
● 결과값 얻기
○ echo "1 + 2" | bc
○ V1=$(echo "1 + 2" | bc)
○ echo $V1
12. Pipeline, Redirection
● 명령의 출력을 재처리 하기 위한 방법
● Pipeline
○ 사용법
■ cmd1 | cmd2
○ cmd1이 출력하는 것을 cmd2의 입력으로 전달
● Redirection
○ 사용법 1
■ cmd 1 > filename
■ cmd1이 출력하는 것을 filename으로 저장
○ 사용법 2
■ cmd1 < filename
■ filename의 내용을 cmd1의 표준 입력으로 전달