本書以CentOS7為藍本,分3篇介紹了Linux操作系統(tǒng)的使用和配置。操作基礎篇介紹了Linux的基礎知識、Linux系統(tǒng)的安裝、Shell和字符操作界面的使用;系統(tǒng)與安全篇依次介紹了賬戶管理、權限管理、進程管理、存儲管理、網絡配置、網絡工具、RPM包管理、基礎架構服務、系統(tǒng)日常維護、服務器安全和防火墻、Shell腳本編程;網絡服務篇依次介紹了DHCP和DNS服務、FTP、NFS和Samba服務、基于Apache的WWW服務、LAMP動態(tài)網站環(huán)境部署以及Tomcat服務、基于Postfix和Dovecot實現(xiàn)的郵件服務等。
隨著企業(yè)信息化建設的深入,許多大型公司都在使用 Red Hat Enterprise Linux(簡稱RHEL)或CentOS構建開源應用平臺。作為教材,本書選擇使用與RHEL完全兼容的社區(qū)企業(yè)發(fā)行版本CentOS。如今CentOS發(fā)行版已成為許多公司的首選,如新浪、開心網等。
本書內容本書以CentOS 7為藍本,分3部分講述Linux操作系統(tǒng)的使用和配置。
第 1 篇 操作基礎篇。首先介紹了Linux的基礎知識,然后分別介紹了CentOS系統(tǒng)的安裝、Shell和命令基礎、常用操作命令等。
第 2 篇 系統(tǒng)與安全篇。首先介紹了基本的系統(tǒng)管理(賬戶管理、權限管理、進程管理、網絡配置、RPM包管理等),然后介紹了服務管理以及常用的基礎架構服務(crond、rsyslogd、OpenSSH等),隨之介紹了系統(tǒng)日常維護(系統(tǒng)性能監(jiān)視工具、Systemd與系統(tǒng)啟動過程、系統(tǒng)備份與同步、系統(tǒng)故障排查等),之后介紹了服務器安全基礎知識(基本的系統(tǒng)安全、賬戶安全和訪問控制、SSL協(xié)議與OpenSSL及證書管理、基于TCP Wrappers的主機訪問控制等),接著介紹了Linux防火墻及配置(防火墻的相關概念、Linux防火墻的組成及工作原理、firewalld守護進程及其配置工具firewall-cmd、iptables服務及其配置工具lokkit、iptables命令等),最后介紹了Shell腳本編程(Shell編程的基礎知識、變量替換擴展、變量字符串操作、變量的數(shù)值計算以及變量的交互輸入、位置變量及參數(shù)傳遞、條件測試、分支結構、循環(huán)結構、函數(shù)的定義和調用等)。
第 3 篇 網絡服務篇。首先介紹了DHCP服務和DNS服務,然后介紹了Linux下的幾種文件服務(FTP服務、NFS服務、Samba服務),之后介紹了基于Apache和Tomcat軟件實現(xiàn)的Web服務以及LAMP平臺的搭建,最后介紹了以Postfix和Dovecot軟件實現(xiàn)的E?mail 服務。
本書特點本書涉及從Linux基本操作、系統(tǒng)管理到網絡服務和安全的諸多內容。為了節(jié)省篇幅并涵蓋更多應知應會內容,全書以字符操作界面為主。書中使用了大量圖表對內容進行表述和歸納,便于讀者理解及查閱。同時,提供了大量配置案例,引導學生進行實際配置操作。每章結尾均設有思考與實驗以及進一步學習的指導,以便有興趣的學生深入學習。
課程說明本書適合作為高等院校、高職高專院校的教材使用,也可以作為廣大Linux愛好者的入門與提高教材或參考工具書。
使用本書作為計算機與網絡相關專業(yè)的Linux課程教材,建議授課學時為64學時(每周4學時)或80學時(每周5學時)。作為一門實踐性很強的課程,建議實驗學時不少于總課時的一半,并強烈建議采用實驗考試為主的課程評測機制。
為配合教師和學生使用本書,筆者特意編寫了教學幻燈片,請到機械工業(yè)出版社教育服務網(http://www.cmpedu.com)查找下載,或與筆者(linuxbooks@126.com)聯(lián)系獲得。
1.本課程的操作性和實用性很強,開設本課程無須甚多的理論課作為基礎。學生只要掌握計算機的基本使用方法,熟悉Internet基本使用方法,具有初步的TCP/IP網絡知識即可。
2.如果學生在學習本課程前學習過《Windows Server配置與管理》等類似的課程,將有助于學習和理解本課程的教學內容,但不是必需。
3.本課程可以作為《操作系統(tǒng)原理》課程的先修課開設,也可作為《操作系統(tǒng)原理》課程的同步選修課開設。
4.若本課程在《操作系統(tǒng)原理》《計算機網絡技術》《網絡安全技術》等理論課程之后開設,將有利于學生對課程的理解,甚至可以縮短學時。
5.對于計算機網絡專業(yè)或計算機應用專業(yè)的學生,本課程的后繼課程可以是《腳本語言與系統(tǒng)管理》《目錄服務及其應用》《開源虛擬化技術》《大中型網絡應用與部署》《開源云計算平臺》等。
6.對于計算機軟件專業(yè)或計算機應用專業(yè)的學生,本課程的后繼課程可以是《腳本語言編程》《基于MVC框架的Web應用開發(fā)》《嵌入式Linux編程》等。
編者致謝本書由梁如軍、王宇昕和車亞軍等編著,參與本書編寫工作的還有金潔珩、叢日權、商宏圖、王建新、周濤、張偉、路遠、安寧、梁川、李曉麗、李紅、李昕、婁焱、經緯、劉佳、鄒鵬等。
由于筆者水平有限,書中難免有疏漏之處,希望廣大學生、Linux愛好者和Linux業(yè)界資深人士給予批評指正。
筆者以誠摯的心情期望使用本書的教師提出意見和建議,讓我們共同研究Linux和自由軟件教學,為促進自由軟件在我國的發(fā)展盡綿薄之力。
機工授權書
前言
第1篇 操作基礎篇
第1章 Linux簡介與安裝
1.1 Linux簡介
1.1.1 自由軟件與Linux
1.1.2 Linux系統(tǒng)的特點和組成
1.1.3 Linux的內核版本與發(fā)行版本
1.1.4 Red Hat Linux及其相關產品
1.1.5 Linux應用領域
1.2 安裝 Linux
1.2.1 準備安裝 Linux
1.2.2 最小化安裝 CentOS 7.1
1.3 初入 Linux
1.3.1 虛擬控制臺和本地登錄
1.3.2 遠程登錄Linux系統(tǒng)
1.3.3 獲得命令幫助
1.3.4 獲取系統(tǒng)基本信息
1.3.5 安裝后的基本配置
1.4 思考與實驗
第2章 Linux操作基礎
2.1 Shell和命令基礎
2.1.1 Shell簡介
2.1.2 命令格式和通配符
2.1.3 文件及Linux目錄結構
2.2 Linux常用操作命令
2.2.1 文件目錄操作命令
2.2.2 文本文件操作命令
2.2.3 打包和壓縮命令
2.2.4 信息顯示命令
2.2.5 文本編輯器 Vi
2.3 使用Shell
2.3.1 Shell變量和Shell環(huán)境
2.3.2 幾種提高工作效率的方法
2.3.3 進一步使用Shell
2.4 思考與實驗
第2篇 系統(tǒng)與安全篇
第3章 多用戶多任務管理
3.1 賬戶管理
3.1.1 賬戶管理概述
3.1.2 使用命令行工具管理賬戶
3.1.3 口令管理和口令時效
3.1.4 用戶和組狀態(tài)
3.2 權限管理
3.2.1 操作權限概述
3.2.2 更改操作權限
3.2.3 更改屬主和同組人
3.2.4 設置文件和目錄的生成掩碼
3.2.5 特殊權限設置
3.2.6 使用ACL權限
3.2.7 權限設置舉例
3.3 進程管理
3.3.1 進程概述
3.3.2 查看進程
3.3.3 殺死進程
3.3.4 作業(yè)控制
3.4 思考與實驗
第4章 本地存儲管理
4.1 存儲管理與磁盤分區(qū)
4.1.1 存儲管理工具簡介
4.1.2 硬盤及分區(qū)
4.2 邏輯卷管理
4.2.1 LVM相關概念
4.2.2 管理LVM
4.3 文件系統(tǒng)管理
4.3.1 創(chuàng)建和掛裝文件系統(tǒng)
4.3.2 磁盤限額
4.4 思考與實驗
第5章 網絡配置與包管理
5.1 Linux網絡配置
5.1.1 Linux網絡基礎
5.1.2 使用ip命令顯示和配置網絡
參數(shù)
5.1.3 手工修改網絡配置
5.1.4 使用nmcli管理網絡
5.2 Linux網絡工具
5.2.1 網絡測試工具
5.2.2 Internet網絡客戶
5.2.3 OpenSSH客戶
5.3 RPM包管理
5.3.1 RPM概述
5.3.2 RPM命令的使用
5.4 YUM更新系統(tǒng)
5.4.1 YUM概述
5.4.2 使用yum命令
5.4.3 YUM配置文件
5.4.4 配置YUM倉庫
5.4.5 配置非官方YUM倉庫
5.5 思考與實驗
第6章 基礎架構服務
6.1 管理守護進程
6.1.1 守護進程與初始化系統(tǒng)
6.1.2 使用systemctl管理服務
6.2 計劃任務服務(crond)
6.2.1 計劃任務簡介
6.2.2 安排計劃任務
6.3 系統(tǒng)日志服務(rsyslogd)
6.3.1 日志系統(tǒng)
6.3.2 查看日志文件
6.3.3 日志工具
6.4 OpenSSH服務
6.4.1 SSH與OpenSSH
6.4.2 配置OpenSSH服務
6.4.3 OpenSSH的主機密鑰管理
6.4.4 OpenSSH的用戶密鑰管理
6.5 思考與實驗
第7章 系統(tǒng)日常維護
7.1 監(jiān)視系統(tǒng)性能
7.1.1 系統(tǒng)監(jiān)視概述
7.1.2 top命令
7.1.3 mpstat命令
7.1.4 vmstat命令
7.1.5 iostat命令
7.1.6 性能分析標準的經驗準則
7.2 內核管理
7.2.1 Linux內核簡介
7.2.2 修改內核參數(shù)(/proc與sysctl)
7.3 Systemd與系統(tǒng)啟動過程
7.3.1 Systemd特性及組件
7.3.2 Systemd的單元
7.3.3 Systemd的目標
7.3.4 系統(tǒng)啟動過程
7.3.5 Systemd的相關工具
7.4 備份與同步
7.4.1 備份
7.4.2 實時同步
7.5 故障排查
7.5.1 故障排查概述
7.5.2 GRUB系統(tǒng)引導器
7.5.3 系統(tǒng)修復
7.6 思考與實驗
第8章 服務器安全基礎
8.1 系統(tǒng)安全基礎
8.1.1 基本的系統(tǒng)安全
8.1.2 禁止root賬號登錄
8.2 賬戶安全和訪問控制
8.2.1 可插拔認證模塊(PAM)
8.2.2 基于PAM的口令安全
8.2.3 基于PAM的訪問控制
8.3 OpenSSL
8.3.1 SSL/TLS概述
8.3.2 OpenSSL概述
8.3.3 密鑰和證書管理
8.4 TCP Wrappers概述
8.4.1 TCP Wrappers簡介
8.4.2 TCP Wrappers配置
8.4.3 TCP Wrappers配置舉例
8.5 思考與實驗
第9章 防火墻
9.1 防火墻概述
9.1.1 防火墻的概念
9.1.2 包過濾防火墻
9.1.3 網絡地址轉換
9.2 Linux防火墻
9.2.1 Linux防火墻簡介
9.2.2 連接跟蹤和狀態(tài)防火墻
9.2.3 CentOS下的防火墻
9.3 firewalld守護進程與firewall-cmd
9.3.1 firewalld守護進程
9.3.2 firewall-cmd命令
9.4 iptables服務與lokkit
9.4.1 iptables服務
9.4.2 使用lokkit配置防火墻
9.5 使用iptables命令配置防火墻
9.5.1 iptables命令語法
9.5.2 編寫Shell腳本配置防火墻
9.6 思考與實驗
第10章 Shell腳本編程
10.1 Shell編程基礎
10.1.1 Shell腳本簡介
10.1.2 Shell變量操作
10.1.3 Shell的特殊變量和簡單腳本
舉例
10.1.4 Shell腳本跟蹤與調試
10.2 條件測試和分支結構
10.2.1 條件測試
10.2.2 if 語句
10.2.3 case 語句
10.3 循環(huán)結構
10.3.1 while 和 until語句
10.3.2 for語句
10.3.3 select語句
10.4 函數(shù)
10.4.1 函數(shù)的概念
10.4.2 函數(shù)使用舉例
10.5 思考與實驗
第3篇 網絡服務篇
第11章 DHCP服務和DNS服務
11.1 DHCP服務
11.1.1 DHCP簡介
11.1.2 CentOS 7的DHCP服務
11.1.3 DHCP服務的配置
11.1.4 大型網絡的DHCP部署
11.2 DNS與BIND
11.2.1 DNS系統(tǒng)與域名空間
11.2.2 DNS服務器類型與域管理
11.2.3 DNS 查詢模式與解析過程
11.2.4 CentOS 下的BIND
11.3 使用BIND配置DNS服務
11.3.1 域名服務器的配置語法
11.3.2 配置域名服務器
11.4 思考與實驗
第12章 FTP服務和NFS服務
12.1 FTP服務
12.1.1 FTP的相關概念
12.1.2 CentOS下的vsftpd服務
12.1.3 配置vsftpd服務器
12.2 NFS服務
12.2.1 NFS的相關概念
12.2.2 CentOS下的NFS
12.2.3 配置NFS服務
12.2.4 NFS客戶端
12.3 思考與實驗
第13章 Samba服務
13.1 SMB/CIFS協(xié)議和Samba
簡介
13.1.1 SMB/CIFS協(xié)議
13.1.2 Samba及其功能
13.2 CentOS 7中的Samba
13.2.1 安裝和管理Samba服務
13.2.2 服務器角色與Samba賬戶
數(shù)據庫
13.2.3 測試CentOS 7中的默認配置
13.3 Samba的主配置文件
13.3.1 Samba配置基礎
13.3.2 全局參數(shù)的設置
13.3.3 設置共享資源參數(shù)
13.4 Samba共享配置舉例
13.4.1 Samba共享的基本配置
13.4.2 為用戶和組配置共享
13.4.3 Samba的其他配置
13.5 在Linux環(huán)境下訪問Samba
共享
13.5.1 使用smbclient
13.5.2 掛裝Samba共享
13.6 思考與實驗
第14章 Apache基礎
14.1 WWW與HTTP協(xié)議
14.1.1 WWW和Web服務
14.1.2 HTTP協(xié)議
14.2 初入Apache
14.2.1 Apache簡介
14.2.2 CentOS下的Apache
14.2.3 Apache的配置文件
14.2.4 Apache 的模塊
14.3 Apache配置基礎
14.3.1 Apache 的基本配置指令
14.3.2 Apache 的配置容器和指令
作用域
14.4 Apache的基本配置
14.4.1 主機訪問控制和別名機制
14.4.2 認證授權
14.5 Apache的虛擬主機
14.5.1 虛擬主機簡介
14.5.2 配置虛擬主機舉例
14.6 Apache與SSL/TLS
14.6.1 基于SSL/TLS的Apache
14.6.2 配置基于SSL/TLS的Apache
14.7 思考與實驗
第15章 Apache進階
15.1 Web編程語言與數(shù)據庫
15.1.1 Web編程語言簡介
15.1.2 關系數(shù)據庫系統(tǒng)
15.1.3 鍵值緩存系統(tǒng)
15.2 Apache與CGI
15.2.1 CGI技術
15.2.2 Apache的CGI配置
15.2.3 訪問日志分析統(tǒng)計
15.3 LAMP配置及應用
15.3.1 Apache與LAMP環(huán)境
15.3.2 安裝配置LAMP環(huán)境
15.3.3 LAMP的應用舉例
15.4 JDK與Tomcat
15.4.1 Linux下的Java運行環(huán)境
15.4.2 Tomcat服務
15.5 Apache與Tomcat
15.5.1 Apache與反向代理
15.5.2 Apache與負載均衡
15.6 思考與實驗
第16章 E?mail服務
16.1 郵件系統(tǒng)與郵件協(xié)議
16.1.1 電子郵件系統(tǒng)
16.1.2 電子郵件協(xié)議
16.2 Postfix及其工作原理
16.2.1 Postfix簡介
16.2.2 Postfix的體系結構
16.2.3 Postfix郵件傳輸流程
16.2.4 MTA與DNS、LDA與用戶
郵箱
16.3 Postfix配置基礎
16.3.1 CentOS 7下的Postfix
16.3.2 Postfix的默認配置及測試
16.3.3 Postfix 的基本配置
16.3.4 Postfix的映射表及其應用
16.4 安裝和配置Dovecot
16.4.1 Dovecot簡介
16.4.2 CentOS 7 下的Dovecot
16.4.3 Dovecot 的基本配置
16.5 SASL與TLS
16.5.1 配置SMTP認證
16.5.2 基于TLS/SSL的郵件服務
16.6 思考與實驗
參考文獻