머리말 ... 3 역자의 서문 ... 11 1. 유닉스(UNIX)란? ... 23 1.1 컴퓨터 시스템 ... 24 1.2 하드웨어(hardware) ... 24 1.3 운영체제(operating system) ... 28 1.4 소프트웨어(software) ... 28 1.5 자원의 공유 ... 29 1.6 통신(communication) ... 30 1.7 유틸리티(utility) ... 31 1.8 프로그래머 지원 ... 32 1.9 표준(standard) ... 32 1.10 유닉스 특성(복습) ... 33 1.11 유닉스의 철학 ... 33 1.12 유닉스의 과거 ... 35 1.13 유닉스의 현재 ... 36 1.14 유닉스의 미래 ... 37 1.15 본서의 나머지 부분 ... 37 1.16 끝맺음 ... 38 2. 일반 사용자를 위한 유닉스 ... 41 2.1 사용자 등록 ... 43 2.2 로그인 ... 43 2.3 셸 ... 44 2.4 유틸리티의 실행 ... 45 2.5 온라인 도움말 얻기 : man ... 46 2.6 특수 문자 ... 48 2.7 패스워드 설정 : PASSWD ... 51 2.8 로그 아웃(log out) ... 52 2.9 파일 시스템의 활용 : EXPLORING THE FILE SYSTEM ... 53 2.10 현재 작업중인 디렉토리의 확인 : PWD ... 54 2.11 절대 경로 이름과 상대 경로 이름 ... 55 2.12 파일 생성 ... 56 2.13 디렉토리 내용 보기 : Is ... 57 2.14 파일의 내용보기 : cat/more/page/head/tail ... 59 2.15 파일의 이름 바꾸기 : mv ... 61 2.16 디렉토리 만들기 : mkdir ... 61 2.17 다른 디렉토리로 이동 : cd ... 63 2.18 파일 복사 : cp ... 64 2.19 파일의 편집 : vi ... 65 2.20 디렉토리 제거 : rmdir ... 66 2.21 파일의 삭제 : rm ... 67 2.22 파이의 프린팅 : lp, lpstat 및 lprm ... 68 2.23 파일 내 단어 수 세기 : wc ... 71 2.24 파일 속성 ... 71 2.25 그룹 ... 77 2.26 그룹 목록 보기 : groups ... 78 2.27 파일 그룹 바꾸기 : chgrp ... 79 2.28 파일의 허가권 변경 : chmod ... 79 2.29 파일의 소유권 변경 : chown ... 82 2.30 그룹의 변경 : newgrp ... 83 2.31 파일 시스템 활용 예를 마치며 ... 84 2.32 터미널 유형 결정 : tset ... 84 2.33 터미널 특성 변경 : stty ... 88 2.34 파일의 편집 : vi ... 89 2.35 파일의 편집 : emacs ... 99 2.36 전자우편 : mail ... 106 2.37 끝맺음 ... 112 3. 유닉스 셸 ... 115 3.1 소개 ... 117 3.2 셸의 기능 ... 117 3.3 셸 선택 ... 118 3.4 셸 운영 ... 120 3.5 실행가능한 파일과 내장 명령어 ... 121 3.6 메타 문자 ... 122 3.7 리다이렉션 ... 123 3.8 파일 이름 대치(대표 문자) ... 126 3.9 파이프(pipe) ... 127 3.10 명령어 대치 ... 130 3.11 명령열(sequences) ... 131 3.12 명령어 그룹 ... 132 3.13 후면 처리(Background Processing) ... 133 3.14 후면 프로세스의 리다이렉션 ... 134 3.15 셸 프로그램 : scripts ... 136 3.16 서브셸(Subshell) ... 138 3.17 변수 ... 139 3.18 인용(Quoting) ... 142 3.19 HERE DOCUMENT ... 143 3.20 작업 제어 ... 144 3.21 명령어 찾기 : $PATH ... 151 3.22 동일한 이름의 표준 유틸리티 무시 ... 152 3.23 종료와 종료 코드 ... 153 3.24 공통의 핵심 내장 명령어 ... 154 3.25 끝맺음 ... 158 4. Bourne 셸 ... 161 4.1 소개 ... 162 4.2 시작하기 ... 163 4.3 변수 ... 164 4.4 산술 계산 ... 172 4.5 조건식 ... 174 4.6 제어 구조 ... 176 4.7 예제 : TRACK ... 183 4.8 그 밖의 내장 명령어 ... 187 4.9 개선점 ... 189 4.10 명령 줄 옵션 ... 191 4.11 끝맺음 ... 191 5. Korn 셸 ... 195 5.1 소개 ... 196 5.2 시작하기 ... 197 5.3 별명(Alias) ... 198 5.4 히스토리 ... 203 5.5 명령어 편집 ... 206 5.6 산술 계산 ... 210 5.7 틸더(Tilde) 치환 ... 212 5.8 메뉴 : SELECT ... 213 5.9 함수 ... 214 5.10 개선된 작업 제어 ... 219 5.11 개선점 ... 223 5.12 예제 : JUNK ... 239 5.13 제한된 셸 ... 242 5.14 명령 줄 옵션 ... 243 5.15 끝맺음 ... 243 6. C 셸 ... 245 6.1 소개 ... 246 6.2 시작하기 ... 247 6.3 변수 ... 249 6.4 연산식 ... 255 6.5 파일 이름 완성(Filename Completion) ... 259 6.6 히스토리 ... 260 6.7 히스토리 ... 263 6.8 제어 구조 ... 267 6.9 예제 : JUNK ... 275 6.10 개선점 ... 277 6.11 추가 내장 명령어 ... 285 6.12 디렉토리 스택 ... 286 6.13 명령 줄 옵션 ... 289 6.14 끝맺음 ... 290 7. 유틸리티 ... 291 7.1 소개 ... 292 7.2 파일 여과 ... 293 7.3 파일 정열 : SORT ... 298 7.4 파일 비교 ... 302 7.5 파일 보관 ... 306 7.6 파일 탐색 : FIND ... 314 7.7 명령 스케줄링 ... 316 7.8 프로그램 가능한 텍스트 처리 : awk ... 321 7.9 하드 링크와 소프트 링크 : In ... 327 7.10 사용자 대치 : su ... 330 7.11 전자우편 검사 : biff ... 331 7.12 파일 변환 ... 331 7.13 순수 파일 내용 보기 : od ... 341 7.14 파일 시스템 마운트 : mount/umount ... 342 7.15 셸 확인 : whoami ... 344 7.16 터미널 확인 : tty ... 344 7.17 텍스트 포매팅 : nroff/troff/style/spell ... 345 7.18 스크립트 언어 : Perl ... 345 7.19 끝맺음 ... 357 8. 네트워킹 ... 359 8.1 소개 ... 360 8.2 네트워크 구축 ... 361 8.3 인터넷(Internet) ... 365 8.4 사용자 ... 369 8.5 사용자들과 통신 ... 374 8.6 분산 자료 ... 378 8.7 분산 처리 ... 381 8.8 네트워크 파일 시스템 : NFS ... 387 8.9 참고문헌 ... 388 8.10 끝맺음 ... 388 9. 인터넷 ... 391 9.1 인터넷의 발전 ... 392 9.2 오늘날의 인터넷 사용 ... 406 9.3 끝맺음 ... 409 10. 윈도우 시스템 ... 411 10.1 소개 ... 412 10.2 X 서버 ... 414 10.3 X 윈도우 관리자 ... 416 10.4 WIDGET ... 419 10.5 Motif 윈도우 관리자의 기능들 ... 423 10.6 클라이언트 응용 프로그램 ... 425 10.7 고급 주제들 ... 428 10.8 다른 X 호환에 대한 조사 ... 436 10.9 끝맺음 ... 437 11. C 프로그래밍 도구 ... 439 11.1 C 언어 ... 440 11.2 단일 모듈프로그램 ... 441 11.3 다중 모듈 프로그램 ... 445 11.4 유닉스 파일 의존 시스템 : Make ... 451 11.5 유닉스 파일 보관 시스템 : AR ... 459 11.6 유닉스 소스 코드 제어 시스템 : SCCS ... 466 11.7 유닉스 수행 감시기(Profiler) : prof ... 479 11.8 이중 검사 프로그램 : LINT ... 481 11.9 유닉스 디버거 : DBX ... 481 11.10 작업 완료 후 : STRIP ... 490 11.11 끝맺음 ... 491 12. 시스템 프로그래밍 ... 493 12.1 소개 ... 495 12.2 에러 처리 : PERROR() ... 497 12.3 정규 파일 관리 ... 499 12.4 스트림(Streams) ... 540 12.5 프로세스 관리 ... 542 12.6 시그널 ... 563 12.7 IPC ... 579 12.8 인터넷 셸 ... 615 12.9 끝맺음 ... 648 13. 유닉스의 내부 ... 655 13.1 소개 ... 656 13.2 커널의 기본 ... 657 13.3 파일 시스템 ... 667 13.4 프로세스 관리 ... 682 13.5 입출력 ... 709 13.6 프로세스간 상호 통신 ... 730 13.7 끝맺음 ... 734 14. 시스템 관리 ... 737 14.1 소개 ... 738 14.2 수퍼 유저 되기 ... 739 14.3 유닉스의 시작 ... 740 14.4 시스템의 종료 ... 742 14.5 파일 시스템의 관리 ... 744 14.6 사용자 계정의 관리 ... 748 14.7 소프트웨어 설치 ... 751 14.8 주변 장치 ... 753 14.9 네트워크 인터페이스 ... 755 14.10 자동화 작업 ... 756 14.11 추적 평가 ... 757 14.12 커널 구성 ... 758 14.13 보안 문제 ... 759 14.14 끝맺음 ... 760 15. 유닉스의 미래 ... 763 15.1 소개 ... 764 15.2 현재 및 가까운 장래의 유닉스에 대한 영향 ... 764 15.3 현재 유망한 유닉스 버전들 ... 771 15.4 끝맺음 ... 776 부록 ... 779 정규 표현식(Regular Expressions) ... 779 유닉스를 위해 변형된 BNF(Backus-Naur notation) 표기 ... 781 시스템 호출 : 알파벳 순서로 정리 ... 782 참고문헌 ... 785 찾아보기 ... 787