아트 오브 셸 원라이너 160제 (텍스트 한 줄의 마법, 파워 유저를 위한 리눅스/유닉스 커맨드)
Description
셸 장인들의 문제를 함께 풀며 커맨드 근육 빌드업. 간단한 셸 명령이라도 조합하는 방식에 따라 강력한 무기가 될 수 있다. 이 책은 160개 원라이너(한 줄짜리 명령) 문제를 통해 독자가 기본적인 셸 문법과 기능을 익히고 대량의 텍스트/JSON/CSV/바이너리 데이터를 조작하는 방법을 배울 수 있게 했다. 데이터를 가공하고 처리하는 데 필요한 OS, 정규표현식, 유니코드, 이미지/날짜/시간 데이터, 통신 프로토콜 지식도 살펴본다. 문제를 반복해서 풀고 명령을 조합하는 법을 훈련함으로써, 실무 문제를 직접 해결할 사고력을 기를 수 있다.
저자

우에다류이치,야마다야스히로,다시로가쓰야,나카무라소이치,이마이즈미미쓰유키,

(上田隆一)@ryuichiueda
‘셸예능’이라는용어를만든장본인.본업은프로그래밍이특기(자칭)인로봇공학연구자다.모국립대학의교직원이자로봇축구경기자였지만,현장경험이없으면프로그래밍을논할수없다고판단해연구를중단하고로봇과는전혀관계없는기업시스템을만드는기업에서4년반동안근무했다.현재는지바공업대학의준교수다.기업에서근무할때부터집필활동을시작해셸예능과본업양쪽에서다수의책을썼다.깃허브(https://github.com/ryuichiueda)에직접만든셸이나배시CMS,원라이너용파이썬래퍼인opy,기타로봇용프로그램을공개하고있다.

목차

옮긴이머리말xiii
베타리더후기xv
지은이소개xviii
이책에대하여xx
감사의글xxv

PARTI셸과명령어에익숙해지기
CHAPTER1리눅스환경
1-1환경준비하기3
1-2터미널,셸,명령어,파일의관계알아보기4
__연습001터미널사용5
__연습002명령어중단7
__연습003계산(1+1)8
__연습004파일에저장10
__연습005파일과디렉터리조작12
__연습006파일권한16
__연습007명령어조사19
1-3자주사용하는명령어알아보기21
__연습008sed를사용한치환21
__연습009grep을사용한검색23
__연습010grep을사용한검색과추출25
__연습011awk를사용한검색과계산26
__연습012sort와uniq를사용한집계30
__연습013xargs를사용한일괄처리34
__연습014bash를사용한메타프로그래밍36
1-4파일조작하기38
__연습015깃허브에서저장소클론39
__실전001파일명검색40
__실전002이미지파일일괄변환42
__실전003파일명일괄변경45
__실전004특정파일삭제49
1-5awk와sed에익숙해지기51
__실전005설정파일에서정보추출51
__실전006터미널에모양출력52
__실전007소비세계산55
__실전008로그집계57
__실전009로그추출60
__실전010제목표기법변환62
__실전011회의록정리63

CHAPTER2셸기초
2-1변수와제어구문,명령어입출력조작파악하기68
__연습016표준입출력및표준에러출력68
__연습017셸과변수70
__연습018문자열연결과치환71
__연습019변수를사용한계산73
__연습020따옴표와변수74
__연습021배시의배열과연관배열77
__연습022반복과종료상태80
__연습023조건분기83
__실전012변수읽기86
__실전013존재하지않는파일의초기화89
__실전014다양한루프90
__실전015문자유형변환92
2-2프로세스를고려해셸조작하기94
__연습024프로세스의이해95
__연습025프로세스의부모자녀관계97
__연습026내부명령어와외부명령어99
__연습027서브셸사용101
__연습028명령어치환과프로세스치환102
__실전016변수로컬화104
__실전017명령어를사용할수없을때의복사107
__실전018셸내부명령어만사용한집계108
__실전019셸기능을기용한파일덮어쓰기111
2-3중괄호확장과파일글롭113
__연습029중괄호확장113
__연습030와일드카드와파일글롭114
__실전020셸기능으로ls출력116
__실전021조건이까다로운파일목록작성118
__실전022더미FQDN생성120
2-4시그널이해하고다루기122
__연습031시그널조작122
__연습032시그널의종류123
__실전023다른셸에시그널전송126
__실전024exit시파일삭제128
__실전025pipefail시의문제129
__실전02618시가지나면퇴근하기131
2-5셸명령어를사용할때이상한작동이나기능다루기133
__실전027인수를바꿔명령어재실행134
__실전028이상한이름의디렉터리다루기136
__실전029셸스크립트의에러체크137
__실전030앞쪽이일치하는변수명140

PARTII사고능력갈고닦기
CHAPTER3문장과문자
3-1놀면서텍스트다루는법익히기145
__연습033펄,루비원라이너145
__연습034파이썬원라이너149
__연습035정규표현식의종류152
__연습036펄을사용한치환155
__실전031대문자로변환157
__실전032회문검출159
__실전033회문여부판정161
__실전034한자뒤에독음추가164
__실전0357문자이상의영대문자사용방지165
__실전036괄호쌍체크168
3-2문장을조사하고가공하기170
__연습037줄바꿈검색과치환170
__연습038히라가나와가타카나변환172
__연습039한자의독음변환과영어로의번역174
__연습040포맷변환176
__실전037복사&붙여넣기실수찾기177
__실전038복잡하게얽힌문자엔티티참조179
__실전039문장줄바꿈181
__실전040기타변환184
__실전041주석확인186
__실전042순서가있는목록형태정리189
__실전043문헌목록정렬191
__실전044줄바꿈검색194
__실전045여러행에걸친중복검색195
__실전046한자독음붙이기198

CHAPTER4데이터관리,집계,변환
4-1테이블형식데이터다루기201
__연습041테이블201
__연습042데이터연결206
__실전047전월비교데이터추가209
__실전048CPU부하조사1211
__실전049CPU부하조사2212
__실전050매출집계214
__실전051시험점수목록출력217
__실전052집계형식변환219
__실전053결측값보완221
4-2까다로운포맷의데이터다루기223
__연습043JSON과jq223
__연습044이스케이프문자가포함된CSV취급228
__실전054JSON파일로부터의추출230
__실전055JSON로그비교233
__실전056비정규데이터끼리의결합236
__실전057테이블레이아웃형태정리241
__실전058CSV파일의숫자집계243
__실전059CSV파일의열개수조사246
4-3날짜와시간다루기248
__연습045날짜와시간계산하기249
__실전060프리미엄프라이데이251
__실전061지난주파일253
__실전062날짜에법정공휴일추가255
__실전0635주차포함월확인258
__실전064세번째화요일나열261
__실전065월별휴일수263
__실전066일정조정266
__실전067요일별분할268
__실전068유닉스시각의한계270
__실전069윤초272

CHAPTER5문자코드와바이너리
5-1문자코드에친숙해지기275
__연습046n진수276
__연습047아스키코드279
__연습048유니코드와UTF-8281
__연습049문자코드변환284
__실전070엑셀워크시트285
__실전071문자의바이트수조사287
__실전072이모지289
__실전073압축을푼뒤문자가깨진파일명수정290
__실전074연호표기292
__실전075아스키문자삭제294
__실전076macOS에서생성한파일목록294
__실전077서로다른문자코드의파일일괄검색296
__실전078교육용기초한자가아닌한자검출297
__실전079문자코드특정299
5-2바이너리다루기302
__연습050문자열바이너리해석과바이트순서302
__연습051바이너리파일조사용명령어305
__실전0802진수에서문자열복원308
__실전081BOM식별310
__실전082이미지분할312
__실전083Shift_JIS를그대로echo하는셸스크립트315
__실전084줄바꿈코드식별과집계317
__실전085문자의바이너리평균검출320
__실전086분수계산322
__실전087od출력복원325
__실전088디지털워터마킹해독327
__실전089CTF331

CHAPTER6퍼즐
6-1수학으로놀아보기335
__연습052정확한계산335
__연습053소수337
__연습054조합생성338
__실전090n진수계산340
__실전091조합추출341
__실전092지수계산342
__실전093처음소수가되는시각(연월일시분초)344
__실전094라그랑주네제곱수정리의부분적검증347
__실전095그레이코드349
6-2각종문제정리하기352
__실전096일정조율352
__실전097세로읽기문자열검출354
__실전098레코드분리357
__실전099포커패검출359
__실전100끝말잇기순으로배열362
__실전101연속하는알파벳검출과약어표기364
__실전102콰인367

PARTIII응용하기
CHAPTER7리눅스환경조사,설정및활용
7-1파일과디렉터리조사및조작하기373
__연습055각종파일의저장위치374
__연습056파일시스템377
__연습057아이노드379
__실전103ls-l출력의2번째열380
__실전104파일명의길이의한계?382
__실전105디스크사용량집계384
__실전106특수권한386
__실전107root가된횟수집계388
__실전108문제를일으킨프로세스해석391
__실전109내용이같은파일검색394
__실전110여러디렉터리의파일수세기396
7-2의사파일시스템사용하기398
__연습058의사파일시스템398
__연습059프로세스치환과파일401
__실전111평균부하조사402
__실전112날짜얻기404
__실전113현재디렉터리조사406
__실전114공유라이브러리검색408
__실전115USB메모리언마운트411
__실전116디바이스번호조사하기413
__실전117USB연결및분리감시416
__실전118프로세스가열어둔파일조사418
__실전119메모리맵표시419
__실전120수수께끼데이터조사422
7-3시스템콜추적하기425
__연습060strace사용하기425
__실전121파일경로추출427
__실전122사용한프로세스수세기429
__실전123계산시간해석433
7-4각종조사와설정정리하기436
__실전124네트워크디바이스목록437
__실전125IP주소추가438
__실전126배시버전변수439
__실전127터미널에뮬레이터의윈도우크기441
__실전128환경에따른grep의작동차이443
__실전129실행파일로부터문자열추출445
7-5원라이너로서비스조작하기447
__실전130인스턴트웹서버447
__실전131메일통지보내기451
__실전132

출판사 서평

한줄짜리텍스트로비약적인업무성과를내는셸원라이너
160개의극한문제로예술의경지를경험하다

파이썬으로짜면수십줄걸릴작업을,한줄짜리스크립트로처리할수있다면믿어지는가?셸명령어하나하나는단순한기능만을수행하지만,이들을조합하면데이터가공,웹스크레이핑,시스템모니터링등강력한작업을처리할수있다.일본의셸장인6인이출제한160개문제가담긴이책은,이러한한줄짜리명령‘원라이너’작성능력향상을목표로한다.

리눅스환경과셸기초를익히는데에서시작해텍스트,테이블,JSON/CSV,날짜/시간,바이너리등데이터를조작하는방법을살펴보고,나아가데이터를가공하고처리하는데필요한정규표현식,유니코드,이미지/날짜/시간데이터,통신프로토콜지식도알아본다.리눅스환경의더깊은부분,소스코드조작,데이터생성,깃활용등소프트웨어개발시도움이되는원라이너도함께담았다.일본어텍스트를다루는문제들은한국실정에맞는비슷한문제들을고안해교체한정성도돋보인다.

160개문제중에는실전적인문제가있는가하면,사고력을기르기위한순수한(수학)퍼즐같은문제도있다.풀이역시한가지가아니라생각지도못한방식을포함해여러가지를제시한다.문제에대한해답을단순히암기하는것이아니라원리를생각하고명령을조합하는방식을훈련해야한다는점을강조하기때문이다.이책과함께사고력을단련해서,실무에서예상하지못한문제를만나더라도해결방법을스스로생각할줄아는개발자가되어보자.

대상독자
■셸명령어를예술의경지로끌어올려사용하고싶은사람
■리눅스/유닉스파워유저
■시스템관리자,서버/네트워크관리자,인프라엔지니어
■대학,기업,연구소의연구자