slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Shell Script Seminar 1999 Spring, SPARCS PowerPoint Presentation
Download Presentation
Shell Script Seminar 1999 Spring, SPARCS

Loading in 2 Seconds...

play fullscreen
1 / 24

Shell Script Seminar 1999 Spring, SPARCS - PowerPoint PPT Presentation


  • 135 Views
  • Uploaded on

Shell Script Seminar 1999 Spring, SPARCS. by 유제성 (ari@sparcs.kaist.ac.kr). - Contents -. 1. What's a Shell ? 2. What's a Shell Script ? 3. Why we use a shell script ? 4. Bash and Shell script 5. Tcsh and Shell script 6. Environment variables. 1. What's a Shell ?. - 커널과 유저 사이의 인터페이스

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Shell Script Seminar 1999 Spring, SPARCS' - tyson


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Shell Script Seminar

1999 Spring, SPARCS

by 유제성(ari@sparcs.kaist.ac.kr)

slide2

- Contents -

1. What's a Shell ?

2. What's a Shell Script ?

3. Why we use a shell script ?

4. Bash and Shell script

5. Tcsh and Shell script

6. Environment variables

slide3

1. What's a Shell ?

- 커널과 유저 사이의 인터페이스

- GUI - 그래픽 유저 인터페이스

- 커널 - 하드웨어와의 인터페이스

- 커널보다 쉘의 종류가 다양하다

- Windows도 기본으로 제공되는 explorer외의

쉘로 바꿀 수 있으며, 커널이 동일하기 때문에

쉘이 바뀌더라도 인터페이스 외의 변화는 없다.

slide4

2. What's a Shell script ?

- MS-DOS 의 배치파일(Batch File)과 비슷하다.

- 명령어들의 모음 ( + 간단한 구조화 프로그래밍)

- 쉘 스크립트는 쉘에서 제공하는 것이기 때문에,

쉘에 따라 문법과 제공되는 기능이 많이 다르다.

- #으로 시작되는 줄은 주석이다

