책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/linux-vol1
요약
버추얼박스(VirtualBox)라는 무료 VM(Virtual Machine)과 페도라를 이용해 리눅스 시스템 사용과 관리를 실습할 수 있는 책이다. 1권에서 기본적인 셸과 명령 줄 도구들로 시작해 2권에서 디스크, 프린터, 네트워킹, 보안 관리 등 보다 전문적인 영역까지 다룬다. 3권은 DNS, SSH, 이메일, 웹서버 등 많이 쓰이는 네트워크 서비스를 자세히 다룬다.
VM과 가상 네트워크를 이용하므로 실제 서버가 없더라도 본인의 PC에 손쉽게 설치해서 익힐 수 있다. 조금 위험한 실습을 하더라도 최악의 경우 VM만 다시 만들면 될 뿐, PC에 손상을 일으키지 않으므로 안심하고 실습할 수 있다는 장점이 있다.
이 책의 대상 독자
고급 리눅스 사용자나 시스템 관리자가 되고 싶은 독자에게 적합하다. 대부분의 시스템 관리자는 리눅스 시스템 관리를 배우는 데 높은 호기심과 심오한 필요성을 느끼고 있다. 동작 원리를 알기 위해 사물을 분해하고 다시 조립하거나, 뭔가를 고치기 좋아하며 컴퓨터 문제를 해결하려고 뛰어드는 데 주저하지 않기도 한다. 리눅스에 대한 충족되지 않는 호기심을 갖고 있다면 경험과 상관없이 이 책이 도움이 될 것이다.
이 책의 구성
1권은 운영체제 일반과 리눅스를 소개한다. 나머지 과정의 준비로 『The Linux Philosophy for SysAdmins』(Apress, 2018)를 간단히 살펴본다.
4장은 버추얼박스를 이용해서 여러 실습을 수행할 테스트 환경으로, 이 과정 내내 사용할 VM과 가상 네트워크를 만드는 과정을 안내한다. 5장에서는 인기 있고 강력한 리눅스 배포판인 페도라(Fedora) Xfce 버전을 VM에 설치한다. 6장에서는 Xfce 데스크톱 사용법을 배워 커맨드라인 인터페이스(CLI, Command-Line Interface) 전문 지식의 활용도를 높여준다.
7장과 8장에서는 리눅스 커맨드라인 사용법을 익히고 기본적인 리눅스 명령과 능력을 배운다. 9장에서는 데이터 스트림과 이를 조작하는 리눅스 도구를 배운다. 10장에서는 고급 리눅스 사용자와 시스템 관리자에게 필수적인 몇 가지 문서 편집기(text editor)를 배운다.
11장에서 13장까지는 시스템 관리자의 일을 시작하고 소프트웨어 업데이트나 새로운 소프트웨어를 설치하는 등의 작업을 수행해본다. 14장과 15장에서는 터미널 에뮬레이터와 고급 셸 기술을 설명한다. 16장에서는 컴퓨터가 부트하고 리눅스가 시작하면서 일어나는 일련의 이벤트를 배운다. 17장에서는 커맨드라인의 효율이 높아지도록 셸을 구성해서 개인화하는 방법을 보여준다.
18장과 19장에서는 파일과 파일 시스템을 자세히 알아본다.
목차
목차
- 1장. 소개
- 학습 목표
- 리눅스에 대해
- 윈도우의 탄생
- 블랙박스 증후군
- 리눅스의 탄생
- 열린 상자
- 리눅스 진리
- 지식
- 유연성
- 안정성
- 확장성
- 보안
- 자유
- 수명
- 내가 시스템 관리자가 돼야 할까?
- 이 과정에 대해
- 실험에 대해
- 실험이 작동하지 않을 경우 조치법
- 용어
- 커맨드라인에 접근하는 방법
- 요약
- 연습문제
- 2장. 운영체제 소개
- 학습 목표
- 운영체제 선택
- 운영체제란?
- 하드웨어
- 운영체제
- 전형적인 운영체제 기능
- 메모리 관리
- 멀티태스킹
- 다중 사용자
- 프로세스 관리
- 프로세스 간 통신
- 장치 관리
- 에러 처리
- 유틸리티
- 간단한 역사
- UNICS에서 시작
- 유닉스
- 리눅스의 (매우) 간략한 역사
- 핵심 유틸리티
- GNU coreutils
- util-linux
- Copyleft
- 게임
- 요약
- 연습문제
- 3장. 시스템 관리자를 위한 리눅스 철학
- 학습 목표
- 배경
- 철학의 구조
- 원칙
- 데이터 스트림이 공통 인터페이스다
- 데이터 스트림 변환
- 모든 것이 파일이다
- 리눅스 FHS 사용법
- CLI를 포용하라
- 게으른 시스템 관리자가 되라
- 모든 것을 자동화하라
- 언제나 셸 스크립트를 사용하라
- 일찍 자주 테스트하라
- 상식적으로 이름을 지으라
- 개방형 포맷으로 데이터를 저장하라
- 데이터를 위한 별도 파일 시스템을 사용하라
- 프로그램을 이식성 있게 만들라
- 오픈소스 소프트웨어를 사용하라
- 우아하게 애쓰라
- 단순함을 찾으라
- 가장 좋아하는 문서 편집기를 사용하라
- 모든 것을 문서화하라
- 모든 것을 자주 백업하라
- 호기심을 따르라
- ‘반드시’는 없다
- 젊은 시스템 관리자의 멘토가 돼라
- 가장 좋아하는 오픈소스 프로젝트를 지원하라
- 현실은 녹녹치 않다
- 요약
- 연습문제
- 4장. 준비
- 학습 목표
- 개요
- root란?
- 하드웨어 사양
- 호스트 소프트웨어 요구 사항
- VirtualBox 설치
- 리눅스 호스트에 VirtualBox 설치
- 윈도우 호스트에 VirtualBox 설치
- VM 생성
- VirtualBox 관리자
- 가상 네트워크 구성
- 디스크 공간 준비
- ISO 이미지 파일 다운로드
- VM 생성
- 요약
- 연습문제
- 5장. 리눅스 설치
- 학습 목표
- 개요
- 페도라 라이브 이미지 부팅
- 페도라 설치
- 설치 시작
- 호스트 이름 설정
- 하드 드라이브 파티션
- 스왑 공간
- 설치 시작
- root 패스워드 설정
- student 사용자 생성
- 설치 완료
- 설치 프로그램 종료
- 라이브 시스템 종료
- VM 재구성
- 스냅샷 생성
- 첫 번째 부팅
- 실습이 제대로 동작하지 않을 경우
- 요약
- 연습문제
- 6장. Xfce 데스크톱 사용
- 학습 목표
- 왜 Xfce인가?
- 데스크톱
- 파일 관리자
- 안정성
- xfce4-terminal 에뮬레이터
- 구성
- 시작
- 로그인
- Xfce 데스크톱
- 설정 관리자
- 패널 2에 실행기 추가
- 선호 애플리케이션
- 데스크톱 외관
- 외관
- 다중 데스크톱
- 업데이트 설치
- 요약
- 연습문제
- 7장. 리눅스 커맨드라인 사용
- 학습 목표
- 개요
- 준비
- 커맨드라인 정의
- CLI 용어
- 명령 프롬프트
- 커맨드라인
- 커맨드라인 인터페이스
- 명령
- 터미널
- 콘솔
- 가상 콘솔
- 터미널 에뮬레이터
- 가상 터미널
- 세션
- 셸
- SSH
- screen
- GUI와 CLI
- 중요한 리눅스 명령
- PWD
- 디렉터리 경로 표기법
- 디렉터리 트리에서 이동
- 탭 완성 기능
- 파일 탐험
- 기타 명령
- 명령 기억과 편집
- 요약
- 연습문제
- 8장. 핵심 유틸리티
- 학습 목표
- GNU 핵심 유틸리티
- util-linux
- 요약
- 연습문제
- 9장. 데이터 스트림
- 학습 목표
- 원료로서의 데이터 스트림
- 텍스트 스트림: 범용 인터페이스
- STDIO 파일 핸들
- USB 드라이브 준비
- 데이터 스트림 생성
- yes를 이용한 이론 검증
- USB 드라이브 탐험
- 무작위
- 파이프 드림
- 파이프라인 작성
- 리디렉션
- grep 명령
- 뒷정리
- 요약
- 연습문제
- 10장. 텍스트 편집기
- 학습 목표
- 텍스트 편집기가 필요한 이유
- Vim
- 기타 편집기
- Emacs
- gedit
- Leafpad
- Kate
- xfw
- xed
- Vim 학습
- SELinux 해제
- 가장 좋아하는 텍스트 편집기 사용
- 요약
- 연습문제
- 11장. root로 작업
- 학습 목표
- 왜 root인가?
- su 명령
- root 계정 알아보기
- root의 단점
- 사용자 특권 상승
- 나쁜 방법
- sudo 사용
- root로서 su 사용
- 요약
- 연습문제
- 12장. 소프트웨어 설치와 업데이트
- 학습 목표
- 의존성 지옥
- RPM
- YUM
- DNF
- 패키지 설치
- 업데이트 설치
- 업데이트 이후 작업
- 패키지 제거
- 그룹
- 리포지터리 추가
- 커널
- 요약
- 연습문제
- 학습 목표
- 13장. 문제 해결용 도구
- 학습 목표
- 문제 해결의 기술
- 5단계 문제 해결법
- 지식
- 관찰
- 추론
- 조치
- 시험
- 시스템 성능과 문제 해결
- top
- 기타 top 같은 도구
- htop
- atop
- 기타 도구
- 메모리 도구
- 디스크 I/O 통계를 보여주는 도구
- /proc 파일 시스템
- 하드웨어 살펴보기
- 하드웨어 온도 모니터링
- 하드 드라이브 모니터링
- SAR를 이용한 시스템 통계!
- 설치와 구성
- 수집된 데이터 살펴보기
- 뒷정리
- 요약
- 연습문제
- 14장. 터미널 에뮬레이터 애호가
- 학습 목표
- 터미널에 대해
- 요구 사항
- rxvt
- xfce4-terminal
- LXTerminal
- Tilix
- Konsole
- Terminator
- 요약
- 연습문제
- 15장. 고급 셸 사용법
- 학습 목표
- Bash 셸
- 셸 옵션
- 셸 변수
- 명령
- 경로
- 내부 명령
- 외부 명령
- 외부 명령을 사용하게 만드는 방법
- 복합 명령
- 시간 절약 도구
- 중괄호 확장
- 특수 패턴 문자
- 집합
- 메타문자
- grep 사용
- 파일 찾기
- 요약
- 연습 문제
- 16장. 리눅스 부팅과 시작
- 학습 목표
- 개요
- 하드웨어 부팅
- 리눅스 부팅
- GRUB
- GRUB 구성
- 리눅스 커널
- 리눅스 시작
- systemd
- 그래픽 로그인 화면
- 로그인에 대해
- CLI 로그인 화면
- GUI 로그인 화면
- 요약
- 연습 문제
- 17장. 셸 구성
- 학습 목표
- 셸 시작
- 비로그인 셸 시작
- 로그인 셸 시작
- 글로벌 설정 스크립트 살펴보기
- 로컬 설정 스크립트 살펴보기
- 테스트
- 환경 살펴보기
- 다른 셸 변수
- 앨리어스
- 요약
- 연습문제
- 18장. 파일, 디렉터리, 링크
- 학습 목표
- 소개
- 준비
- 사용자 계정과 보안
- 파일 속성
- 파일 소유권
- 파일 권한
- 디렉터리 권한
- 그룹 소유권의 의미
- umask
- 파일 권한 변경
- 권한 적용
- 타임스탬프
- 파일 메타구조
- 디렉터리 엔트리
- inode
- 파일 정보
- 링크
- 하드 링크
- 요약
- 연습문제
- 19장. 파일 시스템
- 학습 목표
- 개요
- 정의
- 파일 시스템의 기능
- 리눅스 파일 시스템 계층 구조 표준
- 표준
- 문제 해결
- 파일 시스템의 잘못된 사용
- 표준 고수
- 리눅스 일원적 디렉터리 구조
- 파일 시스템 종류
- 마운트
- 리눅스 EXT4 파일 시스템
- 실린더 그룹
- inode
- 저널
- 데이터 할당 전략
- 데이터 단편화
- 문제를 고치기
- /etc/fstab 파일
- 손상된 파일 시스템 수리
- 새로운 파일 시스템 작성
- 공간 찾기
- 새로운 가상 하드 드라이브 추가
- 기타 파일 시스템
- 요약