유닉스 리눅스 셸 스크립트 예제 사전
도서+교보Only(교보배송)을 함께 15,000원 이상 구매 시 무료배송
15,000원 미만 시 2,500원 배송비 부과
20,000원 미만 시 2,500원 배송비 부과
15,000원 미만 시 2,500원 배송비 부과
1Box 기준 : 도서 10권
알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.
알립니다.
- 거래처 품절 상태로 재고수량이 충분치 않아 조기 품절될 수 있으며, 상품 상태가 깨끗하지 않을 수 있습니다. 양해 부탁드립니다.
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

책 소개
이 책이 속한 분야
작가정보
저자(글) 오스미 유스케
저자 오스미 유스케는 오사카 대학 물리학과를 재학 중에 Turbolinux를 접하고 리눅스에 흥미를 가졌다. 지금은 보안 엔지니어로 취약성 점검 등을 담당하고 있다.
역자 서수환은 라쿠텐이 운영하는 일본 최대 온라인 쇼핑몰 ‘라쿠텐 이치바’에서 점포가 사용하는 시스템을 개발, 유지보수하는 프로그래머. 배울수록 더 모르게 된다는 말을 매일 실감하지만 심심해서 코드를 짜고 게으름을 부리기 위해 좀 더 고민한다는, 프로그래머적인 도를 깨우치길 원하고 있다. 마음씀씀이가 좋은 사람을 좋아한다.
목차
- 01장. 사용자 인터페이스
_001 명령어 옵션 처리하기
_002 키보드에서 Ctrl
_003 키보드에서 사용자 키 입력을 획득해서 변숫값으로 이용하기
_004 암호 입력 시 사용자 키 입력을 표시하지 않기
_005 사용자 키 입력을 한 글자만 받기( Enter 키 불필요)
_006 파일을 읽어서 처리할 때 키보드에서 입력받기
_007 선택식 메뉴를 표시해서 입력된 숫자값 처리하기
_008 표시 문자 색 변경하기
_009 달력을 이용해 특정 날짜의 로그 파일 삭제하기
_010 파일 압축 시 실행 상태를 표시하는 진행바 표시하기
02장. 변환 처리
_011 실행 시 변숫값이 비어 있을 때 기본값을 정의해서 설정하기
_012 지역 변수를 함수 안에 정의해서 호출한 곳의 변수가 파괴되지 않게 하기
_013 HTML 파일에서 특정 속성값 얻기
_014 값이 정수인지 확인해서 계산하기
_015 작은따옴표 안에서 작은따옴표 쓰기
_016 변수나 함수를 외부 파일로 작성하기
_017 문장 속 공백문자를 포함한 문자열 변수를 인수로 쓰기
_018 HTML 파일에서 태그 속에 적힌 주석을 추출해서 그대로 실행하기
_019 언더스코어 등을 포함한 문자열에서 변수를 명확하게 구분하기
_020 명령어 출력 결과를 파일명에 포함해서 그 파일명을 대상으로 명령어를 실행할 때 보기 쉽게 하기
_021 미정의 변수를 에러로 처리해서 실수 방지하기
_022 히어 도큐먼트에서 변수 확장하지 않고 그대로 $str처럼 표시하기
03장. 파일 처리
_023 절대 경로, 상대 경로 관계없이 같은 동작하기
_024 명령어 사용법을 표시할 때 현재 파일명 표시하기
_025 디렉터리 이동한 다음 간단히 원래 장소로 돌아가기
_026 디렉터리에 있는 파일과 디렉터리 수 조사하기
_027 파일 내용을 삭제해서 빈 파일로 만들기
_028 신규 파일을 만들지 않고 이미 있는 파일만 파일 갱신일을 바꾸기
_029 여러 HTML 파일에서 title 태그만 추출해서 각각 다른 파일로 출력하기
_030 특정 디렉터리에서
_031 작업 파일 디렉터리에서
_032 로그 파일이 엄청 많은 디렉터리에서 파일들에 명령어를 일괄 실행하기
_033 파일을 백업할 때 파일명에 날짜 넣기
_034 파일들을 다른 디렉터리에 동기화해서 백업처리하기
_035 로컬 디렉터리에 파일을 만들지 않고 직접 원격 호스트에 아카이브하기
_036 중요한 파일을 암호 걸어서 zip으로 아카이브하기
_037 gzip 명령어로 압축률 높이기
_038 tar 아카이브할 때 일부 파일이나 디렉터리 제외하기
_039 tar 아카이브에 파일 추가하기
_040 파일 퍼미션과 타임 스탬프 등 원래 파일 속성을 유지한 채 파일 복사하기
_041 HTML 파일인 .htm과 .html 확장자를 txt로 일괄 변경하기
_042 처리 시작 전에 실행 권한을 확인해서 정상 동작이 가능한지 확인 후 실행하기
_043 두 파일을 비교해서 오래된 파일 삭제하기
_044 두 디렉터리를 비교해서 한쪽에만 있는 파일 표시하기
_045 디렉터리에 있는 서브디렉터리들의 디스크 사용량 조사하기
_046 작업 파일을 만들 때 내용을 읽지 못하도록 보안 대책 세우기
_047 바이너리 파일에 포함된 문자열 얻기
_048 .svn 등 숨은 파일과 디렉터리만 나열하기
_049 이중 실행이 가능한 임시 파일 작성하기
_050 sed로 파일 치환 시 심볼릭 링크를 실제 파일로 바꾸지 않게 하기
04장. 날짜 처리
_051 date 명령어로 두 날짜를 비교하고 날짜차를 구하기
_052 오늘이 말일인지 판별하기
_053 한 달 전에 만든 로그 파일을 일괄 아카이브하기
_054 윤년인지 확인하기
05장. 네트워크
_055 디폴트 게이트웨이에 ping이 통하는지 확인하기(리눅스)
_056 디폴트 게이트웨이에 ping이 통하는지 확인하기(FreeBSD/Mac)
_057 ping으로 특정 호스트 응답 평균 시간을 취득하기
_058 arp 테이블에서 지정 IP 주소에 대응하는 MAC 주소를 표시하기
_059 호스트명으로 IP 주소 취득하기
_060 IP 주소로 호스트명을 얻기
_061 서버의 특정 포트가 열려 있는지 확인하는 스크립트 작성하기
_062 간이 TCP 서버 띄우기
_063 ftp로 자동 내려받기, 자동 올리기
_064 셸 스크립트로 CGI 실행하기
_065 지정한 크기의 파일을 만들어서 전송 속도를 측정하기
_066 IP 주소에 따른 처리 분기를 case문으로 작성하기
_067 로컬 셸 스크립트 파일을 원격 호스트에서 그대로 실행하기
06장. 텍스트 처리
_068 ID가 적힌 목록 파일에서 ID를 추출할 때 ID 끝 문자로 정렬하기
_069 텍스트 파일에서 구분자를 지정해서 컬럼 추출하기
_070 파일 앞머리의 셔뱅(shebang, #!/bin/sh 등)을 추출해서 스크립트에 따라 확장자 붙이기
_071 입력 파일 해시값을 줄마다 추가해서 출력하기
_072 CSV 파일에서 지정한 특정 레코드의 컬럼값 얻기
_073 CSV 파일에 ID 목록을 입력해서 대응하는 ID 컬럼값 얻기
_074 숫자로 된 CSV 파일에서 평균값 계산하기
_075 숫자값(CSV 파일)에서 “*”를 써서 간단한 텍스트 그래프 출력하기
_076 로그 파일 컬럼 위치를 바꿔서 출력하고 보기 쉽게 바꾸기
_077 웹 서버 로그 파일에서 특정 상태값만 취득하기
_078 시스템 로그에서 IP 주소별 접속 횟수 집계하기
_079 웹 접속 로그에서 파일별 접속 횟수 집계하기
_080 sed로 HTML 파일 속성을 바꿀 때 슬래시 이스케이프 피하기
_081 오른쪽 정렬로 숫자를 표시하는 텍스트 표 만들기
_082 정해진 자릿수 숫자에 하이픈 넣기 (우편번호 등)
_083 파일 크기를 줄이기 위해 자바스크립트 파일에서 빈 줄 제거하기
_084 텍스트 파일에서 HTML 파일 만들기
_085 HTML 파일 문자 코드를 자동으로 판별해서 UTF-8로 인코딩된 파일로 바꾸기
07장. 셸 기능을 자유자재로 다루기
_086 함수나 if문 같은 히어 도큐먼트를 쓸 때 탭 정렬로 보기 좋게 만들기
_087 스크립트 실행할 때 시그널을 받아서 현재 실행 상태 출력하기
_088 HUP 시그널을 받아서 실행 중에 설정 파일을 다시 읽어들이기
_089 이상 종료해도 흔적을 남기지 않도록 종료 시 작업 파일을 삭제하는 뒷처리하기
_090 늘 지정한 환경 변수를 설정해서 명령어를 실행하도록 래퍼 스크립트 작성하기
_091 scp로 파일 전송할 때 CPU 이용률을 계산해서 압축 처리를 할 것인지 판단하기
_092 이식성을 고려한 외부 명령어 이용하기
_093 리다이렉트가 번잡하지 않도록 그룹핑해서 보기 좋게 만들기
_094 명령어가 실패한 시점에 종료해 스크립트 오작동 방지하기
_095 여러 URL 파일을 동시에 병렬로 내려받기
_096 여러 호스트에 병렬로 ping을 날려서 대기 시간 줄이기
_097 셸 스크립트 일부에 Perl이나 Ruby 사용하기
08장. 제어 구문 예제
_098 변수가 포함된 IP 주소 목록 파일을 읽어서 ping 명령어로 확인하기
_099 연속된 파일명을 가진 URL을 자동 생성해서 순서대로 내려받기
_100 강제 종료될 때까지 파일 내려받기를 반복해 통신 확인하기
_101 ID 컬럼을 “00001” 처럼 0으로 채운 CSV 파일에서 번호를 지정해서 값을 추출하기
_102 스크립트를 수정해서 if문 안이 비더라도 에러가 발생하지 않게 하기
_103 웹 서버에서 파일을 내려받아서 MD5 해시값 계산하기
09장. 서버 관리
_104 서버 네트워크 인터페이스와 IP 주소 일람 얻기
_105 서버에 작성된 사용자 계정 일람 얻기
_106 허가된 사용자만 스크립트 실행 가능하게 하기
_107 시스템 셧다운하기
_108 파일명으로 설치된 RPM 패키지명을 확인하기
_109 RPM 패키지명이 적힌 목록 파일에서 각각의 패키지가 설치, 갱신된 날짜를 확인하기
_110 서버 구축 패키지 목록을 셸 스크립트 형태로 관리하기
_111 특정 프로세스가 정지했는지 감시하기
_112 특정 프로세스 실행 개수가 제한값을 넘었는지 확인하기
_113 프로세스를 감시해서 다운 시 자동으로 재실행하기
_114 서버 ping 감시하기
_115 웹 접근 감시하기
_116 디스크 용량 감시하기
_117 메모리 스왑 감시하기
_118 CPU 사용률 감시하기
_119 웹 페이지 변경 감시하기
_120 MySQL 데이터베이스 백업하기
_121 MySQL 레플리케이션 감시하기
_122 MySQL 테이블을 CSV로 출력하기
_123 로그 출력을 감시해서 로그에 특정 문자열이 있으면 경고하기
10장. bash
_124 셸 변수를 정수값 같은 속성으로 선언하기
_125 for 반복문을 간단히 작성하기
_126 사칙 연산을 간단하게 작성하기
_127 변수 내부 문자열을 n 번째부터 m 번째까지 추출하기
_128 변수 내부 문자열 일부를 치환하기
_129 중간 파일 없이 명령어 출력을 파일처럼 다루기
_130 파이프 처리로 각 명령어 종료 상태값 조사하기
_131 간단한 메뉴를 표시해서 사용자가 선택할 수 있게 하기
_132 정수값으로 난수 얻기
부록
_01 터미널(단말)이란
_02 유닉스 명령어 옵션
_03 셸 스크립트 변수명
_04 cron으로 스크립트 실행
_05 pv 명령어 설치
_06 dialog 명령어 설치
_07 set 명령어 이용
_08 웹 서비스 감시
_09 bash 설치
_10 참고 문헌
추천사
-
셸 스크립트는 리눅스 시스템 관리자뿐만 아니라 리눅스 개발자도 알아야 한다. 프로그램을 빌드하고, 동작하기 위한 기반 환경을 조성하고, 디버깅에 도움을 주고, 로그 파일을 분석하고, 반복적인 작업을 자동화하는 과정에서 시간을 절약해주기 때문이다. 기존 셸 스크립트 관련 서적은 셸 명령 중심으로 설명하거나 복잡한 작업을 수행하기 위한 거대한 코드를 예로 제시함으로써 실제 작업과는 동떨어진 경향이 있었다.
그렇다면 흔히 사용하는 간단한 작업을 시나리오별로 분류해서 셸 스크립트로 만들려면 어떤 구조와 명령을 사용하면 좋을까? 이게 바로 이 책의 집필 목표다. 현장에서 일어나는 다양한 사례를 중심으로 짧지만 쓸만한 셸 스크립트 코드를 제시하고 필요에 따라 명령어 설명까지 붙여놓아, 학습 목적은 물론이고 활용과 참조 목적으로도 예제를 사용할 수 있다.
이 책에 있는 예제를 따라하면서 어느 정도 익숙해지면 그 다음부터는 예제를 보지 않고서도 간단한 명령은 man 페이지만으로 즉석에서 직접 만들어 사용할 수 있을 것이다. 이 책으로 암호 같은 셸 스크립트 공포증을 극복하기 바란다!
출판사 서평
★ 문제 해결을 위한 최고의 실용 예제!
이 책은 실용적인 셸 스크립트를 작성하는 것이 목적입니다. 따라서 셸 스크립트 기법 설명으로 끝나지 않고 유닉스와 리눅스를 운용하고 관리할 때 자주 생기는 문제를 해결하는 실용 예제를 제시합니다. 독자가 직면한 또는 마주하게 될 문제를 해결하는 데 확실한 도움을 줄 겁니다.
★ 셸 스크립트란?
셸 스크립트는 유닉스 사용자에게 무척 친숙한 프로그래밍 언어로 로그 데이터 추출, 파일 조작, 텍스트 파일 가공 및 변형, 프로세스 제어, 서버 구축 시 패키지 관리 등 다방면에서 사용합니다. 유닉스로 작업을 한다면 셸 스크립트 지식은 필수입니다.
★ 이 책의 내용
사용자 인터페이스 / 변환 처리 / 파일 처리 / 날짜 처리 / 네트워크 / 텍스트 처리 / 셸 기능 다루기 / 제어 구문 예제 / 서버 관리 / bash
[1장]에서는 셸 스크립트로 명령어 옵션을 지정하는 방법과 키보드 입력을 다루는 터미널 처리, 메시지 색상 표시, 문자열로 다이얼로그 박스를 이용하는 방법을 소개합니다.
사용자에게 로그인 ID나 암호를 입력받거나 메뉴나 달력을 표시해서 선택하게 하는 대화형 셸 스크립트를 만들고 싶을 때 이 예제들을 참고하세요.
[2장] 변수 취급은 프로그래밍 언어의 중요한 구성 요소입니다. 셸 스크립트에서도 다양한 설정값과 파일명, 디렉터리명 조작에 변수 처리를 사용합니다. 이 장에서는 변수 정의 취급 방법과 기본값 설정, 입력값 확인, 셸 변수 작성법을 설명합니다. 값이 정수인지 확인하는 방법과 작은따옴표 사용 방법을 비롯해서 셸 스크립트에서 자주 보게 되는 사례를 들어 소개합니다.
[3장]에서는 셸 스크립트로 명령어 옵션을 지정하는 방법, 키보드 입력을 다루는 터미널 처리, 메시지 색상 표시, 문자열로 다이얼로그 박스를 이용하는 방법을 소개합니다. 사용자에게 로그인 ID나 암호를 입력받거나 메뉴나 달력을 표시해서 선택하게 하는 대화형 셸 스크립트를 만들고 싶을 때 이 예제들을 참고하세요.
[4장] 셸 스크립트는 로그 파일처럼 날짜가 파일명으로 된 파일을 대상으로 ‘말일인지 확인하기’, ‘한 달 전 날짜를 구하기’ 같은 처리를 하는데 유용하게 사용됩니다. 이 장에서는 date 명령어를 사용한 날짜 처리 예제를 소개합니다. 리눅스와 Mac과 FreeBSD는 date 명령어 서식이 다르므로 그 차이도 함께 다룹니다.
[5장] 유닉스 구성 요소로 네트워크는 필수적입니다. 이 장에서는 ping 명령어나 nc 명령어 등을 써서 셸 스크립트에서 네트워크를 다루는 다양한 사례를 소개합니다. 네트워크 확인이나 속도 측정, DNS 이름 확인, 파일 전송 자동화 등의 예제를 다룹니다.
[6장] 셸 스크립트가 자주 사용하는 sed, awk, grep 명령어를 조합해서 문자열을 가공하고 추출해봅시다. 정해진 포맷으로 출력하는 일은 스크립트로 손쉽게 자동화할 수 있습니다. 이 장에서는 CSV 파일을 대상으로 다양한 추출 예와 로그 파일에서 접속 수 리포트 집계를 하는 예를 소개합니다.
[7장]에서는 셸 기능인 시그널 처리나 병렬 처리, 다른 명령어를 실행하는 래퍼 문법, 외부 명령어 사용법을 다룹니다. 이 예제들을 활용하면 그저 순서대로 명령어를 나열하는 수준에서 벗어나 끼어들기나 병렬 실행 등 비동기 처리를 사용한 더 진화한 셸 스크립트를 작성할 수 있습니다.
[8장] 셸 스크립트는 if문이나 while문, for문을 이용한 제어 구조를 자주 사용합니다. 이 장에서는 이런 제어문을 쓴 구체적인 예제로 IP 주소 목록 파일을 읽어서 순서대로 처리하거나 무한으로 파일을 내려받는 예제 등을 설명합니다. 앞 명령어가 성공하면 다음 명령어를 실행하는 AND 연산자(&&)도 소개합니다.
[9장] 서버 구축을 위해 작업 안내서를 작성하는 경우가 많은데 필요한 명령어를 셸 스크립트로 작성하면 구축 작업을 자동화할 수 있습니다. 그리고 감시나 각종 확인 등 서버 운용 업무에서도 안내서를 보면서 직접 명령어를 실행하는 것보다 셸 스크립트를 미리 작성해 실행하면 잘못된 명령어를 실행하는 실수를 막을 수 있어 좋습니다. 이 장에서는 이런 서버 관리에 필요한 스크립트 예제를 소개합니다.
[10장] 지금까지 호환성, 이식성을 고려해서 /bin/sh로 셸 스크립트를 작성한 예를 소개했습니다. 하지만 최근 유닉스에는 bash가 기본 설치되는 경우가 많고 셸 스크립트도 bash로 작성하는 일도 많습니다. 따라서 이 장에서는 sh가 아닌 bash 스크립트로 배열과 브레이스 확장(brace expansion), 계산식 등 bash 고유 기능을 이용한 예제를 소개합니다.
기본정보
ISBN | 9788968482137 ( 8968482136 ) | ||
---|---|---|---|
발행(출시)일자 | 2015년 09월 01일 | ||
쪽수 | 512쪽 | ||
크기 |
150 * 210
* 20
mm
/ 680 g
|
||
총권수 | 1권 | ||
원서명/저자명 | UNIXシェルスクリプト マスタ-ピ-ス132/大角祐介 |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립