Presentation is loading. Please wait.

Presentation is loading. Please wait.

UNIX Unbounded A Beginning Approach

Similar presentations


Presentation on theme: "UNIX Unbounded A Beginning Approach"— Presentation transcript:

1 UNIX Unbounded A Beginning Approach
이 성 현 Home : nimilx2.hannam.ac.kr Tel :

2 목차 응용 프로그램 작성하기 유닉스 인터널 : 신호 터미널에 관한 그 밖의 내용 그 밖의 명령들 메뉴-방식 응용 요약
질의 및 응답 실습

3 응용 프로그램 작성하기 추가적인 쉘 내장 명령어 응용 프로그램을 작성하기 위한 추가적인 쉘 내장 명령어 trap case
프로세스에 전달되는 신호를 가로채 사용자가 지정한 신호로 변경하기 위한 명령어 case 다중 선택을 위한 제어 구문 if-then-elif 보다 간결한 구조로 표현 명령어 내장된 곳 Bourne Shell Korn Shell Bourne Again Shell trap sh ksh bash case

4 응용 프로그램 작성하기 lock1 프로그램 프로그램 개요
사용자의 터미널에 접근하는 것을 보호하기 위해서, 호출되었을 때 스크린에 메시지를 보여주고 패스워드를 입력받는 스크립트 파일

5 응용 프로그램 작성하기 lock1 프로그램 프로그램의 문제점
1. 키보드가 잠겨 있을 동안 [Del] 키에 의해서 스크립트가 종료되고, $ 프롬프트가 출력되므로 일반적인 인터럽트 신호를 무시할 수 있어야 한다. 2. 패스워드가 평문의 형태로 출력되므로, 화면에 표시되지 않도록 해야 한다. 즉, 사용자 입력에 대한 확인을 보호해야 한다. 3. 맞는 패스워드를 입력하지 않을 경우 항상 같은 메시지를 출력하므로 화면이 복잡해진다. 명령어 상에서 구체적인 메시지가 보여줄 수 있도록 하는 것이 좋다.

6 유닉스 인터널 : 신호 인터럽트 신호 프로세스의 종료
인터럽트 신호를 발생시켜 프로세스를 종료, [Del], [Break], [Ctrl-c] 인터럽트 신호는 프로세스가 아닌 유닉스 커널에 전달되며, 커널에서 프로세스에게 인터럽트의 발생 여부를 알려줌 프로세스는 인터럽트 신호에 대한 응답으로 프로세스 종료 또는 다른 동작을 취함 신호 번호 이름 동작 1 hang up 터미널 연결 해제 2 interrupt interrupt 키 중 하나를 눌렸을 때 3 quit quit 키 중 하나를 눌었을 때 9 kill kill –9 명령이 실행되었을 때 13 terminator kill 명령이 실행되었을 때

7 유닉스 인터널 : 신호 인터럽트 신호 hang-up 신호 종료 신호 강제 종료
signal 1은 시스템이 터미널과 연결을 잃었음을 알려줄 때 사용 컴퓨터와 사용자의 터미널 접속이 해제되었거나, 전화선(모뎀 연결)이 해제되었을 경우에 발생 몇몇 시스템에서 hang-up 신호는 터미널의 전원을 끊을 경우에도 생성 signal 2는 인터럽트 키 중 하나가 눌렸을 경우에 발생 [Ctrl-c], [Del], [Break]이 될 수 있음 종료 신호 Signal 3는 [Ctrl-\]키를 눌렀을 경우에 키보드로부터 생성 강제 종료 signal 9와 15는 kill 명령에 의해서 생성 signal 15가 기본 신호이며, 9는 kill 명령에서 kill –9 옵션이 사용될 때 생성 실행중인 프로세스를 종료

8 유닉스 인터널 : 신호 신호 가로채기 : trap 명령어 프로세스에게 수신되는 기본 동작은 즉시 종료
ex) 인터럽트 신호를 무시하는 것 또는 종료하는 것 대신에 지정된 조건을 수행하도록 프로세스에게 지시 trap “명령 옵션” 신호 번호 trap “echo | refuse to die!” 15 trap “echo killed by a signal; exit” 15 프로세스가 kill(신호 15)를 수신하면, echo 명령이 실행되고 killed by a signal! 메시지를 출력 exit 명령이 실행되고 스크립트가 종료

9 유닉스 인터널 : 신호 trap의 재지정 선택적 명령 없이 trap 명령을 사용하는 것은 지정된 신호로 그들의 기본 동작을 변경 스크립트의 일부분에서 또는 신호를 트랩하지 않고자 하는 다른 부분에서 어떤 신호를 가로채고자 할 때 유용 ex) trap “ “ 인터럽트, 종료, 강제 종료 명령을 무시하고, 이들 키 중 하나가 눌렸을 경우에도 스크립트를 계속 실행 trap 지정된 신호들이 초기화, 인터럽트, 종료, 강제 종료 키들이 저장되고 이들 키 중 하나가 눌렸을 경우 스크립트 종료

