Top

[유닉스, 리눅스, OS X 환경에서 사용할 수 있는]
셸 스크립트 프로그래밍 입문 4/e

  • 원서명Shell Programming in Unix, Linux and OS X: The Fourth Edition of Unix Shell Programming (4th Edition) (ISBN 9780134496009)
  • 지은이스티븐 코찬(Stephen Kochan), 패트릭 우드(Patrick Wood)
  • 옮긴이김용환
  • ISBN : 9791161751009
  • 35,000원
  • 2017년 12월 22일 펴냄
  • 페이퍼백 | 484쪽 | 188*235mm
  • 시리즈 : 오픈소스 프로그래밍

책 소개

요약

이 책은 POSIX 표준 셸 기반으로 작성되어 있고 유닉스 또는 유닉스와 비슷한 프로그래밍 환경에서 셸 프로그램 개발 방법에 대한 설명을 소개한다. 먼저, 셸 프로그램에 많이 사용 중인 유틸리티와 셸의 동작 원리를 설명한다. 또한 다양한 예제를 통해 리눅스의 전반적인 환경과 리눅스 기초 지식을 얻을 수 있다. 그리고 정규 표현식, 셸 사용 방법, 사용자 환경, 매개 변수 전달 방법, 함수 생성 방법, 셸 언어의 버전 차이점도 단계별로 설명한다. 마지막으로 POSIX 셸 환경이 아닌 비표준 셸(Korn 셸, Bash 셸) 기능, 호환성을 살펴본다. 셸 프로그래밍 개발 경험 여부와 상관없이 모두에게 도움이 될 것이다.
게다가 개발 환경과 서버 환경과 상관없이 개발자, 데브옵스, 시스템 엔지니어 모두 POSIX 표준 셸 환경에서 개발할 수 있다.

이 책에서 다루는 내용

■ 유닉스 시스템에서 제공되는 많은 유틸리티 활용하기
■ 강력한 셸 스크립트 작성법
■ 셸의 내장 의사 결정 구문과 루프 구문 사용
■ 셸의 강력한 따옴표 메커니즘 사용
■ 셸의 내장 히스토리와 커맨드 편집 기능 최대한 활용하기
■ 유닉스 커맨드에 정규 표현식 사용하기
■ Korn 셸과 Bash 셸의 특수 기능 활용
■ 셸 언어의 버전 간의 주요 차이점 확인
■ 유닉스 시스템이 사용자에 응답하는 방식 사용자 정의하기
■ 셸 환경 설정
■ 여러 함수 사용하기
■ 스크립트 디버깅

이 책의 구성

이 책은 사용자가 시스템과 커맨드라인의 기본 사항을 잘 알고 있다고 가정한다. 즉, 로그인 방법을 알고 있어야 할 뿐 아니라 파일의 생성, 편집, 삭제 방법과 디렉터리로 작업하는 방법을 알고 있다고 가정한다.
리눅스 또는 유닉스 시스템을 사용한 적이 없다면 1장, ‘기초 내용 빠르게 살펴보기’에서 기본적인 내용을 살펴본다. 또한 1장에서 파일 이름 대체, I/O 리디렉션, 파이프도 살펴본다.
2장, ‘셸이란?’에서는 셸의 실제 개념과 동작 원리를 설명하고, 운영체제와 상호작용하는 주요 방법이 어떻게 끝나는지 보여준다. 시스템에 로그인할 때마다 무슨 일이 발생하는지 살펴보고 셸 프로그램이 시작되는 방법, 커맨드라인을 구문 분석하는 방법, 다른 프로그램을 실행하는 방법을 다룬다.
3장, ‘필요한 도구’에서는 셸 프로그램 작성에 유용한 툴을 설명한다. 3장에서 다루는 커맨드는 cut, paste, sed, grep, sort, tr, uniq다. 틀림없이 해당 커맨드의 선택은 주관적이지만 이 책의 모든 부분에서 개발할 프로그램에서 사용된다. 또한 3장에서는 sed, grep, ed와 같은 많은 유닉스 커맨드에서 사용되는 정규식에 대해 자세히 설명한다.
4장에서 9장까지는 프로그램 작성에 도움을 주는 셸의 사용 방법을 설명한다. 즉, 커맨드를 직접 작성하는 방법, 변수를 사용하는 방법, 매개변수를 받을 수 있는 프로그램을 작성하는 방법, 결정하는 방법, 셸의 for, while, until과 루프 커맨드를 사용하는 방법, read 커맨드를 사용해 터미널 또는 파일에서 데이터를 읽는 방법을 다룬다.
5장, ‘따옴표’에서는 셸의 가장 흥미로운 부분 중 하나인 따옴표를 해석하는 방식에 대해 장 전체에 걸쳐 다룬다.
이 책의 9장까지 셸의 모든 기본 프로그래밍 구조를 다루기 때문에 여러분은 특정 문제를 해결할 수 있는 셸 프로그램을 작성할 수 있다.
10장, ‘사용자 환경’에서는 매우 중요한 주제로 셸이 작동하는 방식인 환경(environment)을 설명한다. 지역 변수, export 변수와 서브 셸, 그리고 HOME, PATH, CDPATH 같은 특수한 셸 변수와 .profile 파일을 설정하는 방법을 살펴본다.
11장, ‘매개변수 더 살펴보기’와 12장, ‘미진한 부분 살펴보기’에서는 일부 미진한 부분을 살펴보고 13장, ‘rolo 수정’에서는 책 전체에 걸쳐 개발된 rolo라는 전화번호부 프로그램의 최종 버전을 제공한다.
14장, ‘대화식 및 비표준 셸 기능’에서는 공식적으로 IEEE POSIX 표준 셸의 일부가 아니거나(대부분의 유닉스 및 리눅스 셸에서는 사용할 수 있음) 프로그램 대신 대화식으로 사용되는 셸의 기능에 대해 설명한다.
이 책의 철학은 예시를 통해 가르치는 것이다. 우리는 특정 기능의 사용 방법을 많은 말로써 설명하는 것보다 적절하게 선택된 예시를 통해 설명하는 것이 여러분이 이해하는 데 훨씬 효과적이라고 믿는다. ‘천 마디 말보다 한 번 보는 게 더 낫다.’라는 오래된 격언은 코딩에도 적용되는 것 같다.
여러분의 시스템에서 모든 예시를 입력하고 테스트해보길 권한다. 테스트를 진행하면서 셸 프로그래밍을 숙달할 수 있어야 한다. 실험하는 것을 두려워하지 말라. 프로그램 예시에서 커맨드를 변경해 커맨드의 결과를 확인하거나 다른 옵션 또는 기능을 추가해 프로그램을 좀 더 유용하고 견고하게 만들어보자.