아트 오브 셸 원라이너 160제

텍스트 한 줄의 마법, 파워 유저를 위한 리눅스/유닉스 커맨드

우에다 류이치, 야마다 야스히로, 다시로 가쓰야, 나카무라 소이치, 이마이즈미 미쓰유키, 우에스기 나오후미저 / 김모세 역 | 제이펍 | 2023년 06월 15일 | PDF

이용가능환경 : Windows/Android/iOS 구매 후, PC, 스마트폰, 태블릿PC에서 파일 용량 제한없이 다운로드 및 열람이 가능합니다.

구매

종이책 정가 37,000원

전자책 정가 25,900원

판매가 25,900원

도서소개

셸 장인들의 문제를 함께 풀며 커맨드 근육 빌드업

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

저자소개

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

저 : 야마다 야스히로 (山田 泰宏)
셸 예능 커뮤니티에서 활동하는 IT 기술자. 해외에서 이 책의 집필에 참여했다. 깃허브(https://github.com/greymd)에서는 ojichat 저자로 알려졌다. 터미널 멀티플렉서인 Tmux 프로그램의 화면 단위인 pane을 분할할 수 있는 tmux-xpanes를 비롯해, 이 책에서도 사용하는 teip나 Cureutils 등 유용한 CLI 도구를 유지보수하고 있다.

저 : 다시로 가쓰야 (田代 勝也)
프로그래밍에 좌절한 경험이 있는 IT 계열 엔지니어. 프로그래밍은 루비의 대화식 셸인 pry 등 REPL 환경에서 대화형으로 시행착오를 거치며 연습하는 걸 즐긴다. 시스템의 다양한 조사나 데이터 처리 등을 수행할 때 셸 예능을 무기 삼아 매일 싸우지만 KO 당하는 경우도 많다.

저 : 나카무라 소이치 (中村 ?一)
셸 예능 스터디의 오사카 지부 설립인. 웹 계열 엔지니어의 향기를 풍긴다. 최근에는 VR 공간에서 비주얼 프로그래밍하는 것에 푹 빠졌다.

저 : 이마이즈미 미쓰유키 (今泉 光之)
오래된 유닉스 라이프를 좋아하는 (자칭) 아저씨.
저 : 우에스기 나오후미 (上杉 ?史)
보안 업체에서 일하며 특히 터미널 프롬프트에 자신 있다. 한때 집 안에 서버 랙(24U)을 설치하기도 했다. 때때로 블로그(https://orebibou.com/)에 포스팅을 올린다. 깃허브(https://github.com/blacknon)에는 TUI의 고 언어용 ssh 클라이언트 등 업무에서 사용할 수 있는 도구를 공개하고 있다.

역 : 김모세
대학 졸업 후 소프트웨어 엔지니어, 소프트웨어 품질 엔지니어, 애자일 코치 등 다양한 부문에서 소프트웨어 개발에 참여했다. 재밌는 일, 나와 조직이 성장하고 성과를 내도록 돕는 일에 보람을 느끼며 나 자신에게 도전하고 더 나은 사람이 되기 위해 항상 노력한다. 저서로 『코드 품질 시각화의 정석』(지앤선, 2015)이 있으며, 옮긴 책으로 『애자일 컨버세이션』(에이콘, 2021), 『좋은 팀을 만드는 24가지 안티패턴 타파 기법』(에이콘, 2022), 『전문가를 위한 파이썬 프로그래밍』(제이펍, 2022), 『구글 앱스 스크립트 완벽 가이드』(한빛미디어, 2022), 『동시성 프로그래밍』(한빛미디어, 2022), 『머신러닝 실무 프로젝트』(한빛미디어, 2022) 등이 있다.

목차소개

옮긴이 머리말 xiii
베타리더 후기 xv
지은이 소개 xviii
이 책에 대하여 xx
감사의 글 xxv
PART I 셸과 명령어에 익숙해지기
CHAPTER 1 리눅스 환경
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
__연습 008 sed를 사용한 치환 21
__연습 009 grep을 사용한 검색 23
__연습 010 grep을 사용한 검색과 추출 25
__연습 011 awk를 사용한 검색과 계산 26
__연습 012 sort와 uniq를 사용한 집계 30
__연습 013 xargs를 사용한 일괄 처리 34
__연습 014 bash를 사용한 메타 프로그래밍 36
1-4 파일 조작하기 38
__연습 015 깃허브에서 저장소 클론 39
__실전 001 파일명 검색 40
__실전 002 이미지 파일 일괄 변환 42
__실전 003 파일명 일괄 변경 45
__실전 004 특정 파일 삭제 49
1-5 awk와 sed에 익숙해지기 51
__실전 005 설정 파일에서 정보 추출 51
__실전 006 터미널에 모양 출력 52
__실전 007 소비세 계산 55
__실전 008 로그 집계 57
__실전 009 로그 추출 60
__실전 010 제목 표기법 변환 62
__실전 011 회의록 정리 63
CHAPTER 2 셸 기초
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
__실전 024 exit 시 파일 삭제 128
__실전 025 pipefail 시의 문제 129
__실전 026 18시가 지나면 퇴근하기 131
2-5 셸 명령어를 사용할 때 이상한 작동이나 기능 다루기 133
__실전 027 인수를 바꿔 명령어 재실행 134
__실전 028 이상한 이름의 디렉터리 다루기 136
__실전 029 셸 스크립트의 에러 체크 137
__실전 030 앞쪽이 일치하는 변수명 140
PART II 사고 능력 갈고닦기
CHAPTER 3 문장과 문자
3-1 놀면서 텍스트 다루는 법 익히기 145
__연습 033 펄, 루비 원라이너 145
__연습 034 파이썬 원라이너 149
__연습 035 정규표현식의 종류 152
__연습 036 펄을 사용한 치환 155
__실전 031 대문자로 변환 157
__실전 032 회문 검출 159
__실전 033 회문 여부 판정 161
__실전 034 한자 뒤에 독음 추가 164
__실전 035 7문자 이상의 영대문자 사용 방지 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
CHAPTER 4 데이터 관리, 집계, 변환
4-1 테이블 형식 데이터 다루기 201
__연습 041 테이블 201
__연습 042 데이터 연결 206
__실전 047 전월 비교 데이터 추가 209
__실전 048 CPU 부하 조사 1 211
__실전 049 CPU 부하 조사 2 212
__실전 050 매출 집계 214
__실전 051 시험 점수 목록 출력 217
__실전 052 집계 형식 변환 219
__실전 053 결측값 보완 221
4-2 까다로운 포맷의 데이터 다루기 223
__연습 043 JSON과 jq 223
__연습 044 이스케이프 문자가 포함된 CSV 취급 228
__실전 054 JSON 파일로부터의 추출 230
__실전 055 JSON 로그 비교 233
__실전 056 비정규 데이터끼리의 결합 236
__실전 057 테이블 레이아웃 형태 정리 241
__실전 058 CSV 파일의 숫자 집계 243
__실전 059 CSV 파일의 열 개수 조사 246
4-3 날짜와 시간 다루기 248
__연습 045 날짜와 시간 계산하기 249
__실전 060 프리미엄 프라이데이 251
__실전 061 지난 주 파일 253
__실전 062 날짜에 법정 공휴일 추가 255
__실전 063 5주차 포함 월 확인 258
__실전 064 세 번째 화요일 나열 261
__실전 065 월별 휴일 수 263
__실전 066 일정 조정 266
__실전 067 요일별 분할 268
__실전 068 유닉스 시각의 한계 270
__실전 069 윤초 272
CHAPTER 5 문자 코드와 바이너리
5-1 문자 코드에 친숙해지기 275
__연습 046 n진수 276
__연습 047 아스키코드 279
__연습 048 유니코드와 UTF-8 281
__연습 049 문자 코드 변환 284
__실전 070 엑셀 워크시트 285
__실전 071 문자의 바이트 수 조사 287
__실전 072 이모지 289
__실전 073 압축을 푼 뒤 문자가 깨진 파일명 수정 290
__실전 074 연호 표기 292
__실전 075 아스키 문자 삭제 294
__실전 076 macOS에서 생성한 파일 목록 294
__실전 077 서로 다른 문자 코드의 파일 일괄 검색 296
__실전 078 교육용 기초 한자가 아닌 한자 검출 297
__실전 079 문자 코드 특정 299
5-2 바이너리 다루기 302
__연습 050 문자열 바이너리 해석과 바이트 순서 302
__연습 051 바이너리 파일 조사용 명령어 305
__실전 080 2진수에서 문자열 복원 308
__실전 081 BOM 식별 310
__실전 082 이미지 분할 312
__실전 083 Shift_JIS를 그대로 echo하는 셸 스크립트 315
__실전 084 줄바꿈 코드 식별과 집계 317
__실전 085 문자의 바이너리 평균 검출 320
__실전 086 분수 계산 322
__실전 087 od 출력 복원 325
__실전 088 디지털 워터마킹 해독 327
__실전 089 CTF 331
CHAPTER 6 퍼즐
6-1 수학으로 놀아보기 335
__연습 052 정확한 계산 335
__연습 053 소수 337
__연습 054 조합 생성 338
__실전 090 n진수 계산 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
PART III 응용하기
CHAPTER 7 리눅스 환경 조사, 설정 및 활용
7-1 파일과 디렉터리 조사 및 조작하기 373
__연습 055 각종 파일의 저장 위치 374
__연습 056 파일 시스템 377
__연습 057 아이노드 379
__실전 103 ls -l 출력의 2번째 열 380
__실전 104 파일명의 길이의 한계? 382
__실전 105 디스크 사용량 집계 384
__실전 106 특수 권한 386
__실전 107 root가 된 횟수 집계 388
__실전 108 문제를 일으킨 프로세스 해석 391
__실전 109 내용이 같은 파일 검색 394
__실전 110 여러 디렉터리의 파일 수 세기 396
7-2 의사 파일 시스템 사용하기 398
__연습 058 의사 파일 시스템 398
__연습 059 프로세스 치환과 파일 401
__실전 111 평균 부하 조사 402
__실전 112 날짜 얻기 404
__실전 113 현재 디렉터리 조사 406
__실전 114 공유 라이브러리 검색 408
__실전 115 USB 메모리 언마운트 411
__실전 116 디바이스 번호 조사하기 413
__실전 117 USB 연결 및 분리 감시 416
__실전 118 프로세스가 열어둔 파일 조사 418
__실전 119 메모리 맵 표시 419
__실전 120 수수께끼 데이터 조사 422
7-3 시스템 콜 추적하기 425
__연습 060 strace 사용하기 425
__실전 121 파일 경로 추출 427
__실전 122 사용한 프로세스 수 세기 429
__실전 123 계산 시간 해석 433
7-4 각종 조사와 설정 정리하기 436
__실전 124 네트워크 디바이스 목록 437
__실전 125 IP 주소 추가 438
__실전 126 배시 버전 변수 439
__실전 127 터미널 에뮬레이터의 윈도우 크기 441
__실전 128 환경에 따른 grep의 작동 차이 443
__실전 129 실행 파일로부터 문자열 추출 445
7-5 원라이너로 서비스 조작하기 447
__실전 130 인스턴트 웹 서버 447
__실전 131 메일 통지 보내기 451
__실전 132 로그 모니터링 & 알림 453
__실전 133 시스템을 자동으로 종료하기 454
CHAPTER 8 소프트웨어 개발에 자주 등장하는 원라이너
8-1 소스 코드와 스크립트 조사 및 형태 정리하기 457
__실전 134 파이썬의 들여쓰기 확인 458
__실전 135 리스프의 괄호 정합성 확인하기 459
__실전 136 함수의 위치 교체 462
__실전 137 코드 형태 정리 464
8-2 데이터 생성하기 467
__연습 061 더미 데이터 생성 467
__실전 138 테스트 케이스 작성 469
__실전 139 URL 나열 471
__실전 140 웹사이트 구조로부터 액세스 로그 생성 473
__실전 141 테이블 정보로부터 더미 데이터 생성 476
__실전 142 비트스쿼팅 479
8-3 깃 저장소 조사 및 조작하기 481
__연습 062 저장소 준비 482
__연습 063 변경된 파일 확인 485
__연습 064 커밋 완료 정보를 활용 487
__연습 065 브랜치와 병합 491
__실전 143 조건에 맞는 파일만 커밋 496
__실전 144 조건에 맞는 파일만 원래대로 되돌리기 497
__실전 145 커밋 빈도 조사 500
__실전 146 오랫동안 병합되지 않은 브랜치 조사 502
CHAPTER 9 인터넷과 통신
9-1 인터넷에서 정보 얻기 505
__연습 066 HTML 문장 처리 505
__실전 147 단어 출현 빈도 508
__실전 148 지하철역 목록 작성 510
__실전 149 일기예보 출력 512
__실전 150 온라인 서점 정보 스크레이핑 514
__실전 151 여러 사이트의 정보 연계 517
9-2 통신 관련 조사 및 조작 수행하기 520
__연습 067 이름 결정 520
__연습 068 HTTP 상태 코드 523
__실전 152 네트워크 모니터링 525
__실전 153 telnet 명령어로 HTTP 통신 526
__실전 154 /etc/hosts 사용 조사 529
__실전 155 부정확한 Content-Length 531
__실전 156 여러 IP 주소가 등록된 도메인 533
__실전 157 ping의 패킷 해석 534
__실전 158 패킷을 사용한 OS 추정 537
__실전 159 여러 도메인 조사 539
__실전 160 SSL 인증서 조사 542
참고 문헌 546
찾아보기 547

회원리뷰 (0)

현재 회원리뷰가 없습니다.

첫 번째 리뷰를 남겨주세요!