이미 소장하고 있다면 판매해 보세요.
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 파일 ____손상된 파일 시스템 수리 __새로운 파일 시스템 작성 ____공간 찾기 ____새로운 가상 하드 드라이브 추가 __기타 파일 시스템 __요약 __연습문제 |
David Both
김기주의 다른 상품
나가진의 다른 상품
송지연의 다른 상품
◈ 이 책의 대상 독자 ◈
고급 리눅스 사용자나 시스템 관리자가 되고 싶은 독자에게 적합하다. 대부분의 시스템 관리자는 리눅스 시스템 관리를 배우는 데 높은 호기심과 심오한 필요성을 느끼고 있다. 동작 원리를 알기 위해 사물을 분해하고 다시 조립하거나, 뭔가를 고치기 좋아하며 컴퓨터 문제를 해결하려고 뛰어드는 데 주저하지 않기도 한다. 리눅스에 대한 충족되지 않는 호기심을 갖고 있다면 경험과 상관없이 이 책이 도움이 될 것이다. ◈ 이 책의 구성 ◈ 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장에서는 파일과 파일 시스템을 자세히 알아본다. ◈ 지은이의 말 ◈ 대부분의 리눅스 교육은 리눅스 사용자 교육 과정을 먼저 수강해야 한다는 가정으로 시작한다. 이 과정은 시스템 관리에서 루트의 역할을 설명하지만 미래의 시스템 관리자에게 중요한 주제들을 무시하거나, 시스템 관리 자체를 무시하기도 한다. 전형적인 두 번째 강좌는 학생들에게 시스템 관리를 소개하고, 세 번째는 고급 관리 주제와 씨름하게 될 수도 있다. 솔직히 이런 아기 걸음마식 접근 방법은 리눅스 시스템 관리자들에게 잘 맞지 않았다. 우리는 최대한 빠르게 많이 배우려는 강렬한 갈망 때문에 시스템 관리자가 됐다. 이는 우리의 호기심 많은 본성 때문이기도 하다. 우리는 간단한 명령을 배운 다음 질문하고, 실험하기 시작하며 한계를 살피고 어떻게 하면 부서지는지, 어디로 영향을 미치는지 알아낸다. 설명서와 기타 문서를 읽고 극단적인 사용법을 익힌다. 망가지지 않으면 의도적으로 망가뜨려서 어떻게 동작하는지 살피고 어떻게 고치는지 배운다. 우리는 스스로의 실패를 즐긴다. 언제나 기대한 대로 동작할 때보다 고치면서 더 많이 배우기 때문이다. 이 과정은 리눅스 시스템 관리에 대해 처음부터 깊이 알아볼 것이다. 리눅스 워크스테이션과 서버를 사용하고 관리하는 데 필요한 여러 리눅스 도구(각각의 작업에 적용되는 여러 도구)를 배울 것이다. 이 과정은 시스템 관리자가 그 진가를 알아보는 여러 실습을 담고 있다. 이러한 실습은 모두 리눅스의 깊은 우아함과 아름다움으로 한 걸음씩 안내한다. 리눅스의 간결함이 리눅스를 우아하면서 알기 쉽게 만든다는 것을 배울 것이다. 다년간의 유닉스와 리눅스 사용 경험에 기반을 두고 세 권에 담긴 교육 자료는 독자들이 리눅스 사용자로서, 동시에 리눅스 시스템 관리자로서 매일 수행할 실용적인 작업을 소개한다. 그러나 나도 모든 것을 알지는 못한다. 어떤 시스템 관리자라도 그렇다. 게다가 어떤 두 관리자라도 정확히 같은 것을 알지는 못한다. 우리는 서로 다른 지식과 기술을 갖고 시작했으며 목표와 경험도 다르다. 각자가 사용하는 시스템은 하드웨어, 네트워크, 배포판을 비롯해 많은 차이점을 갖고 있기 때문에 서로 다른 방식으로 문제를 일으킬 수밖에 없다. 또한 멘토와 사용자들이 문제를 해결하고자 사용하는 도구와 접근 방법도 각기 다르다. 서로 다른 리눅스 배포판을 사용해 다르게 생각하며 리눅스가 실행되는 하드웨어에 대해 알고 있는 점도 다르다. 이렇듯 우리의 과거는 우리가 어떤 시스템 관리자인지를 만들고 결정한다. 따라서 이 과정에서 독자들이 알아야 할 중요한 것을 보여주고, 호기심과 창의성을 이용해서 마주하지 못한 문제들에 대해 상상도 못할 답을 찾는 기술을 제공할 것이다. ◈ 옮긴이의 말 ◈ 코로나19가 본격화되기 직전에 시작해 포스트 코로나로 접어들 때 작업을 마무리하게 됐다. 처음에는 코로나19가 이렇게 오래 지속될 줄은 몰랐다. 6개월이면 정리되겠지, 1년이면 정리되겠지 하다가 어느덧 시간이 이렇게나 흘렀다. 영원히 마스크를 벗지 못하게 될까 봐 걱정할 지경이었는데, 그나마 이제 실외에서라도 마스크를 벗을 수 있게 됐으니 다행이다. 그동안 재택근무가 많이 확산됐고 클라우드 서비스도 보편화됐다. 비대면 업무와 수업용으로 유명해진 화상회의 솔루션도 클라우드 서비스의 일종이다. 클라우드 서비스는 대부분 리눅스를 이용해 구동된다. 다른 OS를 이용할 수도 있지만 현실적으로 리눅스의 비중이 압도적이다. 클라우드 서비스를 개발하고 운영하는 현대의 소프트웨어 엔지니어에게 리눅스에 대한 지식의 중요성이 더 커졌다고 할 수 있다. 꼭 클라우드가 아니더라도 서버를 운영한다면 리눅스를 사용할 가능성이 매우 높다. 검색엔진이자 NoSQL 데이터베이스인 엘라스틱서치(Elasticsearch)도 리눅스와 함께 윈도우를 지원하지만 실제로 업무에 사용하는 경우를 보면 대부분 리눅스에 설치해서 사용한다. 이 책은 버추얼박스라는 무료 VM(Virtual Machine)을 이용해 리눅스 시스템 사용과 관리를 실습할 수 있게 해준다. 1권에서 운영체제와 리눅스가 무엇인지 살펴본 뒤 기본적인 셸과 커냄드라인 도구들로 시작해 2권에서 디스크, 파일, 프로세스, 프린터, 네트워킹, 사용자와 보안 관리 등 보다 전문적인 영역까지 다룬다. 3권은 DHCP, DNS, SSH, 방화벽, 이메일, 웹 서버, NFS, SAMBA 등 많이 쓰이는 네트워크 서비스를 자세히 살펴본다. VM을 이용하므로 실제 서버가 없더라도 본인의 PC에 손쉽게 설치해서 익힐 수 있다. 조금 위험한 실습을 하더라도 최악의 경우 VM만 다시 만들면 될 뿐 PC에 손상을 일으키지 않으므로 안심하고 실습할 수 있다. 가상 네트워크를 이용한 실습은 PC 한 대로 서버 2개 사이의 네트워크 서비스 설정을 실습할 수 있는 좋은 기회가 될 것이다. VM을 이용해서 실습이 진행되기 때문에 VM 설정 자체에 대한 설명도 나오는데, VM은 업무에 많이 쓰이므로 사용법을 익히는 것은 하나의 덤이라고 생각하자. - 김기주 이번에 출간하는 이 시리즈는 리눅스의 철학을 포함해 리눅스의 기본적인 사용법부터 리눅스를 더욱 효율적으로 사용할 수 있게 해주는 심화 주제, 최근의 업무 환경에서 중요하고 빠르게 진화하고 있는 네트워킹 서비스에 이르기까지 다루고 있다. 특히 2권에서는 1권에서 학습한 기본적인 리눅스 사용법을 기반으로 논리적 볼륨 관리, 파일 관리, 프로세스와 인쇄, 네트워킹, 보안, 사용자 관리, 백업 등을 다루고 있기 때문에 리눅스를 기본 운영체제로 사용하는 독자 중 더욱 효율적인 업무 환경을 만들고 싶다거나 리눅스로 운영되는 시스템의 관리자라면 반드시 필요한 내용을 포함하고 있다. 또한 정규 표현식, 커맨드라인 프로그래밍, 배시 스크립트를 통한 자동화 부분은 다양한 환경에서 활용할 수 있는 기본적인 지식을 포함하고 있다는 점에서 읽어볼 가치가 매우 높다. 이 외에도 다양한 기능을 지원하는 유틸리티와 로그를 활용하는 방법, 백업에 대한 부분은 리눅스 시스템을 운영하는 시스템 관리자에게 매우 유용할 것이다. - 나가진 이 시리즈는 리눅스에 대한 전반적인 이해도를 높이기 위한 모든 지식을 3권에 모두 담았다. 특히 3권에서는 요즘 가장 중요한 네트워킹 서비스를 중점적으로 다루는데, 1권과 2권에서 이미 실습한 내용을 바탕으로 네트워크 서비스를 추가하는 방식으로 진행한다. 리눅스가 탄생한 지 오랜 시간이 지났지만 이 책을 읽는 독자도 모두 느끼고 있듯이, 시간이 지날수록 쇠퇴하기보다는 더더욱 중요한 운영체제가 되고 있다. 1권과 2권에서 전반적으로 리눅스가 무엇인지, 운영체제가 무엇인지 등 기본적인 사항을 배우고, 거기서 발전해 디스크, 파일, 프로세스 등과 함께 3권에서 네트워크 서비스를 익히고 나면 리눅스 관리자가 되기 위한 커다란 한걸음을 내딛었다고 보기에 부족함이 없다. 1권부터 3권까지 모두 VirtualBox라는 무료 VM을 이용해 실습하므로 다른 대단한 시스템을 따로 준비하지 않더라도 무리 없이 실습을 진행할 수 있으니 가상 네트워크를 이용한 여러 테스트와 설정을 연습해볼 수 있는 좋은 기회가 될 것이다. 3권에서는 현대사회에서 가장 중요하게 여기는 네트워크 서비스를 전문적으로 설명한다. DHCP, DNS, SSH, 방화벽, 스팸, 악성코드 방지, 이메일, 웹 서버 등 리눅스 관리자라면 기본적으로 알아야 할 네트워크 서비스를 자세히 실험과 함께 설명했다. 또한 이 책의 작가도 리눅스 관리자로 오랫동안 경력을 쌓은 만큼 이 책에 있는 실제 필드에서의 경험에 대한 이야기도 많은 도움이 될 것을 의심치 않는다. - 송지연 |