Top

[101가지 예제로 정복하는]
셸 스크립트

  • 원서명Wicked Cool Shell Scripts (ISBN 9781593270124)
  • 지은이Dave Taylor
  • 옮긴이여인춘
  • 감수자강호관
  • ISBN : 8989975735
  • 25,000원
  • 2005년 09월 26일 펴냄 (절판)
  • 페이퍼백 | 488쪽 | 190*255mm

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

시스템 관리자의 필독서!
셸 스크립트를 모르고서 유닉스, 리눅스 시스템 관리를 논하지 말라!
101가지 실전 예제를 따라 하면서 배우는 셸 스크립트 문제 해결서!


셸은 컴퓨터와 대화할 수 있는 효율적인 방법을 제공한다. 셸 코드 몇 줄만으로도, 컴퓨터는 사용자가 원하는 일을 정확히 수행할 수 있다. 그러나 안타깝게도 대부분은 셸 스크립트가 파일과 시스템 운영 관리뿐 아니라 주요 업무에 두루 사용될 수 있다는 사실은 잘 모른다.

사용자의 필요에 맞게 언제든지 바꿀 수 있는, 재미있고 유용한 셸 스크립트에 관해 자세히 설명하고 있는 이 책은, 자주 일어나는 문제점에 대한 해결 방법과 컴퓨팅 환경을 자신에게 꼭 맞게 개선하는 툴을 제공한다. 101가지 스크립트 절에서는 바로 사용할 수 있는 스크립트와 스크립트의 동작 방식, 각각의 용도와 장점, 스크립트를 변경하고 확장하기 위한 제안 사항들을 담고 있다.

파일 사용, 시스템의 유지보수, 웹사이트 관리 시 스크립트를 사용하면 시간과 노력을 절약할 수 있다.

■ 문서의 오자나 입력 에러를 수정하는 대화식으로 동작하는 맞춤법 확인 스크립트
■ 시스템 충돌 시 파일을 안전하게 보관하는 디스크 백업 유틸리티
■ 사이트의 트래픽을 측정하고, 가장 인기 있는 페이지를 파악하며, 에러를 보고하는 웹 로그파일 분석 툴
■ 현재 온도와 자외선 지수를 비롯해, 인구, 위도, 경도와 같은 정보를 알려주는 날씨 추적 유틸리티
■ 행맨 게임과 같은 셸 스크립트 게임


<이 책의 대상>

다른 기술 서적들과 마찬가지로, ≪셸 스크립트 - 101가지 예제로 정복하는≫에 대한 중요한 문제는 “이 책을 여러분에게 권할 만한가”하는 것이다. 이 책은, 작업을 자동화하기 위해 유닉스나 리눅스, Mac OS X 셸을 어떻게 사용할 것인지를 알려주는 입문서는 아니다. test 명령과 함께 사용 가능한 모든 조건 검사를 나열하지도 않는다. 하지만 셸 스크립트의 비밀스러운 세계를 파고 들어 봤던 사람이라면 누구에게나 매력 있고, 흥미 진진하며, 도발적인 내용을 다루고 있다. 그저 셸 스크립트를 짜는 법만을 알고 싶다면, 인터넷에 널린 많은 참고 자료를 이용하면 된다. 하지만 그 자료들은 대부분 모두 따분하고, 단순하며, 재미없는 예제들만을 보여줄 뿐이다. 이에 반해 이 책은 실제적인 안내서가 되고자 했다. 즉 제대로 작성된 셸 스크립트 프로그램으로 해결할 수 있는, 다양한 작업들의 폭 넓은 범위 전체를 보여 주는 멋진 프로그램 목록인 셈이다. 몇 십 줄에서 백 여 줄에 이르는 길이로 된 이 책의 스크립트들은 매우 유용하며, 이를 이용해 사용자는 각자의 셸 스크립트를 짜고 시험해볼 수 있을 것이다. 이런 이야기들에 구미가 당긴다면, 이 책은 제 주인을 만난 것이다.

