1장 오픈소스 소프트웨어란
1.1 오픈소스 소프트웨어는 무엇인가
1.1.1. 오픈소스 소프트웨어의 정의
1.1.2. 오픈소스 소프트웨어의 역사
1.2 많이 활용되는 오픈소스 소프트웨어
1.2.1. 운영체제
1.2.2. 웹 서버
1.2.3. 데이터베이스 시스템
1.2.4. 기타 오픈소스 소프트웨어
1.3 오픈소스 소프트웨어 개발
1.3.1. 오픈소스 소프트웨어 프로젝트 개발방식
1.3.2. 오픈소스 소프트웨어 커뮤니티
1.3.3. 오픈소스 소프트웨어 저장소
1.4 오픈소스 소프트웨어의 현재와 미래
1.4.1. 오픈소스 소프트웨어의 현재
1.4.2. 오픈소스 소프트웨어의 미래
1.4.3. 오픈소스와 리눅스에 관심을 가져야하는 이유
연습문제
2장 오픈소스 라이선스란
2.1 소프트웨어의 배포 모델
2.1.1. 독점 소프트웨어와 오픈소스 소프트웨어의 특징
2.1.2. 오픈소스 소프트웨어의 장단점
2.2 오픈소스 라이선스에 대한 이해
2.2.1. 오픈소스 라이선스의 정의
2.2.2. 오픈소스 소프트웨어 라이선스의 중요성
2.2.3. 카피레프트(Copyleft) 조항에 따른 오픈소스 라이선스 분류
2.2.4. 주요 오픈소스 라이선스
2.2.5. 라이선스의 준수 사항
2.2.6. 오픈소스 소프트웨어 활용과 라이선스 정책
2.3 기업과 오픈소스 라이선스
2.3.1. 기업과 라이선스
2.3.2. 라이선스 분쟁 사례
연습문제
3장 Ubuntu 설치하기
3.1 VirtualBox 설치
3.2 우분투 가상머신 생성
3.2.1. 우분투 운영체제 다운로드
3.2.2. 가상머신 생성
3.2.3. 가상머신에 우분투 설치
3.3 우분투 SSH 연결
3.3.1. 가상머신 네트워크 생성
3.3.2. 네트워크 인터페이스 추가
3.3.3. SSH 설정
3.3.4. PuTTY로 SSH 설정
연습문제
4장 리눅스 시스템 구조와 기초 명령
4.1 리눅스 파일 관리
4.1.1. 리눅스 파일의 구성요소
4.1.2. 리눅스 파일의 종류
4.1.3. 디렉터리 계층 구조와 경로
4.1.4. 기초 명령어
4.1.5. 디렉터리 관리 명령어
4.1.6. 파일 관리 명령어
4.2 리눅스의 구조
4.3 리눅스 쉘 명령어
4.3.1. 쉘 기본 명령어
4.3.2. 쉘 특수 문자
4.3.3. 환경 변수
4.3.4. 에일리어스(alias)
4.3.5. 히스토리(history)
4.3.6. 배시 쉘 환경 설정 파일
연습문제
5장 리눅스 파일 및 패키지 관리
5.1 리눅스 액세스 관리
5.1.1. 리눅스 파일의 속성
5.1.2. 리눅스 파일의 접근 권한
5.1.3. 리눅스 파일의 일반 접근 권한 변경
5.1.4. 리눅스 파일의 기본 접근 권한 변경
5.1.5. 리눅스 파일의 특수 접근 권한
5.2 패키지 관리하기
5.2.1. 리눅스 패키지 구성
5.2.2. 리눅스 패키지 설치
5.3 파일 아카이브 및 압축
연습문제
6장 리눅스 텍스트 에디터 활용
6.1 리눅스 텍스트 편집기 종류
6.1.1. gedit
6.1.2. vi
6.1.3. 모드형 편집기와 비모드형 편집기
6.2 vi 동작 모드
6.3 입력 모드 및 커서 이동
6.3.1. 입력 모드
6.3.2. 커서 이동
6.3.3. 화면 이동
6.4 내용 수정 및 삭제
6.4.1. 내용 수정
6.4.2. 내용 삭제
6.5 기타 기능
6.5.1. 명령 취소
6.5.2. 복사, 자르기, 붙여넣기
6.5.3. 내용 검색
6.5.4. 내용 바꾸기
6.6 vi 환경설정
6.6.1. vi 내에서 명령으로 설정
6.6.2. .exrc 파일에 설정
연습문제
7장 리눅스 운영을 위한 프로세스 및 사용자 관리
7.1 프로세스
7.1.1. 프로세스의 개념
7.1.2. 프로세스 종류
7.2 프로세스 관리 명령
7.2.1. ps 명령어
7.2.2. pgrep 명령어
7.2.3. kill 명령어
7.3 프로세스 작업 제어
7.3.1. 포그라운드 및 백그라운드 작업
7.3.2. 작업 제어
7.3.3. 시스템 모니터링
7.4 시스템 사용자 관리
7.4.1. 런레벨
7.4.2. 사용자 계정 관련 파일
7.4.3. 사용자 관리 명령어
7.4.4. 그룹 관리 명령어
7.4.5. 사용자 식별 명령어
연습문제
8장 리눅스 파일 시스템
8.1 파일 시스템
8.1.1. 파일 시스템 개념
8.1.2. 파일 시스템 유형
8.1.3. 운영체제별 파일 시스템
8.2 리눅스 파일 시스템
8.2.1. 리눅스 파일 시스템 종류
8.2.2. 리눅스 파일 시스템 생성
8.2.3. 리눅스 파일 시스템 명령어
8.2.4. 리눅스 파일 시스템 마운트
8.3 LVM 설정과 관리
8.3.1. LVM의 정의
8.3.2. LVM 생성
8.3.3. LVM 확장
8.3.4. LVM 제거
8.3.5. LVM 관리 명령어
연습문제
9장 리눅스 네트워크와 보안
9.1 네트워크 기본 개념
9.1.1. 네트워크 기초
9.1.2. 네트워크 주소
9.1.3. 네트워크 주변장치
9.2 네트워크 관리
9.2.1. 네트워크 관리 기본
9.2.2. 네트워크 설정
9.2.3. 네트워크 모니터링
9.2.4. GUI 환경에서 네트워크 설정
9.3 Linux 보안 관리
9.3.1. 정보 보안 기초
9.3.2. SELinux
9.3.3. SELinux 설치 및 설정
9.4 리눅스 방화벽 관리
9.4.1. 방화벽 정의
9.4.2. 방화벽 사용 규칙
9.4.3. GUI 환경에서의 방화벽
연습문제
10장 Git/GitHub를 활용한 소스코드 관리 및 개발 협업
10.1 소스코드 형상관리 시스템
10.1.1. 소스코드 형상관리란
10.1.2. 소스코드 형상관리 시스템 종류
10.2 GitHub 둘러보기
10.3 Git 이해하기
10.3.1. DVCS
10.3.2. Git 개념
10.3.3. Git 용어
10.4 Git 설치 및 설정
10.5 Git 기초
10.5.1. Git 저장소 생성 방법
10.5.2. 기존 디렉터리를 Git 저장소로 생성
10.5.3. 원격 저장소 Clone 방식으로 Git 저장소 생성
10.5.4. 레포지토리에 변경점 반영
10.5.5. 파일 무시
10.5.6. 파일 삭제 및 이름 변경
10.5.7. Staged와 Unstaged 상태의 변경 내용 확인
10.5.8. 스테이징 영역 생략
10.5.9. 커밋 히스토리 조회하기
10.5.10. 되돌리기
10.5.11. 파일 상태를 Unstaged로 변경
10.6 Git 브랜치
10.6.1. 브랜치란
10.6.2. 브랜치 생성
10.6.3. 브랜치와 Merge
10.6.4. 리모트 브랜치
10.7 Forking Workflow
10.7.1. 저장소 Fork
10.7.2. Pull Request