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

More Related Content

What's hot

세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
Jay JH Park
 
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUpBSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
Sehan Lee
 
[OpenTRS-001] Hotel California
[OpenTRS-001] Hotel California[OpenTRS-001] Hotel California
[OpenTRS-001] Hotel California
Theori
 
세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화
Jay JH Park
 
Lightning talk - 11
Lightning talk - 11Lightning talk - 11
Lightning talk - 11
DonggyuKim21
 
windows via c++ Ch 5. Job
windows via c++ Ch 5. Jobwindows via c++ Ch 5. Job
windows via c++ Ch 5. Job
Hyosung Jeon
 
Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)
Fermat Jade
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver진상 문
 
fluentd
fluentdfluentd
fluentd
Wonjun Hwang
 
Blockchain 4th dapp programming
Blockchain 4th dapp programmingBlockchain 4th dapp programming
Blockchain 4th dapp programming
ihpark92
 
[Windows via c/c++] 4장 프로세스
[Windows via c/c++] 4장 프로세스[Windows via c/c++] 4장 프로세스
[Windows via c/c++] 4장 프로세스종빈 오
 
스레드
스레드스레드
스레드xxbdxx
 
[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?
NAVER D2
 
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
Jay JH Park
 
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
Lee Sang-Ho
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움
Jay JH Park
 
성미급한 사람들을 위한 아파치 설치
성미급한 사람들을 위한 아파치 설치성미급한 사람들을 위한 아파치 설치
성미급한 사람들을 위한 아파치 설치경민 남
 

What's hot (18)

세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
 
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUpBSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
BSides Delhi CTF 2018 [Never Too Late Mister (Forensics 200pts)] WriteUp
 
[OpenTRS-001] Hotel California
[OpenTRS-001] Hotel California[OpenTRS-001] Hotel California
[OpenTRS-001] Hotel California
 
세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화세션3. geth 클라이언트 실습 및 모니터링과 시각화
세션3. geth 클라이언트 실습 및 모니터링과 시각화
 
Lightning talk - 11
Lightning talk - 11Lightning talk - 11
Lightning talk - 11
 
windows via c++ Ch 5. Job
windows via c++ Ch 5. Jobwindows via c++ Ch 5. Job
windows via c++ Ch 5. Job
 
Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver
 
fluentd
fluentdfluentd
fluentd
 
Blockchain 4th dapp programming
Blockchain 4th dapp programmingBlockchain 4th dapp programming
Blockchain 4th dapp programming
 
[Windows via c/c++] 4장 프로세스
[Windows via c/c++] 4장 프로세스[Windows via c/c++] 4장 프로세스
[Windows via c/c++] 4장 프로세스
 
스레드
스레드스레드
스레드
 
[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?[143] Modern C++ 무조건 써야 해?
[143] Modern C++ 무조건 써야 해?
 
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
세션4. 예제로 배우는 스마트 컨트랙트 프로그래밍
 
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
성미급한 사람들을 위한 아파치 설치
성미급한 사람들을 위한 아파치 설치성미급한 사람들을 위한 아파치 설치
성미급한 사람들을 위한 아파치 설치
 

Viewers also liked

간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기
licubeclub
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해
InGuen Hwang
 
Victoria's Secret Angels Campaign
Victoria's Secret Angels CampaignVictoria's Secret Angels Campaign
Victoria's Secret Angels Campaign
John White
 
김명환
김명환김명환
김명환Eanis_
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명
진우 이
 
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
itsming
 
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Paulraj Pappaiah
 
Bash-as-a-Interpreter
Bash-as-a-InterpreterBash-as-a-Interpreter
Bash-as-a-Interpreter
Juhwan Yun
 
Linux tutorial
Linux tutorialLinux tutorial
Linux tutorial
Hyun-hwan Jeong
 
Introduction to Linux #1
Introduction to Linux #1Introduction to Linux #1
Introduction to Linux #1
UNIST
 
Jco14 오픈소스를 이용한 모니터링 방법
Jco14 오픈소스를 이용한 모니터링 방법Jco14 오픈소스를 이용한 모니터링 방법
Jco14 오픈소스를 이용한 모니터링 방법정수 한
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
Jong Wook Kim
 
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
Chulgyu Shin
 
k.s.h.
k.s.h.k.s.h.
k.s.h.
kangseohee
 
Medical Wiki Project
Medical Wiki ProjectMedical Wiki Project
Medical Wiki Project
Kwangmo Yang
 
[2015-06-05] Oracle TX Lock
[2015-06-05] Oracle TX Lock[2015-06-05] Oracle TX Lock
[2015-06-05] Oracle TX Lock
Seok-joon Yun
 
[2015-05-22] Oracle Ways of Concurrency Control
[2015-05-22] Oracle Ways of Concurrency Control[2015-05-22] Oracle Ways of Concurrency Control
[2015-05-22] Oracle Ways of Concurrency Control
Seok-joon Yun
 
Oracle History #9
Oracle History #9Oracle History #9
Oracle History #9
Kyung Sang Jang
 
MariaDB Other Features
MariaDB Other FeaturesMariaDB Other Features
MariaDB Other Features
JongJin Lee
 

Viewers also liked (20)

간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기간단한 쉘 스크립트 작성하기
간단한 쉘 스크립트 작성하기
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해
 
Victoria's Secret Angels Campaign
Victoria's Secret Angels CampaignVictoria's Secret Angels Campaign
Victoria's Secret Angels Campaign
 
김명환
김명환김명환
김명환
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명
 
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
프로토추천♬♬W­Е­4­9­닷­С­О­М♬♬고액배팅사이트め고액배팅사이트め프로토
 
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
Simple ways to deploy VM Images from Self Service UI in IBM Cloud Orchestrato...
 
Bash-as-a-Interpreter
Bash-as-a-InterpreterBash-as-a-Interpreter
Bash-as-a-Interpreter
 
Linux tutorial
Linux tutorialLinux tutorial
Linux tutorial
 
Introduction to Linux #1
Introduction to Linux #1Introduction to Linux #1
Introduction to Linux #1
 
Jco14 오픈소스를 이용한 모니터링 방법
Jco14 오픈소스를 이용한 모니터링 방법Jco14 오픈소스를 이용한 모니터링 방법
Jco14 오픈소스를 이용한 모니터링 방법
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
 
k.s.h.
k.s.h.k.s.h.
k.s.h.
 
Medical Wiki Project
Medical Wiki ProjectMedical Wiki Project
Medical Wiki Project
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
[2015-06-05] Oracle TX Lock
[2015-06-05] Oracle TX Lock[2015-06-05] Oracle TX Lock
[2015-06-05] Oracle TX Lock
 
[2015-05-22] Oracle Ways of Concurrency Control
[2015-05-22] Oracle Ways of Concurrency Control[2015-05-22] Oracle Ways of Concurrency Control
[2015-05-22] Oracle Ways of Concurrency Control
 
Oracle History #9
Oracle History #9Oracle History #9
Oracle History #9
 
MariaDB Other Features
MariaDB Other FeaturesMariaDB Other Features
MariaDB Other Features
 

More from Young-Ho Cha

마세라티의 비밀
마세라티의 비밀마세라티의 비밀
마세라티의 비밀
Young-Ho Cha
 
More than nexus, better than nexus.
More than nexus, better than nexus.More than nexus, better than nexus.
More than nexus, better than nexus.
Young-Ho Cha
 
Cairo clock for android wear
Cairo clock for android wearCairo clock for android wear
Cairo clock for android wear
Young-Ho Cha
 
GITHUB와 함께 Social하게 코딩하기
GITHUB와 함께 Social하게 코딩하기GITHUB와 함께 Social하게 코딩하기
GITHUB와 함께 Social하게 코딩하기Young-Ho Cha
 
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개Young-Ho Cha
 
웹표준과 자동화의 약속된 승리
웹표준과 자동화의 약속된 승리웹표준과 자동화의 약속된 승리
웹표준과 자동화의 약속된 승리
Young-Ho Cha
 
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
Young-Ho Cha
 
자막을 뿌리려면 해야 할 여러가지 삽질모음
자막을 뿌리려면 해야 할 여러가지 삽질모음자막을 뿌리려면 해야 할 여러가지 삽질모음
자막을 뿌리려면 해야 할 여러가지 삽질모음
Young-Ho Cha
 
Browser history and overview
Browser history and overviewBrowser history and overview
Browser history and overviewYoung-Ho Cha
 
Introduce native client
Introduce native clientIntroduce native client
Introduce native client
Young-Ho Cha
 
Introduce gobject introspection
Introduce gobject introspectionIntroduce gobject introspection
Introduce gobject introspection
Young-Ho Cha
 
페챠쿠챠
페챠쿠챠페챠쿠챠
페챠쿠챠
Young-Ho Cha
 

More from Young-Ho Cha (12)

마세라티의 비밀
마세라티의 비밀마세라티의 비밀
마세라티의 비밀
 
More than nexus, better than nexus.
More than nexus, better than nexus.More than nexus, better than nexus.
More than nexus, better than nexus.
 
Cairo clock for android wear
Cairo clock for android wearCairo clock for android wear
Cairo clock for android wear
 
GITHUB와 함께 Social하게 코딩하기
GITHUB와 함께 Social하게 코딩하기GITHUB와 함께 Social하게 코딩하기
GITHUB와 함께 Social하게 코딩하기
 
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개
 
웹표준과 자동화의 약속된 승리
웹표준과 자동화의 약속된 승리웹표준과 자동화의 약속된 승리
웹표준과 자동화의 약속된 승리
 
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
7급 공무원도 쉽게 따라하는 프로파일링 도구 만들기
 
자막을 뿌리려면 해야 할 여러가지 삽질모음
자막을 뿌리려면 해야 할 여러가지 삽질모음자막을 뿌리려면 해야 할 여러가지 삽질모음
자막을 뿌리려면 해야 할 여러가지 삽질모음
 
Browser history and overview
Browser history and overviewBrowser history and overview
Browser history and overview
 
Introduce native client
Introduce native clientIntroduce native client
Introduce native client
 
Introduce gobject introspection
Introduce gobject introspectionIntroduce gobject introspection
Introduce gobject introspection
 
페챠쿠챠
페챠쿠챠페챠쿠챠
페챠쿠챠
 

7급 공무원도 쉽게 따라하는 쉘 스크립트

  • 1. Shell Script 시작 하기 7급 공무원도 쉽게 따라하는 쉘 스크립트
  • 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의 표준 입력으로 전달