10 유닉스 인터널 : 신호 터미널 옵션 설정 : stty 명령 터미널 특성을 설정하고 출력하기 위한 명령어
보오율(터미널과 컴퓨터간 전송 비율), 특정 키(kill, interrupt) 기능과 같은 단말기의 여러 가지 특성들을 제어

11 유닉스 인터널 : 신호 터미널 옵션 설정 : stty 명령 stty는 수백 가지의 서로 다른 설정의 수정본을 지정 옵션 동작
echo [-echo] 입력된 문자를 반향[반향하지 않는다]한다. 기본은 echo이다 raw[-raw] 메타문자의 특별한 의미를 사용하지 못하게[사용하게] 한다. 기본은 raw이다 intr 인터럽트 신호를 생성한다. 일반적으로 [Del] 키가 사용 erase [backspace] 이전 문자를 지운다. 보통 # 키가 사용 kill 전체 라인을 지운다. 또는 [Ctrl-u] 키가 사용 eof 터미널로부터 신호(파일의 끝)를 생성한다. 보통 [Ctrl-d] 키가 사용 ek erase와 kill을 설정한다 sane 적절한 기본 값으로 터미널 특성을 설정한다

12 터미널에 관한 그 밖의 내용 그 밖의 터미널 사항 터미널 데이터베이스 : terminfo 파일
유닉스 운영체제는 단말기의 여러 가지 터미널 유형을 지원 각 터미널은 자신만의 기능과 특성을 가진다 터미널 데이터베이스 : terminfo 파일 사용자 시스템에서 지원되는 각 터미널은 terminfo(terminal information)이라 부르는 터미널 데이터베이스에 엔트리를 가짐 terminfo 데이터베이스는 많은 터미널 유형 기술을 포함하는 단일 텍스트 파일

13 터미널에 관한 그 밖의 내용 터미널 기능 설정 : tput 명령어
terminfo 데이터베이스를 가지는 어떤 시스템상에서도 표준이 tput 유틸리티는 어떤 단순한 기능의 값을 출력 쉘 프로그래밍에서 터미널 능력을 이용하는 것을 가능하게 만듬 ex) tput clear [Enter] tput –T ansi [Enter] 터미널 유형을 ansi로 지정 tput 명령어 기능 특별한 터미널 기능을 선택하게 하고 쉘 변수에서 그들의 값을 출력하거나 저장하게 함 -T 옵션을 사용하여 터미널 유형을 재지정

14 터미널에 관한 그 밖의 내용 터미널 기능 설정 : tput 명령어 옵션 동작 bel 터미널의 벨 문자를 에코한다 blink
깜박거리는 출력을 한다 bold 볼드체로 출력을 한다 clear 화면을 지운다 cup r c 커서를 행 r과 열 c로 이동한다 dim 디스플레이를 흐리게 한다 ed 커서 위치에서 스크린 끝까지 지운다 el 커서 위치에서 라인 끝까지 지운다 smso 표준 출력 모드를 시작한다 rmso 표준 출력 모드를 종료한다 smul 밑줄 모드를 시작한다 rmul 밑줄 모드를 종료한다 rev 비디오를 역(흰색 바탕에 검정)으로 보여준다 sgr() 모든 속성을 해제한다

15 터미널에 관한 그 밖의 내용 lock1 프로그램 문제 해결하기

16 터미널에 관한 그 밖의 내용 lock1 프로그램 문제 해결하기 출력 메시지 지정하기 461페이지의 lock3 프로그램 참조
출력될 메시지를 사용자가 자유롭게 지정하도록 하기 위한 목적으로 프로그램을 개선 지정된 메시지를 lock3 프로그램에 넘겨 해당 메시지를 출력하도록 수정 461페이지의 lock3 프로그램 참조 14~19 라인에 if-then-else 구문을 추가하여 명령어에서 입력받는 메시지를 변수로 저장 24 라인에서 저장된 변수의 내용을 출력

17 그 밖의 명령들 다중 선택 : case 구문 명령 목록으로부터 명령의 집합을 선택적으로 실행하는 것이 가능
if-then-else 구문을 사용할 수 있지만, 다양한 조건이 요구될 경우 case 구문의 더 효율적 ex) case variable in pattern_1) commands_1 ;; pattern_2) commands_2 ;; *) default_commands ;; esac

18 그 밖의 명령들 다중 선택 : case 구문

19 그 밖의 명령들 인사 프로그램 다시보기

20 메뉴-방식 응용 교재 프로그램 소스 코드 및 설명 참조

21 요약 유닉스에서의 신호 조작 터미널 설정 및 기능 프로그램의 개선

22 질의 및 응답

23 실습 쉘 스크립트 예제의 작성과 실행


Download ppt "UNIX Unbounded A Beginning Approach"

Similar presentations


Ads by Google