(첫째줄의 #!/bin/bash 등 제외)

slide5

3. Why we use a shell script ?

- 반복되는 작업을 쉽게 하기 위해서

- 각자 고유한 쉘 환경을 꾸미기 위해서

- 환경파일 - .tcshrc .bashrc .muttrc .vimrc .xsession

- 쉘 스크립트의 기능은 상당히 강력하다.

slide6

4. Bash and Shell script

- 배쉬는 FSF(GNU)에서 유닉스의 Bourne Shell을

본따서 만든 쉘로서 Bourne Again Shell의 약자이다.

- 배쉬는 본쉘을 모두 포함하며, C 쉘의 기능도 많이

포함한다.

- 대부분의 리눅스 머신의 표준 명령어 라인 인터페

이스이다.

- .bashrc 파일 내에 bash의 설정이 들어 있으며, 프롬

프트 상에서 set과 env로 자신의 현재 환경을 확인

할 수 있다.

slide7

4.1 How to make and run Shell script ?

- #!/bin/bash를 VI등을 이용해서 스크립트의 첫째줄에 넣는다.

- sparcs> bash filename

- 계정에서 위와 같은 형식으로 실행시킨다.

- 실행 퍼미션 (rwx에서 x)이 있을 필요가 없다. 쉘 스크립트는

스크립트 자체가 실행 파일이 아니고, 쉘을 통해서 실행되는

것이다.

- 실행 퍼미션이 있을 경우 sparcs>filename 만으로도 실행된다.

- 쉘 스크립트 내의 명령어들은 쉘 프롬프트 상에서도 실행된다.

(for, if 같은 것들은 제외..)

- sparcs> source test 와 같은 형식으로도 실행시킬 수 있다.

slide8

4.2 Variable

- sparcs> var1=ABCDE

sparcs> echo $var1 ( = echo "$var1")

ABCDE

- sparcs> var1=* (현재 디렉토리의 모든 파일들..)

sparcs> echo $var1

Mail News documents public_html test1 test2 test3

sparcs> echo "$var1"

*

- sparcs> var1=t* (t로 시작되는 모든 파일들..)

sparcs> echo $var1

test1 test2 test3

slide9

4.3 If-then

- if [ 조건 ] then

참일 때 할 일

fi

- if [ 조건 ] then

참일 때 할 일

else

거짓일 때 할 일

fi

- if [ 조건1 ] then

조건1이 참일 때 할 일

elif [ 조건2 ] then

조건2가 참일 때 할 일

fi

slide10

4.4 For, while

- for I in 1 2 3 4 5 6 7 8 9 10

do

echo $I

done

- while [ 조건 ]

do

할 일

done

slide11

5. Tcsh and Shell script

- Tcsh는 Berkeley UNIX C Shell(csh)과 완벽하게

호환되며, 커맨드 라인 편집과 completion이 추가된

쉘이다.

- 본쉘 스크립트를 C쉘에서 실행할 수는 있지만, C쉘

스크립트를 본쉘에서 실행할 수는 없다. (본쉘이 표준적)

- #!/bin/tcsh롤 파일의 첫째줄에 추가하고, 프롬프트 상에서

tcsh filename으로 실행한다.

slide12

5.1 Variable

- sparcs> set var1=ABCDE (set을 붙이는 것에 주의 !)

sparcs> echo $var1

12345

- sparcs> set var1=(ABC, DEF, GHI)

sparcs> echo $var[3]

GHI

sparcs> echo $var[2-3]

DEF GHI

- sparcs> @ a = 12345 (숫자변수는 앞에 @를 붙인다.

sparcs> echo $a @와 변수명 사이에 한칸을 띈다)

12345

slide13

5.2 Operator & Calculation

- c와 같은 문법으로 연산을 할 수 있다.

- sparcs> @ a = 5

sparcs> @ b = 3

sparcs> @ c=$a % $b (%는 c에서 나머지 연산이다)

2

- 이 외에도 +, -, *, /, >>, <<, +=, ++, -=, --, *=,

/=, %= 등도 C 문법으로 쓸 수 있다.

slide14

5.3 Foreach, while

- test파일

#!/bin/tcsh

foreach X ( ABC DEF GHI JKL MNO )

echo $X

end

- sparcs> tcsh test

- while ( 조건 )

할 일

end

slide15

5.4 If-then

- if 구문도 C와 동일하게 쓰인다.

- if ( case ) do something

- ex) if ( $?a==1 || $?b==1 ) echo ABCDE

slide16

6. Environment Variables

- 환경변수에는 path, prompt, alias, complete 등등이 있다

- 환경의 셋팅에 따라서 쉘 사용의 편리함에 많은 차이가

나게 된다.

6.1 History

- 본쉘에는 없는 C쉘만의 기능이다. 그러나, 배쉬에는

포함되어 있다.

slide17

6.1.1 History of bash

- sparcs> set

HISTFILE=/home98/ari/.bash_history

HISTFILESIZE=500

HISTSIZE=500

- 히스토리 파일이 .bash_history이고 파일 사이즈가 500,

메모리의 히스토리 사이즈도 500으로 셋팅되어 있음을

나타낸다.

6.1.2 History of tcsh

- sparcs> set

history 100

- 히스토리 사이즈가 100임을 나타낸다

slide18

6.1.3 Usage of History

- sparcs> !! 라고 하면, 바로 전에 실행했던 명령을 다시 실행

- sparcs> !10 이라고 하면, history에 기억된 명령어들 중에서

10번째 명령을 실행한다.

- sparcs> !-10이라고 하면, 10번째 전에 입력했던 명령을 실행

- sparcs> !a 라고 하면 a로 시작하는 가장 최근의 명령을 실행

slide19

6.2 Alias

- alias ls 'ls -p --color=tty $1 -F'

- sparcs> ls 라고 치면 이것이 ls -p --color=tty -F로 치환된다.

- sparcs> ls -la 는 ls -p --color=tty -la -F로 치환된다.

- 현재의 alias 상태는 프롬프트에서 alias를 입력함으로써

