이 책은 다섯 부분으로 구성되어 있으며 쉘 프로그래밍 기술, 다양한 UNIX 명령 및 구문을 자세히 소개하고 UNIX에서의 워드 프로세싱 및 소수의 시스템 관리 문제도 포함합니다. 이 책은 내용이 포괄적이고 텍스트가 간결하고 매끄러워서 Shell 프로그래머가 배우고 참고하기 적합합니다.
목차 번역가의 서문 1부 껍질 1장 파일 보안 및 권한 1 1.1 문서 1 1.2 파일 유형 2 1.3 권한 2 1.4 변경 허가 비트 4 1.4.1 기호 모드 4 1.4.2 chmod 명령 예 5 1.4.3 절대 모드 5 1.4.4 chmod 명령의 다른 예 6 1.4.5 기호 모드 또는 절대 모드를 사용하도록 선택할 수 있습니다. 7 1.5 목차 7 1.6 suid/guid 7 1.6.1 suid/guid 8을 사용하는 이유 1.6.2 suid/guid 8 설정 예 1.7 chown 및 chgrp 9 1.7.1 chown 예제 9 1.7.2 chgrp 예제 9 1.7.3 자신이 속한 사용자 그룹 찾기 9 1.7.4 다른 사용자가 속한 그룹 확인10 1.8마스크 10 1.8.1 umask 값을 계산하는 방법 10 1.8.2 일반적으로 사용되는 umask 값 11 1.9 심볼릭 링크 12 1.9.1 소프트 링크를 사용하여 파일의 여러 이미지 저장 12 1.9.2 심볼릭 링크 예제 12 1.10 요약 13 2장 find 및 xargs 사용 14 2.1 find 명령 옵션 14 2.1.1 이름 옵션 사용 15 2.1.2 perm 옵션 사용 16 2.1.3 디렉토리 무시 16 2.1.4 user 및 nouser 옵션 사용 16 2.1.5 group 및 nogroup 옵션 사용 16 2.1.6 변경 시간을 기준으로 파일 찾기 17 2.1.7 특정 파일보다 최신이거나 오래된 파일 찾기 17 2.1.8 유형 옵션 사용 17 2.1.9 크기 옵션 사용 18 2.1.10 깊이 옵션 사용 18 2.1.11 마운트 옵션 사용 18 2.1.12 cpio 옵션 사용 18 2.1.13 exec 또는 ok를 사용하여 쉘 명령 실행 19 2.1.14 find 명령어의 예 20 2.2 xargs 20 2.3 요약 21 3장 백그라운드에서 명령 실행 22 3.1 크론과 크론탭 22 3.1.1 crontab 도메인 22 3.1.2 crontab 항목의 예 23 3.1.3 crontab 명령 옵션 23 3.1.4 새로운 crontab 파일 생성 24 3.1.5 crontab 파일 목록 24 3.1.6 crontab 파일 편집 24 3.1.7 crontab 파일 삭제 25 3.1.8 손실된 crontab 파일 복구 25 3.2 명령 25 3.2.1 at 명령을 사용하여 명령 또는 스크립트 제출 26 3.2.2 제출된 과제 목록 27 3.2.3 작업 지우기 27 3.3 및 명령 27 3.3.1 백그라운드로 명령 제출 28 3.3.2 ps 명령을 사용하여 프로세스 보기 28 3.3.3 백그라운드 프로세스 종료 28 3.4 nohup 명령 29 3.4.1 nohup 명령을 사용하여 작업 제출 29 3.4.2 여러 작업을 동시에 제출 29 3.5 요약 30 4장 파일 이름 바꾸기 31 4.1 사용* 31 4.2 사용? 32 4.3 [...] 및 [!...] 사용 32 4.4 요약 33 5장 쉘 입력 및 출력 34 5.1 에코 34 5.2 읽기 35 5.3 고양이 37 5.4 파이프라인 38 5.5 티 39 5.6 표준 입력, 출력 및 오류 40 5.6.1 표준 입력 40 5.6.2 표준 출력 40 5.6.3 표준오차 40 5.7 파일 리디렉션 40 5.7.1 표준 출력 리디렉션 41 5.7.2 표준 입력 리디렉션 42 5.7.3 표준 오류 리디렉션 42 5.8 표준 출력과 표준 오류를 함께 사용하기 43 5.9 표준 출력과 표준 오류 병합 43 5.10 실행 44 5.11 파일 설명자 사용하기 44 5.12 요약 45 6장 명령 실행 순서 46 6.1 && 사용하기 46 6.2 사용 || 6.3 ()와 { }를 사용하여 명령 결합 47 6.4 요약 48 2부 텍스트 필터링 7장 정규식 소개 49 7.1 마침표를 사용하여 단일 문자 일치 50 7.2 50행 시작 부분에 ^를 사용하여 문자열 또는 문자 시퀀스를 일치시킵니다. 7.3 문자열이나 문자 51을 줄 끝의 $와 일치시킵니다. 7.4 문자열에서 단일 문자나 반복되는 문자를 일치시키려면 *를 사용하세요. 7.5 를 사용하여 특수 문자의 의미를 가리세요 52 7.6 []를 사용하여 범위나 집합을 일치시키세요52 7.7 {}를 사용하여 패턴 결과가 나타나는 횟수를 일치시키세요 53 7.8 요약 55 8장 grep 제품군 56 8.1 grep 57 8.1.1 큰따옴표 57 8.1.2 grep 옵션 57 8.1.3 여러 파일 쿼리 57 8.1.4 라인 매치 57 8.1.5 라인 수 58 8.1.6 일치하지 않는 줄 표시하기 58 8.1.7 정확한 일치 58 8.1.8 대소문자 구분58 8.2 grep과 정규 표현식 58 8.2.1 모드 범위 59 8.2.2 59행의 시작 부분과 일치하지 않습니다. 8.2.3 세트 케이스 59 8.2.4 임의의 문자와 일치 59 8.2.5 날짜 쿼리 59 8.2.6 범위 조합 60 8.2.7 패턴 출현 확률 60 8.2.8 grep을 사용하여 "AND" 또는 "OR" 패턴 일치 61 8.2.9 빈 줄 61 8.2.10 특수문자 매칭 61 8.2.11 쿼리 형식의 파일 이름 61 8.2.12 IP 주소 쿼리 61 8.3 클래스 이름 62 8.4 시스템 grep 명령 62 8.4.1 목차 63 8.4.2 비밀번호 파일 63 8.4.3 ps 명령 사용 63 8.4.4 문자열에 grep 64 사용하기 8.5 이그레프 64 8.6 요약 65 9장 AWK 소개 66 9.1 awk 호출 66 9.2 awk 스크립트 67 9.2.1 패턴과 액션 67 9.2.2 도메인 및 레코드 67 9.2.3 awk 70의 정규식과 그 연산 9.2.4 메타문자 70 9.2.5 조건 연산자 70 9.2.6 awk 내장 변수 73 9.2.7 NF, NR 및 FILENAME 74 9.2.8 awk 연산자 75 9.2.9 내장 문자열 함수 78 9.2.10 문자열 마스킹 시퀀스 80 9.2.11 awk 출력 함수 printf 81 9.2.12 printf 수정자 81 9.2.13 awk 배열 86 9.3 요약 88 10장 sed 사용법 소개 89 10.1 sed 89로 데이터를 읽는 방법 10.2 sed 89 호출하기 10.2.1 sed 출력 저장 90 10.2.2 sed를 사용하여 파일의 텍스트를 쿼리하는 방법 90 10.2.3 기본 sed 편집 명령 90 10.3 sed와 정규식 91 10.4 기본 sed 프로그래밍 예제 91 10.4.1 p(rint)를 사용하여 91행 표시 10.4.2 인쇄 범위 91 10.4.3 인쇄 모드 92 10.4.4 패턴과 줄번호를 이용한 질의 92 10.4.5 메타문자 매칭 92 10.4.6 전체 파일 표시 92 10.4.7 임의의 문자 92 10.4.8 첫 번째 줄 92 10.4.9 마지막 줄 93 10.4.10 줄 번호 93 인쇄 10.4.11 추가 텍스트 93 10.4.12 sed 스크립트 파일 생성 94 10.4.13 텍스트 삽입 94 10.4.14 텍스트 수정 95 10.4.15 텍스트 삭제 96 10.4.16 대체 텍스트 96 10.5 대체를 사용하여 문자열 수정 97 10.6 sed 결과를 파일 명령에 쓰기 97 10.7 파일에서 텍스트 읽기 98 10.8 매칭 후 98번 출구 10.9 파일에 제어 문자 표시하기 99 10.10 시스템 sed 사용하기 99 10.10.1 제어 문자 처리 99 10.10.2 메시지 출력 처리 101 10.10.3 줄 시작 부분의 숫자 101을 제거합니다. 10.10.4 추가 텍스트 102 10.10.5 쉘에서 sed로 값 102 전달 10.10.6 sed 출력에서 쉘 변수 설정 102 10.11 빠른 한 줄 명령 102 10.12 요약 103 제 11 장 합병과 분할 104 11.1 정렬 사용법 104 11.1.1 개요 104 11.1.2 정렬 옵션 104 11.1.3 출력 저장 105 11.1.4 정렬 시작 방법 105 11.1.5 정렬이 도메인을 참조하는 방법 105 11.1.6 파일 분류 여부 105 11.1.7 기본 정렬 106 11.1.8 정렬 분류 역전 106 11.1.9 지정도메인별 분류 106 11.1.10 수치필드 분류 106 11.1.11 고유성 분류 107 11.1.12 k를 사용한 다른 정렬 방법 108 11.1.13 분류키 정렬에 k를 사용하기 108 11.1.14 정렬 순서 지정 108 11.1.15 위치 사용법 108 11.1.16 머리와 꼬리를 사용하여 출력 분류 109 11.1.17 awk는 정렬을 사용하여 결과를 출력합니다. 109 11.1.18 두 개의 분류 파일 병합 110 11.2 시스템 정렬 110 11.3 고유한 사용법 111 11.4 조인 사용법 112 11.5 컷 사용법 114 11.5.1 도메인 구분 기호 사용 115 11.5.2 지정된 필드 잘라내기 115 11.6 페이스트 사용법 116 11.6.1 열 지정 116 11.6.2 다양한 필드 구분 기호 사용 116 11.6.3 붙여넣기 명령 파이프라인 입력 117 11.7 분할 사용법 117 11.8 요약 118 12장 tr 사용법 119 12.1 tr 119 소개 12.1.1 문자 범위 119 12.1.2 출력 저장 120 12.1.3 반복되는 문자 제거 120 12.1.4 빈 줄 삭제 120 12.1.5 대문자를 소문자로 121 12.1.6 소문자에서 대문자로 121 12.1.7 특정 문자 삭제 121 12.1.8 제어 문자 변환 122 12.1.9 빠른 변환 122 12.1.10 두 개 이상의 문자 매칭 123 12.2 요약 123 3부 로그인 환경 13장 로그인 환경 125 13.1 /etc/프로필 125 13.2 사용자의 $HOME.profile 128 13.3 stty 사용법 129 13.4 .logout 파일 생성 131 13.5 요약 131 14장 환경 및 셸 변수 132 14.1 쉘 변수란 무엇인가132 14.2 지역변수 132 14.2.1 표시변수 133 14.2.2 변수 지우기 133 14.2.3 모든 로컬 쉘 변수 표시 133 14.2.4 변수값 합치기 134 14.2.5 변수가 설정되었는지 테스트하기 134 14.2.6 변수를 사용하여 시스템 명령 매개변수 저장 135 14.2.7 읽기 전용 변수 설정하기 135 14.3 환경 변수 136 14.3.1 환경변수 설정하기 136 14.3.2 환경 변수 표시 136 14.3.3 환경 변수 지우기 137 14.3.4 쉘 변수 삽입 137 14.3.5 기타 환경 변수 139 14.3.6 설정 명령 140 14.3.7 자식 프로세스로 변수 내보내기 140 14.4 위치변수 매개변수 141 14.4.1 스크립트에서 위치 매개변수 사용하기 142 14.4.2 시스템 명령에 매개변수 전달 142 14.4.3 특정 변수 매개변수 143 14.4.4 최종 종료 상태 144 14.5 요약 145 제 15 장 인용문 146 15.1 인용의 필요성 146 15.2 큰따옴표 146 15.3 작은따옴표 147 15.4 백틱147 15.5 백슬래시 148 15.6 요약 149 4부 기본 쉘 프로그래밍 16장 쉘 스크립트 소개 151 16.1 쉘 스크립트를 사용하는 이유 151 16.2 스크립트 내용 151 16.3 스크립트 실행하기 152 16.4 요약 153 17장 조건부 테스트 154 17.1 테스트 파일 상태 154 17.2 테스트 시 논리 연산자 사용하기 155 17.3 문자열 테스트 155 17.4 시험값 156 17.5 expr 사용법 157 17.5.1 증분 계산 158 17.5.2 수치 테스트 158 17.5.3 패턴 매칭 158 17.6 요약 159 18장 제어 흐름 구조 160 18.1 종료 상태 160 18.2 제어 구조 160 18.2.1 흐름 제어 161 18.2.2 루프 161 18.3 if then else 문 161 18.3.1 간단한 if 문 162 18.3.2 변수값 테스트 162 18.3.3 grep 출력 검사 163 18.3.4 변수를 사용하여 grep 출력 테스트 163 18.3.5 파일 복사 출력 확인 164 18.3.6 현재 디렉토리 테스트 164 18.3.7 파일 권한 테스트 165 18.3.8 스크립트에 전달된 매개변수 테스트 165 18.3.9 스크립트가 대화형 모드인지 확인165 18.3.10 간단한 if else 문 166 18.3.11 변수 설정 테스트 166 18.3.12 스크립트를 실행하는 사용자 감지 166 18.3.13 시스템 명령에 스크립트 매개변수 전달 167 18.3.14 null: 명령 사용법 167 18.3.15 테스트 디렉터리 생성 결과 168 18.3.16 또 다른 복사본 인스턴스 169 18.3.17 다중 if 문 169 18.3.18 환경 변수 테스트 및 설정 169 18.3.19 마지막 명령 상태 감지 170 18.3.20 정수값 추가 및 확인 171 18.3.21 단순 보안 로그인 스크립트 172 18.3.22 elif 사용법 173 18.3.23 다중 조건 감지를 위해 elif 사용 173 18.3.24 다중 파일 위치 감지 174 18.4 사례 진술 175 18.4.1 간단한 사례문 175 18.4.2 일치 패턴 사용 176 | 18.4.3 y 또는 n을 입력하라는 프롬프트 177 18.4.4 177을 전달하는 케이스 및 명령 매개변수 18.4.5 입력 캡처 및 빈 명령 실행 178 18.4.6 기본 변수 값 179 루프 180의 경우 18.5 18.5.1 간단한 for 루프 181 18.5.2 문자열 목록 인쇄 181 18.5.3 for 루프와 함께 ls 명령 사용 181 18.5.4 for 루프에 매개변수 사용하기 182 18.5.5 for 루프를 사용하여 서버에 연결 183 18.5.6 for 루프를 사용하여 파일 백업 183 18.5.7 다중 파일 변환 183 18.5.8 다중 sed 삭제 작업 184 18.5.9 루프 횟수 184 18.5.10 for 루프 및 로컬 문서 184 18.5.11 루프 임베딩 185 18.6 루프 186까지 18.6.1 단순 루프 186 18.6.2 모니터링 파일 187 18.6.3 디스크 공간 모니터링 187 18.7 while 루프 188 18.7.1 간단한 while 루프 188 18.7.2 while 루프를 사용하여 키보드 입력 읽기 188 18.7.3 while 루프를 사용하여 파일에서 데이터 읽기 189 18.7.4 IFS 189를 사용하여 파일 읽기 18.7.5 테스트 조건에 따른 파일 처리 190 18.7.6 카운트를 위한 파일 라인 스캔 191 18.7.7 한 번에 한 쌍의 레코드 읽기 193 18.7.8 # 문자 무시 193 18.7.9 서식이 지정된 보고서 처리 194 18.7.10 while 루프와 파일 설명자 196 18.8 break와 continue를 사용하여 루프 제어하기 197 18.8.1 중단 197 18.8.2 사례문에서 벗어나기 197 18.8.3 계속 197 18.8.4 파일 라인 찾아보기 198 18.9 메뉴 199 18.10 요약 201 19장 셸 기능 202 19.1 스크립트에서 함수 정의하기 203 19.2 스크립트에서 함수 사용하기 203 19.3 함수에 매개변수 전달하기 203 19.4 호출 함수에서 203 반환 19.5 함수 반환 값 테스트 204 19.6 셸에서 함수 사용하기 204 19.7 함수 파일 생성 204 19.8 파일 찾기 205 19.9 로딩 기능 확인하기 205 19.10 쉘 함수 실행하기 205 19.10.1 쉘 삭제 기능 206 19.10.2 쉘 기능 편집 206 19.10.3 기능 예시 207 19.10.4 기능 그룹화 219 19.11 함수 호출 219 19.11.1 스크립트에서 함수 호출 219 19.11.2 함수 파일에서 함수 호출 220 19.12 파일 찾기는 단지 기능만을 위한 것이 아닙니다 222 19.13 요약 223 20장 스크립트에 매개변수 전달 224 20.1 시프트 명령 225 20.1.1 Shift 명령의 간단한 사용법 225 20.1.2 명령줄에 입력된 마지막 매개변수 225 20.1.3 Shift를 사용하여 파일 변환 처리 226 20.2 getopts 229 20.2.1 getopts 스크립트 예제 229 20.2.2 getopts 사용법 231 20.2.3 getopts를 사용하여 변수값 지정 231 20.2.4 접근값 방식 232 20.2.5 getopts를 사용하여 파일 변환 처리 233 20.3 요약 235 21 장 화면 출력 생성 236 21.1 처리량 사용량 236 21.1.1 문자열 출력 236 21.1.2 디지털 출력 237 21.1.3 부울 출력 237 21.2 출력 사용량 237 21.2.1 tput 명령 설정 237 21.2.2 부울 출력 사용 237 21.2.3 스크립트에서 tput 사용하기 237 21.2.4 이스케이프 시퀀스 생성하기 238 21.2.5 커서 위치 239 21.2.6 화면 중앙에 텍스트 표시하기 240 21.2.7 터미널 속성 찾기 240 21.2.8 스크립트에서 기능 키 사용 241 21.2.9 색상 사용 242 21.2.10 색상 생성 243 21.2.11 절묘한 메뉴 생성 246 21.3 요약 251 22장 화면 입력 만들기 252 22.1 레코드 추가 252 22.2 기록 삭제 262 22.3 수정 기록 266 22.4 기록 보기 270 22.5 요약 273 23장 스크립트 디버깅 274 23.1 일반적인 오류 274 23.1.1 루프 오류 274 23.1.2 전형적인 누락된 따옴표 274 23.1.3 테스트 오류 274 23.1.4 문자 케이스 275 루프 275에 대한 23.1.5 23.1.6 에코 275 23.2 설정 명령 275 23.3 요약 276 24장 쉘 임베딩 명령 277 24.1 쉘 내장 명령의 전체 목록 277 24.1.1 비밀번호 277 24.1.2 세트 278 24.1.3배 278 24.1.4 유형 278 24.1.5 ulimit 279 24.1.6 잠깐 279 24.2 요약 279 5부 고급 쉘 프로그래밍 기술 25장 심층 토론