배시 셸 시작하기
모든 것에는 기본이 있고, 리눅스의 기본은 바로 배시 셸이다. 이 책은 배시의 뛰어난 기능과 정보, 셸 프로그래밍을 완벽하게 안내한다. 『배시 셸 시작하기』에서는 배시 셸의 최신 2.0 버전을 중심으로 다룬다. 하지만 배시 버전 1.x의 내용도 참고할 수 있도록 주석으로 보충하였다. 또한 본문에서 사용한 예제는 실용적이기 때문에 실무에서 바로 활용할 수 있는 장점이 있다.
- 저자 : 캐머런 뉴햄 , 빌 로젠블랫
- 번역 : 배장렬
- 출간 : 2001-07-25
대상 독자층
『배시 셸 시작하기』는 배시 셸이 기본인 리눅스를 처음 접하는 초보자, 상용 유닉스에 있는 기본 셸에 만족하지 못하는 중급 이상 사용자, 본 셸 계열(sh, ksh) 스크립트를 많이 작성하는 개발자를 대상으로 한 책이다. 별 생각 없이 리눅스 운영체제에 로그인해서 사용하는 사람이라면 이 책을 통해 공기와 같이 없어서는 안되지만 보이지 않는 셸의 존재를 파악할 수 있으리라 기대한다. 보다 구체적으로 이 책은 다음 사용자들에게 적합하다.
* 셸을 어떻게 요리해야 좋을지 우왕좌왕하는 초급 사용자
* 펄을 사용하기에는 번잡하고 그냥 수작업으로 하기에는 시간 낭비라는 생각이 드는 반복 작업을 많이 하는 시스템 관리자
* 셸 프로그램 디버깅에 골치를 앓고 있는 프로그래머
* 기존 사용하고 있는 셸에 불만이 있는 사용자
* 프로세스와 파일 입출력과 관련한 유닉스 구조를 알고 싶어하는 호사가
* 셸을 만들기 위해 자료를 수집하고 있는 개발자
주요 내용
『배시 셸 시작하기』는 크게 세 갈래로 나뉜다. 1부는 상호 대화식으로 동작하는 해석기에 대해 설명하고 2부는 스크립트 언어 관점에서 어떻게 프로그래밍을 하는지 설명한다. 마지막으로 3부는 배시를 관리하고 운영체제 환경에 맞추어 컴파일하는 방법을 설명한다. 각 장에서 다루는 내용은 다음과 같다.
1장. 배시 기본
2장. 명령행 편집
3장. 사용자 환경 설정
4장. 기본 셸 프로그래밍
5장. 흐름 제어
6장. 명령행 옵션과 유형 변수
7장. 입출력과 명령행 처리
8장. 프로세스 다루기
9장. 셸 프로그래밍 디버깅
10장. 배시 관리
11장. 시스템에 맞는 배시
그리고 부록으로 관련 셸, 참고 목록, 적재할 수 있는 내장 함수, 문법, 예제 프로그램 구하기를 다룬다.
또한 이 책은 중간중간에 독자를 위한 연습문제가 있으므로 퍼즐을 좋아하는 독자라면 한번쯤 도전할만하다.
내용 평가
이 글을 쓰는 본인은 지금도 상호 대화식 환경에서는 C 셸을 스크립트 언어를 위해서는 본 셸을 사용하고 있다. 이렇게 하는 이유를 단순히 개인 취향으로 넘겨버리면 웃고 넘어갈 수도 있지만, 본 셸은 상호 대화식 지원이 너무나도 미약하고 C 셸은 스크립트 프로그램을 작성하기가 본 셸에 비해 제법 까다롭다(‘C” 스타일 구문으로 인해)는 배경 지식을 알고 있다면 마냥 웃을 일만은 아닌 셈이다.
본 셸과 C 셸을 합치면 어떤 모습이 될까? 이미 예상하고 있겠지만 정답은 바로 배시 셸이다. 배시 셸은 교묘하게 본 셸과 C 셸의 장점을 결합한 특성을 제공한다. 강력한 상호 대화식 셸 환경은 물론이고 편리한 스크립트 언어 작성까지 지원하고 있으므로 C 셸(상호 대화식 해석기)과 본 셸(셸 스크립트 언어)을 고집하던 본인도 드디어 리눅스는 물론이고 일반 유닉스 환경에서조차 배시 셸을 쓰기로 결심했다. 물론 이러한 결정 뒤에는 『배시 셸 시작하기』라는 책이 버티고 있다.
『배시 셸 시작하기』는 리눅스를 포함한 여러 유닉스 환경에서 무리 없이 돌아가는 배시 셸에 대해 기초부터 응용까지 차근차근 설명하고 있다. 특히 리눅스 환경을 사용하는 분들이라면 기본으로 장착된 배시 셸과 친숙해져야 하므로, 이 책이 더욱 진가를 발휘한다. 특히 아직도 도스 환경에서 발을 떼기가 무서운 분들이라면 당장 서점에서 이 책 1장을 훑어보면 속이 시원해지는 느낌이 온다.
어느 정도 배시 셸을 사용할 수 있는 중급자라면 이 책을 통해 표준적인 셸 스크립트 프로그래밍 기술 습득과 디버깅에 대해 깔끔하게 정리할 수 있는 계기를 마련할 수 있다. 다른 오라일리 책과는 달리 『배시 셸 시작하기』는 코드 조각이 아니라 실제로 실행할 수 있는 예제를 많이 담고 있으므로, “보고 따라하기”에 이미 충분히 익숙해진 국내 독자들에게 충분히 매력이 있다.
최고급 사용자라면 아마도 배시 셸 내부 명령을 확장하는 방법을 설명하고 있는 부록으로 눈길이 끌릴지도 모르겠다. 하지만 책에서 다루는 일반적인 내용에 대해서는 최고급 사용자가 별로 재미를 보지 못할 가능성이 높다.
번역 상태
본문과 예제에 대한 오자나 탈자는 그다지 심각하지 않으므로 번역에 나름대로 신경을 썼음에 분명하다. 하지만, 전반적으로 ‘~ 것’, ‘~ 일’ 등의 수동태 표현이 너무 많아서 문장력이 떨어진다는 느낌을 지울 수 없다. 책을 읽다 보면 논리적인 연관관계를 따라가는 도중 답답하다는 생각이 들 때가 있다. 오라일리 책의 특징은 명료성과 정확성인데 이러한 특징을 무색하게 만드는, 몇 번에 걸쳐 읽어봐야 가까스로 이해할 수 있는, 매끄럽지 못한 부분이 여기저기 눈에 들어온다.
기술적 정확성, 가독성, 편집 상태
번역에 문제가 조금이라도 있으면 대부분 기술적인 정확성도 더불어 떨어진다. 『배시 셸 시작하기』 역시 이러한 함정에 빠진 것 같아 씁쓸하다. 책을 읽다 중간에 명쾌하지 않은 설명 부분을 찾을 수 있었다. 일례로 8장의 경우에는 설명이 명확하게 되지 않아 초보자들에게 혼동을 줄 가능성도 있다. 모든 소프트웨어 매뉴얼이나 참고서가 다 그렇듯이 본문을 읽다 의심이 생기면 컴퓨터 앞에 앉아 직접 수행해보고 비교하는 방법이 뭐니뭐니 해도 최고다.
다행히도 역자주는 비교적 적시 적소에 잘 달았다고 평하고 싶다. 여러 모로 『vi 시작하기』와 비교할 수 있는 책이다. ;)
가독성과 편집 상태는 전반적으로 양호하다. 하지만 예제 코드는 문제 없으나 본문에 사용한 따옴표가 혼동을 일으킬 가능성이 높다. 셸 프로그램을 설명할 때는 따옴표 하나가 큰 혼동을 줄 수도 있으므로 항상 신경을 써야 한다. 각주와 표 편집은 과거에 비해 확실하게 개선이 이루어졌다. 하지만 주석 부문 폰트는 조금만 덜 강조되었으면 더욱 좋았을 터이다.
최종 검토 의견
번역이 마음에 들 정도로 완벽하게 매끄럽지는 못하다는 단점을 제외하고는 『배시 셸 시작하기』는 배시 셸을 익히려는 초보자들은 물론이고 셸 스크립트를 작성하는 중급 관리자/개발자에게 필요한 여러 유용한 정보를 담고 있다. 특히 리눅스/유닉스에 처음 입문했다면 도스 command.com(내장 명령과 배치 파일 작성법)과 비교하면서 책을 처음부터 끝까지 한번 읽어보기 바란다. 이 책을 읽고 나면 아마도 리눅스/유닉스에 대한 두려움이 싹 사라지지 않을까하는 엉뚱한 상상을 해본다.
이 책과 『vi 시작하기』 두 권만 읽으면 일단 리눅스/유닉스 환경에서 원하는 작업을 할 수 있다는 자신감이 생기리라 확신한다.