알 수 있다.

slide20

6.3 Complete

- Completence란 프롬프트 상에서 tab을 눌렀을 때, 현재 입력된

문자열로 시작되는 것들을 완성해주는 기능이다. (tab외에 ^D

도 가능하다)

- List 기능은 조건에 맞는 것들이 여러개일 때, 출력해주는 것이

다. 이 기능은 set autolist가 되어 있을 때만 쓸 수 있다.

- sparcs> cd [tab]

Mail/ News/ digital/ documents/ public_html/

sparcs> cd

- sparcs> cd d[tab]

digital/ documents/

sparcs> cd d

- sparcs> talk [tab]

ari bxxxxxx gxxxxxxx ixxxx vxxx

sparcs> talk

slide21

- sparcs> talk ar[tab] (줄이 바뀌지 않는다)

sparcs> talk ari

- 맞는 것이 하나일 때는 리스트되지 않고 Complete 된다.

- sparcs> a[tab]을 하면 현재 지정된 path내의 a로 시작되는

모든 파일들이 출력된다.

- sparcs> man [tab]을 하면 명령어들의 목록이 나온다.

- sparcs> finger [tab]을 하면 사용자들의 목록이 나온다.

- 현재 설정된 complete들을 보려면 프롬프트에서 complete를

입력한다.

- set fignore=(.bak .xxx)와 같이 되어 있을 경우, .bak 이나 .xxx로

끝나는 파일들은 complete list에서 나타나지 않는다.

- .tcshrc파일 내에 complete들이 설정되어 있다.

예) complete cd p/1/d/

complete man p/1/c/

slide22

- complete 의 형식은 complete 명령어 옵션1/패턴/옵션2/문자열

- 옵션1은 c, C, n, N, p가 올 수 있으며 옵션1은 패턴을 이용하는

경우를 나타낸다.

- 옵션2는 a, c, d, f, s, u 등이 있으며, a는 alias, c는 command, d는

directory, f는 파일, s는 set, u는 user를 의미한다.

- 문자열은 없어도 되며, 패턴에 맞는 단어가 1개일 때, 즉 complete

가 될 때 뒤에 추가할 문자열을 의미한다.

- complete set 'c/*=/f/' 'p/1/s/=' 'n/=/f' 등과 같이 한 명령에 대해서도

패턴에 따라 다르게 complete 시킬수 있다.

- 옵션 1의 c와 n의 차이는 c는 커서와 붙어있는 단어, n은 공백을

사이로 떨어진 앞의 단어를 의미한다.

slide23

- 옵션 1의 p는 position을 의미하는 것으로, 1은 [tab]을 누른

위치가 공백을 기준으로 첫번째여야함을 말한다. p/*/... 과

같이 쓰일 경우는, 위치에 관계없이 쓰인다는 의미이다.

특별한 패턴 조건이 필요없을 때 이렇게 쓴다.

- sparcs> set [tab]을 하면 p/1/s/=에 해당하는 complete가 실행

- sparcs> set arg[tab]을 해도 역시 p/1/s/=이 실행되며, set중에서

arg로 시작되는 것은 argv 하나 뿐이다. 따라서 뒤에 =이 추가.

sparcs> set argv=

- sparcs> set a=[tab]을 하면, c/*=/f/에 해당하는 complete가 실행

- sparcs> set a= i[tab]을 하면, n/=/f/에 해당하는 complete가 실행

slide24

6.4 Prompt

- set prompt = "%m %#" 과 같은 형식으로 쓰인다.

- prompt의 ""안에 들어올 수 있는 변수들은 다음과 같다.

- %/, %~ : 현재 디렉토리. %~는 home98/ari를 ~로 치환한다.

- %h, %! : History 번호

- %M, %m : 호스트 이름 %m은 맨 앞의 . 까지만을 나타낸다.

- %% : % 기호

- %t, %T, %@, %p, %P : 현재 시간 (각각 차이가 있다)

- %n : 사용자 이름

- %d, %D, %y, %Y, %w, %W : 요일, 년, 월,

- %# : >기호