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