한빛출판네트워크

IT/모바일

처음 배우는 셸 스크립트

시스템 구축부터 보안, 모니터링, 클라우드 운영까지

한빛미디어

집필서

판매중

처음 배우는 셸 스크립트
좋아요: 5
  • 저자 : 장현정
  • 출간일 : 2021-02-01
  • 페이지 : 408쪽
  • ISBN : 9791162243893
  • 물류코드 :10389

합계 : 27,000

  • 스크립트 문법부터 주요 명령어 활용까지 배우는 셸 스크립트의 정석

     

    기초 문법 및 유용한 리눅스 명령어들과 더불어 실무에서 어떤 문법과 명령어로 셸 스크립트를 작성하고 사용하는지 한 권으로 담아냈다. 또한 초보자들뿐만 아니라 이미 셸 스크립트 사용에 익숙한 개발자/엔지니어들도 자칫 깜빡할 수 있는 내용을 손쉽게 찾아볼 수 있게 구성했다. 수많은 프로젝트를 통해 쌓아 온 저자의 경험이 풍부한 예제 속에 실용적으로 담겨져 있다. 단순한 문법으로 끝나지 않고 실제 활용으로 이어질 수 있도록 시스템 구축부터 보안, 모니터링, 그리고 클라우드 운영에 이르기까지 셸 스크립트가 꼭 필요한 부분들을 상세하게 설명한다.

     

     

    이 책의 대상 독자

    • 리눅스나 유닉스를 자주 다루는 개발자 
    • 인프라와 시스템, 개발을 담당하는 데브옵스 엔지니어
    • 시스템이나 백엔드를 개발하는 소프트웨어 엔지니어와 시스템 운영자


    이 책에서 다루는 내용

    • 셸 스크립트 기초 문법
    • 가장 많이 쓰는 리눅스 명령어
    • 파일을 찾을 수 있는 find
    • 특정 인덱스 문자열을 출력할 수 있는 awk
    • 날짜와 시간을 알려주는 date
    • 시스템 구축/환경 설정
    • 보안/모니터링

     

     

    IT4팀_처음 배우는 셸 스크립트_상세이미지_720px.jpg

     

     

     

  • [저자] 장현정

    10년 동안 자바 개발자로 활동하다가 오픈소스 클라우드 플랫폼인 오픈스택을 만나 이제는 리눅스, 앤서블, 오픈스택 등을 다루는 플랫폼 엔지니어로 활동하고 있다. 2대 오픈스택 한국 커뮤니티 대표를 맡았으며, 국내 최초, 글로벌 여성 최초로 HP Heilion MVP로 선정되기도 하였다. 현재는 레드햇 코리아에서 플랫폼 전문 컨설턴트로 재직 중이며, 오픈소스 관련 업무를 하면서 경험했던 다양한 기술 노하우를 블로(naleejang.tistory.com)에 연재하고 있다. 언젠가 반드시 세계로 진출하겠다는 목표를 가지고, 영어와 IT 기술들을 열심히 습득하고 있으며, 워킹맘들과 여성 개발자들을 위한 책을 출간하는 것이 꿈이다. 주요 저서로는 『오픈스택을 다루는 기술(길벗, 2017)』이 있다.

  • 1부 셸 스크립트 기초

    CHAPTER 1 셸 스크립트란?

    1.1 셸 스크립트가 뭐죠?

    1.2 셸 스크립트는 어디에서 쓰나요?

    1.3 셸 스크립트는 언제 쓰나요?

    1.4 셸 스크립트는 누가 쓰나요?

    1.5 이 책의 셸 스크립트는 어디에서 다운로드 받을 수 있나요?

     

    CHAPTER 2 셸 스크립트 기초 문법

    2.1 셸 스크립트 만들기

    2.2 변수 사용하기

    2.3 조건문 if, switch-case

    2.4 반복문 for, while

    2.5 연산자

    2.6 정규 표현식

     

    2부 가장 많이 쓰는 리눅스 명령어


    CHAPTER 3 문자열을 찾을 수 있는 grep

    3.1 grep 사용법 알아보기

    3.2 grep의 다양한 옵션들

     

    CHAPTER 4 파일을 찾을 수 있는 find

    4.1 find 사용법 알아보기

    4.2 find의 다양한 표현식

    4.3 find 옵션

     

    CHAPTER 5 특정 인덱스 문자열을 출력할 수 있는 awk

    5.1 awk 사용법 알아보기

    5.2 awk 프로그래밍

    5.3 awk 옵션

     

    CHAPTER 6 찾은 문자열을 바꿀 수 있는 sed

    6.1 sed 사용법 알아보기

    6.2 sed 스크립트

    6.3 sed 옵션

     

    CHAPTER 7 날짜와 시간을 알려주는 date

    7.1 date 사용법 알아보기

    7.2 date 옵션

    7.3 date 포맷

     

     

    3부 예제와 함께 하는 셸 스크립트 활용


    CHAPTER 8 시스템 구축

    8.1 사용자 계정을 만들 때

    8.2 SSH Key를 여러 서버에 복사할 때

    8.3 다수의 서버에 NTP 서버를 설치할 때

    8.4 다수의 서버에 Timezone을 설정할 때

    8.5 CLI를 이용하여 오픈스택 인스턴스를 생성할 때

    8.6 패키지 리포지터리 다운로드할 때

     

    CHAPTER 9 환경 설정

    9.1 sshd 환경 설정 변경할 때

    9.2 ntp 서버 환경 설정할 때

    9.3 lvm 환경 설정할 때

    9.4 NFS 스토리지 마운트할 때

    9.5 네트워크 IP 설정할 때

     

    CHAPTER 10 보안

    10.1 패스워드 생성 법칙을 적용할 때

    10.2 패스워드 변경 주기를 설정할 때

    10.3 디렉터리 및 파일 접근 권한 변경할 때

    10.4 Firewall에 포트 추가할 때

    10.5 사설 인증서 생성할 때

     

    CHAPTER 11 모니터링

    11.1 IPMItool을 이용하여 서버 전원 체크할 때

    11.2 네트워크 상태 모니터링할 때

    11.3 서비스 상태 체크할 때

    11.4 클러스터 관리 툴 Pacemaker 상태 체크할 때

    11.5 CPU 및 메모리 상태 체크할 때

    11.6 서비스 로그 모니터링할 때

    11.7 컨테이너 실행 상태 모니터링할 때

    11.8 [종합] 일일 시스템 점검 모니터링하기

     

    CHAPTER 12 클라우드 시스템 운영

    12.1 VM 백업할 때

    12.2 컨테이너화된 오픈스택 서비스 운영할 때

    12.3 CLI를 이용해 오픈스택 이미지 업로드할 때

    12.4 CLI를 이용해 오픈스택 Flavor 생성할 때

    12.5 CLI를 이용해 오픈스택 인스턴스 마이그레이션할 때

    12.6 CLI를 이용해 오픈스택 인스턴스의 전원을 끌 때

    12.7 CLI를 이용해 오픈스택 인스턴스 시작할 때

    12.8 CLI를 이용해 오픈스택 인스턴스 삭제할 때

     

    CHAPTER 13 퍼블릭 클라우드 사용

    13.1 AWS CLI 사용 환경 만들기

    13.2 AWS CLI를 이용하여 인스턴스 만들기

    13.3 구글 클라우드 CLI 사용 환경 만들기

    13.4 구글 클라우드 CLI를 사용하여 인스턴스 만들기

  •  

    • 갖다 붙여넣기 바빴던 코드를 이해할 수 있는 좋은 기회입니다


    • 쉘 스크립트 입문 책으로,



      가장 많이 쓰는 grep, find, awk, sed 등


      부터



      여러 환경설정 및 시스템 구축 케이스 별 예시


      에 대한 가이드로 구성되어있다.


       



      나는 예전부터 리눅스 서버를 얕게 써왔지만, 그 동안 몇 줄 정도로 하드코딩 해왔던 스크립트가 옵션 하나로 해결되는 것이 가장 인상깊었다..


      이 외에도 서버 관리나 구축에서 쉘 스크립트를 사용한 적은 이전 프로젝트에서 CI/CD를 도입하기 늦어 Git 레포지토리 클론, 빌드, 배포를 스크립트로 작성한 경험밖에 없었는데,



      이 책에서는 SSH key 관리, ntp 서버 환경 설정, 보안 관련 세팅들, 클라우드 시스템 운영, 퍼블릭 클라우드 사용 등


      기존 리눅스와는 다르게 최근 시스템 환경에서 쓸법한 케이스들이 상세하게 적혀있어 입문하기에 딱 좋았다.


       



      특히, AWS와 구글 클라우드 CLI 사용 환경 부분은 그 동안 클라우드를 사용하며


      웹 UI로만 적용해왔던 것들을



      코드로 작성하고 관리하는 법을 소개


      해줘 나에게 가장 큰 도움이 되었다!


       


      주변 리눅스나 서버에 관심있는 친구들에게도 추천해줬는데 모두 긍정적인 반응을 보여, 나도 리뷰를 쓴다!


    • 008eGmZEgy1gos2aa5m8nj317v0u04jw.jpg


      한빛미디어 책 리뷰어에 선정되어 두번째 받게 된 책이다.



      사실은 셸 스크립트라는게 컴퓨터가 처음 등장했을 때부터 봐왔던 검정 화면에 치는 명령어 라는 인식이 굉장히 크다. 나같은 사람은 셸 스크립트를 좋아하고 커맨드 사용하는걸 정말 좋아하지만.. 그렇지 않은 사람이 훨씬 많은것은 사실이다. GUI가 없는 화면을 따분해 하고 갑갑해 하는사람들도 많다.



      이런 얘기를 왜 하느냐면.. 사실 셸 스크립트라는게 쉽게 접근하고 싶지 않아하는 부분이 많다. 하지만 이 책은 그냥 막막하게 셸 스크립트 사용법 정도의 책이 아니라 현재 핫한 클라우드 시스템과 연계시켜 설명해주는 책 구성이 꽤 맘에 들었다.


      1, 2부에서는 기본 이론적인 부분을 알려주며 3부부터 본격적으로 클라우드 시스템과 연관시켜 셸 스크립트 사용 방식을 알려준다.



      사실은 셸 스크립트는 이론 책을 한번 본다고 뚝딱뚝딱 익히기가 쉽지 않다. 시스템 운영을 하며 사용하는것이 Best라고 생각한다.


      1,2부는 ‘아~ 이런 명령어가 있구나’, ‘이런 기능이 있네’ 정도를 인식하고 책에 나름대로의 표시를 해놓은 후에 나중에 사전처럼 꺼내보는 용도로 괜찮을 듯 하다.


      3부에서는 깃허브에 자료도 있어 편하게 진행했다. 하지만 배경지식이 없다면 조금 어렵지 않을까 라는 생각이 든다. 저자가 오픈스택을 주로 사용하는 분이라 오픈스택 관련 예제가 빛을 약간 발하는데, 해당 부분이 꽤 괜찮은것 같다.



      단순히 셸 스크립트를 배우는 책으로 끝나는 것이 아니라 배운 내용을 토대로 운영 시스템을 맛보게 하는 부분이 굉장히 좋다.



      별점 : ⭐️⭐️⭐️⭐️



      한줄평 : 셸 스크립트에 한발짝 내밀었다가 인프라의 길로 두발짝 내딛게 되는 책



      이런분께 추천 :



      1. 실무에서 셸 스크립트를 쓰고는 있지만 이론적으로 더 필요한 사람.

      2. 클라우드 인프라 분야에 관심이 있는 사람.


    •  


       



      본 리뷰는 한빛미디어의 도서 서평단 <나는 리뷰어다 2021>를 통해 무상으로 도서를 증정 받고 작성된 리뷰입니다.


       


       



      1번_표지.jpg


       


       



      회사에서 인공지능 관련 리서치 업무를 맡으면서 리눅스를 사용한지 1년정도 됐습니다. 몇가지 사용하는 터미널 명령어만 기억하고 있다보니, 쉘 스크립트로 뭔가를 작성하는건 그때그때마다 주먹구구식으로 했었습니다. 우분투 책을 보면 기본적이고 자주사용하는 명령어들을 자주 정리해주는 챕터가 있긴하지만 뭔가 아쉬웠습니다. 아무래도 우분투 운영체제를 이해하기 위한 책이다보니 그런 것 같다고 생각했습니다. 이 부분만 전문적으로 다루는 책이 없을까 싶었는데 최근 이 책이 출간된 걸 보고 굉장히 반가웠습니다. 


       



      좋았던 부분은 2장에서 기초 문법을 다루는 데 '예약변수및환경변수' 파트입니다. 파이썬을 자주 사용하다보니 회사에서 처음 셋업을 할 때, 환경변수 설정으로 약간 애먹은적이 있습니다. echo $ 등의 예약어로 세팅은 곧잘하지만 그 의미들은 명확히 정리하지는 못했습니다. 필요할때마다 구글링으로 했는데 시간지나면 까먹었고, 정리를 제대로 못한 '과거의 나'로 인해 '미래의 나'는 다시 애를 먹은 현상이 자주 일어났습니다. 


       


       



      2번.jpg


       


       



      무식하게 일단 되기만하면 되지 하고 막 명령어치던 저에게 큰 가르침을 주는 장이 '2장'인듯 합니다. 이후 grep 과 find, awk 만으로 3장, 4장,5장으로 다룹니다. 일반적인 리눅스 책들에서는 1,2페이지 정도로만 할애되는 부분이 한 챕터가 됩니다. 그만큼 중요한 명령어이기에 자세히 다루며 제대로 배울 수 있었습니다. 


       


       



      3번.jpg


       


       



      8장부터 3부인데 여기서는 1,2부에서 배운 기초적인 지식을 활용해서 쉘 스크립트를 짜서 문제를 해결하는 방법을 공부합니다. 사용자 계정을 만들거나 SSH Ket 를 생성 및 복사, lvm 환경설정 등등을 배우는데 저의 경우에는 백엔드 지식이 전무하다보니 좀 생소했습니다. 백엔드 엔지니어를 업무로 삼고 있거나 삼고자 하는 예비 개발자분들이라면 꼭 알아야하는 내용들이라고 생각합니다. 3부의 경우에는 한 번 훏어보고 업무를 보시면서 필요하다면 다시 돌아와서 보거나 참고하는 방식으로 보면 좋을 것 같습니다. 업무에서 조금 다뤄본게 아니라면 좀 생소하지 않을까 싶습니다. 


       


    • 가장 큰 장점 "엄청 많고 자세한 예제"


       


      grep 명령어의 파일 및 디렉토리 관련 옵션


       



      이 책은 저자님이 말씀하신 "옆에 두고 언제든지 활용할 수 있는 책" 이 확실한 것이 한글화된 메뉴얼에 모든 옵션에 대한 예제가 전체 코드로 나와있습니다. 실습을 안해봐도 될 정도.. (해보면 당연히 좋습니다.) 


       


      명령어의 각 옵션이 어떻게 동작하는지 눈으로만 봐도 알 수 있습니다


       


      사실상 명령어의 모든 옵션에 대한 설명과 예제가 모두 적혀있어서 어떻게 보면 불필요한 내용도 상당히 있을 수 있습니다. 다만 저 같이 아직도 영어울렁증이 있고 메뉴얼만 보고는 이해안되는 부분이 많은 경우에는 정말 많은 도움이 되는 것 같습니다. 구글에 "명령어oo 옵션xx example" 해서 이것저것 찾아보다 날리는 시간을 엄청나게 줄일 수 있을 것 같네요.


       


      눈으로만봐도 될 정도


      당장 PC가 없더라도 그냥 책을 훑어만 봐도 될 정도로 자세하게 나와있고 쉽게 설명되어 있기 때문에 셸 스크립트를 사용해야하는 개발자라면 편하게 한번 읽어본 다음 사전처럼 쓸 수 있습니다. 그래도 손으로 한번씩 다 쳐보면 좋겠지만 당장 실무에 써야되는 경우 그럴 여유가 없을 수도 있으니까요.




      전체적인 평


      시중에 셸 스크립트만 다룬 책이 의외로 별로 없어 아쉬웠는데 몇 안되는 새로나온 셸 관련 책.


      한글화된 메뉴얼과 무수히 많은 예제로 범벅이 되있는 좋은 책


      실습하기 귀찮을까봐(?) 모든 옵션에 대해 직접 실행 결과까지 다 기록되어있는 책


       셸 스크립트를 꼭 써야할 상황이 생긴 개발자면, 그리고 저와 같이 무근본으로 익혀온 개발자라면 꼭 한번 훑어보면 좋을 것 같습니다. 리눅스 환경에서 개발하기를 시작한 분들께는 꼭 추천하고 싶네요. 저처럼 고생을 안했으면 하는 바람...

    • 서론



      처음으로 인턴으로 개발팀에 들어가 일을 하게 되었을 때 공부할 때와 가장 큰 괴리를 느낀 부분은 개발자는 단순이 개발 업무만 수행하는 것이 아니라 개발한 어플리케이션을 실제 서버에 배포하고 운영, 관리해야하는 일이 추가된다는 점이었습니다. (물론 회사에 devops나 운영 팀이 존재하여 그런 업무의 비중이 적거나 없을 수 있지만) 그리고 그런 업무를 하기 위해 스택오버플로우에서 리눅스 명령어라고 지칭되는 cd, ls, grep 등등의 단편적인 지식들을 배우게 되었는데 배운 내용을 가지고 어찌어찌 서버에서 실행을 시킬 수는 있었지만 디테일한 작업이나 자동화 할 수 있어보이는 업무들을 다 일일히 명령어로 작성했던 기억이 납니다. 당시에는 쉘 스크립트 책이 매우 딱딱하고 어려운, 비전공자들에게 매우 불친절하며 이쁘지 않은 책들 뿐이었기에 적당히 배우고 적당히 작성해서 업무를 했었습니다.
      그렇게 쉘 스크립트를 제대로 배워보고 싶다는 갈망이 있었고 좋은 기회가 있어 이 책을 접하게 되었는데, 책의 내용이 좋아 간단히 리뷰를 해보고자 합니다.


      이 책의 특징



      '처음 배우는'이라는 수식어에 어울리듯, 쉘 스크립트를 처음 접하는 사람들을 위해 쓰여진 책이라는 느낌이 들었습니다. 특히나 번역서가 아닌 한국어로 집필된 책이기 때문에 번역의 어색함이나 한국에서 잘 사용되지 않는 모호한 표현등이 없습니다. 추천의 말을 인용하자면, '마치 과외 선생님과 같이 조곤조곤 설명해 주는'듯한 문체로 쉘 스크립트 문법과 자주 활용되는 명령어를 소개한 뒤, 실전과 같은 상황을 제시하고 이를 해결하는 과정을 보여주어 자연스럽게 실력을 기를 수 있는 구성으로 되어있습니다.
      다만, 네트워크나 리눅스 시스템을 조금은 알고 있다고 가정하고 진행하기에 이 책을 통해 리눅스를 배우고자 한다는 관점으로 접근하면 만족하지 못하실 수 있습니다.


      사야할까?


      제목에서도 볼 수 있듯 처음 배우는 사람들을 위한 책이긴 하지만, 한번도 프로그래밍을 해보지 않았거나 리눅스 시스템을 사용하실 일이 없다면 굳이 구매할 필요는 없습니다. 개인적으로는 첫 프로그래밍 언어로 쉘 스크립트를 선택하는 것은, 아무래도 타 언어와의 공통성이 떨어져 다른 언어를 접했을 때 다시 배워야 하는 내용들이 많고, 실무에 자주 활용되는 객체지향 개념을 배우기 어려울 뿐 아니라 특정 환경에서만 작동하기 때문에 좋은 생각이 아니라고 생각하기에, 권장하지 않습니다.


      구매해야 하는 사람


      • 학생에서 취업하여 개발 업무를 맡게 된 분

      • 개발 업무를 하지만 윈도우 서버를 이용하다가 처음으로 리눅스 기반 (클라우드) 서버를 쓰시는 분

      • 쉘 스크립트를 어느정도 알지만, 실무에 어떻게 활용할까 고민이신 분


      구매하지 않아도 되는 사람


      • 프로그래밍이 처음이신 분

      • CLI환경에 익숙하고 컴퓨터공학 기초가 탄탄하신 분

      • 클라우드와 리눅스 서버 운영 및 배포 업무에 익숙하신 분


       


    • 저는 교내 연구실에서 1년간 학부연구생 생활을 했습니다. 
      우분투를 기반으로 한 서버에서 논문 실험, 프로젝트 진행을 해야했기 때문에 리눅스 기본 명령어는 숙지하고 있는 상태였습니다. 
      실험을 진행하거나 평소에 우분투를 사용할 때 자주 쓰는 명령어가 있었는데, 이 책의 2부에서 그대로 나온 것을 보고 깜짝 놀랐습니다. 


      특히, find나 grep 같은 경우는 조건 주는 것이 햇갈려 자주 search를 하곤 했는데, 이 책을 보고 개념 정리가 확실히 됐습니다.  


       


      그리고 셸 스크립트 개념에 대해서 잘 모르시는 분들이 많을 것 입니다. 저도 정확하게는 몰랐지만, 이 책 1부에서 자세히, 쉽게 설명해놓았습니다.


       



      이 책의 하이라이트는 3부 '예제와 함께 하는 셸 스크립트 활용' 입니다. 시스템 구축, 통신 설정, 서버 상태 모니터링 등 다양한 예제를 따라할 수 있습니다. 특히 저는 인프라 직무를 준비하고 있기 때문에 12장, 13장 클라우드 시스템 운영 및 사용이 가장 눈여겨 볼만한 부분이었습니다. 셸로 모니터링, 시스템 구축을 해본 적이 없는 초보자들도 쉽게 따라할 수 있었습니다. 기존에 우분투를 사용해보았지만, 셸 스크립트를 짜보고 싶다! 조금 더 수준있는 예제를 따라해보고 싶다! 하는 분들에게 추천합니다.   


    • 



      20210321_165449.jpg


       



       발전된 IT기술로 인프라 구성은 더 복잡해지고 다양한 기술이 접목되어 관리해야 것들도 많이 늘어나게 되었습니다.








      또한 클라우드와 컨테이너 환경을 사용하고 운영하기 위해 복잡하고, 반복적이며, 어려운 명령어들을 사용해야 하는 상황이 발생하게 됩니다. 이런 경우 유용한 리녹스 명령어와 간단한 셸스크립트를 통해 복잡하고 반복적인 일을 좀 더 쉽고 효율적으로 처리할 수 있습니다.


       



      "처음 배우는 셸 스크립트"로 유용하고 편리한 스크립트로 스마트한 환경을 구축하길 바랍니다!


       



      1부에는 셸스크립트가 무엇인지, 어떤 경우에 사용하는지와 셸스크립트의 역사및 셸 스크립트 기초 문법에 대해서 알아봅니다.













      20210321_165507.jpg


       












       



      2부에서는 리눅스나 유닉스를 운영하면서 매일 반복해야 하는 작업이나 복잡한 명령어들을 스크립트 파일을 통해 자동화함으로써 실수를 줄이고, 시간을 효율적으로 사용할 수 있고, 또한 수많은 로그 파일에서 시스템에 문제가 되는 원인을 찾는 경우에도 사용할 수 있는 셸스크립트를 효율적으로 활용하기 위한 리눅스나 유닉스에서 많이 쓰이는 명령어들에 대해서 살펴봅니다.













       20210321_165509.jpg


       


      3부에서는 1부와 2부에서 셸 스크립트를 생성하기 위한 기초 지슥을 습득했다면 습득한 기초 지식을 가지고 실무에 활용할 예제를 각 상황에 따라 직접 만들어보고 실행을 해봅니다. 다양한 상황을 가정하고, 해당 상황에서 어떻게 문제를 해결할 것인지 방법을 찾고, 찾은 방법에 따라 해당 스크립트를 생성하고, 스크립트를 통해 문제를 해결하 방식으로 직접 따라해가면 문제 해결 방법을 해봅니다. 



      20210321_165514.jpg


       


      끝으로













      - 이책의 장점으로 방대한 예제와 실제 업무에서 일어 날수 있는 상황 과 방법찾기를 통한 스크립트 생성 그리고 문제해결 순으로 구성된 점이 장점으로 보였습니다.



      실제 현업에서 일어날수 있는 상황을 통해 문제 해결 능력을 높힐 수 있으며 예제를 통해 알기 쉽도록 구성되어 있습니다.



      또한 클라우드와 컨테이너 환경에서의 셸 스크립트 작성법에 대해 설명한 점이 좋았습니다.



      리눅스 셸에 대해 쉽게 이해하고 따라 할 수 있도록 잘 구성되어 있습니다. 실제 업무에 활용하는 셸 스크립트 바이블로 추천합니다!








      


    • 내가 기다리던 책이 출간되었다. 왜 기다렸냐면 현재 우리나라에서 셸 스크립트에 대해서 쉽고 프로그래밍 연습을 할 수 있는 풍부한 예제가 있는 셸 스크립트 책이 없었기 때문이다. 나는 업무에서 셸 스크립트를 쓰고 있는 입장인데 입사 후 구입했던 외국인 저자가 쓴 책을 번역한 셸 학습도서를 여러번 읽어보려고 노력했지만 쉽지가 않았다. 일단 재미가 없었다. 그래도 명색이 셸 책인데 변변한 연습 삼아 할 수 있는 예제도 제대로 없는 책이었다.






      이것뿐이 아니다. 다른 시중에 나와있는 책들도 마찬가지다. 예를 들어 sed, grep, awk 등 다양한 셸 명령어를 가지고 그거에 대해서만 깊게 판다. 여러 옵션들을 사용한 응용 커맨드가 많이 수록되어 있더라. 그 예제라는 것도 그냥 셸에 명령어 한 줄 한 줄씩 써보는 것이 연습이다. 실질적으로 도움이 될 수가 없는 책이었다. 또 어떤 책은 셸 스크립트에 대한 입문 책인데 처음부터 냅다 데몬을 구동시키는 셸 스크립트를 작성한다. 갑자기 뜬금 없는 것이다. 과연 셸 스크립트 초보 중에 그 스크립트를 이해할만한 사람이 얼마나 될까? 데몬이 뭔지도 모르는 사람도 있을 것이다. 물론 오래된 책이라 그 책은 이제 판매되지 않는다. 아무튼 난이도가 극과 극을 달린다.






      이 책은 그래도 기존에 나왔던 그냥 셸 명령어든, 셸 스크립트 책이든 모두 아울러서 가장 내가 원하는 스타일의 책이다. 우선 첫번째로 예제가 정말 프로그래밍을 짜는 것 같다. 파이썬 책만 봐도 최소 3~4라인 되는 예제가 수록되어있기 마련인데 내가 봤었던 책들은 아까 언급했던 바와 같이 그냥 명령어 한 줄이 예제의 전부였던 것이다.






      두번째로 외국인 저자가 쓴 책이 아니다. 아무래도 번역서를 보면 미묘한 차이를 번역가가 놓치는 경우가 많고 저자가 의도했던 바를 못 담는 경우도 많다. 그러나 이 책은 모태 한국인 저자가 쓴 것이니 번역서를 읽는데에서 느끼는 약간의 불편함과 이질감도 없다. 설명도 친절한 편이라고 생각한다. 무엇보다도 스크립트 형식의 예제가 많다는 것이 마음에 들었다.






      다음으로는 최신 기술 트렌드를 담았다는 것이다. 즉, 셸 스크립트를 응용할 수 있는 새로운 분야에 대한 내용이 다른 책들과 차별화가 된다. 그것이 바로 클라우드 시스템 운영과 AWS, 구글 클라우드 등 퍼블릭 클라우드에서 사용되는 CLI 환경에서의 셸 스크립트 활용법도 담고 있다는 것이다. 11장 모니터링 부분부터 시작해서 12장 클라우드 시스템 운영, 13장 퍼블릭 클라우드 사용 챕터에 자세히 설명되어 있다.






      셸 스크립트의 기본적인 목적은 명령어를 자동화하여 반복적인 일을 편리하게 처리함에 있다. 그외에도 보안 분야에서도 굉장히 많이 사용이 된다. 우선 보안 취약점을 찾는데에 셸 스크립트가 중요한 역할을 하니까 말이다. 그런 점에서 이 책에서 보안과 관련된 스크립트 활용법에 대해서도 따로 챕터를 할애하여 배정하였다. 보안 분야에서 종사하거나 관심이 있어 공부하고 있는 학생들에게 이 책이 특히 도움이 될 것이다.






      내 개인적인 생각인데 셸 스크립트를 사용하려거든 이 책을 먼저 완벽히 익히고 다른 두꺼운 셸 책들을 볼 것이 아니라 필요한 내용만 구글 검색과 기술 분야 블로그를 통해서 채워나가는 것이다. 셸 스크립트를 공부함에 있어서 가장 이상적인 공부법이라고 생각한다.






      일단 셸 이라는 것 자체가 리눅스, 유닉스에서 사용하는 커맨드이다보니 리눅스, 유닉스를 익히는데에도 아무래도 도움이 될 수 밖에 없다. 이 책으로 리눅스, 유닉스 공부도 어느정도는 되지 않을까 싶다. 물론 리눅스, 유닉스 그 자체를 배우려면 다른 주 교재가 필요하겠지만 말이다.






      이 책을 추천해주고 싶은 독자로는 이제 막 리눅스를 배우려는 사람들이다. 물론 이 책에서 셸 스크립트를 쓰기 위해서 리눅스나 맥을 어떻게 설치하고 셋팅해야 하는지 튜토리얼 형식으로는 된 것이 없다. 그래서 리눅스, 맥을 사용할 수 있는 환경이거나 최소한 리눅스 설치하는 방법 정도는 익힌 다음에 배우면 더 이해가 빠를 것 같다. 옛날이야 리눅스를 설치한다고 하면 윈도우 포맷 후 재설치보다 몇배는 두려움이 많았는데 지금은 VMWare나 Virtual Box라는 가상머신 소프트웨어가 있기 때문에 리눅스를 아주 편리하게 설치하고 사용할 수 있다. 책을 사기가 아깝다면 설치 방법 정도는 블로그들에도 충분히 정보가 많아서 그 부분은 블로그나 웹 자료를 참고하기를 바란다.






      현재 개발자나 컴퓨터 엔지니어가 직업인 사람들을 제외하고는 리눅스를 쓰는 일이 그리 많지는 않은 것 같다. 그러나 한국형 OS라는 여러 기업, 단체에서 개발 중인 공공 보급 목적으로 개발 중인 리눅스를 공무원들이 사용하게 될 날도 오게 될 것 같다. 물론 독일의 어떤 시는 윈도우를 리눅스로 대체했다가 다시 돌아왔던 것으로 아는데 리눅스의 관공서 사용이 보편화가 성공적이든, 실패적이든 일단 앞으로 있을 것이다. 그렇게 되면 공무원들도 자동화 업무 처리를 위해서는 셸 스크립트를 필요로 하게 되는 때가 있을 것이라 예상한다. 그때 이 책의 유용성은 더욱 증가하게 될 것이다.


    • 



      예전에 회사 맥미니에 젠킨스를 셋팅해서 빌드 파이프라인을 돌려야 했었다. 그때 기존에 만들어져있던 안드로이드 빌드 파이프라인을 참고해서 열심히 카피&페이스트를 해서 어떻게 만들었는데 그때 셸 스크립트를 사용했었다. 사실 나는 클라이언트 개발자라서 셸 스크립트를 배워서 짜본적은 잘 없지만 학교에서도 잠시 배웠었고 어렵지도 않아서 인터넷에 쳐보고 금방 배울 수 있었다. 근데 문제점은 항상 까먹는다는 것이다. 그래서 이참에 셸 스크립트 책이 한권 있으면 좋겠다고 생각했고 좋은 기회에 셸 스크립트 책을 받아보게 되었다.



      책의 초반에는 간단하게 셸 스크립트에서 사용하는 문법에 대해서 배우게 된다. 이후에는 바로 리눅스에서 자주 사용하는 터미널 명령어에 대해서 배운다. 이후에 바로 실무로 들어가서 백엔드 서버나 기타 등등 리눅스 머신을 세팅하고 관리할때 주로 사용할만한 예제를 다루며 조합들을 공부하게 된다.



      이 책이 되게 좋았던 이유는 실제 사례들을 가지고 어떻게 하면 셸 스크립트를 사용해서 문제를 해결 할 수 있는지와 같은 예시를 쉽게 볼 수 있게 구성이 되어있다는 것이다. 그래서 실제로 실무에서 사용하는 다양한 것들을 배울 수 있었다. 앞으로도 두고두고 셸 스크립트를 사용할 때 마다 살펴볼 것 같다.



      또 좋은 점은 예제 소스코드를 기반으로 활용할 거리가 굉장히 많아보이고 또 깃허브에 공개되어 있어서 금방 확인하고 고쳐 쓸 수 있다는 것이다. 이런 셸 스크립트가 사실 구글에 쳐보고 그대로 복붙하는 게 정말 많은데 이런 수고를 덜 수 있다는 것이 좋았다. 앞으로도 이런 백엔드 서버쪽 지식들을 많이 습득하고 배워 나가고 싶다.



      


    • 3월에 소개 할 책은 처음 배우는 셸 스크립트입니다. 프로그래밍이나 컴퓨터에 친숙하신 분들은 cmdconsolebash 등의 이름을 가진 프로그램을 사용하거나 들어보셨을 것 입니다. 정확한 설명은 아니지만 이런 명령창들을 통칭 이라고 합니다. 이 책에서 다루고 있는 쉘 스크립트는 shell에서 사용하는 명령어들을 모아서 자동화 과정을 만들어 주는 것이라고 생각하면 좋을 것 같습니다.



      리눅스, AWS 등 CLI 환경에서 실습하거나 CLI가 더 편한 환경이 사람마다 다르겠지만 분명 있습니다. 저의 경우도 GIT을 CLI로 익혀서 기본적인 과정은 CLI로 처리하는 것 처럼 환경설정 등 분명 선호하시는 환경이 있을 것입니다.(겉핥기로 시작하는 GIT 많이 읽어주세요..) 리눅스 등을 공부 할 때 교재나 강의에서 명령어를 사용해 보거나 이미 만들어진 스크립트를 이용해서 설정을 해본 경험은 있을 것입니다. 그 때 경험으로 나도 저런 자동화 스크립트를 만들고 싶다는 생각을 가지고 자료를 찾다보면 이미 스크립트를 짤 줄 안다고 전제한 자료나, 스크립트가 검색어로 들어가기 때문에 pythonJS 등 같은 스크립트 형 언어에 대한 자료들이 나옵니다. 물론 영어 자료로 읽으면 해결 될 문제이지만 이 책을 원하시는 분들은 한글 자료가 목마르신 분들이라고 생각합니다. 한글 자료가 있는 블로그도 특정 파트에 관한 부분만 다루는 경우가 대부분입니다. 업데이트가 끊겨 있거나 블로그 주인이 필요한 부분만 정리해서 전체적인 흐름을 잡기가 힘듭니다.



      이 책은 엄청난 인사이트를 준다거나 프로그래밍 능력 향상을 돕는 책은 아닙니다. 자동화를 위한, 편의를 위한 스크립트를 만들고 편집할 때 필요한 자료를 담고 있습니다. 이 책은 꼭 순서대로 읽을 필요도 완독을 해야만 하는 책도 아닙니다. 내가 모르는 부분, 필요한 부분만 발췌해 읽어도 되는 책입니다. 가장 큰 장점은 출판되어 나오기까지 여러 단계를 거쳐 검증 된 자료이기 때문에 믿고 사용할 수 있다는 점입니다. 단순히 스크립트 작성에 만족하지 않고 가상환경 관리, 모니터링, 보안 등 CLI가 유용하게 쓰일 수 있는 상황들을 다루고 있습니다. 그래서 이 책은 가볍게 쉘 스크립트 작성에 필요한 정보만 찾아보기 위한 레퍼런스가 필요하신 분들에게 추천드립니다.



      난이도: 중
      추천 대상: 프로그래밍이 어느 정도 익숙한 사용자, 쉘 스크립트 레퍼런스가 필요한 사람





      나는 리뷰어다 2021의 활동으로 작성 된 리뷰입니다

    • 셀 스크립트을 책으로 접할 줄을 몰랐습니다. 보통 Help를 찾거나 인터넷에서 검색해서 나름 자기내공을 키워서 온 것입니다. 그래서 웬만한 서버개발자들은 어느정보 익숙한 명령어의 구성으로 자기만의 나름 견고한 진들이 있지 않았나 봅니다.


      그런데 셸 스크립트의 기본적인 시작부터 주요명령어 활용까지 배우는 셸 스크립트의 정석까지 정리 된 책이 나온 것입니다.


      최근에 클라우드의 저변확대로 LINUX, UNIX 기반의 VM이 일상화 되기도 한 것이 배경이지 않을까 생각해봅니다.


       


      시스템 구축부터 보안, 모니터링, 클라우 운영까지라는 소제목이 책을 잘 설명하고 있습니다.


       



      2021-03-21-19-24-48-502.jpg


      처음 배우는 셸 스크립트 녹색 책 디자인이 더 눈에 뜨는게 부담이 없습니다.



      2021-03-21-19-03-14-685.jpg


      기초 문법 및 유용한 리눅스 명령어들과 더불어 실무에서 어떤 문법과 명령어로 셸 스크립트를 작성하고 사용하는지 한 권으로 담아놓았다고 합니다. 초보자 뿐만 아니라 개발자/엔지니어들도 쉽게 항목 별로 찾아볼 수 있게 되어 있습니다. 



      2021-03-21-19-03-27-683.jpg


       


      셀 스크립트 기초 문법, 가장 많이 쓰는 리눅스 명령어, 시스템 구축/환경설정, 보안/모니터링, 트러블 슈팅


      저자의 경험이 풍부한 예제가 나름 강점이 책입니다.



      20210321_190349.jpg


       


       


      예제소스는 책소개 링크에 포함되어 있습니다



      Screenshot_20210321-194036_Chrome.png


      한빛미디어의 장점인 미리보기 서비스입니다.


      2부 가장 많이 쓰는 리눅스 명령어의 맛을 볼 수가 있습니다



      20210321_203902.gif


       



      Screenshot_20210321-195021_Chrome.png


       



      Screenshot_20210321-195041_Chrome.png


       


      특히 모니터링 부문은 실제 활요할 수 있는 부문입니다.


      서버 전원 체크, 네트워크 상태 모니터링, 서비스 상태 체크


       


      11.2 네트워크 상태 모니터링할 때



      프로세스
      -네트워크 모니터링 대상 서버 정보를 변수에 저장한다.


      -네트워크 모니터링 대상 인터페이스 정보를 변수에 저장한다.


      -네트워크 인터페이스 상태 확인 명령어를 이용해 네트워크 상태를 모니터링한다.


      -echo 명령어을 이용해 모니터링 결과를 보여준다.


       


      11.3 서비스 상태 체크할 때


      필요한 정보


      - 서비스 모니터링 대상 서버 정보


      - SSH를 통해 접근할 수 있는 전용 계정


      - 모니터링 대상 서비스들


      - 모니터링 대상 서비스 포트들


      - 서비스 상태 체크 명령어 : systemctl


      - 서비스 포트 체크 명령어 : netstat


       


      프로세스


      - 서비스 모니터링 대상 서버 정보들을 변수에 저장한다.


      - 모니터링 대상 서비스들을 변수에 저장한다.


      - 모니터링 대상 포트들을 변수에 저장한다.


      - for문을 돌면서 대상 서버의 서비스 상태와 포트를 체크한다.


      - echo 명령어를 이요하여 모니터링 결과를 보여준다.


       



      2021-03-21-19-18-14-544.jpg


       



      20210321_191249.jpg


       


      서버 운영개발은 얼마나 터미널에 오픈되어 있냐가 중요할 겁니다. 명령어도 마찬가지입니다. 최근에는 지원되는 APM툴들이 좋기도 하지만 역시 원하는 답을 더 빠르게 찾는 방법은 셸 스크립트을 잘 활용하는 겁니다. 물론 기본 명령어가 손에 익숙해지는 것이 먼저일 겁니다.


      그런면에서 다양한 예제를 통해서 노는 VM이나 무료 VM에서 실제로 구성해 보는 것이 주요할 겁니다. 너무나 방대한 정보의 바다에서 이리저리 헤매지말고 지그시 집중해서 습득하기에 좋은 책이라고 봅니다.


       


       

    • 책을 읽게 된 계기는 신입 개발자로 일하면서 셸과 리눅스 명령어에 대한 지식의 필요성을 절실히 느꼈기 때문이었다. 


      일을 할 때 효율성을 얻기 위해서, 또 커뮤니케이션에 있어서 명렁어에 대한 기본적인 숙지는 필수였다. 


      명령어가 필요할 때마다 인터넷에서 검색하고, 옵션을 찾고, 예를 따라치는 그 과정이 계속 반복되니 한번은 꼭 공부를 해야겠다고 다짐하게 되었다. 


       


      나의 셸 스크립트 기본 지식은 거의 전무한 수준이고, 리눅스 명령어도 간단히 쓰는 몇가지 밖에 모른다. 


      그래서 그런지 개인적으로는 책이 좀 어려웠고, 잘 읽히지 않았다. 


      중간에 왜 이 명령어가 필요한지에 대한 설명이 등장하는데 그 예 조차 이해가 안가서 조금 난감했다. 


      실무에서 접할 법한 상황인데, 나의 경험이 얕다보니 종종 이 상황이 무슨 상황이지? .. 하게 되었다. 


       


      그래도 내가 배경지식이 좀 더 있었더라면, 책이 친절하기도 하고 예제도 많아서 셸 스크립트의 바이블이라고 생각했을 것 같다.


       


      책의 하이라이트는 3부라고 생각했다.


      1, 2부에서 기본 적으로 필요한 지식 (셸 스크립트 문법, 정규식, 리눅스 명령어) 를 가르쳐주고 3부에서 본격적으로 그 지식을 이용해서 시스템 프로그래밍을 하고, 실제 상황에 필요할 법한 예를 기반으로 프로그램을 구축한다. 나는 셸 스크립트를 이용해서 프로그래머가 필요한 환경을 프로그램 할 수 있다는 사실과 그 과정을 처음 배워 보았다. 시스템 프로그래머가 아니더라도 예제를 따라하며 한 사이클을 돌면 어떻게 시스템 자체가 구축이 되는지를 이해할 수 있는 좋은 경험이 될 것 같다. 


       


      예제도 워낙 많고, 지식의 양도 많고, (어떤 사람에겐) 낯선 명령어도 많아서 책을 한번 읽고 다 기억하기에는 무리가 있을 것 같지만, 한번 읽으면 어떤 명령어 혹은 어떤 상황에서 어떤 걸 사용해야한다 정도는 감을 잡을 수 있을 것 같다. 형광펜으로 나중에 필요할 것 같은 부분만 조금 표시를 해 놓고 실무에서 책을 옆에 두면서 지속적으로 도움을 얻을 수 있는 책 같다고 느꼈다. 


       



      ============<총평>================


       



      장점:


      - 예제가 엄청 많다. 깃허브에 주소도 있고 그것을 활용해서 예제를 함께 풀 수 있다. 


      - 실습 하나하나에 대한 설명이 있다. 


      - 예제가 실무에서 자주 쓸 것 같고 실용적이다. 


      - 시스템 프로그램밍이 이런 것이구나를 알려준다고 생각했다. 


      - 자주 사용하는 명령어 만을 모아두었다. 


      - 단계적으로 배울 수 있다. (앞에서 배운게 뒤에 필요함.) 


      - 집중하고, 깊게 설명한다. (얕고 넓게 X) 


      - 3부가 재밌었고 신기했다. 


      - 셸 스크립트를 한 권으로 끝낼 수 있고, 실무에서 지속적으로 도움을 줄 수 있는 책


       



      단점:


      - 배경지식이 없다면 책이 어렵고 잘 안읽힘. 


      - 예제가 너무 많아서 다 못따라하는 사태?가 발생할 수 있다. 


      - 1,2부는 문법과 명령어의 나열이어서 조금 지루하다. (사전 같음) 


       



      추천 독자:


      셸 스크립트를 본격적으로는 처음 배우지만, 시스템 엔지니어 분들의 일을 많이 접하고, 네트워크 지식이 어느정도 있으며, 리눅스 명령어를 간단하게라도 숙지한 분들에게 적합하다고 생각하였음. 


       


       



      한빛 미디어 - <나는 리뷰어다> 2021년 3월 이벤트를 통해 책을 제공 받았습니다. 


       


    • 처음 배우는 셸 스크립트.png


      터미널을 열 때마다 까만 바탕화면에 깜빡이는 커서를 보며 막막하다고 느끼는, 셸 스크립트에 적응하기 힘들어하는 분.


      잊을만하면 하게 되는 리눅스 서버 작업 때문에 비슷한 내용을 다시 검색하고 있는 자신의 모습이 한심스러워 보일 때가 있는 분.


      셸 스크립트를 사용하는데 어려움은 없으나 자주 사용하는 패턴만 사용하는데 아쉬움을 느끼는 분.


      궁극적으로 조금 더 게으르고 싶은 분을 독자로 하고 있습니다.


       


      셸 스크립트가 어려운 분에게 도움말 명령어보다 친절한 안내자입니다.


      자주 사용하거나 알아야 할 내용을 예제와 함께 설명합니다. 


      특히 각각의 설명에 모두 예제가 함께 있습니다.


      명령어를 사용하다 답답함을 느끼거나, 바르게 사용하고 있는지 궁금해질 때 열어 보았던 도움말. 하지만, 그 도움말을 열 때마다 만났던 막막한 느낌을 아신다면, 설명마다 있는 예제가 얼마나 반가운지 아시리라 생각합니다.


       


      셸 스크립트를 사용할 때 반복하는 패턴에서 벗어났으면 하는 분께는 미처 알지 못했던 꿀팁과 기능, 그리고 참고할 수 있는 실무 예제를 얻을 수 있는 파트너로 생각할 수 있습니다.


       


       


      아마도 많은 경우, 업무 환경에서 리눅스를 사용할 일, 정확히는 터미널로 리눅스에 연결하여 작업하는 경우가 별로 없다면, 구글 검색을 통해 찾은 내용대로 셸 스크립트를 실행해서 해결하시리라 생각합니다.


      만약 자주 반복하는 일이라면 귀찮아서라도 명령어를 좀 더 알아보고 자료를 찾아, 불필요한 시간 낭비를 줄이고자 했을 것입니다.


       


      구글에서 검색하니 원하는 결과를 얻을 수 있는 명령어를 알려줍니다.


      알려준대로 입력하고 실행했더니 원하는 결과를 얻습니다. 그리고 잊어버립니다. 


       


      스크립트에 있는 명령어가 하는 역할을 정확히는 알지 못하지만, 


      검색하며 알게 된 단편적인 지식을 모아서 유추하는 정도입니다. 보다 정확히 말하면 대충 미루어 짐작합니다. 뭐 원하는 결과는 나오니 다른 업무가 바빠서 그럼 이만, 하는 거죠.


       


      가끔은 정확한 사용법을 모른다는 생각에, 


      한 번씩 호기롭게 도움말 명령어인 man을 실행했다가도


      방대한 내용, 가다가 막히는 영어 실력, 시간에 쫓겨 다음을 기약하며 내용을 닫습니다.


       


      저를 비롯하여 공감하시는 분이 계시리라 생각합니다.


      이 책을 통해 짐작만 하던 명령어를 내가 필요한 만큼 사용하실 수 있으리라 생각합니다.


      책 내용을 살뜰히 익힌다기보다 가볍게 훑어본 뒤, 손이 닿는 곳에 두고 필요할 때, 필요한 부분만 활용해도 좋으리라 생각합니다.


       


      1부 셸 스크립트 기초는 스크립트 기초 문법을 설명합니다.


      셸 스크립트만의 특징을 파악하면 추후 스크립트를 보는데 많은 도움이 됩니다. 문법 전체를 설명하진 않고 기본적인 내용만 얘기합니다. 문법은 2부와 3부를 통해 계속 만납니다.


       


      2부 가장 많이 쓰는 리눅스 명령어는 네 가지 명령어 사용법을 알려줍니다.


      grep과  find를 좀 더 알게 되어 좋았습니다. awk는 어디에 쓰는지 갸우뚱하며 보았습니다. 3부에서 많이 봅니다. 셸 스크립트에서 고유한 역할을 하고 있습니다. sed는 에디터가 있는데 왜 굳이 이런 방식을 사용할까 하다가 수많은 설정 파일에 생각이 닿으며 이해할 수 있었습니다.


       


      3부 예제와 함께 하는 셸 스크립트 활용에서는 비슷한 패턴을 반복합니다.


      이를 통해 자연스럽게 셸 스크립트에 익숙해집니다. 굳이 실제 사용하지 않더라도 짜여진 셸 스크립트를 보고 이해할 수 있습니다.


      반복하는 패턴은 ‘상황 -> 방법 찾기 -> 스크립트 생성 -> 문제 해결’ 입니다.


       



      상황


      스크립트가 필요한 상황을 제시합니다.  그 상황을 효율적으로 처리하고자 스크립트를 구성합니다.



      방법 찾기


      필요한 정보 - 사용할 명령어와 관련 정보를 정리합니다.


      프로세스 - 명령어로 처리할 순서와 작업을 정리합니다.



      스크립트 생성


      필요한 정보와 프로세스를 적용한 실제 스크립트를 보여줍니다. 스크립트 가운데 주요 명령어와 처리에 대한 설명이 이어집니다.



      문제 해결


      생성한 스크립트를 실행한 결과를 보여줍니다.


       


      ‘백문이 불여 일타’라고 하지만 3부의 내용을 모두 실행해 보기에는 사람마다 상황이 다르리라 생각합니다. 가상 환경을 구성하는 방법도 고려해 보는 등 각자 사정에 맞는 방식으로 접근하면 좋을 것 같습니다.


       


       



      리눅스 터미널에서 프롬프트와 마주할 때 만나는 막막함에서 벗어날 수 있습니다.’


       


    • 본 리뷰는 한빛미디어의 도서 서평단 <나는 리뷰어다 2021> 프로그램의 일환으로, 무상으로 도서를 증정 받고 작성된 리뷰임을 고지합니다.




      개발을 공부하는 입장에서, 항상 공부를 해야겠다는 마음만 어딘가 깊숙히 넣어놓고, 실행에 미처 옮기지 못 한채로 부채감을 느끼는 것들이 몇 가지 있습니다. 예컨대, 셸 스크립트는 그 중 하나입니다.


       


      학부 전공 수업을 듣다보면 많은 교수님들께서 기본기를 강조하시며, 그 중에서도 OS, Computer Architecture 등에 큰 무게를 두시곤 합니다. 이번 학기에 OS 수업을 들으며, 얼마 전에도 교수님께서 말씀하신 내용이 기억납니다. 바로, "성공한 학부생 중에서 Linux 안 쓰는 애가 없었다"는 얘기였는데요. 누구나 알만한 좋은 기업에 취업하거나, 괜찮은 랩으로 진학한 학생들 중에서 Linux를 쓸 줄 모르는 학생은 없었다...라는 논조의 얘기로 기억합니다. 


       


      AWS에서 Ubuntu 인스턴스를 만들어서 배포에 사용한다던가, 라즈베리파이에서 모종의 작업을 할때, 종종 Ubuntu를 사용하곤 했지만, 정작 제대로 심혈을 기울여 공부해본 적은 없었던 것 같습니다. 특히, Vi/Vim이라던가, 셸 역시 알음 알음 필요한 내용을 검색해서 배우고, 활용할 뿐이지, 제대로 심도 깊게 공부할 생각은 미처 하지 못 했던 것 같은데요.


      특히 매번 필요한 내용을 구글링 해서 단순히 타이핑을 할 뿐, 해당 셸 스크립트가 대체 무슨 뜻인지 제대로 알아먹지 못 하는 제 자신이 때때로 한탄스럽기도 했습니다. 마침 크게 관심이 갔던 도서였는데, 이번 기회에 운 좋게 리뷰를 할 기회를 얻게 되어서 정말 좋았습니다.


       


      또, 책을 펼쳐 두어장 정도 넘기니, 반가운 분의 성함을 볼 수 있었습니다. 예전에 오픈소스 수업에서 많은 배움의 기회를 주셨던 교수님께서 추천사를 적어주신 내용을 발견했습니다. 문득 생각해보니, 교수님께서 수업시간에 언급하셨던, 멋진 커리어를 펼쳐나가고 계신 여러 개발자 분들 중 한분이 바로 책의 저자분이 아니셨을까... 하는 생각이 드네요 :)


       


      1부부터 3부까지, 총 세개로 나누어진 책의 주제는 다음과 같습니다.





      1부는 셸 스크립트 기초로, 셸 스크립트에 대한 간단한 소개와 셸 스크립트 기초 문법으로 나누어져 있습니다. 70페이지 남짓한 해당 파트에서는 셸 스크립트의 종류와 쓰임새 등, 간단한 소개 이후 바로 실습으로 넘어가게 되는데요. 사용자는 여기에서 기본적인 셸 스크립트의 사용법과 전역변수/지역변수, 예약변수와 환경변수, 매개변수와 매개변수의 확장 사용법 등을 배워나갈 수 있습니다. 또한, 조건문과 반복문, 연산자, 정규 표현식 등 여느 개발자라면 쉽게 익힐 수 있는 내용으로 되어있는데요. 좋았던 부분은, 각 파트별로 적게는 3개에서 많으면 10개까지, 다양한 케이스에 대한 예제가 풍부하여, 간단히 읽으며 내용을 따라가기만 해도 유용한 지식들을 배울 수 있다는 점입니다. 


       




      2부는 좀 더 실용적인 내용으로, 명칭은 "가장 많이 쓰는 리눅스 명령어"입니다. 제목 그대로, 해당 파트는 많이 쓰이는 명령어 위주로 리눅스 명령어 사용법을 안내합니다. 총 5개의 파트로, grep, find, awk, sed, date를 배우게 되는데요. 한 장씩 넘길 때마다 정말 실용적인 지식이 많이 들어있음을 느끼게 되었습니다. 


      단순히 리눅스 명령어를 정리해놓은 파트가 아니라, 마치 저자가 제 사수가 되어서 자주 쓰이는 명령어를 알려주고, 이런 것도 할 수 있다, 이런건 더 유용하다... 하면서 부가적인 지식까지 머릿속에 쏙쏙 넣어주는 느낌이었는데요. 예제1, 예제2...로 번호가 붙어있는 예제들이 이런 식으로 한발 더 나아간, 정말 유용한 지식들을 많이 안내하고 있습니다. 예컨대, 문자열을 찾아서 바꾸어주는 명령어인 sed 부분을 보면, 아래와 같은 식으로 여러가지 케이스에 대해 풍부한 사용 예시를 안내하고 있습니다. (이또한 극히 일부일 뿐입니다.)




       




      3부는 '예제와 함께 하는 셸 스크립트 활용' 입니다. 2장까지는 본격적인 리눅스 사용자가 아니라면, 셸 스크립트를 배워서 어디 써먹나? 하는 느낌이 약간 들 수도 있는데, 사실 3부가 정말 책의 진국이라고 생각합니다. 셸 스크립트를 실제로 사용할 수 있는 여러 예시들이 등장하는데요. 해당 부는 시스템 구축, 환경설정, 보안, 모니터링, 클라우드 시스템 운영, 퍼블릭 클라우드 사용 파트로 나누어져 있습니다. 


      다양한 케이스를 제시하고, 이 케이스에 대해 적절한 셸 스크립트를 작성하는 안내가 이어지는 구조인데요. 평소에 관심이 많은 클라우드 파트부터 먼저 읽었는데, 반갑게도 AWS가 등장합니다.


      해당 파트의 주제는 AWS CLI 사용환경 만들기 였는데요, 저 또한 평소에 AWS를 사용하면서 CLI 환경으로 바꿔야지... 마음은 먹어왔는데.. 아무래도 익숙하지 않다보니 매번 GUI Console환경에서 작업하기 일수였습니다. 본 챕터는 AWS CLI를 사용할 수 있는 환경을 셸 스크립트로 구축하는 방법에 대한 안내가 나와있습니다. 또한, CLI를 통해 EC2 인스턴스를 생성하는 등의 안내도 나와있는데요. 이렇게나 간단히 인스턴스 생성이 가능했구나..하고 새삼 놀라운 마음이 들었습니다. 


       


      사실 셸 스크립트를 잘 활용하고 싶다는 마음은 언제나 가지고 있었지만, 변명을 해보자면, 딱히 기회가 없었습니다. 리눅스 환경을 쓰는 실무자도 아니고, 아주 가끔 한번씩 정해진 작업만을 위해서 리눅스 환경을 사용하는게 고작이었고, 매번 필요한 명령어는 검색을 통해 찾아서 사용하면 됐으니까요. 본 도서를 한번 쭉 따라 읽으며, 실습을 겸하니, 이제 적어도 셸 스크립트에 대한 두려움이 많이 사라졌습니다. 


      매번 구글링을 통해 얻은 자료를 보이는대로 따라 치기만 했던 왕초보에서, 이제 적어도 셸 스크립트의 내용을 파악하고, 아주 약간은 고쳐볼 수 있는 초보의 길로 들어선 것 같은 느낌이랄까요.


       


      특히, 아래의 3부 목차 중에서 관심있는 토픽이 눈에 띄는 분들이라면, 해당 도서가 더더욱 도움이 될 것 같습니다.


       






      책의 두께 자체는 그리 두껍지 않습니다.


      하지만, 내부에는 저와 같은 셸 스크립트 초보자(셸린이..?)에게 무척 큰 도움을 줄 수 있는 내용으로 알차게 꽉꽉, 채워져있습니다.


       


      특히 학부생들의 경우에도 OS 수업을 비롯해 여러 전공 수업에서 Linux를 활용할 일이 많을텐데요. 이들 중 상당수는 Vi/Vim으로 문서를 작성하는 것부터 난항을 겪곤 하는데, 만약 해당 도서를 통해 미리 셸 스크립트를 어느 정도 공부한 후라면... 수업 중 발생할 수 있는 수업 외적인 많은 문제를 쉽게 해결할 수 있을 것이라 생각합니다.


       


      셸 스크립트, 리눅스에 관심있는 주니어 개발자와 학부생, 모두에게 강력 추천합니다 :)


      (학부생이라면, 관심이 없어도 추천합니다.)


    • 처음배우는셸스크립트표지.jpg처음배우는셸스크립트


       


      대상독자


      이 책은 처음 셸 스크립트를 이해하고 다루는 데 필요한 기본기를 쌓으려는 개발자, 시스템 엔지니어, IT 분야 전공 학생들을 대상으로 하고 있습니다.


      처음 스크립트를 다루는 사람들의 눈높이 맞춰 집필이 되어 있습니다.


       


      이 책의 구성


      1부 : 셸 스크립트란?


      셸 스크립트의 역사에 대하여 간략하게 설명합니다.


      1.1 셸 스크립트가 뭐죠?


      셸 스크립트는 Unix나 Linux 또는 POSIX를 지원하는 운영체제인 macOS 등에서 사용하는 일반적인 명령어들과 프로그래밍적인 요소로 이루어진 인터프리터 기반의 스크립트 언어입니다.


      1.2 셸 스크립트는 어디에서 쓰나요?


      셸 스크립트는 리눅스나 유닉스가 설치되어 있는 곳이라면 어디에서나 사용할 수 있습니다.


      그것이 물리서버이거나, 가상 서버이거나 또는 컨테이너가 될 수도 있습니다.


      =============================================================


      2장 : 셸 스크립트 기초 문법


      셸 스크립트를 다루기 위한 기본적인 문법에 대하여 학습하는 절입니다.


       


      2.1 셸 스크립트 만들기


      셸 스크립트를 만들기 위해서는 vi나 vim 에디터를 이용하여 만드는것이 좋습니다.


      실습을 위해서 우분투를 설치해야 하는데 윈도우10에서 우분투를 직접 설치하여 실습이 가능하다.


      설치 방법에 대해서는 아래 블로그를 참고하였다.


      https://forbes.tistory.com/543


       


      2.2 변수 사용하기


      애플리케이션을 개발하다 보면 특정 연산을 수행한 후 결과를 이용하여 또 다른 연산을 할 경우가 많은데 셸 스크립트를 개발할 경우에도 사용이 가능합니다.


       


      - POSIX 기본 및 확장 문법은 텍스트를 찾기 위한 패턴을 표현하기 위해 사용되는 표현식


       - POSIX 문자 클래스는 찾고자 하는 문자열의 종류를 찾을때 사용합니다.


       - 기타 다양한 정규 표현식을 예제를 통하여 학습할 수 있습니다.


      =============================================================


      2부 : 가장 많이 쓰는 리눅스 명령어


      3장 문자열을 찾을 수 있는 grep


      리눅스나 유닉스에서 가장 많이 쓰는 명령어는 특정 디렉터리나 로그, 환경 설정 파일 등에서 특정 문자열을 찾는 grep 명령어입니다.


      이번 장에서는 grep 사용법 및 다양한 옵션들에 대해서 학습 합니다.


      3.1 grep 사용법 알아보기


      이번 절에서는 grep의 기본 사용법에 대하여 설명합니다.


      3.2 grep의 다양한 옵션들


      이번 절에서는 기본 사용법 예제의 옵션들 외에도 많은 옵션들이 있는데 grep에서 제공하는 다양한 옵션들에 대하여 학습합니다.


       - 정보 관련 옵션, 패턴 문법 관련 옵션, 매칭 제어 관련 옵션, 출력 제어 관련 옵션, 출력라인 제어 관련 옵션, 컨텍스트 라인 제어 관련 옵션,파일 및 디렉터리 관련 옵션, 기타 옵션


      이번 장에서는 다양한 grep의 사용법에 대하여 알 수가 있습니다.


      ============================================================


      4장 파일을 찾을 수 있는 find


      find는 사용자가 지정한 기준에 따라 파일을 찾고, 사용자가 정의한 행위에 매칭되는 파일을 시스템 디텍터리 트리를 검색하여 파일을 찾아주는 명령어 유틸리티입니다.


      4.1 find 사용법 알아보기


      find는 상황에 따라서 원하는 파일을 잘 검색할 수 있도록 다양한 옵션과 표현식을 제공합니다. 이 절에서는 find의 기본 사용법에 대하여 학습합니다. 


      4.2 find의 다양한 표현식


      find는 사용자가 필요로 하는 조건으로 파일을 찾기 위한 방법을 옵션이 아닌 표현식으로 제공합니다.


      이번 절에서는 테스트, 연산자, 액션, 위치옵션에 대하여 학습하고 다양한 예제를 실습해 볼 수 있습니다.


      예) expr 연산자 사용하기, ! expr 사용하기 등


      4.3 find 옵션


       find 에서 제공하는 옵션에 대하여 설명합니다. 


       - 심볼릭 링크 관련 옵션, 디버그 관련 옵션, 레벨 관련 옵션


      자주 사용되는 find 명령어를 알아 보았습니다. 이번 절에서 find를 이용하여 좀 더 쉽게 원하는 파일을 찾을 수 있도록 연습을 해보는게 좋을 듯 합니다.


      ============================================================


      5장 특정 인덱스 문자열을 출력할 수 있는 awk


      이번 장에서는 쉡 스크립트 작성시 주로 사용되는 시스템 파일 목록, 컨테이너 목록, 애플리케이션 실행 결과에서 특정 컬럼에 해당하는 문자열을 추출하는 등 이와 관련하여 awk 명령어를 알아보고 사용법을 익히도록 합니다.


      ============================================================


      6장 찾은 문자열을 바꿀 수 있는 sed


      이번 장에서는 특정 문자열을 찾아 원하는 문자열로 변경하고, 범위를 지정하고 해당 범위의 문자열을 변경하는 방법에 대하여 설명합니다.


      ============================================================


      7장 날짜와 시간을 알려주는 date


      이번 장에서는 날짜와 시간을 알려주는 date 명령어 대하여 설명합니다.그리고 자주 사용되는 사용법과 옵션에 대하여 설명합니다.


      ============================================================


       


      3부 예제와 함께 하는 셸 스크립트 활용


       


      이전 1부와 2부에서는 셸 스크립트를 생성하기 위한 기초 지식을 습득하는 것이었다면 이번 3부에서는 실무에서 다양하게 활용할 수 있는 지식을 습득합니다.


       


      8장 시스템 구축


       


      이번 장에서는 시스템을 구축하면서 여러 상황이 발생할 수 있는데 셸 스크립트를 이용하여 문제를 효율적으로 해결하는 방법에 대하여 설명합니다.


      이번 절에서는 상황을 설정하고 그 상황을 해결하기 위한 방법을 찾는 형태의 설명과 실습을 진행하고 있습니다. 이렇게 문제 해결을 위한 방법까지 제시하고 있어 실제 문제를 해결하기에 충분합니다.


      ============================================================


       


      9장 환경 설정


      이번 장에서는 서버에 운영체제를 설치하고, 다양한 애플리케이션들을 설치하다가 발생하는 여러 상황에 대하여 해결하는 방법과 그에 대한 실습으로 진행하고 있습니다.


      ============================================================


      10장  보안


       


      이번 장에서는 다양한 업무를 처리하기 위한 웹 상의 시스템에서 리눅스 환경에서 적용되는 가장 기본적인 보안 적용 상황에 어떻게 셸 스크립트를 이용하여 효율적으로 시스템 보안을 적용하는지에 대하여 설명하고 실습합니다.


       


      ============================================================


       


      11장 모니터링


       


      이번 장에서는 시스템 구축 후, 운영으로 전환되면 서비스가 정상적으로 이루어지고 있는지를 확인하기 위한 운영체제, 가상 환경, 애플리케이션 환경 등을 모니터링하기 위한 것에 대하여 설명합니다.


      여러 서버 환경을 모니터링 하기 위한 셸 스크립트 사용법에 대하여 학습합니다.


       


      ============================================================


       


      12장 클라우드 시스템 운영


       


      이번 장에서는 대부분의 회사들이 클라우드 시스템을 사용하거나 클라우드 시스템을 구축하고 클라우드 서비스를 제공하는 곳이 많은데 이번장에서는 오픈소스 클라우드 플랫폼인 오픈스택을 이용하여 클라우드 시스템을 운영할 때 발생할 수 있는 다양한 상황에 대하여 학습합니다.


      ============================================================


       


      13장 퍼블릭 클라우드 사용


       


      이번 장에서는 클라우드 시스템을 가장 쉽게 사용하는 방법으로 퍼블릭 클라우드 시스템을 사용하는 것인데, 이번 장에서는 aws, gcp의 CLI 사용환경 및 가상자원 생성을 셸 스크립트화 해보는 학습을 합니다.


       


      ============================================================


       


      이 책은 실무에서 적용하기 위한 기초 문법 및 유용한 리눅스 명령어들과 시무에서 어떤 문법과 명령어로 셸 스크립트를 작성하고 사용하는지가 잘 녹아져 있습니다. 다양한 실습과 예제가 충분히 책 한권에 녹아져 있기에 부족한 부분이 전혀 없습니다.


       


      즉 책을 눈으로만 보지말고 직접 실습을 해보아야만 이 책의 진가를 알 수가 있습니다.


      물론 초보자를 위한 세심한 배려가 좀 부족한 부분은 있으나 충분히 검색을 통하여 해결할 수 있습니다.


       


      셸 스크립트를 이해하는데 앞으로 변하지 않을 기본적인 뼈대가 될 충분히 소장가치가 있는 책이라고 생각합니다.


       


      앞으로 저의 옆에 항상 두고 두고 볼 그런 책입니다. 기본적인 셸 스크립를 사용하고자 하시는 분들은 한권정도 곁에 두고 있으면 아주 유용한 그런책입니다.


      ============================================================


       


      본 포스팅은 한빛미디어에서 도서를 제공받아 직접 체험하고 작성한 솔직한 후기입니다.  


       


       


       

    • 현재 우리가 사용하는 많은 서비스들은 리눅스 위에서 동작하고 있습니다.


      웹서버를 올리거나 데이터 학습을 위한 모델을 만들 때 또는 서버나 애플리케이션 모니터링에도, 우리는 리눅스 서버에서 쉘 스크립트를 이용해 우리가 원하는 작업을 수행합니다.


      쉘 스크립트는 특정 개발 분야에서만 사용하는 것이 아니라 거의 모든 개발자가 사용하고 있거나 사용하게 될 것입니다.


       


      보통 목적에 맞게 반복적으로 사용하는 경우가 많아서 제대로 학습하고 사용하지 않게 되는 것 같기도 합니다.


      쉘의 경우는 오래전부터 사용해 왔기 때문에 좋은 자료들과 사례들이 많이 있습니다.


      하지만 보통 쉘 스크립트 문법과 리눅스 명령어를 조합해 사용하기 때문에, 막상 시작하려면 어디서부터 해야 하는지 어려울 때가 있을 것 입니다.


       


      “처음 배우는 쉘 스크립트”는 쉽게 쉘과 리눅스 커맨드를 학습할 수 있도록 친절한 설명과 예제들을 제공하고 있습니다.


      쉘과 리눅스 명령어는 매우 방대한 양이지만 이 책에서는 실제로 많이 사용하는 내용을 위주로 정확하고 간결하게 설명하고 있습니다.


      책의 분량도 많지 않아서 빠르게 학습을 원하시는 분들에게는 좋은 선택이 될 것이라고 생각합니다.


      1부에서는 쉘 스크립트의 기초 문법을 2부에서는 많이 사용하는 리눅스 명령어들에 대한 내용이 담겨 있습니다.


      3부에서는 활용 예제에 관한 내용이라서 필요한 분들만 보시면 될 것 같습니다.


       



      특별한 상황이 아니여도 스크립트는 많이 사용하기 때문에, 스크립트를 모르시거나 어려움을 겪고 계신 분들 이라면 책을 읽어보셨으면 좋겠습니다.


       


       








    • 셸스크립트 책






      혹자는 이런 생각을 할 수도 있다.



      셸스크립트를 궂이 책까지 봐야 할 필요가 있을까?



      그냥 그때 그때 필요한 명령어 검색하고 쓰면 되는 거 아냐?






      맞다 그 혹자가 나다



      그동안 그냥 대충 리눅스 공부하면서 알게된 명령어 몇개라던지



      아니면 꼭 필요한 명령어 같은거 있는거만 자주 안 쓰니까 그때 그때



      찾아서 사용해보고 또 안쓰다 보면 가물가물 하고....






      나에게 셸 스크립트는 그런 존재였다.






      그래서 사실 셸스크립트에 대해 전체적으로 잘 알지는 못한다



      부분적으로 이런거 있을거 같은데? 하면서 뭐



      "파일찾기 셸스크립트", 라던지 "자동실행 쉘" 이라던지



      그때 그때 필요한 것들 대충 검색 하면서 써 왔다.






      이 책의 내용은 셸스크립트를 다년간 리눅스 시스템과 클라우드 시스템의 구축 경험을 토대로



      실제 활용자의 입장에서 유익하게 쓰여졌다고 나와있다.



      설명으로 보자면 실전 활용서?






      어디 보자 책은 총 3부로 구성되어있다.






      1부는 셸스크립트 기초



      셸스크립트가 무엇인지 기초 문법부터 시작하고



      2부는 가장 많이 쓰는 리눅스 명령어



      grep, find, awk, sed, date 활용



      3부는 예제와 함께 하는 셸 스크립트 활용



      시스템 구축시 필요한 것들 계정 생성, SSH Key 여러 서버 복사



      다수의 서버에 NTP 서버 설치 등...



      환경설정 sshd 환경설정, ntp 환결설정 등...



      보안 관련한 내용 모니터링 등...






      이러한 전문가의 관점에서 필요한 내용들이 나열 되어 있다.



      뭐 기억에 남는 내용들은 정말 제대로 알아보지 않고 대충 지나갔던 부분들



      ${변수-문자열}과 ${변수:-문자열} 에 관한 내용



      변수에 값이 설정됐을 때 변수조차 선언되지 않았을 경우, 변수가 선언되었으나



      NULL값으로 초기화 되었을 경우의 변수 사용법 이라던지






      되게 애매하고 제대로 파보지 않았던 부분들에 대한 내용이 자세히 나와있다.



      나 처럼 대충 되는거 확인하고 넘어가는 사람들에게는 좋은 내용이 아닐까 싶다.



      정규식에 관한 내용들도 좀 있고...






      보통 잘 하시는 분들은 그냥 -h 나 -help를 통해 그냥 보고 바로 쓰실텐데



      나는 B급 실력을 가지고 있기 때문에 이 책 처럼 한글로 자세히 나와있으면



      그냥 좋다.






      책을 보면서 생각이 드는 것은 진짜 많이 사용하면서 필요하고 겪을만한



      일에 대해서 명령어를 설명을 잘해놨구나 이런 생각이 들었다.






      단순 find 명령어를 사용하는데도 -anewer file 최근에 접근한 파일을 찾는 내용이나



      -cnewer file 최근에 변경된 파일을 찾는것이나



      관리자나 운영자 차원에서 많이 쓸법한 내용들이 있다.






      그냥 쭉 읽어보아도 자연스럽게 쓸만한 명령어들의 응용 사용법들에



      나와 있으니 도움이 될 듯 싶다.



      뭐 사실 중요한건 내가 리눅스 운영체제에서 얼마나 셸을 만질 환경인가이지만



      (한달에 한두번 가끔 쓰는거면 궂이 외워둘 필요는 없지않을까? ㅎㅎ)



      그래도 한번 쑥 훑어보면 내가 바로 사용하는 방식부터가 다르기 때문에...



      알고 안쓰는거랑 몰라서 못쓰는거랑은 다르니까...






      내가 관리자나 운영자의 입장에서 셸을 계속 써야 한다~! 한다면



      이 책을 함 훅 읽어주고 업무에 임하면 도움이 될 듯 싶다.






      아 간단히 예를들자면 어디 학교나 병원이나 전산실에 들어가서 관리자



      또는 운영자로 일을 해야 한다 뭐 이렇다면 이 책은 쑥 해보고 숙달을 해놔야 하지 않을까?



      하는 이런느낌적인 느낌






      뭐 그렇다.






      그럼 끝









    •  



      KakaoTalk_20210321_095123925.jpg


       


       



      [본 리뷰는 한빛미디어 '나는 리뷰어다 2021'을 통해 서적을 제공받아 작성하였습니다]







      어디선가 "주니어가 알면 좋은 개발 스택(?)" 2위로 쉘을 다루는 법이 투표된 것을 본 적이 있습니다. (참고로 1위는 '깃'과 같은 버전관리에 대한 지식이었습니다.) 저를 포함하여 프로그래밍을 처음 접하는 사람들에게 검은 화면에 흰 글씨뿐인 CLI 환경은 두려움의 대상일 수 밖에 없습니다. 괜히 뭔가를 입력했다가 컴퓨터가 망가지지 않을까하는 걱정이 들기도 하고요. 특히 서버를 다뤄야 하는 사람이라면 언젠가 만나야 할 대상이기도 합니다.







      '처음 배우는 셸 스크립트'는 이런 고민을 갖고 계신 분들에게 좋은 길잡이가 될 수 있는 책이라고 생각합니다. 본 책의 초반부에서는 셸의 개념과 기초 문법, 가장 많이 사용되는 리눅스 명령어를 짚어주고 있습니다. 눈에 띄는 것은 3부의 구성인데요. 셸 스크립트를 활용해서 시스템 구축, 보안, 클라우드 시스템 운영 등 다양한 실습을 할 수 있도록 구성하였습니다. 해당 실습코드와 결과도 놓치지 않고 나와있어 실습 중에 어느 부분을 잘못하였는지 쉽게 알 수 있어 따라가는 데 어려움이 없었습니다.







      장래 서버쪽을 다루는 직군에 지원하고자하는 취준생 및 해당 직군에 재직중인 주니어라면 셸의 세계로 입문하는 데 친절한 가이드가 될 수 있을 것입니다.

    • 한빛미디어 리뷰어 선정으로 리뷰하게 된 도서이다.


      책 제목에도 쓰여있다시피 시스템 구축부터 보안, 모니터링, 클라우드 운영 전반에 대한 내용을 다루고 있는 책이다.


      인공지능 분야에서 일을 하면서 리눅스 시스템과 친해질 일이 많아서 기존 쉘 스크립트 관련된 책을 몇권 구입했던 적이 있다. 다만 생각보다 책의 내용이 너무 방대하고, 많아서 다른 말로는 필요하지 않은 부분들까지 다뤄서 완독을 못하고 있었다.


      이 책은 리눅스를 다룸에 있어서 딱 필요한 내용들만 다루고 있어서 좋다. 총 3부로 구성되어있고, 1부는 쉘 스크립트 기초, 2부에서는 grep, find, awk sed, date 등을 다루고 있고, 마지막 3부에서는 실제 여러 상황들에 대한 쉘 스크립트 사용을 다루고 있다.


      2부까지는 필요한 내용이어서 꼼꼼히 읽어보았지만, 3부의 경우는 무슨 내용인지 잘 모르겠는 것으로 봐선.. 당장 필요한 내용은 아닌 것 같다.



      책 내용의 구성으로는 기본적인 기능 설명과 그에 대한 예제가 반복되는 형태로 되어있어서 실습하듯 따라하면서 익힐 수 있다는 장점이 있다. 이런 책 구성은 이북으로 띄워놓고 보조모니터에 띄워놓고 보면서 하면 편한데.. 이북이 아직 나오지 않았단 점이 조금 아쉽다.

      이 책을 다른 책들보다 높게 평가하는 점이라면, 필요하던 기능들만 컴팩트하게 있어서 빠르고 효율적으로 공부할 수 있다는 것이다. 


    • 이 책의 구성


          이 책은 쉘스크립트를 사용해보지 않은 사람도 손쉽게 이해 할 수 있도록, 기초부터 차근차근 설명해 주고


      있습니다. 변수의 선언, 조건문, 반복문의 사용등 간단한 문법에서부터 자주 사용하고 있는 리눅스 명령어


      grep, find, awk, sed 등등을 예시와 함께 설명하고 있습니다. 좋았던 점은, 이런 명령어들을 사용할 때에


      옵션들이 정말 다양하게 있는데, 사용방법별 옵션들을 상세히 설명해 주고 있어서, 실전에서도 유용하게 


      사용할 수 있을 것이라고 생각합니다.


       



      책의 장점


          앞서 이야기한것처럼, 쉘 스크립트 전반에 대해서 이야기 하고 있다보니, 기본적인 것부터, 실무에서


      많이 사용하는 명령어등 다양하게 알 수 있어서 좋앗습니다. 또한 어떤 상황에서 셸스크립트를 사용하는지


      명시하고 있어서, 서버 인프라를 구성할 때에 참고할 만한 내용들이 많이 있엇습니다. 개발만 주로 담당하는


      개발자들이 알지못하는 서버내의 보안이나, 비밀번호 관리, 인증서 관리등의 부분도 셸스크립트를 사용하여


      처리할 수 있다는 점을 알 수 있어서 좋았습니다.  그리고 책 후반부에서는 클라우드내에서 셸스크립트를


      활용하는 방법에 대해서도 설명하고 있어서, 최근 인프라 트렌드에 맞는 구성이 되어 있던 점도 인상깊었습니다.


       


      조금 아쉬운점은, 셸스크립트에 대한 예시도 책 내부에서 많이 설명하고 있지만, 리눅스 환경에 익숙하지 않은


      개발자들에게는 이조차도 조금은 어렵겠다는 느낌이 조금은 들었습니다. 리눅스에 대한 이해가 조금은


      있어야 거부감이 들지 않을까 하는 생각이 들었습니다. 


    • IMG_1527.JPG


      리눅스 환경에서 백엔드 개발을 하게 되면 자연스레 리눅스 서버 관리도 함께 하게 된다. 사용자 계정을 관리하고 주기적으로 서버에 로그인 한 사용자, IP 등의 로그를 확인하고, 웹 서버 또는 데이터베이스 서버의 로그를 확인 하는 등 여러 작업들을 수행하게 된다. 반복적인 작업이나 주기적으로 해야 하는 작업등을 프로그램화 시켜서 편리하게 사용할 수 있는데 이것을 가능하게 하는 것이 셸 스크립트이다. 가끔 라이브러리를 설치하면서 셸 스크립트 파일을 사용해 본적이 있다. 셸 스크립트를 배워두면 서버 운영에 편리할 것이라 생각되었지만 원하는 자료를 찾아 공부하기가 쉽지 않았다. 이번에 한빛미디어에서 나온 "처음 배우는 셸 스크립트"를 통해 셸 스크립트 공부를 하였는데 나같이 프로그래밍 경험은 있지만 셸 스크립트 경험이 없는 입문자에게 알맞은 책이 었다. 대부분의 리눅스에서 주로 사용하는 bash 셸 기준으로 설명되어 진다. 책의 1부에서는 셸 스크립트 기초 문법을 알려주는데 정의와 옵션, 예제로 구성되어 있어 스크립트를 짜면서 부족한 문법 부분을 찾아 읽기에도 좋게 되어 있다. 2부에서는 리눅스에서 많이 쓰는 명령어 5가지를 알려준다. 알게 모르게 썼던 grep, 파일 찾을 때 많이 쓰던 find 과 시간 확인하는 date는 알고 있었는데 awk와 sed는 이번에 책을 보면서 처음 알게 되었다. 각각의 명령어 별로 옵션의 사용법까지 자세하게 설명해주기 때문에 이 다섯가지 명령어는 확실하게 자신의 것으로 마스터 하게 될 것이다. 3부로 넘어오면서는 다양한 상황에서 스크립트를 통해 어떻게 문제를 해결하는지 소개하고 있다. 단순히 예제만 나오는것이 아닌 문제 상황과 문제 해결에 필요한 방법 찾기, 스크립트 생성, 문제 해결 순으로 챕터가 구분되어 있는 부분이 정말 좋았다. 서버를 관리하다 보면 여러 상황이 생길 수 있다. 그럴때 이 책에서 스크립트를 통해 문제를 해결하는 프로세스를 생각하면서 문제 상황을 해결 할 수 있을 거라는 생각이 들었다. 

    • 셸 스크립트. 전산 혹은 정보보호 업무를 수행하시는 분들은 한 번 쯤, .sh 파일을 실행시켜보셨을 거예요.


      서버 운영 업무도, 취약점 점검 업무도 다 범용적으로 사용하는 기술이죠.


       


      저는 기존에 작성된 셸 스크립트를 실행만 시켜보다가 원하는 결과값을 얻을 수 있도록 셸 스크립트를 수정해보고 싶던 차에 이 책을 접하게 되었어요.


       


      "셸 스크립트는 일반적으로 사용하는 명령어들과 if, for문과 같은 프로그래밍적인 요소가 가미된 인터프리터 기반의 스크립트 언어"라고 해요.


       


      명령어들을 한 파일에 쭉 작성하여 셸 스크립트 하나만 실행시키면 하나하나 일일이 명령어를 입력하지 않고, 다중 명령어들이 쭉 실행되는 거죠.


       


      셸 스크립트는 sh, 배시 셸(bash), 콘 셸(ksh) , csh, tcsh, zsh 등 여러가지 종류가 있는데, 이 책에서는 리눅스에서 가장 많이 사용하는 bash 셸을 기준으로 설명되어 있어요.


       


      셸 스크립트는 주로 유닉스/리눅스 계열 운영체제가 설치된 곳에서 사용해요.


      확장자는 .sh 이고, 셸 스크립트 시작부분은 #!/bin/bash 로 시작합니다. 셸 스크립트 파일이라는 것을 알려주는 부분이죠.


       


      스크립트 작성 후, 실행을 위해서는 "sh 파일명.sh" 으로 실행하면 됩니다.


       


      책의 목차는 다음과 같습니다.


       


      1부. 셸 스크립트 기초


        chapter 1. 셸 스크립트란 : 셸 스크립트가 무엇인지, 언제, 누가, 어디에서 쓰는지 설명하는 챕터입니다.


        chapter 2. 셸 스크립트 기초 문법 : 변수, 조건문, 반복문, 연산자, 정규 표현식을 설명하는 챕터입니다.


      2부. 가장 많이 쓰는 리눅스 명령어


        chapter 3. 문자열을 찾을 수 있는 grep


        chapter 4. 파일을 찾을 수 있는 find


        chapter 5. 특정 인덱스 문자열을 출력할 수 있는 awk


        chapter 6. 찾은 문자열을 바꿀 수 있는 sed


        chapter 7. 날짜와 시간을 알려주는 date


      3부. 예제와 함께 하는 셸 스크립트 활용


        chapter 8. 시스템 구축 : 사용자 계정 생성, SSH 키를 여러 서버에 복사, 다수 서버에 NTP 설치, Timezone 설정, 오픈스택 인스턴스 생성, 패키지 리포지터리 다운로드


        chapter 9. 환경 설정 : sshd, ntp서버, lvm 환경설정부터 NFS 스토리지 마운트, 네트워크 IP 설정하는 셸 스크립트 예제


        chapter 10. 보안 : 패스워드 설정 법칙 적용, 패스워드 변경 주기 설정, 권한 변경, firewall 포트 추가, 사설 인증서 생성


        chapter 11. 모니터링 : IPMItool 사용하여 서버 전원 체크, 네트워크 상태 모니터링, 서비스 상태 체크, Pacemaker 상태 체크, CPU 및 메모리 상태 체크, 서비스 로그 모니터링, 컨테이너 실행 상태 모니터링, 일일 시스템 점검 모니터링


        chapter 12. 클라우드 시스템 운영


        chapter 13. 퍼블릭 클라우드 사용


       


       




       


      이 책에서는 셸 스크립트를 처음 작성하는 사람이 보면 딱 좋은 책인 것 같아요.


      셸 스크립트의 역사~셸 스크립트 실행방법~작성 시작부터 변수선언, 각종 명령어들을 


      쉽게 설명하고 있어요.


      또, 셸 스크립트를 본인의 업무 경우에 활용할 수 있도록 다양하게 예제들을 제시하고 있어요.


       


      특히, 3부 예제와 함계 하는 셸 스크립트 활용 부분에서는


      예제별로


       


      1. 상황


      2. 방법 찾기 (필요한 정보, 프로세스)


      3. 스크립트 생성


      4. 문제 해결


       


      의 절차대로 예시를 제시하고 있어서 경우에 따라 담당자가 활용하기 쉽게 흐름이 적혀있어요.


       


      책 사이즈도 일반 전산 책보다 살짝 작고 두껍지도 않아서 빠르게 읽기 좋은 책이에요.


      다 보고나니, 셸 스크립트 개발을 시작해보고 싶은 분들에게 먼저 추천해드려도 정말 괜찮은 책인 것 같습니다 :)


    • 



      OS 를 가리지 않고, 커서 하나 덩그러니 깜박이고 있는 까만 terminal 화면에 무언가 한글자씩 타이핑해서 명령을 실행하는 것은 쉬운 일이 아니다. 특히나 요즘 같은 GUI 시대에 말이지. 프론트엔드 개발을 하면서 git 사용과 프론트엔드 관련 package 들의 cli 사용 이외에는 딱히 자주 사용하는 커맨드 라인 작업도 없었기에, terminal 을 열고 수행하는 작업은 무언가 두려움마저 느끼게 할 때가 있다. 'ㅅ')


       



      무지함은 두려움의 원인이라는 얘기를 어디선가 들은 적이 있는 것 같다.



      맞다. 나는 무지무지하게 무지한 바보 개발자.


       



      이 책은 나 같은 terminal 미숙련자를 위한 도서 정도로 치부하기에는 아까운, 그야말로 방대한 셸 매뉴얼이다. 가벼운 마음으로 '음. 이 책에서 grep 과 find 만 잘 익혀도 뭔가 도움이 될 것 같구만' 하고 책을 펼친 나는, 빡빡하게 적혀 있는 부단한 노력을 통한 익숙해짐과 숙련으로만 얻을 수 있는 거대한 양의 명령어 폭풍을 맞이하게 되었다.


       



      .


       



      문제는 이 내용이 너무나 세부적이고 자세해서, 입문서로 읽기에는 부담스럽게 느껴진다는 것이다. 2부에서 소개하는 명령어들은 본인 같은 리눅스 초보자들에게 분명한 도움이 될 것이나, 3부의 내용은 시스템 엔지니어나 데브옵스 엔지니어가 아니라면 사용할만한 기회가 그닥 없을 것 같다는 생각이 든다.


       



      명령어 위주로 구성된 책의 숙명인 것인가. 'ㅅ')



      익혀두면 피가 되고 살이 되겠다 하는 마음으로, 필요할 때마다 뒤져보면서 천천히 습득해나가야겠다.


       



      .


       


    • 벌써 한빛미디어 도서 서평단 나는 리뷰어다 2021 멤버로서 두 번째 포스팅을 작성하게 되었습니다 :)



      이번에도 역시 3권의 책을 고른 결과, 제가 리뷰할 책은 처음 배우는 셸 스크립트: 시스템 구축부터 보안, 모니터링, 클라우드 운영까지입니다.



      처음 배우는 셸 스크립트(장현정, 한빛미디어)



      이 책을 선택한 이유는 사실, 제목 자체에서는 그렇게 끌리지 않았습니다^^; 셸 스크립트 사용법을 굳이 책으로 익힌다기보다는 필요할 때마다 구글링 해서 해결하고 반복해서 사용하는 것들은 자연스럽게 체득하는 방식으로 충분하다고 생각했기 때문입니다. 그럼에도 불구하고 고르게 된 것은, 책 상세 페이지를 살펴보며 다음과 같은 점에서 매력을 느꼈습니다.



      • 복잡하고 반복적인 일들을 효율적으로 처리할 수 있음


      • 시스템 구축, 보안, 모니터링, 클라우드 운영 등 실무에서 쓰이는 내용을 예제를 통해 학습할 수 있음



      이외에도 백엔드 개발자를 희망하는 입장에서 기본기를 탄탄하게 하는데 도움이 될 것이라고 생각하였고, 아무래도 여성 시니어 개발자는 그리 많지 않은데 활발하게 활동하고 계신 분에 대한 존경심과 응원하는 마음으로 관심을 가지게 되었습니다.


      책의 구성


      이 책은 약 400 페이지로, 크게 3부로 구성되어 있습니다.



      1. 셸 스크립트가 무엇인지, 기초 문법은 어떻게 사용하는지와 같은 기초적인 부분을 여러 예제와 함께 다룹니다.

      2. 많이 사용하는 리눅스 명령어와 옵션들을 다양한 예제와 함께 자세하게 소개합니다.

      3. 각 챕터는 문제 상황을 가정 → 해결 방법 모색 → 스크립트를 생성 → 문제 해결 단계로 구성하여 시스템 구축, 보안, 모니터링, 클라우드 운영 등 실무에 활용하는 방법들을 살펴봅니다.


      추천 대상


      • 영어 매뉴얼을 보기 힘든 개발자

      • 리눅스, 유닉스를 자주 다루는 개발자

      • 인프라와 시스템, 개발을 담당하는 DevOps 엔지니어

      • 시스템이나 백엔드를 개발하는 소프트웨어 엔지니어, 시스템 운영자

      • 복잡하고 반복적인 일들을 효율적으로 처리하고 싶은 개발자

      • 단순 반복 작업으로 인한 업무 시간 소모를 원치 않는 개발자


      느낀 점



      처음에는 단순 기본 개념을 다루는 책이라고 생각했지만, 단순 업무로 인해 시간을 소모하는 것을 원치 않던 저에게는 딱 원하던 책이었습니다. 특히 3장의 구성은 실제 개발 중에 맞닥뜨린 상황에서 어떻게 해결해야 할지에 대한 과정을 함께 따라가는 느낌이라 근처에 두고 참고하며 관련 키워드를 얻어 문제 해결 방법에 접근하기 좋았습니다. 또한, 매번 사용법만 익혀 사용하던 저에게 제대로 익힐 수 있는 기회였습니다.


      조금 아쉬웠던 점은 2장의 리눅스 명령어는 굉장히 자세하게 많은 옵션과 다양한 예제를 제공하는데 물론 개발자로서 공부하다 보면 필요한 부분만 찾아서 보게 되기는 하지만, 처음 공부하는 사람의 입장에서는 처음부터 정독하는 상황도 생길 것 같은데 너무 자세하게 다루다 보니 2장에서 힘을 너무 뺀 나머지 계속 이어가기에는 어려울 수 있지 않을까 싶었습니다. 2장에는 핵심적인 내용을 담고 더 공부하고 싶은 사람들이 참고할만한 자료나 링크를 첨부하는 것으로 조금 더 간결하게 구성해도 좋았을 것 같습니다. 제 경우에는 대부분 구글링이나 공식 문서를 참고하기 때문에 그랬지만 영어로 작성된 매뉴얼을 보기 어려운 분들에게는 상세하게 설명된 이 책이 도움이 될 것 같습니다!




    •  


      셸 스크립트는 항상 필요할때에면 검색을 해서 그때그때 찾아보기만 했다. 거의 복사 붙여넣기만 하면서 사용해왔다. 여러번 같은 내용을 찾다 보니 간단한 내용들은 알고 있는데 조금만 복잡해지면 여지없이 검색이 필요했다. 


      많은 명령어들을 쓰지는 않았지만 자주 쓰는 명령어들을 자주 찾아봤던 기억들이 많다. find, grep 등 항상 자주 사용한 명령어 들인데 왜 쓸때마다 기억이 안나는지..^^




      내게 가장 도움이 되었던 챕터이다. 말 그대로 리눅스 사용할 때에 가장 많이 쓰는 명령어들로 구성되어있다.




      특히 이중에서도 grep, find 는 내게 많은 도움이 되었다. 기본 설명부터 시작해서 다양한 옵션을 통해 여러가지 사용방법들을 쉽게 설명을 해줬다, 옵션들이 많이 있음에도 불구하고 빠짐없이 예제들이 있어서 셸과는 친하지 않은 나에게 딱 좋았다. 


      앞에서 언급했던것 처럼 이책의 가장 큰 장점은 풍부한 예제라고 할수 있다. 정말 초보자를 위해서 하나부터 열까지 다 설명을 해주고 있다. 그리고 단순한 기능 뿐만 아니라 뒤에 보안, 모니터링 등을 통해서 실제 사용하면 편할 스크립트들을 많이 준비해줬다. 이 책을 정독 한다면 리눅스를 사용하면서 셸 스크립트 사용에 대한 불편함은 없어질것 같다.





    • 이제 셸 스크립트를 공부하는 입문자분들에게도 좋다고 생각하며


      다시 한번 정리를 하실 분들에게도 괜찮다고 생각합니다. 


       


      다만, 이 책이 셸 스크립트의 바이블 이라고 하기에는 많이 부족한 부분이 있는 것 같습니다. 


      2분의 grep, find 등은 


      단순하게 메뉴얼을 번역해놓은 느낌이었습니다. 


       


      3부 쪽에 조금 더 힘을 실어줬다면


      좋지 않았을까 라는 개인적인 의견입니다. 


       


    • [ 진입 ] 



      이번 달 서평단 숙제가 왔다. 신청한 책중에 가장 원하지 않던 책이 왔다. ㅜㅜ 



      원하지 않은 이유는 한 가지, 셸 스크립트는 할 줄 모르기 때문이다. 근데 써봤다. 이 아이러니한 상황 덕분에 셸 스크립트에 대한 두려움이 있었다.



      할 줄 모르기에 다른 사람이 만들어 놓은 스크립트 파일을 써왔다. 나한테 딱 맞는 스크립트가 아님에도 써왔다. 왜냐 셸 스크립트를 통해 내가 해야 할 작업들이 자동화되어있기 때문이었다.



      이렇듯 셸 스크립트는 스크립트 언어답게 자동화에도 많이 활용되고 나 또한 쓰고 있었을 뿐이다.



      이번 책은 뒤부분 3부 예제와 함께 하는 셸 스크립트 활용 편은 보지 못했다. 내가 잘 모르는 분야이기 때문이었다. 셸 스크립트는 알게 되었지만. 시스템 구축, 보안, 클라우드 시스템 운영 등 셸 스크립트를 통해 관리하지만 관리할 프로그램을 잘 모르기에 남겨두었다.



      책을 읽어가면서 처음으로 종이책이 아쉬웠다. 워낙 예제가 많아서 컴퓨터로 딱 검색해서 내가 원하는 부분만 읽고 사용하고 싶었기 때문이다. 그만큼 예제가 많고, 세분화되어있고 그리고 이해하기가 쉽게 되어있다.



      <본문>



      앞써 말했듯이 이번 책은 뭔가 요약하기가 애매하고, 본문에 뭔가를 쓰기도 애매하다. 



      예제가 많고 실제로 해봐야 의미가 있는 책이었기 때문이다. 



      그래서 위에서 내가 말했던 스크립트 파일에 대한 얘기를 다시 해보고자 한다.



      이제 와서 보니 다른 부분은 파일의 경로명, 그리고 로직 순서를 바꾸기만 했던 아주 기초적인 문제였다. 



      파일 경로를 내가 원하는 대로 바꾸고, 프로그램 실행 순서에 따라 로직을 변경했다. 



      그 결과 쓸데없이 5번의 명령어를 입력해야 했던 과거와 달리 단 한 줄로 내가 원하는 모든 로직이 돌고 결과물이 떨어진다. ㅎㅎ 아주 만족스럽다.



      아무튼 바뀐 스크립트 파일은 아주 만족스럽다.



      <총평>



      난이도 : 중

    • # 처음 배우는 셸 스크립트

       

      - 자동화는 반복적이고 지루한 과정을 단순화합니다. 셸 스크립트를 사용하면 리눅스 시스템을 활용하는 다양한 방법을 자동화할 수 있습니다.

      - 윈도우 환경을 주로 사용한다면 데스크톱 아이콘과 마우스 아이콘이 익숙할 것입니다. 이런 GUI(Graphical User Interface) 환경에 익숙한 상태에서 리눅스 CLI(Command Line Interface)를 처음 접하면 많이 당황스러운 경험을 할 수 있습니다. 하지만 텍스트 환경에 익숙해지고, 기본적인 작업을 키보드로 하게 되는 순간 마우스로 하던 작업 보다 훨씬 빠른 시간 안에 동일한 작업을 수행할 수 있게 됩니다.

      - 여기서 셸 스크립트를 활용하게 된다면 반복적으로 키보드로 작업하던 일들을 '명령어' 형태로 작업할 수 있습니다. 매번 키보드로 작성하던 일이, 이제는 단순히 스크립트를 실행하는 형태로 변하게 되는 단계입니다. 더욱 빠른 시간에 실수 없이 원하는 작업을 수행할 수 있게 됩니다.

       

       

      ## 책의 구성

       

      - 처음 배우는 셸 스크립트는 3부로 구성되어 있습니다.

       

      1. 셸 스크립트 기초

         - 셸 스크립트의 기본 문법을 공부하고 이를 사용하는 방법들을 보여줍니다.

      2. 가장 많이 쓰는 리눅스 명령어

         - grep, find, awk, sed, date에 대해 매우 자세히 알아봅니다.

      3. 예제와 함께 하는 셸 스크립트 활용

         - 클라우드 시스템을 구축하고 몇 가지 기능을 구성하는 방법을 공부합니다.

       

       

      ## 개인 감상평

       

      - 이 책을 읽은 저는 셸 스크립트를 따로 개발 언어의 태도로 공부한 적은 없습니다. 필요한 무언가가 있다면 그때그때 인터넷을 찾아보고 테스트하고 적용하는 방식을 채택했습니다. 그래서 같은 명령어를 사용하더라도 어떤 옵션들이 있는지, 어떤 옵션들은 어떻게 사용해야 하는지 새롭게 알게 된 경우가 있습니다.

      - 리눅스는 맨 페이지(man page)라고 부르는 메뉴얼이 존재합니다. 책에서 소개하는 리눅스 명령어(grep, find, awk, sed, date) 또한 `man grep` 명령어로 grep 명령어의 자세한 메뉴얼을 확인할 수 있습니다.

        - 맨 페이지는 리눅스에서 사용하는 거의 모든 명령어의 메뉴얼을 확인할 수 있고, 다양한 부가 옵션들에 관해 설명해주고 있습니다.

        - 하지만 메뉴얼이 영어로 작성된 점과 명령어를 사용하는 예제가 없어 처음 접하는 사람에게는 다소 불편할 수 있습니다.

      - 처음 배우는 셸 스크립트 책은 다소 과할 정도로 세부적인 옵션까지 예제로 작성하였습니다. 리눅스의 많은 명령어를 다루진 않지만, 사용 빈도수가 높은 명령어를 대상으로 세부적인 옵션까지 예제로 살펴보기 때문에 책을 옆에 두고 그때그때 살펴보는 용도로 활용할 수 있습니다. 마치 **한글로 작성된 맨 페이지 책과 같은 느낌**입니다.

      - 마지막 3부의 경우 지금까지 공부한 셸 스크립트의 문법과 리눅스 명령어를 활용하는 실제 사례들을 접하며 어떤 방식으로 스크립트를 작성하고, 어떤 경우에 사용하는지를 잘 정리했다고 생각합니다. 이 책을 처음부터 끝까지 읽은 뒤, 책을 덮고 책장에 넣어놓는 것이 아니라 셸 스크립트를 사용할 일이 있다면 필요한 내용을 참고하여 자신의 환경에 적합한 형태로 변형할 수 있다고 생각합니다.

      - 한 가지 아쉬운 점은 3부 예제와 함께 하는 셸 스크립트 활용 편에서 실습 환경에 대한 내용이 없다는 점이라고 생각합니다. 책에서는 오픈스택을 사용한다는 배경으로 시작하는데, 책에서 사용하는 코드를 그대로 사용할 수 있는 환경을 구축하는 방법이 없다는 점이 단점이라 생각합니다. 추후 개정판이 출간된다면 환경 구성에 대한 내용이 추가되었으면 좋겠습니다.


    • KakaoTalk_20210318_114029404.jpg<이 책은 한빛 미디어에 의해 제공받았습니다.>


       



      이 책의 제목을 보자마자 '딱 나를 위한 책이구나'라고 생각했다. 책 목차를 보면 목차 하나하나가 굉장히 자세하다. 전공책들은 한국어임에도 알아들을 수 없을 만큼 복잡하면서 번역이 되어있는데 안되어있는 것과 같은 느낌을 느낀다. 그러나 이 책은 예제가 굉장히 많아 각각의 코드나 설명을 이해하는데에 있어서 굉장히 좋다. 셸 스크립트에 대해서 아무것도 몰랐던 사람에게 이 책은 개념서처럼 사용될 수 있다고 생각한다.



      1장에서는 셸 스크립트 기초에 대해서 배운다. 1장의 챕터 2에서는 셸 스크립트의 기초 문법을 다루는데 프로그래밍 언어를 한 번쯤 다뤄봤던 사람이라면 이 책의 챕터 2에서 서술하고 있는 셸 스크립트의 기초 문법이 얼마나 기초적이면서도 중요한 것인지 알고 있을 것이다. '처음 배우는' 사람들을 위한 책인 만큼 굉장히 자세하게 쓰여있다는 것을 확인할 수 있었던 챕터였다.


       



      2장에서는 가장 많이 쓰는 리눅스 명령어에 대해서 배운다. 챕터 3부터 7까지 리눅스환경에서 사용할 수 있는 명령어를 하나씩 배우게 된다. 여기서 배울 수 있는 명령어는 grep, find, awk, sed 그리고 date로 다섯 가지인데 각각의 명령어의 기본적인 사용법과 함께 예제를 통해 어떤 경우에 어떤 예제를 사용하면 되는지를 자세히 알 수 있는 장이 될 수 있을 것 같다.


       



      3장에서는 예제와 함께 하는 셸 스크립트 활용이다. 챕터에는 시스템 구축, 환경 설정, 보안, 모니터링, 클라우드 시스템 운영 그리고 퍼블릭 클라우드 사용 이렇게 6가지로 구성되어있다. 1장과 2장에서 기초 문법과 많이 사용하는 명령어를 배웠다면 활용할 차례이다. 각각의 챕터의 제목에서도 볼 수 있다시피 1, 2장에서 배운 내용을 3장에서는 활용하여 실무에 적용할 수 있도록 구성되어있다. 3장에서는 어떤 상황이 발생했을 때 셸 스크립트를 통해 어떻게 해결할 수 있는지 알려주고 있다. 그래서 어떤 상황을 직면했을 때 방법을 찾고, 스크립트를 생성한 후에 문제를 해결하는 방식으로 구성되어있다. 시스템 구축부터 클라우드를 사용하기까지 개발하는 사람의 입장에서는 직면할 수 있는 상황들이 정말 많은데 이 책 안에서 찾아본다면 해결 방안을 쉽게 찾을 수 있지 않을까 생각한다. 스크립트 생성의 단계에서도 설명만 하는 것이 아니라 직접 코드 구현을 통해 어떻게 문제 해결을 위해서 코드를 작성하면 되는 것인지, 다양한 상황에 대한 대비책을 제시한 것이 이 책의 또 하나의 장점이 아닐까 생각한다. 


       



      이 책을 읽기 전에 리눅스와 유닉스에 대해서 알고 있는 사람이라면 이 책을 읽는데에 정말 아무런 어려움이 없을 것이다. 기존에 프로그래밍을 해왔던 사람이라면 더더욱 읽을 때 처음 배우는 사람을 위해 쓰여진 개념서구나를 더 느낄 수 있을 것이다. 이 책은 책의 제목처럼 셸 스크립트를 배워보고 싶었으나 기초를 몰라서 어디서부터 배워야할지 헤매고 있는 분에게 추천하고 싶다. 기초부터 실무까지 탄탄히 구성되어있는 책 내용 덕분에 셸 스크립트가 꼭 필요한 부분을 알게 될 수 있을 것이다. 또 개발자분들도 기억을 나지 않는 부분을 이 책에서 찾아서 보완할 수 있을 것 같다.


       



      KakaoTalk_20210318_114029404_04.jpgKakaoTalk_20210318_114029404_02.jpgKakaoTalk_20210318_114029404_03.jpg


    • 처음 배우는 셸 스크립트


      이 책의 저자는 10년간 자바 개발자로 활동하다 오픈소스 클라우드를 만나서 플랫폼 엔지니어가 되어서 이 책을 지필했다고 한다.


      나 또한 10년간 자바를 개발했던 경험이 있다. 그 동안에 클라우드 플랫폼 엔지니어가 되기 위해 클라우드 프로젝트에서 잠깐씩 경험을 해 봤다.


      그러다가 올해부터 본격적으로 플랫폼 엔지니어가 되어서 리눅스 세상에 뛰어들게 되었다. 기존에는 있는 yaml 파일이나, 그루비 스크립트 정도를 다루다가 가끔 리눅스에서 간단한 명령어를 다루는 정도였다. 하지만 플랫폼 엔지니어가 되고 보니 쉘스크립트가 점정 필요해져가고 있다.


      기본적으로 클라우드는 대부분이 리눅스 기반으로 되어있고, 쉘스크립트를 통해서 자동화된 내용들을 많이 다루다 보니 이 책이 많은 도움이 되고 있다.


      1부, 2부에서는 기본적은 명령어들은 보여주고, 3부에서는 좀 더 필요한 다양한 예제들을 보여줘서 이 예제들을 활용해서 내가 담당하는 시스템에 하나씩 적용해보려고 의지가 생기고 있다. 클라우드 플랫폼이 기본적인 상태를 간단하게 보여주지만 리눅스 안쪽에서 볼 수 있는 능력이 있어야 함을 요즘 깊이 깨닫고 있는 중이다.


      이 책을 통해서 어렵지만 하나씩 해 보는데 많은 도움을 받고 있다.


      클라우드, 리눅스, 쉡스크립트를 작성해 보려고 하는 분들에게는 간단한 기본 개념과 예제를 활용해 보는 것도 좋은 선택이다.

    •  



      KakaoTalk_20210316_004021071.jpg


       


       


       



      여태 셸 스크립트는 항상 필요할 때 마다 구글링 해서 사용하곤 했었기에 공부할 필요성을 못느꼈었는데 ^^;;; (간단한건 외워서 쓰지만, 조금이라도 명령어가 길어지면 무조건 검색해서 쓰는 스타일...) 한빛미디어에서 자주 사용하는 셸 스크립트를 한데 모아 '처음 배우는 셸 스크립트'라는 책이 출간되었다고 해서 한번 읽어보게 되었다.


       



      이 책은 자주 사용하는 리눅스 명령어 뿐만 아니라, 현업에서 사용할만한 셸 스크립트를 활용하는 예제들을 충분히 담고 있기 때문에 리눅스 개발자라면 필수적으로 보면 좋을 것 같은 책이다.



      사실 현업에서 사용할만한 셸 스크립트들은 프로젝트를 하지 않고서는 접할 기회가 드물기 때문에 수많은 프로젝트를 통해 쌓아온 저자의 경험을 대리 경험해봄으로써 내 지식으로 만드는 시간을 가져다 줄 수 있다. 참고로 이 저자는 10년동안 자바 개발자로 활동하다가 리눅스, 앤서블, 오픈스택 등을 다루는 플랫폼 엔지니어로 활동하고 있다고 한다. (저자 블로그 : naleejang.tistory.com/ ) 저자는 워킹맘들과 여성 개발자들을 위한 책을 출간하는 것이 꿈이라고 하는데, 정말 멋진 것 같다 :) 


       



      책의 구성은 1부 셸 스크립트 기초, 2부 가장 많이 쓰는 리눅스 명령어, 3부 예제와 함께하는 셸 스크립트 활용으로 나누어져 있다. 이미 현업에서 리눅스를 다루고 있는 개발자라면 1부는 간략하게 훑어보면 좋을 것 같고, 2부도 grep 이나 find 같은건 자주 사용하기 때문에 필자는 어떻게 쓰는지 정도만 읽혔다.


       



      가장 눈여겨 볼 부분은 3부 예제와 함께하는 셸 스크립트 활용 부분인데, 이 부분은 시스템 구축, 환경설정, 보안, 모니터링, 클라우드 시스템 운영, 퍼블릭 클라우드 사용 등과 같이 상황에 따라 셸 스크립트를 어떻게 짜야하는지 나누어져 있기 때문에 실질적으로 꽤 많이 도움이 된 부분이라고 생각한다. 

    • 리눅스에 뭔가를 세팅하는 작업을 반복하다 보면 이런 생각이 들것이다.



      '뭐 이런거 대신해주는 거 없나?'


      그렇다! 이럴때 여러분은 셸 스크립트를 배워야 할 시점이다.


      나도 그래서 이 책을 보고 있다. 요즘 반복적으로 리눅스 OS 세팅을 하고 있는데, 정말 죽을 맛이다. 명령 하나만 치면 알아서 정해진 순서대로 세팅을 끝내주는 녀석이 있으면 얼마나 끝내줄까?


      셸 스크립트란의 셸도 스크립트도 모르는 1인이다. 그래도 이 책은 이해가 되더라. 책 제목처럼 처음 배우는 셸 스크립트이다.


      제목의 스크립트란게 스크립트 언어란 말이네.... 즉 프로그래밍 언어다. 책 초반에 리눅스의 명령어랑 if, for 등을 조합해서 파일 이름에 대해 필터링을 가하는 법 디렉터리를 변경하고 검색하는 것들 등 요정도만 알아도 나에게는 요긴한 것들이 주르륵 나오니 나름 읽는 맛이 있다. 뭐 온통 명령줄과 글자밖에 없어서 그림이 있는 책 보다 더 졸음이 쏟아지지만 반복 똑 반복의 고통에서 벗어나는데 이쯤이야.... 


       



      셸 스크립트.jpg


       


    • title.jpg


       


       


      셸 스크립트에 대해 잘 아시나요?


      셸 스크립트는 리눅스나 유닉스를 다루는 개발자들이 사용합니다.


       


      리눅스와 유닉스는 운영체제입니다.


       


      운영체제에 대한 시스템 구축, 보안, 모니터링도 셸 스크립트로 관리할 수 있습니다.


       


      지금 소개해 드릴 책은 "처음 배우는 셸 스크립트"입니다.


       


      이 책을 통해 운영체제와 친해질 수 있으리라 생각됩니다.


       


      셸 스크립트가 필요한 부분을 배울 수 있습니다.


       


      개발하려면 컴퓨터 명령어들을 알면 빠른 작업이 가능합니다.


       


      파일 찾기, 특정 인덱스 문자열 출력도 명령어로 찾을 수 있습니다.


       


      그러면 셸 스크립트에 대해 같이 알아보겠습니다.


       



      world.jpg


       


       


      ◆ 실용적인 예제


      이 책은 현업에서 바로 써먹을 수 있는 실용적인 예제를 알려줍니다.


       


      프론트엔드 개발을 하다가도 리눅스를 쓰게 되는 업무를 맡을 수 있습니다.


       


      안 해본 것을 맡게 되면 막막할 텐데요.


      이 책을 보면 기초부터 유용한 리눅스 명령어 사용법은 해결 가능합니다.


       


      또한 예제와 함께 셸 스크립트 활용법도 배울 수 있습니다.


       


      초보부터 기존 사용해본 개발자에게도 좋은 책입니다.


       


      셸 스크립트를 사용해본 개발자도 놓치고 넘어가는 부분이 있을 수 있습니다.


       


      자칫하면 깜빡할 수 있는 내용도 실무 경험이 풍부한 예제로 알려줍니다.


       


       



      blog.jpg


       


       


      ◆ 셸 스크립트 쓰는 이유


      셸 스크립트를 쓰면 일을 효율적으로 할 수 있습니다.


       


      컴퓨터 작업은 반복적인 일을 효과적으로 처리가 가능합니다.


       


      컴퓨터는 단순한 작업을 빠르게 처리가 가능하기 때문입니다.


       


      서버 운영체제도 리눅스 명령어와 셸 스크립트 문법을 알면 쉽게 관리할 수 있습니다.


       


      단순 반복 업무에 회사 업무시간을 빼앗길 수 있는데요.


      셸 스크립트를 쓰면 시간을 아낄 수 있습니다.


       


       



      author.jpg


       


       


      끝으로 저자는 셸 스크립트를 학습하며 기록한 것을 다시 또 보기 위해 블로그에 올렸습니다.


       


      주변에서 책으로 내보라고 권하기도 했다고 합니다.


       


      정리를 정말 잘하셔서 추천을 받지 않았을까 싶습니다.


       


      셸 스크립트를 자주 쓰며 실무경험을 알려줍니다.


       


      시중에 나온 셸 스크립트 책을 봤을 때 문법과 예제중심의 책이 많습니다.


       


    • 처음 사용자부터 시스템 구축에 필요한 보안, 모니터링, 클라우드에 필요한 쉘 스크립트가 체계적으로 간결하게 설명 되어 있습니다.



      초,중급자에게 입문하기 편한 책으로 생각 하시면 됩니다






       

       


       


    • [한줄평]



      간단한 셸 스크립트 부터 복잡한 배치 스크립트를 한번에 해결







      [목차]



      1부 셸 스크립트 기초



      CHAPTER 1 셸 스크립트란?



      CHAPTER 2 셸 스크립트 기초 문법


       



      2부 가장 많이 쓰는 리눅스 명령어



      CHAPTER 3 문자열을 찾을 수 있는 grep



      CHAPTER 4 파일을 찾을 수 있는 find



      CHAPTER 5 특정 인덱스 문자열을 출력할 수 있는 awk



      CHAPTER 6 찾은 문자열을 바꿀 수 있는 sed



      CHAPTER 7 날짜와 시간을 알려주는 date


       



      3부 예제와 함께 하는 셸 스크립트 활용



      CHAPTER 8 시스템 구축



      CHAPTER 9 환경 설정



      CHAPTER 10 보안



      CHAPTER 11 모니터링



      CHAPTER 12 클라우드 시스템 운영



      CHAPTER 13 퍼블릭 클라우드 사용








      [주요 내용]




      • 셸 스크립트 기초 문법





      • 가장 많이 쓰는 리눅스 명령어





      • 파일을 찾을 수 있는 find





      • 특정 인덱스 문자열을 출력할 수 있는 awk





      • 날짜와 시간을 알려주는 date





      • 시스템 구축/환경 설정





      • 보안/모니터링 트러블 슈팅









      [대상 독자]




      • 리눅스, 유닉스를 자주 다루는 개발자





      • 인프라와 시스템,개발을 담당하는 DevOps 엔지니어





      • 시스템이나 백엔드를 개발하는 소프트웨어 엔지니어, 시스템 운영자









      [서평]



      개발을 하다보면 리눅스를 다루는일이 발생합니다. 보통 실무에 필요한 셸 스크립트는 인터넷 검색만 잘하면 대부분 잘 나와 있다 없다면 검색실력을 길려야 아무튼 내가 생각하고 필요한 스크립트는 다 있다고 보면 된다. 하지만 전문 개발자라면 언제 까지 카피 앤 페이스트를 할것인가? 그래서 이책을 보고 기초 부터 해보자는 마음에 보게 되었다. 



      책의 구성은 크게 3부분으로 되어 있다. 1부에서는 셸 스크립트의 기초 개념과 다양 한 상황에서 쓰이는 셸 스크립트 기초 문법을 배우게 된다.



      2부에서 다루는 내용은 가장 많이 쓰는 리눅스 명령어에 대해서 배우게 된다. 셸 스크립트를 사용하면 리눅스에서 매일 반복해야 하는 작업이나 복잡한 명령어를 스크립트로 자동화해서 작업 시간을 줄일수 있다. 



      3부에서는 1부와 2부에서 배운 기초 지식으로 실무에서 어떻게 예제와 함께 하는 셸 스크립트 활용에 대해서 배우게 된다. 시스템을 운영하거나 개발환경을 구축할 경우 또는 클라우드 시스템을 운영할 경우에 발생하는 다양한 상황에서 어떻게 셸 스크립트를 활용하는지 배우게 된다. 다양한 상황을 가정하고, 해당 상황에서 어떻게 문제를 해결할 것인지 방법을 찾고, 찾은 방법에 따라 해당 스크립트를 작성해서 문제를 해결하는 방식으로 구성되어 있다. 


       



      최종적으로 1부와 2부 배운 내용이 3부에서 실무 환경에서 어떻게 적용되어 해결하는지를 이책을 통해서 알수 있다. 예전에는 셸 스크립트를 따로 공부 하지 않고 사용 할정도의 수준이 었지만 요즘은 클라우드 환경에서 셸 스크립트를 한번 제대로 배워 두면 두고 두고 사용할 수있는 스킬이 아닐까 생각합니다. 

    • - 업무 상의 이유로 쉘 스크립트를 학습이 꼭 필요했다. 허나, 그간 많은 서적과 인터넷 강의를 봐도 입문자의 눈높이에 맞춘 내용을 찾기가 어려웠다. 


      - 때마침, 인상 깊게 봤던 <오픈스택을 다루는 기술>의 저자 장현정님께서 관련 입문 서적을 집필하신다는 소식을 접했고, 한빛미디어 도서 서평단 활동을 통해 책을 받아보게 되었다.


      - 절반 정도 내용을 따라가며 학습한 소감은, 친절한 설명과 풍부한 예제 중심 진행으로 초보자도 쉽게 이해하고 따라할 수 있게 구성되었다.


      - 미지의 세계만 같던 BASH 쉘 스크립트 작성에 약간의(!) 자신감이 붙었다.


      - 모든 내용을 단번에 습득할 순 없으니, 나와 같은 주니어 엔지니어들은 바이블처럼 옆에 끼고 필요할 때 꺼내보면 좋을 책이다.

    •  


      데브옵스 시대가 되면서 개발자들도 쉘을 직접 다뤄야 할 일이 많아졌다.


      리눅스 쉘에 익숙하다면 도커, 쿠버네티스, 클라우드 서비스 등을 사용할 때 아무래도 유리하다.


      어쩌면, 필수가 되었다고 할 수 있겠다.


       


      이 책은 쉘 사용경험이 없는 사람들에게 실무에서는 어떻게 쉘을 사용하는지 예제를 보여주며 설명하고 있다.


      총 3부로 구성되어 있는데 1,2부는 쉘의 기초와 grep등 기초명령어, 3부는 본격적인 쉘 활용법으로 구성되어 있다.


      특히 3부의 경우 실무에서 어떻게 쉘을 활용하여 업무를 자동화하는지 느껴볼수 있었다.


       


       하지만 쉘 공부용으로 이 책을 추천하긴 힘들다.  


      우선, 2부의 경우 지나치게 자세하다.  


      자세하면 좋은 것 이겠으나, grep과 find을 약 100페이지에 걸쳐 설명할 필요가 있나 싶다.


      옵션 한 개, 한 개를 일일이 설명한다.



      마치 Linux manual을 번역해놓은 느낌이다.


      주로 사용하게 되는 예에 집중하여 설명하고, 나머지는 묶어서 설명하거나 과감히 생략해도 좋을 텐데라는 생각이 들었다.


       


      그리고 잘못 설명하는 부분이 있으니 수정되어야 하겠다.


       


      오히려 3부에 가면 뭔가 설명이 부실하다는 느낌도 들었다.


      3부의 설명은 전부 이런 식인데, 너무 한 단락에 설명을 욱여넣었달까…


      그리고 책에 실린 예제코드가 제공되는데 받아도 실제로 써볼수가 없다.


      저자가 오픈스택 환경에서 이런 저런 상황을 가정하여 실습을 진행하는데… 실습환경에 대한 언급이 없다.


      당연히 코드를 받아도 실행해볼수 없다.


       


      베타리더 평 중에는 “쉘 바이블”로 추천한다는데…



      바이블 이라고 하기에는 많이 부족한 책이다.


    • 이번에 한빛미디어 도서 서평단으로 받은 "처음 배우는 셸 스크립트". 우선 번역서가 아니라 저자가 한국사람이다. 그렇기 때문에 번역서를 읽으면서 이따금씩 찾아오는 괴로움이 없다. (한글을 읽고 있는데 영어를 읽는 느낌)


      국내에 셸 스크립트 책이 얼마나 있는지는 잘 모른다. 알고 싶지도 않았고. 왜냐하면 그동안 셸 스크립트는 온라인에서 풍성하게 찾아볼 수 있었고 프로그래밍 언어로는 받아들여지지 않기 때문에 따로 공부해야 하는 필요성은 못 느꼈기 때문. 말은 이렇게 하지만 첫 직장이 리눅스 커널을 개발하던 회사였기 때문에 현업에서 선배들에게 치이며 셸 스크립트를 몸으로 익혔었다. 아무튼, 이 책을 처음 받았을 때는 "아, 이번에 리뷰 대상인 책들 재밌는 거 많던데 하필 다 아는 내용만 있을 셸 스크립트 책이라니" 이런 심정이었다. 하지만 책장을 넘기는 순간 이런 걱정은 쏙 들어갔다. 책의 구성이 깔끔했고 잘 정리된 요리를 맛본 느낌이다.


      이 책은 아래와 같이 총 3부로 구성으로 되어 있다.


      • 1부 : 셸 스크립트 기초

      • 2부 : 가장 많이 쓰는 리눅스 명령어

      • 3부 : 예제와 함께 하는 셸 스크립트 활용



      단계적으로 살펴보면 1부에서 셸 스크립트란 무엇인지부터 살펴보고 기본적인 문법을 배워나간다. 나아가 스크립트에서 사용될 다양한 셸의 요소들을 설명한다. 이를테면 시스템에서 기본적으로 제공되는 환경변수, 그리고 셸의 특수한 문법들까지. 2부에서는 리눅스의 꽃이라고 할 수 있는 명령어들을 살펴본다. grep, find, awk, sed, date 이렇게 총 다섯 개의 명령어를 살펴보는데 굉장히 교과서적인 내용이라고 생각된다. 특히 grep, find, awk를 나는 리눅스 명령어 3 대장이라고 부른다. 여기 글에서 그 내용을 확인할 수 있다. 근처에 두고 필요할 때 찾아보기에 굉장히 좋은 내용들이 담겨 있다. 끝으로 3부는 실전에서 사용 됨직한 스크립트 예제를 다룬다. 이 예제를 통해 셸 스크립트에 입문하는 독자는 현업에서 어떤 식으로 스크립트를 활용할 수 있는지, 그리고 어떻게 확장시켜 나가면 될지를 상상할 수 있게 된다. 


      셸 스크립트는 각잡고 공부할만한 내용은 아니지만 필요하면 언제든 뚝딱뚝딱 뭔가를 만들 수 있을 정도는 돼야 한다. 적어도 어떤 문법들이 허용이 되고 사용 가능한지 정도는 알고 있어야 한다는 말씀. 특히나 요즘처럼 퍼블릭 클라우드가 성황인 시기에 애드혹 스크립트가 널리 활용되는데 그 근간이 되는 게 셸 스크립트다. 기본적인 요소는 손이 기억할 수 있도록 잘 준비해두자. 스크립트의 기본을 익히고 싶은 사람에게 이 책을 권한다. 또한 더 깊이 있게 공부하고 싶다면 아래 링크를 참고하도록 하자. 국내외를 막론하고 셸 스크립트가 가장 훌륭하게 정리된 사이트이다.



      mug896.github.io/bash-shell/index.html


    • 축소_처음배우는셸스크립트.jpg


       


       


      책제목 그대로 처음 배우는 사용자를 위한 책입니다.


      Shell script는 모르는 사용자에게는 리눅스 내부 명령어라고 생각되어지거나 변수와 함께 동작하는 것을 보고 신기하게 느껴질 수도 있습니다. 그렇지만 어떻게 하는지 알지 모르기에 선뜻 접근하기 어렵습니다.


      막상 알고 나면 간단하게 구성된 script로도 자주 사용하는 명령들을 손쉽게 바꿔주기 때문에 큰 편의성을 제공하게 됩니다.


       


      이 책은 Shell에 익숙하지 않은 사용자에게 그러한 편의성을 사용할 수 있게 해주는데 도움을 줍니다. programming을 하는 사람들에게는 익숙한 함수와 변수 사용으로 금방 배울 수 있을 것입니다. 아마 책을 읽으면서 예제를 실행하면 금방 따라하고 중급으로 넘어갈 수 있을 것입니다.


      programming을 해본 적이 없고, 리눅스 명령어에 익숙치 않은 초급 사용자라고 하더라도 책을 천천히 따라하게 되면 기본적인 것을 하실 수 있을 것입니다. 이 책은 처음 배우는 사용자들을 위한 구성으로 되어 있으니깐요.


       


      추가적으로 시스템 보안, 모니터링, 클라우드에 대한 예제들도 있기에 해당 부분들을 잘 모르지만 시작해야 하는 사람들에게도 도움을 줄 수 있고, 사용하고 있는 사용자들도 일일이 명령어를 입력해야 하는 것들을 shell script로 구성해서 앞으로 편하게 사용할 수 있는데 도움을 줄 것입니다.


       


      책 내용자체가 어렵지 않고 예제로 구성되어 있으며 두꺼운 책이 아니기에 부담없이 보시면 되겠습니다. 1부의 기초는 읽으면서 넘어가시고, 2부는 지금은 사용하지 않더라도 나중에 많이 사용하는 것이니 예제 한 번씩 실행해보시고, 3부는 필요한 때에 보셔도 도움이 될 것 같습니다.


       


       


    • 0. 도서 정보



       - 도서명 : 처음 배우는 셸 스크립트



       - 저자 : 장현정



       - 링크 : 교보문고


       




       



      1. 셸에 대한 기억


       - 대학원 학부연구생이던 2013년에 처음으로 리눅스... 라는 것을 접해보게 되었다. 수치 모델링이 전공이었기에, 포트란으로 짜여진 코드를 리눅스 서버에서 돌리는 게 일이었다. 하루는 100개가 넘는 실험을 하룻밤안에 다 돌렸어야 했었다. 그 당시에는 ls, mv, cp 등 만을 알고 있었기에 손으로 하나하나 실험을 돌리다가 밤을 샌 기억이 난다. 그때 만약 셸 스크립트를 짤 줄 알았더라면 밤을 새지는 않았을 거였는데...


       




       



      2. 이 책에서 알려주는 것


       - 과거에 내가 알았으면 좋았을터인 셸 스크립트의 기초 문법(변수, 조건문, 반복문, 연산자, 정규 표현식) 을 알려주며 검색에 유용한 명령어인 grep, find, awk, sed 등을 알려준다. 또한, 앞에서 언급된 문법과 명령어 들을 응용하여 사용자 계정을 자동으로 만들어 주는 스크립트 라던지, 여러 환경 설정, 기초 보안(패스워드 변경 주기 설정 등), 모니터링 체크에 관련된 예제를 설명하여 알려준다.



      3. 이 책의 장점


       - 이 책의 장점이라고 한다면, 방대한 양의 예제에 있다고 말할 수 있다. 많은 셸 관련 도서가 옵션을 설명할 때, 예제 없이 영어로 된 공식 문서를 한글로 번역한 것에 지나지 않는다면 이 책은 옵션에 대하여 여러 예제를 들어 설명한다. 또한, 해당 예제에 소개된 스크립트는 저자의 깃허브에 올려두었기에 학습에 드는 수고를 조금이라도 덜 수 있다. 



      4. 추천 드리는 분


       - 책 제목에서 소개가 되었듯이 셸을 처음 배우시는 분에게, 혹은 나처럼 구글링을 통해 뭔가 많이 써봤지만 제대로 알지 못하시는 분들에게 추천을 드립니다.

  • 내용이 없습니다.
닫기

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