內容簡介
精通Linux的終極指南 《Linux寶典(第9版)》 在上一版的基礎上全面更新,旨在幫助Linux新手及中級用戶將Linux知識和技能提升到新水平。知名Linux專家、暢銷書作家Christopher Negus在本書中濃墨重彩地描述Red Hat Enterprise Linux、Fedora和Ubuntu最新版本和命令行工具,並通過分步的詳明演示和精選習題引導讀者悟透Linux作業系統的工作原理。
本書還為各類
Linux認證考試提供備考資料。 Linux是雲計算中大多數技術進步的核心,這意味你必須紮實掌握Linux技術,從而在未來的數據中心高效工作。本書開篇介紹Linux基礎知識,接著演示如何運用這些知識將Linux系統部署為虛擬機管理程式、雲控制器和虛擬機,並講述如何管理虛擬網路和網路存儲。
作者簡介
Christopher Negus從事Linux和UNIX領域的教學和寫作已逾25年。他是Red Hat公司的講師和首席技術撰稿人,曾撰寫數十本有關Linux和UNIX的書籍,包括Red Hat Linux Bible (所有版本)、CentOS Bible、Fedora Bible 、Ubuntu Linux Toolbox 、Linux Troubleshooting Bible 、Linux Toys 以及Linux Toys Ⅱ
圖書目錄
第Ⅰ部分 入 門
第1章 開始使用Linux 3
1.1 理解什麼是Linux 4
1.2 了解如何區分Linux和其他作業系統 5
1.3 探討Linux歷史 5
1.3.1 Bell實驗室中自由流動的UNIX文化 6
1.3.2 商業化的UNIX 8
1.3.3 GNU將UNIX轉變為免費 9
1.3.4 BSD失去了一些動力 10
1.3.5 Linus彌補了缺失的部分 11
1.3.6 OSI開源定義 11
1.4 理解Linux發行版本是如何出現的 12
1.4.1 選擇Red Hat發行版本 13
1.4.2 選擇Ubuntu或者其他Debian發行版本 15
1.5 利用Linux找到職業機會 15
1.5.1 了解如何利用Linux掙錢 16
1.5.2 獲得Red Hat認證 17
1.6 小結 20
2.1 了解Linux桌面技術 22
2.2 開始使用Fedora GNOME桌面Live鏡像 23
2.3 使用GNOME 3桌面 24
2.3.1 計算機啟動之後 24
2.3.2 設定GNOME 3桌面 30
2.3.3 擴展GNOME 3桌面 31
2.3.4 啟動桌面應用程式 33
2.3.5 停止GNOME 3桌面 37
2.4 使用GNOME 2桌面 37
2.4.1 使用Metacity視窗管理器 38
2.4.2 更改GNOME外觀 39
2.4.3使用GNOME面板 40
2.4.4使用AIGLX添加3D效果 43
2.5小結 45
2.6習題 45
第Ⅱ部分成為一名Linux高級用戶
第3章使用Shell 49
3.1Shell和Terminal視窗 50
3.1.1使用Shell提示符 50
3.1.2使用Terminal視窗 51
3.1.3使用虛擬控制台 52
3.2選擇Shell 52
3.3運行命令 53
3.3.1了解命令語法 53
3.3.2查找命令 56
3.4使用命令歷史記錄重複執行命令 58
3.4.1命令行編輯 58
3.4.2命令行補齊 60
3.4.3命令行重複執行 61
3.5連線和擴展命令 62
3.5.1命令之間的管道 62
3.5.2連續命令 63
3.5.3後台命令 63
3.5.4擴展命令 64
3.5.5擴展算術表達式 64
3.5.6擴展變數 64
3.6使用Shell變數 64
3.6.1創建和使用別名 66
3.6.2退出Shell 66
3.7創建自己的Shell環境 67
3.7.1配置Shell 67
3.7.2設定提示符 68
3.7.3添加環境變數 69
3.8獲取關於命令的信息 70
3.9小結 71
3.10習題 71
第4章在檔案系統中移動 73
4.1使用基本的檔案系統命令 75
4.2使用元字元和運算符 77
4.2.1使用檔案匹配元字元 77
4.2.2使用檔案重定向元字元 78
4.2.3使用括弧擴展字元 79
4.3列出檔案和目錄 80
4.4了解檔案許可權和所有權 83
4.4.1使用命令chmod(數字)更改許可權 84
4.4.2使用chmod(字母)更改許可權 85
4.4.3使用umask設定默認的檔案許可權 85
4.4.4更改檔案所有權 86
4.5移動、複製和刪除檔案 87
4.6小結 88
4.7習題 88
第5章使用文本檔案 91
5.1使用vim和vi編輯檔案 91
5.1.1開始使用vi 92
5.1.2在檔案中跳過 96
5.1.3搜尋文本 96
5.1.4使用ex模式 96
5.1.5學習更多關於vi和vim的知識 97
5.2查找檔案 97
5.2.1使用locate命令根據名稱查找檔案 97
5.2.2使用find命令搜尋檔案 98
5.2.3使用grep命令在檔案中搜尋 103
5.3小結 104
5.4習題 104
第6章管理運行中的進程 107
6.1理解進程 107
6.2列出進程 108
6.2.1使用ps命令列出進程 108
6.2.2使用top命令列出和更改進程 109
6.2.3使用SystemMonitor列出進程 110
6.3管理後台和前台進程 112
6.3.1啟動後台進程 112
6.3.2使用前台和後台命令 113
6.4殺死和改變進程 114
6.4.1使用kill和killall命令殺死進程 114
6.4.2使用nice和renice命令設定處理器優先權 115
6.5使用cgroups限制進程 116
6.6小結 118
6.7習題 118
7.1理解Shell腳本 119
7.1.1執行和調試Shell腳本 119
7.1.2理解Shell變數 120
7.1.3在Shell腳本中執行算法 123
7.1.4在Shell腳本中使用編程結構 124
7.1.5使用一些有用的文本操作程式 129
7.1.6使用簡單的Shell腳本 130
7.2小結 132
7.3習題 132
第Ⅲ部分成為一名Linux系統管理員
第8章學習系統管理 137
8.1理解系統管理 137
8.2使用圖形化管理工具 138
8.2.1使用system-config-*工具 139
8.2.2使用基於瀏覽器的管理工具 140
8.3使用root用戶賬戶 140
8.3.1通過Shell成為root用戶(su命令) 141
8.3.2通過GUI允許管理訪問許可權 142
8.3.3使用sudo獲取管理訪問許可權 142
8.4探索管理命令、配置檔案和日誌檔案 143
8.4.1管理命令 144
8.4.2管理配置檔案 144
8.4.3管理日誌檔案和SystemdJournal 148
8.5使用其他管理賬號 149
8.6檢查和配置硬體 150
8.6.1檢查硬體 150
8.6.2管理可移動硬體 153
8.6.3使用可載入模組 154
8.7小結 156
8.8習題 156
第9章安裝Linux 159
9.1選擇計算機 160
9.2從Live介質安裝Fedora 161
9.3從安裝介質安裝RedHatEnterpriseLinux 164
9.4了解基於雲的安裝 166
9.5在企業中安裝Linux 167
9.6探索共同的安裝主題 168
9.6.1升級或者從頭開始安裝 168
9.6.2雙啟動 169
9.6.3安裝Linux並以虛擬方式運行 170
9.6.4使用安裝啟動選項 170
9.6.5使用專門的存儲器 173
9.6.6對硬碟進行分區 174
9.6.7使用GRUB啟動載入程式 176
9.7小結 182
9.8習題 182
第10章獲取和管理軟體 183
10.1在桌面管理軟體 183
10.2超越Software視窗 184
10.3了解LinuxRPM和DEB軟體打包 185
10.3.1理解DEB包 186
10.3.2理解RPM包 187
10.4使用YUM管理RPM軟體包 188
10.4.1了解yum的工作原理 189
10.4.2藉助於第三方的軟體庫使用YUM 192
10.4.3使用YUM命令管理軟體 192
10.5使用rpm命令安裝、查詢和驗證軟體 198
10.5.1使用rpm安裝和刪除軟體包 199
10.5.2查詢rpm信息 199
10.5.3驗證RPM軟體包 201
10.6在企業中管理軟體 202
10.7小結 203
10.8習題 203
第11章獲取用戶賬戶 205
11.1創建用戶賬戶 205
11.1.1使用useradd命令添加用戶 207
11.1.2設定用戶默認值 209
11.1.3使用usermod修改用戶 210
11.1.4使用userdel刪除用戶 211
11.2了解組賬戶 212
11.2.1使用組賬戶 212
11.2.2創建組賬戶 213
11.3在企業中管理用戶 214
11.3.1使用ACL設定許可權 214
11.3.2為用戶添加目錄以便進行協作 218
11.4集中用戶賬戶 220
11.4.1使用Users視窗 221
11.4.2使用AuthenticationConfiguration視窗 221
11.5小結 222
11.6習題 222
第12章管理磁碟和檔案系統 225
12.2對硬碟進行分區 227
12.2.1理解分區表 227
12.2.2查看磁碟分區 227
12.2.3創建單分區磁碟 229
12.2.4創建一個多分區磁碟 232
12.3使用邏輯卷管理分區 235
12.3.1檢查現有的LVM 235
12.3.2創建LVM邏輯卷 238
12.3.3擴大LVM邏輯卷 239
12.4掛載檔案系統 240
12.4.1被支持的檔案系統 240
12.4.2啟用交換區 242
12.4.4使用fstab檔案定義掛載檔案系統 243
12.4.5使用mount命令來掛載檔案系統 245
12.4.6以環回方式掛載磁碟鏡像 246
12.4.7使用umount命令 246
12.5使用mkfs命令創建檔案系統 247
12.6小結 248
12.7習題 248
第Ⅳ部分成為一名Linux伺服器管理員
第13章了解伺服器管理 253
13.1開始學習伺服器管理 254
步驟1:安裝伺服器 254
步驟2:配置伺服器 255
步驟3:監視伺服器 258
13.2使用SecureShell服務管理遠程訪問 259
13.2.1啟動openssh-server服務 260
13.2.3使用基於密鑰(無密碼)的身份驗證 266
13.3配置系統日誌 268
13.3.1使用rsyslog啟用系統日誌 268
13.3.2使用logwatch查看日誌 271
13.4使用sar檢查系統資源 272
13.5檢查系統空間 274
13.5.1使用df顯示系統空間 274
13.5.2使用du檢查磁碟使用情況 274
13.5.3使用find確定磁碟消耗 275
13.6管理企業中的伺服器 275
13.7小結 276
13.8習題 276
第14章管理網路 279
14.1配置桌面網路 280
14.1.1檢查網路接口 281
14.1.2配置網路接口 285
14.1.3配置網路代理連線 287
14.2使用命令行配置網路 289
14.2.1編輯連線 289
14.2.2了解網路配置檔案 291
14.2.3設定別名網路接口 295
14.2.4設定Ethernet通道捆綁 295
14.2.5設定自定義路由 296
14.3配置企業中的網路 297
14.3.1將Linux配置為一個路由器 297
14.3.4將Linux配置為代理伺服器 299
14.4小結 299
14.5習題 300
第15章啟動和停止服務 301
15.1了解初始化守護進程(init或者systemd) 302
15.1.1了解經典的init守護進程 303
15.1.2了解Upstartint守護進程 308
15.1.3了解systemd初始化 313
15.2檢查服務的狀態 320
15.2.1檢查SysVinit系統的服務 320
15.2.2檢查Upstart系統的服務 321
15.2.3檢查systemd系統的服務 322
15.3停止和啟動服務 323
15.3.1停止和啟動SysVinit服務 323
15.3.2停止和啟動Upstart服務 324
15.3.3停止和啟動systemd服務 325
15.4啟用持續性服務 327
15.4.1配置SysVinit的持續性服務 328
15.4.2配置Upstart的持續性服務 329
15.4.3配置systemd的持續性服務 329
15.5配置默認的運行級別或者目標單元 331
15.5.1配置SysVinit默認運行級別 331
15.5.2配置Upstart中的默認運行級別 331
15.5.3為systemd配置默認目標單元 332
15.6添加新的或自定義服務 333
15.6.1向SysVinit添加新服務 333
15.6.2向Upstart添加新服務 335
15.6.3向systemd添加新服務 336
15.7小結 339
15.8習題 339
16.1通用UNIX列印系統(CUPS) 341
16.2設定印表機 343
16.2.1自動添加印表機 343
16.2.2使用基於Web的CUPS管理 343
16.2.3使用PrintSettings視窗 345
16.3使用CUPS列印 351
16.3.1配置CUPS伺服器(cupsd.conf) 351
16.3.2啟動CUPS伺服器 352
16.3.3手動配置CUPS印表機選項 352
16.4使用列印命令 354
16.4.1使用lpr進行列印 354
16.4.2使用lpc命令列出狀態 354
16.4.3使用lprm命令刪除列印作業 355
16.5配置列印伺服器 355
16.5.1配置共享的CUPS印表機 356
16.5.2配置共享Samba印表機 357
16.6小結 359
16.7習題 359
17.1了解ApacheWeb伺服器 361
17.2獲取和安裝Web伺服器 362
17.2.1了解httpd軟體包 362
17.2.2安裝Apache 365
17.3啟動Apache 365
17.3.1確保Apache安全 366
17.3.2了解Apache配置檔案 367
17.3.3向Apache添加虛擬主機 371
17.3.4允許用戶發布自己的Web內容 373
17.3.5使用SSL/TLS保護Web流量 374
17.4對Web伺服器進行故障排除 378
17.4.1檢查配置錯誤 378
17.4.2禁止訪問和伺服器內部錯誤 380
17.5小結 381
17.6習題 381
第18章配置FTP伺服器 383
18.1了解FTP 383
18.2安裝vsftpdFTP伺服器 384
18.3啟動vsftpd服務 386
18.4確保FTP伺服器安全 388
18.4.1為FTP打開防火牆 388
18.4.2在TCPWrappers中允許FTP訪問 390
18.4.3為FTP伺服器配置SELinux 390
18.4.4使Linux檔案許可權與vsftpd相關聯 392
18.5配置FTP伺服器 392
18.5.1設定用戶訪問 392
18.5.2允許上傳 393
18.5.3為Internet設定vsftpd 394
18.6使用FTP客戶端連線伺服器 395
18.6.1通過Firefox訪問FTP伺服器 395
18.6.2使用lftp命令訪問FTP伺服器 396
18.6.3使用gFTP客戶端 397
18.7小結 398
18.8習題 399
第19章配置Windows檔案共享(Samba)伺服器 401
19.1了解Samba 401
19.2安裝Samba 402
19.3啟動和停止Samba 404
19.3.1啟動Samba(smb)服務 404
19.3.2啟動NetBIOS(nmbd)名稱伺服器 406
19.3.3停止Samba(smb)和NetBIOS(nmb)服務 406
19.4確保Samba伺服器的安全 407
19.4.1為Samba配置防火牆 407
19.4.2為Samba配置SELinux 408
19.4.3配置Samba主機/用戶許可權 410
19.5配置Samba 410
19.5.1使用system-config-samba 411
19.5.2在smb.conf檔案中配置Samba 415
19.6訪問Samba共享 419
19.6.1在Linux中訪問Samba共享 419
19.6.2在Windows中訪問Samba共享 421
19.7在企業中使用Samba 422
19.8小結 422
19.9習題 422
第20章配置NFS檔案伺服器 425
20.1安裝NFS伺服器 426
20.2啟動NFS服務 427
20.3共享NFS檔案系統 428
20.3.1配置/etc/exports檔案 429
20.3.2導出已分享檔案系統 431
20.4確保NFS伺服器安全 432
20.4.1為NFS打開防火牆 432
20.4.2在TCPWrappers中允許NFS訪問 434
20.4.3為NFS伺服器配置SELinux 434
20.5使用NFS檔案系統 435
20.5.1查看NFS共享 435
20.5.2手動掛載NFS檔案系統 436
20.5.3在啟動時掛載NFS檔案系統 437
20.5.4使用autofs按需掛載NFS檔案系統 439
20.6卸載NFS檔案系統 442
20.7小結 442
20.8習題 443
第21章Linux的故障排除 445
21.1啟動故障排除 445
21.1.1了解啟動方法 446
21.1.2從固件(BISO或UEFI)開始 447
21.1.3為GRUB啟動載入程式
進行故障排除 449
21.1.4啟動核心 451
21.2排除軟體包的故障 458
21.3排除網路故障 461
21.3.1排除傳出連線的故障 461
21.3.2排除傳入連線的故障 464
21.4解決記憶體問題 467
21.5在救援模式中進行故障排除 471
21.6小結 472
21.7習題 472
第Ⅴ部分學習Linux安全技術
第22章理解基本的Linux安全 475
22.1了解安全基本知識 475
22.1.1實現物理安全 475
22.1.2實現災難恢復 476
22.1.3保護用戶賬戶的安全 476
22.1.4保護密碼 479
22.1.5保護檔案系統 484
22.1.6管理軟體和服務 487
22.1.7高級執行 488
22.2監視系統 488
22.2.1監視日誌檔案 488
22.2.2監視用戶賬戶 491
22.2.3監視檔案系統 494
22.3審核和審查Linux 500
22.3.1進行合規審查 500
22.3.2進行安全審查 500
22.4小結 501
22.5習題 501
第23章理解高級的Linux安全 503
23.1利用加密實現Linux安全 503
23.1.1理解哈希 504
23.1.2理解加密/解密 505
23.1.3實現Linux加密 513
23.2使用PAM實現Linux安全 520
23.2.1理解PAM身份驗證過程 521
23.2.2在Linux系統上管理PAM 524
23.2.3獲取更多關於PAM的信息 535
23.3小結 535
23.4習題 535
第24章使用SELinux增強Linux安全 537
24.1了解SELinux的優點 537
24.2了解SELinux的工作原理 538
24.2.1了解類型強制 538
24.2.2了解多層次安全 539
24.2.3實現SELinux安全模型 540
24.3配置SELinux 545
24.3.1設定SELinux模式 545
24.3.2設定SELinux策略類型 547
24.3.3管理SElinux安全上下文 548
24.3.4管理SELinux策略規則包 550
24.3.5通過布爾值管理SELinux 552
24.4監視和排除SELinux故障 553
24.4.1了解SELinux日誌 553
24.4.2排除SELinux日誌記錄故障 555
24.4.3解決常見的SELinux問題 555
24.5全部放在一起 557
24.6獲取更多關於SELinux的信息 557
24.7小結 558
24.8習題 558
第25章保護網路上的Linux 561
25.1審核網路服務 561
25.1.1使用nmap評估對網路服務的訪問 562
25.1.2使用nmap審核網路服務廣告 565
25.1.3控制對網路服務的訪問 568
25.2使用防火牆 570
25.2.1了解防火牆 570
25.2.2實現防火牆 571
25.3小結 581
25.4習題 581
第Ⅵ部分將Linux擴展到雲
第26章使用Linux進行雲計算 585
26.1Linux和雲計算概述 585
26.1.1雲虛擬機管理程式 586
26.1.2雲控制器 586
26.1.3雲存儲 586
26.1.4雲身份驗證 587
26.1.5雲開發和配置 587
26.1.6雲平台 587
26.2嘗試基礎的雲技術 587
26.3建立一個小型的雲 589
26.3.1配置虛擬機管理程式 589
26.3.2配置存儲 592
26.3.3創建虛擬機 594
26.3.4管理虛擬機 597
26.3.5遷移虛擬機 597
26.4小結 598
26.5習題 599
第27章將Linux部署到雲 601
27.1在雲中運行Linux 601
27.2創建Linux雲鏡像 602
27.2.1配置和運行cloud-init雲實例 603
27.2.2對雲實例進行研究 604
27.2.3克隆雲實例 605
27.2.4嘗試Ubuntu雲鏡像 606
27.2.5擴展cloud-init配置 607
27.2.6在企業計算中使用cloud-init 609
27.3使用OpenStack來部署雲鏡像 610
27.4使用AmazonEC2部署雲鏡像 614
27.5小結 614
第Ⅶ部分附錄
附錄A介質 617
附錄B習題答案 625