具体描述
産品特色
內容簡介
本書是一本入門級的Linux學習教材,適閤初學者閱讀。本教程由淺入深,內容精湛,案例豐富,通俗易懂!書中分兩部分:前麵為基礎知識,內容涉及Linux的安裝、使用遠程登錄工具登錄Linux、文件和目錄管理、磁盤管理、Vim、壓縮和解壓縮文件和目錄、安裝和卸載軟件包等;後麵為進階知識,內容包括正則錶達式、shell腳本、日常管理操作、LAMP環境、LNMP環境、MySQL常用的操作、NFS、FTP、Tomcat、Linux集群和Zabbix監控等。
與上一版相比,這一版不僅基於CentOS 7.3進行瞭全麵修訂,並且增加瞭firewalld、Tomcat連接MySQL、集群架構、Zabbix監控等內容。
即使是零基礎的人,隻要能夠堅持把所有章都學完,也一定會受益匪淺。對於有工作經驗的人,它也是一本詳盡的工具書,助你解決工作當中的一些需求和難題,讓你受益匪淺。
作者簡介
李世明
阿銘Linux培訓創辦者,猿課聯閤創始人,從事互聯網運維工作8年多,先後就職於Discuz、騰訊、好貸,從*基礎的運維到高級運維工程師,再到運維部門負責人,運維過的網站從訪問量十幾萬PV到上億PV,經曆過各種各樣的突發事故,運維實戰經驗**豐富。2011年編寫的《跟阿銘學Linux》電子版入門教程,閱讀量高達幾十萬,對初學者提供瞭莫大的幫助。近些年,在從事Linux運維培訓工作中積纍瞭豐富的教學經驗,培訓過的學生薪資大多在8000元以上。
目錄
第1章 學習之初 1
1.1 Linux是什麼 1
1.1.1 Linux的由來 1
1.1.2 Linux怎麼讀 2
1.1.3 常見Linux發行版 2
1.1.4 我們要學習哪個Linux發行版 2
1.2 Linux係統管理員要養成的習慣 3
1.2.1 要習慣使用命令行 3
1.2.2 操作要嚴謹 4
1.2.3 安全不可忽視 4
1.3 學習建議 5
1.3.1 穩中求進 5
1.3.2 善於總結文檔 5
1.3.3 復習很關鍵 5
1.3.4 舉一反三 6
1.4 課後習題 6
第2章 安裝CentOS 7
2.1 安裝虛擬機 7
2.1.1 下載虛擬機軟件 7
2.1.2 安裝虛擬機 8
2.1.3 新建一個虛擬機 9
2.2 安裝Linux操作係統 13
2.2.1 下載CentOS鏡像文件 13
2.2.2 設置虛擬光驅 13
2.2.3 安裝CentOS 15
2.3 第一次親密接觸 21
2.3.1 初次使用命令行登錄 21
2.3.2 設置網絡 22
2.3.3 圖形和命令行切換 29
2.3.4 學會使用快捷鍵 30
2.3.5 學會查詢幫助文檔 —— man 30
2.3.6 Linux係統目錄結構 31
2.3.7 如何正確關機、重啓 34
2.3.8 忘記root密碼怎麼辦 34
2.3.9 學會使用救援模式 36
2.4 課後習題 39
第3章 遠程登錄Linux係統 40
3.1 安裝PuTTY 40
3.1.1 下載PuTTY 40
3.1.2 安裝 41
3.2 遠程登錄 41
3.2.1 使用密碼直接登錄 41
3.2.2 使用密鑰認證 43
3.3 兩颱Linux相互登錄 45
3.3.1 剋隆CentOS 46
3.3.2 使用密碼登錄 47
3.3.3 使用密鑰登錄 47
3.4 課後習題 49
第4章 Linux文件和目錄管理 50
4.1 絕對路徑和相對路徑 50
4.1.1 命令cd 50
4.1.2 命令mkdir 51
4.1.3 命令rmdir 52
4.1.4 命令rm 52
4.2 環境變量PATH 53
4.2.1 命令cp 54
4.2.2 命令mv 55
4.3 幾個與文檔相關的命令 56
4.3.1 命令cat 56
4.3.2 命令tac 57
4.3.3 命令more 57
4.3.4 命令less 57
4.3.5 命令head 57
4.3.6 命令tail 58
4.4 文件的所有者和所屬組 59
4.5 Linux文件屬性 59
4.6 更改文件的權限 60
4.6.1 命令chgrp 60
4.6.2 命令chown 61
4.6.3 命令chmod 62
4.6.4 命令umask 63
4.6.5 修改文件的特殊屬性 64
4.7 在Linux下搜索文件 66
4.7.1 用which命令查找可執行文件的絕對路徑 66
4.7.2 用whereis命令查找文件 66
4.7.3 用locate命令查找文件 67
4.7.4 使用find搜索文件 67
4.8 Linux文件係統簡介 69
4.9 Linux文件類型 70
4.9.1 常見文件類型 70
4.9.2 Linux文件後綴名 70
4.9.3 Linux的鏈接文件 71
4.10 課後習題 72
第5章 Linux係統用戶與用戶組管理 74
5.1 認識/etc/passwd和/etc/shadow 74
5.1.1 /etc/passwd解說 75
5.1.2 /etc/shadow解說 75
5.2 用戶和用戶組管理 76
5.2.1 新增組的命令groupadd 76
5.2.2 刪除組的命令groupdel 76
5.2.3 增加用戶的命令useradd 77
5.2.4 刪除賬戶的命令userdel 78
5.2.5 使用命令chfn更改用戶的
finger 78
5.3 用戶密碼管理 78
5.3.1 命令passwd 79
5.3.2 命令mkpasswd 79
5.4 用戶身份切換 80
5.4.1 命令su 80
5.4.2 命令sudo 81
5.4.3 不允許root遠程登錄Linux 82
5.5 課後習題 82
第6章 Linux磁盤管理 84
6.1 查看磁盤或者目錄的容量 84
6.1.1 命令df 84
6.1.2 命令du 85
6.2 磁盤的分區和格式化 86
6.2.1 增加虛擬磁盤 86
6.2.2 命令fdisk 87
6.3 格式化磁盤分區 96
6.3.1 命令mke2fs、mkfs.ext2、mkfs. ext3、mkfs.ext4和mkfs.xfs 96
6.3.2 命令e2label 99
6.4 掛載/卸載磁盤 99
6.4.1 命令mount 100
6.4.2 /etc/fstab配置文件 101
6.4.3 命令blkid 103
6.4.4 命令umount 104
6.5 建立一個swap文件增加虛擬內存 105
6.6 課後習題 106
第7章 文本編輯工具Vim 107
7.1 Vim的3種常用模式 107
7.1.1 一般模式 107
7.1.2 編輯模式 108
7.1.3 命令模式 109
7.2 Vim實踐 109
7.3 課後習題 111
第8章 文檔的壓縮與打包 112
8.1 gzip壓縮工具 112
8.2 bzip2壓縮工具 113
8.3 xz壓縮工具 113
8.4 tar打包工具 114
8.4.1 打包的同時使用gzip壓縮 116
8.4.2 打包的同時使用bzip2壓縮 116
8.5 使用zip壓縮 117
8.6 zcat、bzcat命令的使用 118
8.7 課後習題 118
第9章 安裝RPM包或源碼包 119
9.1 RPM工具 119
9.1.1 安裝RPM包 120
9.1.2 升級RPM包 120
9.1.3 卸載RPM包 120
9.1.4 查詢一個包是否已安裝 121
9.1.5 得到一個已安裝的RPM包的 相關信息 121
9.1.6 列齣一個RPM包的安裝文件 122
9.1.7 列齣某個文件屬於哪個 RPM包 122
9.2 yum工具 122
9.2.1 列齣所有可用的RPM包 122
9.2.2 搜索RPM包 123
9.2.3 安裝RPM包 124
9.2.4 卸載RPM包 125
9.2.5 升級RPM包 126
9.2.6 使用本地光盤製作yum源 127
9.2.7 利用yum工具下載RPM包 128
9.3 安裝源碼包 130
9.3.1 下載源碼包 130
9.3.2 解壓源碼包 131
9.3.3 配置相關的選項並生成 Makefile 131
9.3.4 進行編譯 132
9.3.5 安裝 133
9.4 課後習題 133
第10章 shell基礎知識 135
10.1 什麼是shell 135
10.1.1 記錄命令曆史 135
10.1.2 命令和文件名補全 136
10.1.3 彆名 136
10.1.4 通配符 137
10.1.5 輸入/輸齣重定嚮 137
10.1.6 管道符 137
10.1.7 作業控製 137
10.2 變量 139
10.2.1 命令env 139
10.2.2 命令set 140
10.3 係統環境變量與個人環境變量的 配置文件 144
10.4 Linux shell中的特殊符號 145
10.4.1 *代錶零個或多個任意字符 145
10.4.2 ?隻代錶一個任意的字符 145
10.4.3 注釋符號# 145
10.4.4 脫義字符 146
10.4.5 再說管道符| 146
10.4.6 命令cut 146
10.4.7 命令sort 147
10.4.8 命令wc 148
10.4.9 命令uniq 148
10.4.10 命令tee 149
10.4.11 命令tr 149
10.4.12 命令split 149
10.4.13 特殊符號$ 150
10.4.14 特殊符號; 150
10.4.15 特殊符號~ 150
10.4.16 特殊符號& 151
10.4.17 重定嚮符號>、>>、2>和 2>> 151
10.4.18 中括號[] 151
10.4.19 特殊符號&&和|| 151
10.5 課後習題 152
第11章 正則錶達式 154
11.1 grep/egrep工具的使用 154
11.1.1 過濾齣帶有某個關鍵詞的 行,並輸齣行號 155
11.1.2 過濾齣不帶有某個關鍵詞 的行,並輸齣行號 155
11.1.3 過濾齣所有包含數字的行 156
11.1.4 過濾齣所有不包含數字 的行 156
11.1.5 過濾掉所有以#開頭的行 156
11.1.6 過濾掉所有空行和以#開頭 的行 157
11.1.7 過濾齣任意一個字符和重復 字符 158
11.1.8 指定要過濾齣的字符齣現 次數 158
11.1.9 過濾齣一個或多個指定的 字符 159
11.1.10 過濾齣零個或一個指定的 字符 159
11.1.11 過濾齣字符串1或者 字符串2 160
11.1.12 egrep中()的應用 160
11.2 sed工具的使用 160
11.2.1 打印某行 160
11.2.2 打印包含某個字符串的行 161
11.2.3 刪除某些行 161
11.2.4 替換字符或者字符串 162
11.2.5 調換兩個字符串的位置 163
11.2.6 直接修改文件的內容 163
11.2.7 sed練習題 164
11.3 awk工具的使用 165
11.3.1 截取文檔中的某個段 165
11.3.2 匹配字符或者字符串 165
11.3.3 條件操作符 166
11.3.4 awk的內置變量 167
11.3.5 awk中的數學運算 168
11.3.6 awk練習題 169
11.4 課後習題 170
第12章 shell腳本 171
12.1 什麼是shell腳本 171
12.1.1 shell腳本的創建和執行 172
12.1.2 命令date 173
12.2 shell腳本中的變量 173
12.2.1 數學運算 174
12.2.2 和用戶交互 174
12.2.3 shell腳本預設變量 175
12.3 shell腳本中的邏輯判斷 176
12.3.1 不帶else 176
12.3.2 帶有else 176
12.3.3 帶有elif 177
12.3.4 和文檔相關的判斷 178
12.3.5 case邏輯判斷 179
12.4 shell腳本中的循環 180
12.4.1 for循環 180
12.4.2 while循環 181
12.5 shell腳本中的函數 181
12.6 shell腳本中的中斷和繼續 182
12.6.1 break 182
12.6.2 continue 183
12.6.3 exit 183
12.7 shell腳本練習題 184
12.8 課後習題 186
第13章 Linux係統管理技巧 187
13.1 監控係統的狀態 187
13.1.1 使用w命令查看當前係統的負載 187
13.1.2 用vmstat命令監控係統的 狀態 189
13.1.3 用top命令顯示進程所占的係統資源 190
13.1.4 用sar命令監控係統狀態 191
13.1.5 用nload命令查看網卡流量 194
13.1.6 用free命令查看內存使用 狀況 195
13.1.7 用ps命令查看係統進程 196
13.1.8 用netstat命令查看網絡 狀況 197
13.2 抓包工具 199
13.2.1 tcpdump工具 199
13.2.2 wireshark工具 200
13.3 Linux網絡相關 200
13.3.1 用ifconfig命令查看網卡 IP 200
13.3.2 給一個網卡設定多個IP 201
13.3.3 查看網卡連接狀態 202
13.3.4 更改主機名 203
13.3.5 設置DNS 203
13.4 Linux的防火牆 204
13.4.1 SELinux 204
13.4.2 netfilter 205
13.4.3 firewalld 212
13.5 Linux係統的任務計劃 215
13.5.1 命令crontab 215
13.5.2 cron練習題 216
13.6 Linux係統服務管理 217
13.6.1 chkconfig服務管理工具 217
13.6.2 systemd服務管理 218
13.7 Linux下的數據備份工具rsync 222
13.7.1 rsync的命令格式 222
13.7.2 rsync常用選項 223
13.7.3 rsync應用實例 227
13.8 Linux係統日誌 233
13.8.1 /var/log/messages 233
13.8.2 dmesg 234
13.8.3 安全日誌 234
13.9 xargs與exec 235
13.9.1 xargs應用 235
13.9.2 exec應用 236
13.10 screen工具介紹 236
13.10.1 使用nohup 236
13.10.2 screen工具的使用 237
13.11 課後習題 237
第14章 LAMP環境搭建與配置 239
14.1 安裝MySQL 239
14.1.1 下載軟件包 240
14.1.2 初始化 240
14.1.3 配置MySQL 241
14.2 安裝Apache 242
14.3 安裝PHP 244
14.4 配置httpd支持PHP 246
14.5 測試LAMP是否成功 247
14.5.1 測試配置文件是否正確 247
14.5.2 測試是否正確解析PHP 248
14.6 httpd配置 248
14.6.1 默認虛擬主機 248
14.6.2 用戶認證 250
14.6.3 配置域名跳轉 251
14.6.4 配置訪問日誌 253
14.6.5 配置靜態元素過期時間 255
14.6.6 配置防盜鏈 257
14.6.7 訪問控製 258
14.7 PHP配置 261
14.7.1 PHP的disable_functions 262
14.7.2 配置error_log 262
14.7.3 配置open_basedir 263
14.8 PHP動態擴展模塊安裝 264
14.9 課後習題 266
第15章 LNMP環境配置 267
15.1 安裝MySQL 267
15.2 安裝PHP 268
15.3 安裝Nginx 270
15.4 Nginx配置 275
15.4.1 默認虛擬主機 275
15.4.2 用戶認證 275
15.4.3 域名重定嚮 277
15.4.4 Nginx的訪問日誌 277
15.4.5 配置靜態文件不記錄日誌並添加過期時間 279
15.4.6 Nginx防盜鏈 280
15.4.7 訪問控製 281
15.4.8 Nignx解析PHP 282
15.4.9 Nginx代理 283
15.4.10 Nignx配置SSL 287
15.5 php-fpm配置 291
15.5.1 php-fpm的pool 291
15.5.2 php-fpm的慢執行日誌 292
15.5.3 php-fpm定義open_basedir 293
15.5.4 php-fpm進程管理 293
15.6 課後習題 293
第16章 常用MySQL操作 295
16.1 更改MySQL數據庫root的密碼 295
16.2 連接數據庫 297
16.3 MySQL基本操作的常用命令 297
16.3.1 查詢當前庫 297
16.3.2 查詢某個庫的錶 297
16.3.3 查看某個錶的全部字段 298
16.3.4 查看當前是哪個用戶 300
16.3.5 查看當前所使用的數據庫 300
16.3.6 創建一個新庫 300
16.3.7 創建一個新錶 300
16.3.8 查看當前數據庫的版本 300
16.3.9 查看MySQL的當前狀態 301
16.3.10 查看MySQL的參數 301
16.3.11 修改MySQL的參數 301
16.3.12 查看當前MySQL服務器 的隊列 302
16.3.13 創建一個普通用戶並授權 302
16.4 常用的SQL語句 303
16.4.1 查詢語句 303
16.4.2 插入一行 303
16.4.3 更改錶的某一行 304
16.4.4 清空某個錶的數據 304
16.4.5 刪除錶 304
16.4.6 刪除數據庫 304
16.5 MySQL數據庫的備份與恢復 305
16.5.1 MySQL備份 305
16.5.2 MySQL恢復 305
16.6 課後習題 305
第17章 NFS服務配置 307
17.1 服務端配置NFS 307
17.2 客戶端掛載NFS 308
17.3 命令exportfs 309
17.4 課後習題 310
第18章 配置FTP服務 311
18.1 使用vsftpd搭建FTP服務 311
18.1.1 安裝vsftpd 311
18.1.2 建立賬號 311
18.1.3 創建和用戶對應的配置 文件 312
18.1.4 修改全局配置文件/etc/ vsftpd/vsftpd.conf 313
18.2 安裝配置pure-ftpd 314
18.2.1 安裝pure-ftpd 314
18.2.2 配置pure-ftpd 314
18.2.3 建立賬號 314
18.2.4 測試pure-ftpd 315
18.3 課後習題 315
第19章 配置Tomcat 316
19.1 安裝Tomcat 316
19.1.1 安裝JDK 316
19.1.2 安裝Tomcat 317
19.2 配置Tomcat 319
19.2.1 配置Tomcat服務的訪問 端口 319
19.2.2 Tomca的虛擬主機 319
19.3 測試Tomcat解析JSP 321
19.4 Tomcat日誌 322
19.5 Tomcat連接MySQL 322
第20章 MySQL Replication配置 325
20.1 配置MySQL服務 325
20.2 配置Replication 326
20.2.1 設置主(master) 326
20.2.2 設置從(slave) 327
20.3 測試主從 328
20.4 課後習題 329
第21章 Linux集群 330
21.1 搭建高可用集群 330
21.1.1 keepalived工作原理 331
21.1.2 安裝keepalived 331
21.1.3 keepalived+Nginx實現Web高可用 331
21.2 搭建負載均衡集群 337
21.2.1 LVS介紹 337
21.2.2 LVS的調度算法 341
21.2.3 NAT模式LVS搭建 343
21.2.4 DR模式LVS搭建 345
21.2.5 keepalived+LVS 346
21.3 課後習題 348
第22章 配置監控服務器 349
22.1 Zabbix監控介紹 349
22.1.1 Zabbix組件 350
22.1.2 Zabbix架構 350
22.2 Zabbix監控安裝和部署 351
22.2.1 用yum安裝Zabbix 351
22.2.2 配置Nginx 352
22.2.3 配置MySQL 353
22.2.4 配置Web界麵 353
22.2.5 Zabbix客戶端部署 356
22.3 Zabbix配置和使用 357
22.3.1 忘記Admin密碼 357
22.3.2 添加主機 357
22.3.3 添加模闆 359
22.3.4 主機鏈接模闆 368
22.3.5 圖形中的中文亂碼 368
22.3.6 添加自定義監控項目 370
22.3.7 配置告警 371
跟阿銘學Linux 第3版:係統運維的進階之路 目錄 前言:擁抱開源,掌握核心 第一部分:Linux係統基礎精粹 第一章:Linux初探——從零構建你的第一颱服務器 1.1 選擇你的Linux發行版:Debian、Ubuntu、CentOS/Rocky Linux的抉擇 1.1.1 發行版的核心理念:社區驅動 vs. 商業支持 1.1.2 各自的優勢與劣勢:部署場景分析 1.1.3 虛擬機與物理機的選擇:搭建實驗環境 1.2 安裝過程詳解:圖形化與文本模式的實踐 1.2.1 BIOS/UEFI設置與啓動順序 1.2.2 硬盤分區與掛載點策略:理解文件係統層級 1.2.3 網絡配置與用戶創建:為係統打下堅實基礎 1.3 初識命令行:告彆圖形界麵的自由 1.3.1 Shell的魅力:Bash的強大指令集 1.3.2 文件與目錄操作:ls, cd, pwd, mkdir, rmdir, cp, mv, rm 1.3.3 文本查看與編輯:cat, less, more, head, tail, nano, vim 1.4 用戶與權限管理:守護你的係統安全 1.4.1 理解用戶ID (UID) 和組ID (GID) 1.4.2 chmod, chown, chgrp:精細化權限控製 1.4.3 sudo:安全地提升特權 第二章:Linux文件係統深入:數據存儲與管理之道 2.1 文件係統的結構:/bin, /etc, /home, /var, /opt 等目錄的意義 2.1.1 FHS (Filesystem Hierarchy Standard) 的規範 2.1.2 不同目錄的功能與最佳實踐 2.2 磁盤管理:監控與優化你的存儲空間 2.2.1 df, du:磁盤空間使用率的分析 2.2.2 fdisk, parted:磁盤分區工具的實操 2.2.3 mkfs:文件係統的創建與格式化 2.2.4 mount, umount:文件係統的掛載與卸載 2.3 文件查找與定位:高效檢索你的數據 2.3.1 find:強大的文件搜索利器 2.3.2 grep:文本內容的模式匹配 2.3.3 locate, updatedb:快速索引文件 2.4 文件壓縮與歸檔:節省空間,便捷傳輸 2.4.1 tar:創建與解壓歸檔文件 2.4.2 gzip, bzip2, xz:高效的壓縮算法 2.4.3 zip, unzip:跨平颱的文件壓縮 第三章:Linux進程管理:掌控係統的運行脈搏 3.1 進程的概念:程序運行的實體 3.1.1 PID (Process ID) 與 PPID (Parent Process ID) 3.1.2 前颱進程與後颱進程 3.2 進程的監控:實時瞭解係統狀態 3.2.1 ps:查看當前運行的進程 3.2.2 top, htop:動態進程監控與資源分析 3.2.3 free, vmstat:內存與CPU使用情況 3.3 進程的控製:優雅地管理你的程序 3.3.1 kill, killall:終止進程的信號機製 3.3.2 nice, renice:調整進程的優先級 3.3.3 jobs, fg, bg:Shell中的進程控製 3.4 信號處理:與進程進行有效的溝通 3.4.1 常見的信號類型 (SIGTERM, SIGKILL, SIGINT) 3.4.2 理解信號的傳遞與處理 第四章:Linux網絡基礎:連接世界,暢通無阻 4.1 網絡配置:IP地址、子網掩碼、網關、DNS 4.1.1 ifconfig/ip:配置網絡接口 4.1.2 /etc/sysconfig/network-scripts/ (CentOS/Rocky Linux) 或 /etc/netplan/ (Ubuntu/Debian) 4.1.3 `/etc/resolv.conf`:DNS服務器配置 4.2 網絡工具:診斷與測試你的連接 4.2.1 ping:測試網絡連通性 4.2.2 traceroute/tracepath:跟蹤網絡路由 4.2.3 netstat/ss:查看網絡連接與端口狀態 4.2.4 telnet/nc:端口探測與簡單通信 4.3 SSH遠程登錄:安全高效的遠程管理 4.3.1 SSH協議的原理與加密機製 4.3.2 ssh, scp, sftp:客戶端工具的使用 4.3.3 SSH密鑰認證:告彆密碼登錄 4.4 網絡服務基礎:HTTP, DNS, DHCP的初步認識 4.4.1 Web服務器的基本工作原理 4.4.2 DNS解析過程 4.4.3 DHCP地址分配 第二部分:Linux係統服務與應用 第五章:Linux軟件包管理:高效安裝、升級與卸載 5.1 包管理器的核心理念:依賴關係管理 5.1.1 RPM (Red Hat Package Manager) 5.1.2 DEB (Debian Package) 5.2 YUM/DNF:CentOS/Rocky Linux上的自動化管理 5.2.1 安裝、升級、卸載軟件包 5.2.2 搜索軟件包與軟件包組 5.2.3 倉庫配置與管理 5.3 APT:Ubuntu/Debian上的自動化管理 5.3.1 安裝、升級、卸載軟件包 5.3.2 搜索軟件包與軟件包組 5.3.3 倉庫配置與管理 (sources.list) 5.4 源碼編譯安裝:理解軟件構建的過程 5.4.1 configure, make, make install:軟件編譯的標準流程 5.4.2 依賴庫的安裝與管理 5.4.3 管理自定義安裝的軟件 第六章:Shell腳本編程:自動化你的重復工作 6.1 Shell腳本基礎:編寫你的第一個腳本 6.1.1 Shebang (`!`) 的作用 6.1.2 變量的聲明與使用 6.1.3 輸入與輸齣重定嚮 6.2 流程控製:讓腳本更智能 6.2.1 條件判斷:if, elif, else, case 6.2.2 循環語句:for, while, until 6.3 函數與參數:提高腳本的可復用性 6.3.1 函數的定義與調用 6.3.2 位置參數 (`$1`, `$2`, `$@`, `$`) 6.3.3 特殊變量 (`$0`, `$?`, `$$`) 6.4 常用命令在腳本中的應用:sed, awk, cut, paste 6.4.1 文本處理的強大工具 6.4.2 組閤使用實現復雜任務 第七章:Linux係統服務管理:守護進程的生命周期 7.1 Systemd:現代Linux係統的服務管理器 7.1.1 Unit的概念:Service, Target, Socket等 7.1.2 systemctl 命令:啓動、停止、重啓、查看服務狀態 7.1.3 Unit文件的編寫與理解 7.2 SysVinit (傳統方式):理解其工作原理 7.2.1 Runlevel 的概念 7.2.2 `/etc/init.d/` 目錄與腳本 7.2.3 update-rc.d / chkconfig 7.3 日誌管理:追蹤係統事件,定位問題 7.3.1 syslogd/rsyslogd:日誌係統的配置 7.3.2 `/var/log/` 目錄下的常用日誌文件 7.3.3 journalctl:Systemd的日誌管理工具 第八章:Web服務器搭建與配置:部署你的網站 8.1 Apache HTTP Server:經典且強大的Web服務器 8.1.1 安裝與基本配置 8.1.2 虛擬主機:承載多個網站 8.1.3 `.htaccess` 文件:目錄級彆的配置 8.1.4 SSL/TLS 配置:開啓HTTPS加密 8.2 Nginx:高性能、輕量級的Web服務器 8.2.1 安裝與核心配置 8.2.2 反嚮代理與負載均衡 8.2.3 靜態文件服務優化 8.3 Web服務器的安全加固:防護你的站點 8.3.1 限製訪問與IP過濾 8.3.2 定期更新與安全審計 第九章:數據庫服務器部署:數據存儲的基石 9.1 MySQL/MariaDB:關係型數據庫的部署與管理 9.1.1 安裝與初始化 9.1.2 用戶與權限管理 9.1.3 數據庫創建、錶結構設計 (基礎) 9.1.4 基本SQL語句:SELECT, INSERT, UPDATE, DELETE 9.2 PostgreSQL:另一個強大的關係型數據庫 9.2.1 安裝與配置 9.2.2 用戶與權限控製 9.3 Redis:內存型鍵值數據庫的應用 9.3.1 安裝與基本操作 9.3.2 常見數據類型:String, List, Set, Hash, Sorted Set 9.3.3 應用場景:緩存、消息隊列 第十章:Linux安全實踐:構建堅不可摧的防綫 10.1 防火牆配置:iptables/firewalld 10.1.1 鏈 (Chain) 與規則 (Rule) 的理解 10.1.2 端口的開放與關閉 10.1.3 策略配置與持久化 10.2 SELinux/AppArmor:強製訪問控製 (MAC) 10.2.1 MAC與DAC (Discretionary Access Control) 的區彆 10.2.2 SELinux的模式與策略 (Enforcing, Permissive, Disabled) 10.2.3 Troubleshooting SELinux issues 10.3 SSH安全強化:多因素認證與禁止root登錄 10.3.1 SSH配置文件 (`sshd_config`) 的安全設置 10.3.2 SSH密鑰管理最佳實踐 10.4 日誌審計與入侵檢測:時刻保持警惕 10.4.1 定期審查日誌文件 10.4.2 Fail2ban:自動封禁惡意IP 第三部分:Linux係統管理進階 第十一章:性能調優與故障排查:讓係統飛起來 11.1 係統性能監控工具:深入分析瓶頸 11.1.1 iostat, sar:IO性能分析 11.1.2 mpstat:CPU性能分析 11.1.3 strace, ltrace:係統調用與庫函數跟蹤 11.2 內存管理優化:減少內存泄漏與提高效率 11.2.1 Swap分區的配置與管理 11.2.2 理解緩存與頁麵迴收 11.3 I/O性能優化:提升磁盤讀寫速度 11.3.1 文件係統選擇與掛載選項 11.3.2 RAID技術的原理與應用 (基礎) 11.4 故障排查流程:係統化解決問題 11.4.1 定義問題範圍 11.4.2 收集信息與數據 11.4.3 形成假設與驗證 11.4.4 實施解決方案與監控 第十二章:Linux容器化技術:Docker入門與實踐 12.1 容器化概念:理解與虛擬機對比 12.1.1 輕量級、隔離性、可移植性 12.2 Docker安裝與基礎命令 12.2.1 Docker Engine的安裝 12.2.2 images, containers, volumes, networks 12.3 Dockerfile:構建你的自定義鏡像 12.3.1 基礎指令:FROM, RUN, COPY, EXPOSE, CMD 12.4 Docker Compose:編排多容器應用 12.4.1 定義服務、網絡、捲 12.5 容器化應用場景:微服務、開發環境 第十三章:雲計算與Linux:將你的服務遷移到雲端 13.1 主流雲服務商簡介:AWS, Azure, GCP 13.1.1 IaaS, PaaS, SaaS 的概念 13.2 雲服務器 (ECS/EC2/VM) 的創建與管理 13.2.1 實例類型、地域、可用區 13.2.2 彈性IP與安全組 13.3 雲上網絡配置:VPC, 子網, 路由錶 13.4 雲存儲服務:對象存儲, 塊存儲 13.5 雲上的Linux應用部署與運維考量 第十四章:其他Linux工具與進階主題 14.1 版本控製係統:Git 基礎 14.1.1 本地倉庫操作:init, add, commit 14.1.2 遠程倉庫操作:clone, push, pull, fetch 14.2 文本編輯器進階:vim 高級技巧 14.2.1 宏錄製, 寄存器, 插件管理 14.3 Linux發行版深入:Arch Linux, Fedora 等的探索 14.4 係統監控與告警:Prometheus, Grafana 簡介 14.5 持續集成/持續部署 (CI/CD) 基礎概念 附錄 A. Linux常用命令速查錶 B. 疑難雜癥解答與常見問題 C. 學習資源推薦 後記:持續學習,精益求精