目 錄
第一篇 Ubuntu入門
第1章 了解Ubuntu 3
1.1 什么是Linux 3
1.2 Linux發(fā)行版 5
1.2.1 Debian 6
1.2.2 Ubuntu 6
1.2.3 Arch Linux 7
1.2.4 Fedora 8
1.2.5 OpenSUSE 8
1.2.6 CentOS 9
1.2.7 Red Hat Enterprise Linux 10
1.3 Ubuntu概述 10
1.3.1 什么是Ubuntu 10
1.3.2 Ubuntu的版本 11
1.3.3 Ubuntu的特點(diǎn) 12
1.3.4 如何獲得Ubuntu 13
1.4 GNU GPL和POSIX介紹 14
1.4.1 什么是GNU GPL 14
1.4.2 GNU GPL發(fā)展歷史 14
1.4.3 如何正確理解GNU GPL 15
1.4.4 了解POSIX標(biāo)準(zhǔn) 15
1.5 學(xué)習(xí)Ubuntu的方法 15
第2章 安裝Ubuntu 17
2.1 準(zhǔn)備安裝Ubuntu 17
2.1.1 獲得安裝介質(zhì) 17
2.1.2 Ubuntu的硬件要求 19
2.1.3 Ubuntu的安裝方式 20
2.2 虛擬機(jī)軟件 20
2.2.1 常見(jiàn)虛擬機(jī)軟件 20
2.2.2 選擇虛擬機(jī)軟件 21
2.2.3 安裝Oracle VM VirtualBox 21
2.3 安裝Ubuntu的方式 26
2.3.1 下載ISO鏡像文件 26
2.3.2 創(chuàng)建虛擬機(jī) 26
2.3.3 安裝Ubuntu過(guò)程 29
2.4 通過(guò)網(wǎng)絡(luò)安裝Ubuntu 35
2.4.1 下載網(wǎng)絡(luò)安裝器 35
2.4.2 通過(guò)網(wǎng)絡(luò)安裝Ubuntu步驟 35
2.5 將Ubuntu安裝到U盤中 41
2.5.1 Rufus工具 42
2.5.2 制作LiveUSB Ubuntu系統(tǒng) 42
2.6 安裝過(guò)程中的常見(jiàn)問(wèn)題 44
2.6.1 選擇32位還是64位的Ubuntu 44
2.6.2 應(yīng)該選擇哪種語(yǔ)言 45
2.6.3 Ubuntu中的磁盤分區(qū)與Windows中的磁盤分區(qū) 45
第3章 桌面環(huán)境 46
3.1 常見(jiàn)的桌面環(huán)境 46
3.1.1 KDE 46
3.1.2 GNOME 48
3.1.3 Xfce 50
3.1.4 Unity 51
3.2 使用Unity 52
3.2.1 菜單欄 52
3.2.2 啟動(dòng)器 54
3.2.3 Dash 55
3.2.4 工作區(qū) 56
3.2.5 管理窗口 58
3.2.6 文件管理器 59
3.2.7 搜索文件和文件夾 61
3.2.8 定制桌面 63
3.3 使用GNOME 65
3.3.1 桌面布局 65
3.3.2 活動(dòng)按鈕 66
3.3.3 工作區(qū) 66
3.3.4 浮動(dòng)面板 67
3.3.5 顯示應(yīng)用程序 68
3.3.6 鎖定、關(guān)閉或者重啟電腦 69
第4章 文件系統(tǒng)基礎(chǔ)知識(shí) 70
4.1 文件系統(tǒng)的層次結(jié)構(gòu) 70
4.1.1 樹形層次結(jié)構(gòu) 70
4.1.2 路徑名 72
4.1.3 Linux目錄結(jié)構(gòu) 74
4.2 文件類型 75
4.2.1 普通文件 75
4.2.2 目錄文件 78
4.2.3 字符設(shè)備文件 79
4.2.4 塊設(shè)備文件 80
4.2.5 管道 81
4.2.6 套接字 84
4.2.7 文件鏈接 84
4.3 文件權(quán)限 87
4.3.1 文件權(quán)限概述 88
4.3.2 顯示文件權(quán)限 89
4.3.3 修改文件權(quán)限 91
4.3.4 更改文件所有權(quán) 94
4.3.5 文件特殊權(quán)限 95
第5章 文件和目錄管理 98
5.1 創(chuàng)建文件 98
5.1.1 使用touch命令創(chuàng)建文件 99
5.1.2 使用重定向創(chuàng)建文件 99
5.1.3 使用vi命令創(chuàng)建文件 101
5.2 顯示文件列表 103
5.2.1 使用ls命令顯示文件列表 103
5.2.2 顯示隱藏文件 106
5.2.3 遞歸顯示目錄內(nèi)容 107
5.3 顯示文件內(nèi)容 108
5.3.1 拼接文件內(nèi)容:cat命令 108
5.3.2 分屏顯示:more命令 111
5.3.3 前后翻頁(yè)分屏顯示:less命令 113
5.3.4 查看前幾行內(nèi)容:head命令 113
5.3.5 查看最后幾行內(nèi)容:tail命令 114
5.4 文件的常用操作 116
5.4.1 復(fù)制文件 116
5.4.2 移動(dòng)文件 118
5.4.3 刪除文件 119
5.4.4 比較文件 120
5.4.5 重命名文件 122
5.5 搜索文件 122
5.5.1 快速搜索文件:locate命令 122
5.5.2 按類型搜索:whereis命令 125
5.5.3 搜索二進(jìn)制文件:which命令 125
5.5.4 全功能搜索:find命令 126
5.6 文本內(nèi)容篩選 127
5.6.1 使用grep命令檢索文本內(nèi)容 128
5.6.2 篩選其他命令的輸出結(jié)果 129
5.6.3 在grep命令中使用正則表達(dá)式 130
5.7 文本排序 132
5.7.1 使用sort命令文本排序 133
5.7.2 合并有序文件 134
5.8 文件的壓縮和解壓 135
5.8.1 壓縮文件 135
5.8.2 解壓文件 138
5.9 目錄管理 139
5.9.1 顯示當(dāng)前工作目錄 139
5.9.2 改變目錄 139
5.9.3 創(chuàng)建目錄 140
5.9.4 移動(dòng)目錄 141
5.9.5 復(fù)制目錄 141
5.9.6 刪除目錄 141
第6章 用戶和權(quán)限管理 142
6.1 用戶和用戶組基礎(chǔ) 142
6.1.1 用戶和用戶標(biāo)識(shí)號(hào) 142
6.1.2 用戶組和組標(biāo)識(shí)號(hào) 143
6.1.3 /etc/passwd文件 144
6.1.4 /etc/shadow文件 145
6.1.5 /etc/group文件 146
6.2 用戶管理 147
6.2.1 添加用戶:useradd命令 147
6.2.2 添加用戶:adduser命令 148
6.2.3 修改用戶:usermod命令 150
6.2.4 刪除用戶:userdel命令 151
6.2.5 修改用戶密碼:passwd命令 152
6.2.6 顯示用戶信息:id命令 153
6.2.7 用戶間切換:su命令 154
6.2.8 受限的特權(quán):sudo命令 154
6.3 用戶組管理 157
6.3.1 添加用戶組:groupadd命令 157
6.3.2 添加用戶組:addgroup命令 157
6.3.3 修改用戶組:groupmod命令 157
6.3.4 刪除用戶組:groupdel命令 158
6.4 權(quán)限管理 158
6.4.1 權(quán)限概述 158
6.4.2 改變文件所有者:chown命令 160
6.4.3 改變文件所屬組:chgrp命令 161
6.4.4 設(shè)置權(quán)限掩碼:umask命令 162
6.4.5 修改文件訪問(wèn)權(quán)限:chmod命令 163
6.4.6 修改文件ACL:setfacl命令 165
6.4.7 查詢文件ACL:getfacl命令 166
第二篇 進(jìn)階篇
第7章 系統(tǒng)啟動(dòng)和關(guān)閉 169
7.1 Ubuntu啟動(dòng)過(guò)程 169
7.1.1 BIOS階段 169
7.1.2 引導(dǎo)程序階段 170
7.1.3 內(nèi)核階段 173
7.1.4 進(jìn)入系統(tǒng) 174
7.2 引導(dǎo)相關(guān)組件 174
7.2.1 主引導(dǎo)記錄 174
7.2.2 GRUB啟動(dòng)程序 175
7.3 登錄 181
7.3.1 login進(jìn)程 181
7.3.2 選擇Shell 183
7.3.3 用戶初始化文件 185
7.4 關(guān)閉系統(tǒng) 187
7.4.1 shutdown命令 187
7.4.2 init命令 188
7.4.3 其他命令 188
第8章 服務(wù)和進(jìn)程管理 189
8.1 初始化程序概述 189
8.1.1 初始化程序 190
8.1.2 systemd 196
8.1.3 systemd基本配置文件 197
8.2 systemd單元 198
8.2.1 單元類型 198
8.2.2 列出單元 200
8.2.3 查看單元狀態(tài) 203
8.2.4 單元依賴 205
8.2.5 單元配置文件 207
8.3 systemd單元管理 209
8.3.1 啟動(dòng)服務(wù) 210
8.3.2 停止服務(wù) 210
8.3.3 重啟服務(wù) 210
8.3.4 重新加載服務(wù)配置文件 211
8.3.5 查看服務(wù)狀態(tài) 211
8.3.6 配置服務(wù)自動(dòng)啟動(dòng) 212
8.3.7 禁止服務(wù)自動(dòng)啟動(dòng) 213
8.3.8 重新加載單元配置文件 214
8.3.9 顯示服務(wù)屬性 214
8.3.10 設(shè)置服務(wù)屬性 216
8.4 常用systemd命令 216
8.4.1 systemd-analyze命令分析系統(tǒng)啟動(dòng)時(shí)的性能 216
8.4.2 hostnamectl命令 219
8.4.3 localectl命令 220
8.4.4 timedatectl命令 220
8.4.5 loginctl命令 221
8.5 目標(biāo) 222
8.5.1 理解目標(biāo) 222
8.5.2 切換目標(biāo) 225
8.5.3 默認(rèn)目標(biāo) 226
8.6 日志管理 226
8.6.1 讀取日志 226
8.6.2 過(guò)濾輸出 227
8.6.3 日志大小限制 229
8.6.4 手動(dòng)清理日志 230
8.7 進(jìn)程管理 231
8.7.1 查詢進(jìn)程及其狀態(tài) 231
8.7.2 監(jiān)控進(jìn)程及系統(tǒng)資源 233
8.7.3 終止進(jìn)程 238
8.7.4 調(diào)整進(jìn)程優(yōu)先級(jí) 239
第9章 軟件包管理 241
9.1 軟件包管理概述 241
9.1.1 軟件包管理基本概念 241
9.1.2 軟件包管理工具 243
9.2 apt-get命令 245
9.2.1 搜索軟件包 245
9.2.2 apt-get命令基本語(yǔ)法 247
9.2.3 安裝軟件包 248
9.2.4 重新安裝軟件包 249
9.2.5 刪除軟件包 250
9.2.6 更新和升級(jí)軟件包 251
9.3 apt命令 253
9.3.1 apt命令基本語(yǔ)法 253
9.3.2 搜索軟件包 253
9.3.3 安裝軟件包 254
9.3.4 刪除軟件包 254
9.3.5 更新和升級(jí)軟件包 255
9.4 aptitude命令 255
9.4.1 aptitude命令基本語(yǔ)法 255
9.4.2 搜索軟件包 257
9.4.3 安裝軟件包 259
9.4.4 刪除軟件包 259
9.4.5 更新和升級(jí)軟件包 260
9.4.6 圖形化界面 260
9.5 synaptic軟件管理工具 261
9.5.1 安裝軟件包 261
9.5.2 刪除軟件包 264
9.5.3 更新和升級(jí)軟件包 265
第10章 磁盤和文件系統(tǒng)管理 266
10.1 磁盤管理基礎(chǔ) 266
10.1.1 磁頭 266
10.1.2 磁道 267
10.1.3 柱面 267
10.1.4 扇區(qū) 267
10.1.5 磁盤分區(qū) 268
10.2 文件系統(tǒng)基礎(chǔ)知識(shí) 268
10.2.1 常見(jiàn)文件系統(tǒng) 269
10.2.2 塊 271
10.2.3 引導(dǎo)塊 272
10.2.4 超級(jí)塊 272
10.2.5 索引節(jié)點(diǎn) 272
10.3 創(chuàng)建文件系統(tǒng) 273
10.3.1 創(chuàng)建分區(qū) 273
10.3.2 mkfs命令 278
10.3.3 創(chuàng)建ext2/ext3/ext4文件系統(tǒng) 281
10.3.4 創(chuàng)建NTFS文件系統(tǒng) 282
10.3.5 創(chuàng)建FAT文件系統(tǒng) 282
10.3.6 調(diào)整文件系統(tǒng) 284
10.4 掛載與卸載文件系統(tǒng) 285
10.4.1 掛載點(diǎn) 285
10.4.2 mount和findmnt命令 286
10.4.3 /etc/fstab文件 289
10.4.4 手工掛載文件系統(tǒng) 290
10.4.5 自動(dòng)掛載文件系統(tǒng) 291
10.4.6 卸載文件系統(tǒng) 291
10.5 檢查與修復(fù)文件系統(tǒng) 292
10.5.1 fsck和e2fsck命令 293
10.5.2 交互式檢查與修復(fù)文件系統(tǒng) 294
10.5.3 自動(dòng)檢查與修復(fù)文件系統(tǒng) 294
10.5.4 恢復(fù)嚴(yán)重受損的超級(jí)塊 295
10.6 磁盤陣列 296
10.6.1 磁盤陣列概述 296
10.6.2 磁盤陣列級(jí)別 296
10.6.3 創(chuàng)建磁盤陣列 299
10.7 邏輯卷管理 305
10.7.1 邏輯卷管理基本概念 305
10.7.2 安裝LVM 306
10.7.3 創(chuàng)建物理卷 306
10.7.4 創(chuàng)建卷組 309
10.7.5 創(chuàng)建邏輯卷 310
10.7.6 擴(kuò)展邏輯卷 311
10.7.7 壓縮邏輯卷 312
第11章 網(wǎng)絡(luò)管理 314
11.1 網(wǎng)絡(luò)接口 314
11.1.1 查看網(wǎng)絡(luò)接口 314
11.1.2 網(wǎng)絡(luò)接口命名 319
11.1.3 配置網(wǎng)絡(luò)接口IP地址 319
11.1.4 域名解析 323
11.2 常用網(wǎng)絡(luò)配置命令 324
11.2.1 ifconfig命令 324
11.2.2 ip命令 326
11.2.3 route命令 333
11.2.4 netstat命令 335
11.2.5 nslookup命令 338
11.2.6 ping命令 339
11.3 防火墻 340
11.3.1 ufw簡(jiǎn)介 340
11.3.2 ufw配置 340
11.3.3 ufw與應(yīng)用系統(tǒng)的整合 342
11.3.4 ufw日志管理 344
第三篇 精通Linux
第12章 Shell編程 347
12.1 Shell編程基礎(chǔ) 347
12.1.1 Shell 347
12.1.2 Shell腳本 348
12.1.3 Shell腳本的執(zhí)行方法 349
12.1.4 位置參數(shù) 350
12.1.5 內(nèi)部命令 351
12.2 變量 353
12.2.1 變量分類 353
12.2.2 變量聲明 354
12.2.3 變量賦值 355
12.2.4 變量的引用和替換 355
12.2.5 變量的間接引用 356
12.2.6 特殊變量替換 357
12.2.7 單引號(hào)和雙引號(hào) 358
12.2.8 命令替換 359
12.3 算術(shù)運(yùn)算 359
12.3.1 let命令 360
12.3.2 expr命令 360
12.3.3 $(())表達(dá)式 361
12.3.4 $[]表達(dá)式 361
12.4 數(shù)組 361
12.4.1 定義數(shù)組 362
12.4.2 獲取數(shù)組長(zhǎng)度 363
12.4.3 遍歷數(shù)組 363
12.4.4 刪除元素 365
12.4.5 數(shù)組切片 365
12.4.6 數(shù)組替換 366
12.5 條件測(cè)試 366
12.5.1 條件測(cè)試語(yǔ)法 367
12.5.2 文件測(cè)試 367
12.5.3 字符串測(cè)試 370
12.5.4 整數(shù)值測(cè)試 371
12.5.5 邏輯運(yùn)算符 372
12.6 條件語(yǔ)句 372
12.6.1 if語(yǔ)句 373
12.6.2 case語(yǔ)句 375
12.7 循環(huán)語(yǔ)句 377
12.7.1 for語(yǔ)句 377
12.7.2 while語(yǔ)句 379
12.7.3 until語(yǔ)句 381
12.7.4 select語(yǔ)句 382
12.7.5 嵌套循環(huán) 384
12.7.6 continue和break語(yǔ)句 384
12.8 信號(hào)的捕獲與處理 387
12.8.1 信號(hào) 387
12.8.2 捕獲信號(hào) 388
第13章 網(wǎng)絡(luò)服務(wù)管理 391
13.1 SSH服務(wù) 391
13.1.1 SSH協(xié)議 391
13.1.2 配置SSH服務(wù) 392
13.1.3 管理SSH服務(wù) 395
13.1.4 使用賬號(hào)密碼登錄SSH服務(wù) 396
13.1.5 使用密鑰對(duì)登錄SSH服務(wù) 397
13.2 FTP文件傳輸服務(wù) 402
13.2.1 FTP文件傳輸協(xié)議 402
13.2.2 安裝vsftpd 402
13.2.3 vsftpd配置文件 403
13.2.4 管理FTP用戶:匿名用戶、本地用戶、虛擬用戶 406
13.2.5 演示:使用FTP傳輸文件 411
13.3 DNS域名服務(wù) 416
13.3.1 域名、IP地址、域名服務(wù)器 417
13.3.2 BIND以及組件 418
13.3.3 BIND配置文件 418
13.3.4 配置區(qū)域 424
13.3.5 資源記錄 425
13.3.6 演示:DNS服務(wù)器配置實(shí)例 427
13.4 NFS服務(wù) 430
13.4.1 安裝NFS服務(wù) 431
13.4.2 共享文件系統(tǒng) 431
13.4.3 掛載NFS文件系統(tǒng) 433
13.4.4 NFS文件系統(tǒng)權(quán)限 434
13.5 其他網(wǎng)絡(luò)服務(wù)管理 437
13.5.1 Samba資源共享 437
13.5.2 Apache萬(wàn)維網(wǎng)服務(wù) 441
13.5.3 MySQL數(shù)據(jù)庫(kù)服務(wù) 444
第14章 虛擬化和云計(jì)算 447
14.1 虛擬化基礎(chǔ)知識(shí) 447
14.1.1 虛擬化技術(shù) 447
14.1.2 常用虛擬化方案 447
14.2 KVM 448
14.2.1 KVM及其相關(guān)組件 448
14.2.2 安裝KVM 448
14.2.3 創(chuàng)建虛擬機(jī) 449
14.2.4 管理虛擬機(jī) 451
14.3 Docker 452
14.3.1 Docker以及基礎(chǔ)知識(shí) 452
14.3.2 安裝Docker 453
14.3.3 使用鏡像 454
14.3.4 管理容器 456
14.3.5 使用網(wǎng)絡(luò):外部訪問(wèn)容器 459
14.3.6 使用網(wǎng)絡(luò):容器互聯(lián) 461
14.4 LXC和LXD 461
14.4.1 LXC和LXD簡(jiǎn)介 462
14.4.2 安裝LXD 462
14.4.3 創(chuàng)建容器 463
14.4.4 列出容器 464
14.4.5 查看容器 466
14.4.6 管理容器 466
14.4.7 與容器交互 467
14.4.8 管理鏡像 469
14.5 OpenStack 471
14.5.1 OpenStack的核心組件 471
14.5.2 通過(guò)DevStack部署OpenStack 473
14.5.3 儀表盤 474
14.5.4 實(shí)例管理 478
14.5.5 鏡像管理 486
14.5.6 卷管理 488
14.5.7 網(wǎng)絡(luò)管理:網(wǎng)絡(luò)拓?fù)?nbsp; 489
14.5.8 網(wǎng)絡(luò)管理:網(wǎng)絡(luò)的修改和刪除 490
14.5.9 網(wǎng)絡(luò)管理:路由 494
14.5.10 網(wǎng)絡(luò)管理:安全組 496
第15章 系統(tǒng)和網(wǎng)絡(luò)安全 499
15.1 用戶管理安全 499
15.1.1 管理好root用戶 499
15.1.2 用戶資料安全 500
15.1.3 密碼策略 501
15.2 防火墻 503
15.2.1 ufw 503
15.2.2 IP偽裝 504
15.2.3 日志 504
15.3 AppArmor 505
15.3.1 安裝AppArmor 505
15.3.2 使用AppArmor 505
15.3.3 AppArmor配置文件 507
15.4 數(shù)字證書 509
15.4.1 獲取數(shù)字證書 509
15.4.2 生成密鑰 509
15.4.3 生成證書簽署請(qǐng)求 510
15.4.4 安裝證書 511
15.5 弱點(diǎn)掃描 511
15.5.1 安裝OpenVAS 512
15.5.2 OpenVAS儀表盤 514
15.5.3 掃描任務(wù)管理 514
15.5.4 掃描報(bào)表 516
15.6 入侵檢測(cè) 518
15.6.1 安裝Snort 518
15.6.2 Snort配置文件 519
15.6.3 Snort檢測(cè)規(guī)則 519
15.6.4 測(cè)試Snort 521