리눅스 커맨드라인 완벽 입문서
저자: 윌리엄 E. 샤츠 주니어
역자: 이종우, 장영신
출판사: 비제이퍼블릭
출간예정일: 2013년 1월 14일 (월)
정가: 32,000원
페이지: 540
판형: 190 x 245
ISBN: 978-89-94774-29-9
원서정보: The Linux Command Line: a complete introduction
책 소개
마우스를 몰아내자!
여러분은 지금까지 마우스로 미려한 리눅스 컴퓨터를 사용해왔다. 이제는 커맨드라인의 강력함을 체험하기 위해 뛰어들 차례다.
리눅스 커맨드라인은 가장 인기 있는 쉘인 Bash에서 완전한 프로그램을 작성하기 위해 터미널에서의 첫 번째 키 입력을 이끈다. 그러는 중에, 수염이 희고 마우스를 쓰지 않는 구루세대부터 이어온 변치 않는 기술을 배우게 될 것이다. 파일 탐색, 환경 설정, 연쇄 명령어, 정규 표현식, 패턴 매칭 등이다.
게다가 실전적 지식까지, 저자인 윌리엄 E. 샤츠 주니어(William E. Shotts, Jr.)는 이 도구들의 철학적 배경과 옛 유닉스 슈퍼컴퓨터로부터 전해온 데스크톱 리눅스 시스템의 부유한 유산들도 함께 이 책에 드러냈다.
이 책에서 배우게 될 내용들은 다음과 같다.
● 파일, 디렉토리, 심볼릭 링크들을 생성 및 삭제
● 네트워킹, 패키지 설치, 프로세스 관리 등을 포함한 시스템 운영
● 표준 입출력, 리다이렉션, 파이프라인의 사용
● 세상에서 가장 인기있는 텍스트 편집기, vi로 파일 편집
● 일상적인 작업 자동화를 위한 쉘 스크립트 작성
● cut, paste, grep, patch, sed로 파일 자르고 붙이기
초기에 “쉘 쇼크”를 극복하고 나면, 컴퓨터와 의사소통하기에는 커맨드라인이 더 자연스럽고 표현하기 쉽다는 것을 발견하게 될 것이다. 여러분의 마우스에 먼지가 끼기 시작해도 놀라지 마라.
많은 사람들이 리눅스를 언급할 때 “자유”를 말한다.
하지만 실제 많은 사람들이 자유의 진정한 의미에 대해서 제대로 알고 있지 못한다고 생각한다. 여기서 말하는 진정한 자유란 자신의 컴퓨터가 무엇을 할지에 대해 결정할 수 있는 힘이라고 생각한다. 또한, 이러한 자유를 지켜내기 위해서는 자신의 컴퓨터가 무엇을 할 수 있는지를 알아야 한다는 것이다. 즉 자유란 비밀이 전혀 없는 컴퓨터 그 자체다. 사용자가 관심을 갖고 알아내고자 한다면, 무엇이든 답을 찾을 수 있는 것이 바로 자유다.
독자대상
이 책은 다른 플랫폼에서 옮겨 온 초보 리눅스 사용자들을 위한 것이다. 아마 독자들은 MS 윈도우 환경에서는 “파워유저”일 것이다. 아마도 직장상사가 리눅스 서버를 관리하라고 했을지도 모른다. 또는 단지 여러 보안 문제에 지쳐 리눅스를 사용해 보고픈 데스크톱 사용자일 것이다. 좋다. 여러분 모두를 환영한다.
저자소개
윌리엄 E. 샤츠 주니어
윌리엄 E. 샤츠 주니어는 소프트웨어 전문가이며, 15년이 넘은 열혈 리눅스 사용자다. 소프트웨어 개발 분야에 있어 기술 지원, 품질 보증, 문서화 등을 포함한 광범위한 지식을 가지고 있다. 또한 리눅스 교육과 새 소식, 리뷰, 리눅스 커맨드라인 사용의 확장을 주창하는 사이트(LinuxCommand.org)의 창시자다.
역자소개
이종우
상명대 소프트웨어 학부를 나와, 한글과컴퓨터에서 리눅스 데스크톱과 아시아눅스용 응용프로그램을 개발하였으며, 이후 SK컴즈에서 맥과 리눅스용 응용프로그램을 개발하였다. 현재 주된 관심분야는 맥과 아이폰용 앱 개발이다.
정영신
동덕여자대학교 컴퓨터학과에서 학사를 마친후 한글과컴퓨터 리눅스 개발실에서 한컴 리눅스와 아시아눅스 로컬라이제이션 업무를 담당했다. 현재는 프리랜서로 전향하여 IT 관련 번역 및 마켓 리서치를 전문으로 하고 있다.
목차
PART 1 쉘 학습
1 쉘이란 무엇인가?
터미널 에뮬레이터
첫 번째 키 입력
간단한 명령어 실행하기
터미널 세션 종료
2 파일시스템 탐색
파일시스템 트리 구조의 이해
현재 작업 디렉토리
디렉토리 목록 표시
현재 작업 디렉토리 변경
3 시스템 살펴보기
재미있는 ls 명령어
file 명령어로 파일 타입 확인
less 명령어로 파일 정보 보기
함께 탐험해보자!
심볼릭 링크
4 파일과 디렉토리 조작
와일드카드
mkdir - 디렉토리 생성
cp - 파일 및 디렉토리 복사
mv - 파일 이동과 이름 변경
rm - 파일 및 디렉토리 삭제
ln – 링크 생성
놀이터를 만들어보자
마무리 노트
5 명령어와 친해지기
명령어란 구체적으로 무엇인가?
명령어 확인
명령어 도움말 보기
별칭으로 나만의 명령어 만들기
옛 친구와의 재회
6 리다이렉션
표준 입출력과 표준 오류
파이프라인
마무리 노트
7 확장과 인용
따옴표 활용(Quoting)
마무리 노트
8 고급 키보드 기법
커맨드라인 편집
자동 완성
히스토리 활용
마무리 노트
9 퍼미션
소유자, 그룹 멤버, 기타 사용자
읽기, 쓰기, 실행
사용자 ID 변경
사용자 특권의 사용
사용자 비밀번호 변경
10 프로세스
프로세스는 어떻게 동작하는가
프로세스 제어
시그널
기타 프로세스 관련 명령어들
PART 2 환경과 설정
11 환경
환경에는 어떤 것들이 저장될까?
환경은 어떻게 설정할까?
환경 편집
마무리 노트
12 VI 맛보기
vi를 왜 배워야 할까?
VI의 역사
vi 시작과 종료
편집 모드
커서 이동
기본 편집
검색 및 치환
다중 파일 편집
저장하기
13 프롬프트 커스터마이징
프롬프트 해부하기
다른 형태의 프롬프트 사용해보기
색상 추가
커서 이동
프롬프트 저장
마무리 노트
PART 3 기본 작업과 필수 도구
14 패키지 관리
패키지 시스템
패키지 시스템 동작 원리
일반적인 패키지 관리 작업
마무리 노트
15 저장 장치
저장 장치 마운트하기와 해제하기
새로운 파일시스템 만들기
파일시스템 검증 및 복구
플로피 디스크 포맷하기
장치에 데이터 직접 송수신하기
CD-ROM 이미지 만들기
CD-ROM 이미지 쓰기
추가 학습
16 네트워킹
네트워크 점검 및 모니터링
네트워크로 파일 전송하기
원격 호스트와 안전하게 통신하기
17 파일 검색
locate – 손쉽게 파일 찾기
find - 다양한 방법으로 파일 찾기
18 파일 보관 및 백업
파일 압축하기
파일 보관하기(아카이빙)
파일 및 디렉토리 동기화
19 정규 표현식
정규 표현식이란?
grep - 텍스트를 통한 검색
메타문자와 리터럴
모든 문자
앵커(Anchors)
괄호 표현식과 문자 클래스
POSIX 기본 vs. 확장 정규 표현식
얼터네이션(Alternation)
정규 표현식 활용
마무리 노트
20 텍스트 편집
텍스트의 응용
옛 친구들과의 재회
텍스트 자르고 붙이기
텍스트 비교
신속한 편집
마무리 노트
추가 학습
21 출력 포맷 지정
간단한 포맷 툴
문서 포맷 시스템
roff 계열과 TEX
groff - 문서 포맷 시스템
마무리 노트
22 인쇄
간략한 인쇄의 역사
리눅스의 인쇄
인쇄용 파일 준비
인쇄 작업을 프린터로 보내기
인쇄 작업 모니터링과 제어
23 프로그램 컴파일
컴파일링이란?
C 프로그램 컴파일하기
마무리 노트
PART 4 쉘 스크립트 작성
24 첫 번째 쉘 스크립트
쉘 스크립트란?
쉘 스크립트 작성 방법
기타 포맷 방법
마무리 노트
25 프로젝트 시작하기
1단계: 간단한 HTML 문서 만들기
2단계: 데이터 입력해보기
변수와 상수
Here 문서(Here Documents)
마무리 노트
26 하향식 설계
쉘 함수
지역 변수
스크립트 실행 상태 유지
마무리 노트
27 흐름 제어: if 분기
if의 사용
종료 상태
test의 사용
현대식 테스트
(( )) - 정수 테스트
표현식 조합
제어 연산자: 분기의 또 다른 방법
마무리 노트
28 키보드 입력 읽기
read - 표준 입력에서 값 읽어오기
입력 값 검증
메뉴
마무리 노트
추가 학습
29 흐름 제어: While 루프와 Until 루프
루프 돌기(반복)
while
루프 탈출
until
루프를 이용한 파일 읽기
마무리 노트
30 문제 해결
구문 오류
논리 오류
테스팅
디버깅
마무리 노트
31 흐름 제어: case 분기
case
마무리 노트
32 위치 매개변수
커맨드라인 항목 접근
위치 매개변수 전체 제어
완전한 응용 프로그램
마무리 노트
33 흐름 제어: for 루프
for: 전통적인 쉘 형식
for: C 언어 형식
마무리 노트
34 문자열과 수
매개변수 확장
산술 연산과 확장
bc - 정밀 계산기 언어
마무리 노트
추가 확인 사항
35 배열
배열이란?
배열 생성
배열에 값 할당
배열 원소 접근
배열 연산
마무리 노트
36 그 외 유용한 툴들
그룹 명령과 서브쉘
트랩(Traps)
비동기 실행
네임드 파이프(Named Pipes)
마무리 노트
이 책의 구성
이 책은 엄선된 목차에 따라 마치 가정교사가 옆에 있는 것처럼 독자들을 인도해줄 것이다. 많은 저자들이 자신의 관점에서 이해할 수 있는 “체계적인” 방식으로 내용을 구성한다. 하지만 초보자에게는 매우 혼동될 수 있다.
또 다른 목표는 독자가 윈도우즈와는 다른 유닉스 방식으로 생각하기를 바라는 것이다. 우리는 왜 그렇게 동작하는지, 어떻게 그 방법을 얻을 수 있는지를 독자에게 이해시키기 위한 짧은 여행길 위에 있다. 리눅스는 단순히 소프트웨어의 일부가 아니다. 자신의 언어와 역사를 가진 거대한 유닉스 문화의 일부분이며, 그저 한낱 외침일지도 모른다.
이 책에서는 커맨드라인을 네 부분으로 나누어서 살펴보려고 한다.
• 1부: 쉘 학습은 커맨드라인의 기본표현을 탐구하는 것으로 시작한다. 명령어 구조, 파일시스템 탐색, 커맨드라인 편집, 명령어 도움말과 문서 검색 등을 포함한다.
• 2부: 설정과 환경은 커맨드라인상에서 컴퓨터 명령을 제어하는 설정과 파일 편집에 대해서 다룬다.
• 3부: 기본 작업과 필수 도구는 커맨드라인에서 흔히 사용하는 일반적인 작업에 대해서 다룬다. 리눅스와 같은 유닉스형 운영체제는 데이터를 자유자재로 조작하기 위한 다수의 고전적인 커맨드라인 프로그램들을 지원한다.
• 4부: 쉘 스크립트 작성에서는 수많은 작업들을 자동화해주는 기술인 쉘 프로그래밍에 대해 소개한다. 가장 기본적인 부분이지만 배우기 쉽지는 않다. 쉘 프로그래밍을 배움으로써 다른 많은 프로그래밍 언어의 개념에도 익숙해질 것이다.
실전 SQL Server MVP 61: 그 두 번째 이야기 (0) | 2013.01.04 |
---|---|
이제 시작이야! 키넥트 프로그래밍 (0) | 2012.11.26 |
OpenCL 프로그래밍 가이드 (0) | 2012.11.16 |
댓글 영역