저자/역자 소개

<저자 소개>

Dave Taylor

Dave Talyor는 교육학 석사 학위와 MBA를 갖고 있다. ≪Learning UNIX for Mac OS X≫ (O`Reilly), ≪Solaris for Dummies≫(Wiley), ≪Teach Yourself Unix in 24 Hours≫(SMAS)를 포함한 십여 권의 기술 서적을 집필했으며, BSD 4.4 UNIX에 참여했다. 그의 소프트웨어는 수많은 주요 UNIX 배포판에 포함돼있다.


<저자 한 마디>

잠깐이라도 유닉스를 사용해 본 적이 있다면, 자주 사용하는 명령어의 기능을 확장하고, 동작 방식을 조정하며, 기본 플래그들을 바꾸거나, 일괄된 방식으로 단순한 업무들을 자동화하는 간단한 스크립트를 짜는 등은 다 해봤을 것이다. 곧 알게 되겠지만, 한두 개의 앨리어스(alias)를 만들었을 뿐일지라도, 이미 셸 스크립트 고수가 되는 길에 첫발을 내디딘 것이다.

필자는 매우 오랫동안 유닉스를 사용해왔는데, 살짝 조정하고 튜닝하거나 마음에 들도록 뜯어 고쳐 사용할 수 있다는 점에서 특히, 유닉스는 정말 멋진 운영체제다. 일상적인 작업들을 자동화하는 것부터 기존 유닉스 명령어들을 정교하고 사용자가 사용하기 쉬운 버전으로 고치고 유용한 목적을 위해 새로운 도구들을 만드는 것까지, 필자는 꽤 오랫동안 깔끔하고 짧은 셸 스크립트들을 만들어 왔다.

이 책은 셸의 놀라운 능력과 가능성을 이용해, 유닉스를 좀더 편안하고, 강력한 개인별 맞춤 컴퓨팅 환경이 되게 하는 것을 목표로 한다. C나 C++ 프로그램을 한 줄도 짜지 않고, 컴파일러나 로더(loader)도 한번 실행 하지 않고, 프로그램 설계와 방법론 관련 수업을 받을 필요도 없이, 대화식 계산기부터 주식 시세 모니터, 또한 아파치 로그 파일들을 손쉽게 분석하는 스크립트들까지, 정말 멋진 셸 스크립트들을 수십 개는 짤 수 있게 될 것이다.


<역자 소개>

여인춘

동국대학교 컴퓨터 공학과 석사과정을 수료했으며, 한글과 컴퓨터가 주최한 소프트웨어 공모전에서 은상을 수상하기도 했다. ㈜신도리코 기술연구소 선임연구원, ㈜유비봇의 기술담당 이사를 거쳐 현재는 외국에서 학업에 매진 중이다. 여러 권의 책을 집필했으며, 대표 역서로는 ≪임베디드 메모리 최적화 기법≫, ≪퀄컴브루 모바일 프로그래밍≫(에이콘출판 간) 등이 있다.


<역자 서문>

2005년 후반으로 치닫고 있는 요즘, 대부분의 사람들은 유닉스가 이제 한물갔다고 이야기 합니다. 개인용 운영체제에서는 이미 윈도우가 대세를 장악했고, 서버급에서도 이미 리눅스가 유닉스의 영역을 크게 잠식하고 있다는 얘기들을 합니다.
그러나 정말 유닉스라는 운영체제가 그 힘을 잃고 점점 사라지는 운영체제일까요? 실제 유닉스가 얼마나 사용되고 있으며, 유닉스의 점유율이 어느 정도인지 조사해보면 생각과는 완전히 반대라는 것을 알 수 있습니다.
개인용 운영체제에서는 윈도우에 대적하는 매킨토시 운영체제들의 코아(core)가 이미 유닉스로 되어 있으며, 서버 시장에서도 윈도우와 리눅스보다는 안정성과 성능 면에서 뛰어난 유닉스를 더욱 선호하고 있음을 알 수 있습니다. 더군다나 근래에 들어 점점 시장을 확대해가고 있는 리눅스는 유닉스와 사촌뻘되는 운영체제라고 볼 수 있습니다.
이와 같이 유닉스라는 운영체제가 아직도 건재하며, 앞으로도 그 영향력이 확대되어 가고 있음에도 불구하고, 소수를 제외하고는 유닉스 운영체제를 자유자재로 다루는 사람들은 극히 드문 실정입니다.

≪셸 스크립트 - 101가지 예제로 정복하는≫는 유닉스나 유닉스의 개념을 사용하고 있는 리눅스와 매킨토시의 OS X 운영체제에서 간단한 셸 스크립트만으로 얼마나 다양한 기능들을 구현할 수 있는지를 보여주고 있습니다.
이 책을 통해서 셸 스크립트를 익히고 나면 유닉스 운영체제의 장점과 특징을 배울 수 있을 것입니다. 또 이 책에서는 유닉스를 단순히 서버로만 사용하는 것이 아니라 좀 더 다양한 용도로 사용하기 위한 다양한 테크닉을 담고 있습니다. 더군다나 이 책에서 제공하고 있는 많은 예제 하나 하나는 별도의 소프트웨어로 사용해도 충분할 만큼 그 완성도가 높습니다.
그러나 이러한 프로그램들을 만들기 위해서 별도의 컴파일러나 각종 개발툴을 사용하지는 않습니다. 이 점이 바로 여타 유닉스 프로그래밍 서적과의 차이점이라고 할 수 있습니다.

실전 예제로 가득한 좋은 책을 통해 독자 여러분의 실력이 일취월장하기를 바라며, 마지막으로 원문과 소스코드도 꼼꼼히 확인해서 책의 완성도를 높여주신 감수자 강호관님께 감사드립니다.


<감수자 소개>

강호관

포항공과 대학교 컴퓨터공학과와 동 대학원을 졸업했으며 방화벽 개발을 비롯한 보안 관련 개발 경력이 있다. 현재 보안 관련 업체에서 방화벽 개발과 OS와 연관된 업무를 수행하고 있다.

목차

목차
  • 1장. 기본 라이브러리 만들기
    • # 1 PATH에서 프로그램 검색
    • # 2 입력 확인: 알파벳과 숫자만으로 구성된 입력 허용
    • # 3 날짜 포맷 표준화
    • # 4 큰 숫자의 출력 형식 개선
    • # 5 정수 입력 확인
    • # 6 부동소수점 입력 확인
    • # 7 날짜 포맷 확인
    • # 8 서투른 echo 구현 피하기
    • # 9 arbitrary-precision 부동소수점 계산기
    • # 10 파일 locking
    • # 11 ANSI 색상 정의
    • # 12 셸 스크립트 라이브러리 구축
    • # 13 셸 스크립트 디버깅
  • 2장. 사용자 명령의 개선
    • # 14 길이가 긴 행의 정리
    • # 15 삭제된 파일 임시 저장
    • # 16 삭제 파일 아카이브 사용
    • # 17 파일 삭제에 대한 로그 작성
    • # 18 디렉터리 내용의 화면 출력
    • # 19 파일명을 이용한 파일 검색
    • # 20 다른 시스템 환경의 모방: DIR
    • # 21 Man 페이지 데이터베이스의 활용
    • # 22 다른 시간대의 시간 표시
  • 3장. 유틸리티 작성
    • # 23 Reminder 유틸리티
    • # 24 대화식 계산기
    • # 25 개별 단어의 맞춤법 검사
    • # 26 대화식 맞춤법 검사 기능
    • # 27 로컬 사전 추가
    • # 28 온도 변환
    • # 29 대출금 상환액 계산
    • # 30 이벤트 기록
  • 4장. 유닉스 길들이기
    • # 31 파일 행 번호 출력
    • # 32 파일에 대한 추가 정보 출력
    • # 33 긴 행의 래핑
    • # 34 Quota를 사용한 GNU 방식의 플래그 구현
    • # 35 ftp와 유사한 형태로의 sftp 변경
    • # 36 grep 수정
    • # 37 압축 파일 사용
    • # 38 최대로 압축된 파일 선택
  • 5장. 시스템 관리: 사용자 관리
    • # 39 디스크 사용량 분석
    • # 40 디스크 사용량 초과의 보고
    • # 41 사용 가능한 디스크 공간 계산
    • # 42 df 출력 결과의 가독성 개선
    • # 43 안전한 locate의 구현
    • # 44 사용자 추가
    • # 45 사용자 계정 일시 중지
    • # 46 사용자 계정 삭제
    • # 47 사용자 환경 확인
    • # 48 guest 로그아웃 후의 정리
  • 6장. 시스템 관리: 시스템의 유지와 보수
    • # 49 Set User ID 애플리케이션 추적
    • # 50 시스템 날짜 설정
    • # 51 서비스의 활성화 여부 표시
    • # 52 이름을 사용한 프로세스 강제 종료
    • # 53 사용자 crontab 항목 확인
    • # 54 시스템의 cron 작업이 실행되도록 보장하기
    • # 55 로그 파일의 로테이션
    • # 56 백업 관리
    • # 57 디렉토리 백업
  • 7장. 웹과 인터넷 사용자
    • # 58 온라인 상태에서의 소요시간 계산
    • # 59 FTP를 사용한 파일 다운로드
    • # 60 lynx로 하는 BBC 뉴스 따라잡기
    • # 61 웹페이지에서의 URL 추출
    • # 62 온라인 상의 단어 정의
    • # 63 날씨 정보 추출
    • # 64 도서관에서 연체 도서 확인하기
    • # 65 IMDb에서 영화정보 가져오기
    • # 66 통화 가치 계산
    • # 67 주식 포트폴리오 추적
    • # 68 웹페이지 변경내용 추적
  • 8장. 웹 마스터가 직면하는 문제
    • 8장에서 다루는 스크립트 실행
    • # 69 CGI 환경 살펴보기
    • # 70 웹 이벤트의 로그
    • # 71 동적인 웹 페이지 구성
    • # 72 연락처 폼 처리
    • # 73 웹 기반의 포토 앨범 만들기
    • # 74 방명록 만들기
    • # 75 텍스트 기반 웹페이지 카운터 만들기
    • # 76 무작위로 텍스트 보여주기
  • 9장. 웹과 인터넷 관리
    • # 77 손상된 내부 링크 식별
    • # 78 손상된 외부 링크 보고
    • # 79 웹페이지 맞춤법 확인
    • # 80 아파치 패스워드 관리
    • # 81 디렉토리를 FTP와 동기화하기
    • # 82 ftp로 원격 디렉토리와 동기화하기
    • # 83 파일을 SFTP와 동기화하기
  • 10장 인터넷 서버 관리
    • # 84 아파치 서버의 access_log 다루기
    • # 85 검색엔진 트래픽의 이해
    • # 86 아파치 서버의 error_log 다루기
    • # 87 외부 저장 시스템 보호
    • # 88 웹 사이트 미러링
    • # 89 FTP 사용량 체크
    • # 90 네트워크 상태 모니터링
    • # 91 프로세스 이름으로 태스크의 우선순위 변경하기
    • # 92 새로운 가상 호스트 계정 추가
  • 11장. Mac OS X 스크립트
    • # 93 NetInfo 사용자의 리스트
    • # 94 Mac OS X 시스템에 사용자 추가
    • # 95 이메일 앨리어스 추가
    • # 96 동적 터미널 타이틀 세팅
    • # 97 아이튠즈 라이브러리의 요약 목록 생성
    • # 98 open 명령어의 간편한 사용
  • 12장. 셸 스크립트 게임
    • # 99 암호 해독: 단어 게임
    • # 100 제한된 시간 내에 단어 추측하기: 행맨 게임

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안