본문내용 바로가기
무료배송 이벤트 사은품 경품 소득공제

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

오픈소스 프로그래밍 | 4판
스티븐 코찬 , 패트릭 우드 지음 | 김용환 옮김 | 에이콘출판 | 2017년 12월 22일 출간
  • 정가 : 35,000원
    판매가 : 31,500 [10%↓ 3,500원 할인]
  • 통합포인트 :
    [기본적립] 1,750원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 3만원 이상 구매 시 2~4% 추가적립
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    11월 18일 출고 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 행사도서 포함 IT 분야 3만원 이상 구매시 개발자 텀블러티슈 ..
    2019.11.05 ~ 2019.12.31
  • 개발자로 입문하기: 일단 이것부터 읽어보자!
    2019.05.31 ~ 2020.12.31
  • 에이콘의 도서를 한 눈에 살펴보세요
    2017.11.23 ~ 2020.12.31
  • #리드잇 페이스북 페이지 팔로우 하시고, 신간소식 빠르게 받아보..
    2017.06.22 ~ 2025.07.31
  • MANNING, O'REILLY, PACKT, WILE..
    2016.03.07 ~ 2020.12.31
  • 설문참여 시 매월 5명 추첨통해 선물을 드립니다.
    10. 14 ~ 12. 31
상품상세정보
ISBN 9791161751009(1161751009)
쪽수 484쪽
크기 190 * 236 * 26 mm /908g 판형알림
이 책의 원서/번역서 Shell Programming in Unix, Linux and OS X: The Fourth Edition of Unix Shell Programming (4th Edition/Kochan, Stephen G.

책소개

이 책이 속한 분야

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

이 책의 총서

총서 자세히 보기

저자소개

저자 : 스티븐 코찬

저자 스티븐 코찬(Stephen Kochan)은 『처음 시작하는 C 프로그래밍』(정보문화사, 2015), 『오브젝티브-C 2.0』(인사이트, 2013), 『Topics in C Programming』(Wiley, 1991), 『Exploring the Unix System』(Prentice Hall, 1992) 등 유닉스와 C 언어를 다룬 베스트셀러의 저자 및 공저자다. 이전에는 AT&T 벨 연구소(Bell Laboratories)의 소프트웨어 컨설턴트로 일하면서 유닉스 및 C 프로그래밍 수업을 개발하고 가르쳤다.

저자 : 패트릭 우드

저자 패트릭 우드(Patrick Wood)는 뉴저지에 위치한 EFI(Electronics for Imaging)의 CTO다. 1985년, 코찬을 만났을 때 벨 연구소의 기술 직원 중 한 명이었다. 코찬과 함께 유닉스 컨설팅 회사인 파이프라인 어소시에츠 사(Pipeline Associates, Inc.)를 설립하고 부사장을 지냈다. 『Exploring the Unix System』(Prentice Hall, 1992, 『Unix System Security』(Prentice Hall Computer, 1986), 『Topics in C Programming』(Wiley, 1991), 『Unix Shell Programming』(Sams, 2003)을 공동 저술했다.

저자가 속한 분야

역자 김용환은 네이버, 라인(Line)을 거쳐 카카오(Kakao)에서 개발자로 일하고 있다. 현재 마흔두 살의 평범한 개발자로 다양한 도전에서 에너지를 얻으며, 개발과 실무 경험을 블로그에 기록하고 있다. 에이콘출판사의 『Ansible 설정 관리』(2015), 『ElasticSearch Cookbook 2/e』(2016), 『Redis 핵심정리』(2016), 『CentOS 7 리눅스 서버 쿡북』(2016), 『하이브 핵심정리』(2017), 『일래스틱서치 고급 기능의 개념과 활용』(2017), 『SMACK 스택을 이용한 빠른 데이터 처리 시스템』(2017)을 번역했다.

김용환님의 최근작

작가의 말

★ 지은이의 말 ★
유닉스와 유닉스 계열의 운영체제는 지난 수십 년 동안 컴퓨팅 분야에서 가장 널리 보급돼 사용되는 운영체제군으로 떠올랐다. 수년 동안 유닉스를 사용해온 프로그래머들에게 이는 놀라운 일이 아니었다. 또한 유닉스 시스템은 프로그램 개발을 잘할 수 있도록 우아하고 효율적인 환경을 제공한다. 1960년대 후반, 벨 연구소에서 데니스 리치(Dennis Ritchie)와 켄 톰프슨(Ken Thompson)이 유닉스를 개발했을 때 그들은 바로 이런 것을 만들어내고자 했다.
유닉스 시스템의 가장 강력한 기능 중 하나는 광범위한 프로그램들이다. 200개 이상의 기본 커맨드는 표준 운영체제와 함께 배포되고 리눅스는 종종 700~1,000개의 표준 커맨드가 함께 제공된다! 해당 커맨드(툴이라고도 함)는 파일의 라인 수를 계산하는 것부터 전자 메일 보내기와 원하는 연도의 달력 표시 등 모든 작업을 수행한다.
그러나 유닉스 시스템의 진정한 강점은 큰 커맨드 집합이 아니라 우아하고 쉽게 해당 커맨드들을 결합해 훨씬 더 정교한 작업을 수행할 수 있다는 것이다.
유닉스의 표준 사용자 인터페이스는 커맨드라인이고 실제로 셸(shell)이다. 셸은 사용자와 시스템 자체(커널)의 가장 낮은 레벨 사이에서 버퍼 역할을 하는 프로그램이다. 셸은 사용자가 입력한 커맨드를 읽고 해당 커맨드를 시스템에서 쉽게 이해할 수 있는 형식으로 변환하는 프로그램이다. 또한 뭔가를 결정하고 루프를 돌며 변수에 값을 저장할 수 있는 핵심 프로그래밍 구문을 포함한다.
유닉스 시스템과 함께 배포되는 표준 셸은 AT&T 배포본에서 파생됐는데, 원래 벨 연구소의 스티븐 본(Stephen Bourne)이 작성한 버전에서 시작됐다. 그 이후 IEEE는 Bourne 셸과 다른 최신 셸을 기반으로 표준 셸을 만들었다. 해당 표준의 현재 버전은 POSIX 표준이라고도 알려진 IEEE Std 1003.1-2001의 Shell and Utilities 볼륨이다. 표준 셸은 이 책의 모든 부분을 위한 기초로 사용된다
이 책의 예시는 맥 OS X 10.11 기반의 맥, 우분투 리눅스(Ubuntu Linux) 14.0, Sparcstation Ultra-30에서 실행되는 SunOS 5.7의 이전 버전에서 테스트 됐다. 14장의 Bash 예시를 제외한 모든 예시는 Korn 셸을 사용해 실행됐지만 Bash와도 모두 잘 작동한다.
셸은 해석 프로그래밍 언어며, 프로그램을 쉽고 빠르게 작성하고 수정하고 디버깅할 수 있다. 첫 번째 프로그래밍 언어로 셸을 선택하길 바라며, 셸 프로그래밍에 익숙해진 후에도 계속 사용하길 바란다.

★ 옮긴이의 말 ★
리눅스는 무료 운영체제지만 안정성이 좋아 많은 회사에서 서버 환경으로 사용되고 있다. 이제 리눅스를 쓰지 않는 IT 회사는 찾아보기 어렵다. 또한 개발과 운영을 동시에 진행해야 하는 데브옵스라면 리눅스는 필수로 알아야 할 운영체제가 되고 있다.
프로그래밍 언어를 사용해 개발된 애플리케이션을 리눅스에서 실행하고 관리하기 위해서는 간단하게 리눅스에 대한 기본 지식을 습득하고 셸 프로그래밍을 기본적으로 해야 한다.
게다가 최근 많은 IT 회사에서 개발자 직군에게 유닉스 계열의 OS X가 설치된 맥북을 지급하고 있다(또한 디자이너 직군과 개발자 직군 뿐 아니라, 일반 기획자와 사무직 직군에게도 지급되고 있어서 맥의 OS X를 알아야 하는 상황이다). 따라서 서버 환경에서만 작업할 수 있는 환경이 로컬 환경에서도 동일하게 구축할 수 있게 됐다. 데브옵스, 클라우드, 도커 기술이 보편화하면서 특히 셸 프로그래밍은 기본적으로 알아야 할 내용이 됐다. 이제는 피해갈 수 없다. 선택이 아닌 필수 지식에 가까워서 부담스러울 수 있겠지만 독자 여러분들이 즐겁게 배우고 리눅스를 깊이 알아가면 좋겠다.
이 책은 셸 프로그래밍을 배우길 원하는 개발자, 시스템 엔지니어, 일반인에게도 도움이 된다. 게다가 이 책의 예제와 설명은 유닉스, 리눅스, OS X 모두를 지원하는 POSIX 표준 셸을 기반으로 한다. 따라서 이 책에서 배운 기술을 대부분의 유닉스 계열 운영체제에서 사용할 수 있다. 많은 유틸리티와 셸 프로그래밍 기술 등 현업에서 적용할 만한 내용이 이 책에 가득하다. 훌륭한 책인 만큼 여러분에게 추천하고 싶다.
나는 리눅스를 평생 친구로 생각해왔다. 특히 윈도우보다 리눅스를 좋아한다. 아마도 대학생일 때, 학교에 있는 유닉스 터미널에서 MUD 게임을 하면서 점점 유닉스 운영체제에 관심을 갖게 된 것 같다. 그리고 조금씩 리눅스 유틸리티와 셸 프로그래밍에 대해 배운 내용을 블로그에 정리하기 시작했다. 이전 직장에서는 리눅스를 조금 안다는 이유로 커널 디바이스 프로그래밍을 해볼 좋은 기회를 얻었다.
리눅스 유틸리티를 알고 리눅스의 동작 방식을 이해하고 때로는 커널 내부 구조를 공부하며 리눅스 지식을 넓히는 것이 좋았다. 아무래도 리눅스 운영체제가 내 말을 알아듣고 내가 원하는 동작

목차

1장. 기초 내용 빠르게 살펴보기
__기본 커맨드
____날짜와 시간 출력: date 커맨드
____로그인된 사용자 확인: who 커맨드
____문자 출력: echo 커맨드
__파일 작업
____파일 출력: ls 커맨드
____파일 내용 출력: cat 커맨드
____파일의 단어 수 계산: wc 커맨드
____커맨드 옵션
____파일 복사: cp 커맨드
____파일 이름 변경: mv 커맨드
____파일 삭제: rm 커맨드
__디렉터리에서 작업
____홈 디렉터리와 경로 이름
____작업 디렉터리 출력: pwd 커맨드
____디렉터리 변경: cd 커맨드
____ls 커맨드
____디렉터리 생성: mkdir 커맨드
____특정 파일을 다른 디렉터리로 복사
____디렉터리 간 파일 이동
____파일 링크: ln 커맨드
____디렉터리 삭제: rmdir 커맨드
__파일 이름 대체
____별표
____일치하는 단일 문자
__파일 이름의 미묘한 차이
____파일 이름의 공백
____기타 특이한 문자
__표준 입력/출력과 I/O 리디렉션
____표준 입력과 표준 출력
____출력 리디렉션
____입력 리디렉션
__파이프
____필터
__표준 에러
__추가 커맨드
____한 라인에 하나 이상의 커맨드를 입력
____커맨드를 백그라운드로 실행하기
____ps 커맨드
__커맨드 요약

2장. 셸이란?
__커널과 유틸리티
__로그인 셸
__셸에 커맨드를 입력
__셸의 책임
____프로그램 실행
____변수와 파일 이름 대체
____I/O 리디렉션
____파이프라인 연결
____환경 제어
____인터프리터 프로그래밍 언어

3장. 필요한 도구
__정규 표현식
____모든 문자와 일치: 마침표(.)
____라인의 시작과 일치: 캐럿(^)
____라인의 끝과 일치: 달러 기호($)
____문자 집합과 일치: […] 구문
____0개 이상의 문자와 일치: 별표(*)
____하위 패턴의 정확한 숫자와 일치 :\{...\}
____일치하는 문자 저장: \(...\)
__CUT
__PASTE
__sed
__tr
__grep
__sort
__uniq

4장. 함께 가는 여행
__커맨드 파일
____주석
__변수
____변수의 값 출력하기
____정의되지 않은 변수는 널 값을 가진다
____파일 이름 대체와 변수
____${variable} 구문
__내장 정수 연산

5장. 따옴표
__작은따옴표
__큰따옴표
__역슬래시
____역슬래시를 사용해 여러 라인에 걸쳐 커맨드 실행하기
____큰따옴표 내의 역슬래시
__커맨드 대체
____역따옴표
____$(...) 구문
____expr 커맨드

6장. 매개변수 전달하기
__$# 변수
__$* 변수
__전화번호부에서 특정 인물을 찾는 프로그램
__전화번호부에 특정 인물을 추가하는 프로그램
__전화번호부에서 특정 인물을 삭제하는 프로그램
____${n}
__shift 커맨드

7장. 결정, 결정
__종료 상태
____$? 변수
__test 커맨드
____문자열 연산자
____test에 대한 대체 형식
____정수 연산자
____파일 연산자
____논리 부정 연산자 !
____논리 AND 연산자 -a
____괄호
____논리 OR 연산자 -o
__else 구문
__exit 커맨드
____rem 프로그램 다시 살펴보기
__elif 구문
____rem의 다른 버전
__case 커맨드
____특수 패턴 매칭 문자
____프로그램을 디버깅할 수 있는 -x 옵션
____case 살펴보기
__널 커맨드 :
__&&와 || 구문

8장. 루프
__for 커맨드
____$@ 변수
____리스트 없는 for
__while 커맨드
__until 커맨드
__루프 더 살펴보기
____루프에서 나가기
____루프에서 나머지 커맨드 건너뛰기
____백그라운드로 루프 실행하기
____루프에서의 I/O 리디렉션
____루프 안팎으로 데이터를 파이프로 연결하기
____한 라인에서 루프 실행하기
__getopts 커맨드

9장. 데이터를읽고출력하기
__read 커맨드
____파일을 복사하는 프로그램
____문자를 이스케이프 처리하는 특별한 echo
____mycp를 개선한 버전
____mycp의 최종 버전
____메뉴로 구동되는 전화번호부 프로그램
____$$ 변수와 임시 파일
____read의 종료 상태
__printf 커맨드

10장. 사용자환경
__지역 변수
____서브셸
__export 변수
____export -p
__PS1과 PS2
__HOME
__PATH
__현재 디렉터리
____CDPATH
__서브셸의 추가 정보
____. 커맨드
____exec 커맨드
____(...)와 {...;} 구문
____서브셸에 변수를 전달할 수 있는 다른 방법
__.PROFILE 파일
____term 변수
____TZ 변수

11장. 매개변수 더 살펴보기
__매개변수 대체
__$0 변수
__set 커맨드
__IFS 변수
__READONLY 커맨드
__unset 커맨드

12장. 미진한 부분 살펴보기
__eval 커맨드
__wait 커맨드
____$! 변수
__trap 커맨드
____매개변수 없는 trap
____시그널 무시하기
____trap을 재설정하기
__I/O 추가 정보
____<&-와 >&-
____인라인 입력 리디렉션
____셸 아카이브
__함수
____함수 정의 제거
____return 커맨드
__type 커맨드

13장. rolo 수정
__데이터 형식에 대한 고려 사항
__rolo
__add 프로그램
__lu 프로그램
__display 프로그램
__rem 프로그램
__change 프로그램
__listall 프로그램
__예시 결과

14장. 대화식 및 비표준 셸 기능
__올바른 셸 얻기
__ENV 파일
__커맨드라인 편집
__커맨드 히스토리
__vi 라인 편집 모드
____히스토리에서 커맨드 접근하기
__emac 라인 편집 모드
____커맨드 히스토리의 커맨드에 접근하기
__커맨드 히스토리에 접근할 수 있는 또 다른 방법
____history 커맨드
____fc 커맨드
____r 커맨드
__함수
____지역 변수
____자동으로 로드되는 함수
__정수 산술 연산
____정수 타입
____여러 진수의 숫자
__alias 커맨드
____앨리어스 삭제하기
__배열
__작업 제어
____멈춰진 작업과 fg 및 bg 커맨드
__기타 기능
____cd 커맨드의 기타 기능
____물결표 대체
____검색 순서
__호환성 요약

출판사 서평

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

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서번역서

안내

이 분야의 베스트

더보기+

이 분야의 신간

  • 테런스 J. 세즈노스키
    22,500원
  • 길벗R&D
    32,400원
  • 블레이크 J. 해리스
    25,200원
  • 길벗R&D
    19,800원
  • 길벗R&D
    15,300원
더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품