Transcript null

UNIX 응용
6주 - 쉘
[email protected]
쉘(shell)이란?
• 사용자와 운영체제 사이의 인터페이스로 동작하는
명령어 해석기
– 사용자가 입력한 명령을 해석하여 원하는 프로그램을 호출
– 고급 프로그래밍 언어로 사용 가능
2/12
쉘의 종류
• Steven Bourne의 Bourne 쉘(sh)
– 가장 오랜 동안 모든 UNIX시스템의 표준 구성 요소
– 강력한 명령 프로그래밍 언어 기능을 가짐
– 쉘 명령 대본을 작성하는데 이용
• Bill Joy의 C 쉘(csh)
– C 언어와 유사한 언어를 사용
– 대화형 사용으로 C쉘을 추천
• Dave korn의 Korn 쉘(ksh)
– UNIX시스템에서 표준 shell로 제공되지만 보편적으로 사용되지
않음
– Bourne쉘과 완전히 호환성이 있으며, C 쉘의 대화형 기능을 추가
3/12
명령줄(command line)
• 명령줄의 문법
: command [arg1] [arg2] … [argn]
– 명령 이름
– 인수
• 파일명, 문자열, 숫자의 문자열, 혹은 명령이 작용하는 기타의 객체들
• 옵션
– 명령의 효과를 수정하는 인수
– 옵션 앞에 -를 붙임
– 한 명령에 여러 개의 옵션 제공
e.g. ls –al, ls –la, ls –a –l, ls –l –a
• 명령줄의 처리
– 그림 5-3, 5-4 참조
4/12
프로그램 실행
• 포그라운드 프로세스(foreground process)
– 계속 진행하기 전에 명령이 끝나기를 기다림
– 인터럽트 키를 이용해 프로세스 중지
• 백그라운드 프로세스(background process)
– 명령의 실행 기간이 길고 감독을 필요로 하지 않을 때 유용
• sorts, compilation
– 명령의 끝에 앰퍼샌드(&)를 붙임
– 백그라운드 프로세스와 포그라운드 프로세스를 동시에 수행
(멀티태스킹 시스템)
– 프로세스 중지
• kill [-9] PID
ee%kill 1406
5/12
표준 입출력
• 단말기를 파일로
– /dev/pts/번호
• 이 파일에 쓰면 단말기의 화면에 표시되고,
• 이 파일에서 읽으면 단말기의 키보드로 입력한 것이 읽힌다.
• 표준 입력과 출력으로서의 단말기
6/12
표준 출력의 방향 전환
• 명령의 출력을 단말기 대신 지정된 파일로…
• 출력 재지정 기호(>)
%command [arguments] > file
• 예
ee%cat > memo
…
^D
ee%
 출력 방향 전환을 하고자 하는 파일이 기존에
존재하는 파일일 경우, 이전 내용이 모두 지워진다?
7/12
표준 입력의 방향 전환
• 명령의 입력을 단말기 대신에 지정된 파일로 방향전환
• 입력 재지정 기호 (<)
%command [arguments] < file
• 예
ee%cat < memo
ee%mailx alex < memo.alex
8/12
표준 출력을 파일에 추가하기
• 출력을 파일의 끝에 추가하고자 하는 경우
– 기존의 파일 내용을 그대로 유지
• 출력 재지정 추가 기호(>>)
%command >> file
• 예
ee%date > whoson
ee%cat whoson
ee%who >> whoson
ee%cat whoson
9/12
파이프
• 한 프로그램의 표준 출력을 다른 프로그램의 표준
입력으로 연결
– 입출력 재지정 방법
%ls –al > tempfile
%wc –l < tempfile
%rm tempfile
– 파이프라인 방법
%ls | wc –l
• 예
%who | grep ‘chas’
%who | sort
%ls | more
10/12
필터와 tee 유틸리티
• 필터
– 데이터의 입력 스트림을 처리하여 데이터의 출력 스트림을 생성하기
위한 명령
%who | sort | more
• tee
– 명령의 출력을 파일로 보내면서 동시에 표준 출력으로 보냄
%who | grep chas
%who | tee who.out | grep chas
11/12
파일명 생성
• 파일명 생성을 제어하는 특수 문자(메타 문자 혹은
와일드 카드)
• ? : 어떤 한 글자와 부합
%ls memo?
• * : 어떠한 문자열과 부합
%ls memo*
%ls .*
• [ ] : 문자 클래스 정의
%ls part[01235]
%ls [a-m]*
12/12