쉘(Shell)과 쉘 스크립트(Shell Scripts)
목차
- 쉘이란?
- 쉘의 기능들은?
- 여러 쉘들
- 하위 쉘들 – 자식 프로세스들
- 하위 쉘 처리 절차
- 쉘 스크립트는?
- 스크립트 작성
- 프로그래밍 용어
- 논리적 흐름 제어
- 쉘 스크립트 예제
- 정리
쉘이란?
- 컴파일된 프로그램
- 사용자와 운영체제(커널)간의 인터페이스를 제공
- 각 사용자를 위해 운영체제는 하나의 쉘 제공
- 로그인
- 터미널 실행
- 콘솔창
- 컴퓨터의 운영 전반을 제어할 수 있음.
- 역할 관계
- 그림과 같이 커널을 접근할 수 있는 시스템 인터페이스들을 사용자 인터페이스 프로그램들이 (System Call로) 접근할 수 있다.
쉘의 기능들은?
- 명령줄 해석 기능
- 예) 프로세스 상태를 첫번째 열로 정렬한 결과를 페이지 단위로 확인
-
ps -ef | sort +1 | more
-
- 예) 프로세스 상태를 첫번째 열로 정렬한 결과를 페이지 단위로 확인
- 프로그래밍 언어
- 특정 파일이나 프롬프트의 명령들을 통해서 절차적 언어를 작성할 수 있다.
- 사용자 환경
- 환경 설정
- umask – 생성되는 파일의 접근 기본 권한 설정
- PATH – 실행 파일을 찾는 경로 설정
- …
- 환경 설정
여러 쉘들
- 다양한 쉘들이 존재
- Bourne Shell(sh)
- AT&T Bell 연구소의 Steve Bourne에 의해 작성됨
- 유닉스 쉘의 기원
- 특징
- 히스토리 지원
- 내부 산술식 처리
- 논리 표현식 처리
- 보통 위치
- /bin/sh
- /sbin/sh
- 기본 프롬프트 : $
- root 는 #
- C Shell(csh)
- 캘리포니아 버클리 대학에 Bill Joy에 의해 작성됨
- 특징
- aliases
- 명령 history
- C 문법과 비슷한 구조를 사용
- 내부 산술 연산 명령들 갖음
- Bourne Shell 보다 크고 느림
- 보통 위치
- /bin/csh
- 기본 프롬프트 : <hostname> %
- root 는 <hostname> #
- Korn Shell(ksh)
- AT&T Bell 연구소의 David Korn에 의해 작성됨
- Bourne Shell 기능 모두 제공
- 추가 기능
- C Shell의 인터렉티브 특성을 갖음
- 프로그래밍 편의 기능 제공
- 내부 산술기능, C와 유사한 배열 사용
- 함수들
- 문자열 변환기능
- C Shell 보다 빠름
- 보통 위치
- /bin/ksh
- 기본 프롬프트 : $
- root 는 #
- GNU Bourne-Again Shell(bash)
- 일명 “배쉬쉘”
- 리눅스의 기본 쉘
- 기능
- Korn 쉘, C 쉘의 유용한 기능들 제공
- 방향키를 이용한 명령 재호출 및 수정 기능 강화
- 기타 쉘
- Desktop Korn Shell(dtksh)
- Job Control Shell(jsh)
- Restricted Shell Command Interpreter(rsh)
- Enhanced C Shell(tcsh)
- Z Shell(zsh)
하위 쉘들 – 자식 프로세스들
(작성중)
하위 쉘 처리 절차
(작성중)
쉘 스크립트는?
(작성중)
스크립트 작성
(작성중)
프로그래밍 용어
(작성중)
논리적 흐름 제어
(작성중)
쉘 스크립트 예제
(작성중)
정리
(작성중)