메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

유닉스 리눅스 셸 스크립트 예제 사전

한빛미디어

번역서

절판

  • 저자 : 오스미 유스케
  • 번역 : 서수환
  • 출간 : 2015-08-27
  • 페이지 : 512 쪽
  • ISBN : 9788968482137
  • 물류코드 :2213
  • 초급 초중급 중급 중고급 고급
5점 (1명)
좋아요 : 45

문제 해결을 위한 최고의 실용 예제!
이 책은 실용적인 셸 스크립트를 작성하는 것이 목적입니다. 따라서 셸 스크립트 기법 설명으로 끝나지 않고 유닉스와 리눅스를 운용하고 관리할 때 자주 생기는 문제를 해결하는 실용 예제를 제시합니다. 독자가 직면한 또는 마주하게 될 문제를 해결하는 데 확실한 도움을 줄 겁니다.

 

★ 셸 스크립트란?
셸 스크립트는 유닉스 사용자에게 무척 친숙한 프로그래밍 언어로 로그 데이터 추출, 파일 조작, 텍스트 파일 가공 및 변형, 프로세스 제어, 서버 구축 시 패키지 관리 등 다방면에서 사용합니다. 유닉스로 작업을 한다면 셸 스크립트 지식은 필수입니다.

 

오스미 유스케 저자

오스미 유스케

오사카 대학 물리학과를 재학 중에 Turbolinux를 접하고 리눅스에 흥미를 가졌다. 지금은 보안 엔지니어로 취약성 점검 등을 담당하고 있다.

서수환 역자

서수환

일본에서 IT 시스템을 설계, 개발하는 엔지니어입니다. 귀찮은 일이 생기면 대신해줄 무언가를 찾다가 없으면 만드는 것이 취미입니다. 또 뭐하며 놀까에 대해 늘 고민하고 있습니다.

 

 

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 참고 문헌 

많은 사람들이 보안을 공부하기 위해서는 C 언어와 리눅스(유닉스)를 꼭 알아야 한다는 말을 많이 들었다.
C와 같은 로우한 언어를 배우면 다른 언어를 배울 때 컴퓨터 프로그래밍에 공통적으로 적용되는 프로그래밍 원리를 깨우치기 좀 더 용이하고
리눅스 기반의 보안장비 및 시스템이 많은 대개의 IT 환경에서 리눅스는 이제 선택이 아니라 "필수"라 할 수도 있겠다.
그런 의미에서 리눅스를 좀 더 빠르고 편리하게 이용하기 위한 방법으로 셸 스크립트를 사용하는 것은 많은 업무를 담당하는 보안 담당자의 입장에서는
리소스를 효율적으로 운영하고, 개발단계 혹은 설계단계에서 구현오류를 줄여주는 유용한 방법이 될 것이라고 생각한다.
그럼 셸 스크립트를 쉽게 배우기 위한 실제 케이스별 예제사전을 살펴보도록 하자.

책은 그렇게 크진 않으므로 옆에 두고 보기 좋은 아담한 사이즈라고 생각한다.
하지만 그렇다고 내용까지 아담하진 않다.

책의 목차를 살펴보면 다음과 같다.
01장. 사용자 인터페이스
02장. 변환 처리
03장. 파일 처리
04장. 날짜 처리
05장. 네트워크
06장. 텍스트 처리
07장. 셸 기능을 자유자재로 다루기
08장. 제어 구문 예제
09장. 서버 관리
10장. bash
부록 (터미널(단말)이란, 유닉스 명령어 옵션, bash 설치 등)

#1. 지은이가 어떤 사람인지.. 먼저 한 번 살펴보게 된다.

역시 보안엔지니어로 일하고 있구나...
보안을 하기 위해서 리눅스를 해야 한다는 말이 전혀 현실성 없는 이야기는 아닌가보네?
옮긴이도 게으름을 부리기 위해 좀 더 고민하기 위해서 셸 스크립트를 쓰고자 이 책을 번역하게 된 건가....
어디 정말 이 책을 읽으면 편해지려나......^-^

#2. 책의 구성은 꽤 체계적으로 구성되어 있다.

상황이나 필요한 경우를 예로 들고, 그 상황속에서 어떤 명령어를 어떤 방법으로 써야 하는지 상세히 설명하고 있다.
검색하기 쉽도록 "키워드"도 설정하고 있네..
"사용처"는 언제 내가 이 명령어를 써야 하는지.. 예를 들고 있다.
"실행예제"는 실제 화면으로 구성해 놓고, "셸 스크립트"를 안내하고, 친절한 "해설"로 마무리하는 구성이다.
"주의사항"을 잘 살펴보면서 예제대로 한 번 따라해보면 좋을 듯 하다.
깔끔하고 간결한 책의 구성 때문에 지루하지 않고, 엄두가 안 날 정도의 진입장턱을 많이 낮추려고 노력한 저자의 고민이 느껴지는 부분이다.

#3. 책의 대상독자를 고려하여 책을 읽는 방법조차 설명하고 있다.

리눅스가 처음인가? 셸 스크립트가 생소한가? 걱정하지 말라.
이 책은 기초의 기초부터 설명하고 두 장을 넘어가지 않고 나의 고민을 해결할 수 있는 최적의 솔루션을 제공한다.
세 장을 넘어가면 앞 부분이 기억나지 않는 종이장과 같은 이해력이 고민인가?
걱정하지 말라. 내가 컴퓨터에 입력해야 하는 스크립트는 한 장을 넘어가지 않을테니..
부록을 참고해서 기본을 챙겨가며 내가 필요한 부분을 콕콕 집어 따라하다보면 어느새 상당한 자신감이 생길거라고 자신한다.

완벽하기 보단 효율적으로 사용하면 된다.
마치 우리나라 사람들이 죽을 때까지 영어를 공부하는 것처럼..
우리는 죽을 때까지 컴퓨터란 놈을 공부해야 하니.. 너무 완벽에 목매지 말자.
이 책은 완벽하기 보단 효율적으로 일을 쉽게 할 수 있게 도움을 줄 수 있는 기법이 가득하니 옆에 두고 자주 보면 좋을 듯 하다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
유닉스 리눅스 셸 스크립트 예제 사전
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
유닉스 리눅스 셸 스크립트 예제 사전
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
유닉스 리눅스 셸 스크립트 예제 사전
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실