跟阿銘學Linux檢視原始碼討論檢視歷史
《跟阿銘學Linux》,李世明 著,出版社: 人民郵電出版社。
人民郵電出版社,1953年10月成立,隸屬於中國工信出版傳媒集團,是工業和信息化部主管的大型專業出版社[1]。建社以來,人民郵電出版社圍繞「立足工信事業,面向現代社會,傳播科學知識,引領美好生活」的出版宗旨,已發展成為集圖書、期刊、音像電子及數字出版於一體的綜合性出版大社[2]。
內容簡介
本書是一本入門級的Linux學習教材,內容由淺入深,案例豐富,通俗易懂!書中分兩部分:前面為基礎知識,涉及安裝、登錄、文件和目錄管理、磁盤管理、Vim、壓縮和解壓縮等;後面為進階知識,包括LAMP、LNMP、NFS、FTP、Linux集群和Zabbix監控等。與上一版相比,這版不僅將虛擬機軟件由VMware 10改為VMware 14,基於CentOS 8進行了全面修訂,刪掉了LAMP環境搭建與配置,還增加了Docker等內容。
目錄
- 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 新建一個虛擬機 10
2.2 安裝Linux 操作系統 14
2.2.1 下載CentOS 鏡像文件 14
2.2.2 設置虛擬光驅 14
2.2.3 安裝CentOS 16
23 *一次親密接觸 22
2.3.1 初次使用命令行登錄 22
2.3.2 設置網絡 22
2.3.3 學會使用快捷鍵 26
2.3.4 學會查詢幫助文檔——man命令 26
2.3.5 Linux 系統目錄結構 27
2.3.6 如何正確關機、重啟 30
2.3.7 忘記root 密碼怎麼辦 30
2.3.8 學會使用救援模式 32
2.4 課後習題 35
第3 章 遠程登錄Linux 系統 36
3.1 安裝PuTTY 36
3.1.1 下載PuTTY 36
3.1.2 安裝 37
3.2 遠程登錄 37
3.2.1 使用密碼直接登錄 37
3.2.2 使用密鑰認證 38
3.3 兩台Linux 相互登錄 41
3.3.1 克隆CentOS 41
3 3.2 使用密碼登錄 42
3.3.3 使用密鑰登錄 43
3.4 課後習題 45
第4 章 Linux 文件和目錄管理 46
4.1 *對路徑和相對路徑 46
4.1.1 命令cd 46
4.1.2 命令mkdir 47
4.1.3 命令rmdir 48
4.1.4 命令rm 48
42 環境變量PATH 49
4.2.1 命令cp 50
4.2.2 命令mv 51
4.3 幾個與文檔相關的命令 52
4.3.1 命令cat 52
4.3.2 命令tac 53
4.3.3 命令more 53
4.3.4 命令less 53
4.3.5 命令head 53
4.3.6 命令tail 54
4.4 文件的所有者和所屬組 54
4.5 Linux 文件屬性 55
4.6 更改文件的權限 56
4.6.1 命令chgrp 56
4.6.2 命令chown 57
4.6.3 命令chmod 57
4.6.4 命令umask 59
4.6.5 修改文件的特殊屬性 60
4.7 在Linux 下搜索文件 62
4.7.1 用which 命令查找可執行文件的*對路徑 62
4.7.2 用whereis 命令查找文件 62
4.7.3 用locate 命令查找文件 63
4.7.4 使用find 搜索文件 63
4.8 Linux 文件系統簡介 65
4.9 Linux 文件類型 66
4.9.1 常見文件類型 66
4.9.2 Linux 文件後綴名 66
4.9.3 Linux 的鏈接文件 66
4.10 課後習題 68
第5 章 Linux 系統用戶與用戶組管理 70
5.1 認識 /etc/passwd 和 /etc/shadow 70
5.1.1 解說/etc/passwd 71
5.1.2 解說/etc/shadow 71
5.2 用戶和用戶組管理 72
5.2.1 新增組的命令groupadd 72
5.2.2 刪除組的命令groupdel 73
5.2.3 增加用戶的命令useradd 73
5.2.4 刪除用戶的命令userdel 74
5.3 用戶密碼管理 74
5.3.1 命令passwd 74
5.3.2 命令mkpasswd 75
5.4 用戶身份切換 75
5.4.1 命令su 76
5.4.2 命令sudo 76
5.4.3 不允許root 遠程登錄Linux 78
5.5 課後習題 78
第6 章 Linux 磁盤管理 80
6.1 查看磁盤或者目錄的容量 80
6.1.1 命令df 80
6.1.2 命令du 81
6.2 磁盤的分區和格式化 83
6.2.1 增加虛擬磁盤 83
6.2.2 命令fdisk 84
6.3 格式化磁盤分區 92
6.3.1 命令mke2fs、mkfsext2、mkfsext3、mkfsext4 和mkfsxfs 92
6.3.2 命令e2label 95
6.4 掛載/卸載磁盤 95
6.4.1 命令mount 95
6.4.2 /etc/fstab 配置文件 97
6.4.3 命令blkid 99
6.4.4 命令umount 100
6.5 建立一個swap 文件增加虛擬內存 101
6.6 課後習題 101
第7 章 文本編輯工具Vim 103
7.1 Vim 的3 種常用模式 103
7.1.1 一般模式 103
7.1.2 編輯模式 104
7.1.3 命令模式 105
7.2 Vim 實踐 105
7.3 課後習題 107
第8 章 文檔的壓縮與打包 108
8.1 gzip 壓縮工具 108
8.2 bzip2 壓縮工具 109
8.3 xz 壓縮工具 109
8.4 tar 打包工具 110
8.4.1 打包的同時使用gzip 壓縮 112
8.4.2 打包的同時使用bzip2 壓縮 112
8.5 使用zip 壓縮 113
8.6 zcat、bzcat 命令的使用 114
8.7 課後習題 114
第9 章 安裝RPM 包或源碼包 115
9.1 RPM 工具 115
9.1.1 安裝RPM 包 116
9.1.2 升級RPM 包 116
9.1.3 卸載RPM 包 116
9.1.4 查詢一個包是否已安裝 117
9.1.5 得到一個已安裝的RPM包的相關信息 117
9.1.6 列出一個RPM 包的安裝文件 118
9.1.7 列出某個文件屬於哪個RPM包 119
9.2 yum 工具 119
9.2.1 列出所有可用的RPM 包 119
9.2.2 搜索RPM 包 120
9.2.3 安裝RPM 包 120
9.2.4 卸載RPM 包 121
9.2.5 升級RPM 包 122
9.2.6 更改yum 倉庫為國內鏡像站 122
9.2.7 利用yum 工具下載RPM 包 123
9.3 安裝源碼包 124
9.3.1 下載源碼包 124
9.3.2 解壓源碼包 124
9.3.3 配置相關的選項並生成Makefile 125
9.3.4 進行編譯 126
9.3.5 安裝 126
9.4 課後習題 127
- 10 章 shell 基礎知識 128
10.1 什麼是shell 128
10.1.1 記錄命令歷史 128
10.1.2 命令和文件名補全 129
10.1.3 別名 129
10.1.4 通配符 130
10.1.5 輸入/輸出重定向 130
10.1.6 管道符 130
10.1.7 作業控制 131
10.2 變量 132
10.2.1 命令env 132
10.2.2 命令set 134
10.3 系統環境變量與個人環境變量的配置文件 137
10.4 Linux shell 中的特殊符號 137
10.41 *代表零個或多個任意字符 137
10.4.2 只代表一個任意的字符 137
10.4.3 注釋符號# 138
10.4.4 脫義字符\ 138
10.4.5 再說管道符| 138
10.4.6 特殊符號$ 142
10.4.7 特殊符號; 142
10.4.8 特殊符號~ 143
10.4.9 特殊符號& 143
10.4.10 重定向符號>、>>、2>和2>> 143
10.4.11 中括號[] 143
10.4.12 特殊符號&&和|| 144
10.5 課後習題 144
- 11 章 正則表達式 146
11.1 grep/egrep 工具的使用 146
11.1.1 過濾出帶有某個關鍵詞的行,並輸出行號 147
11.1.2 過濾出不帶有某個關鍵詞的行,並輸出行號 147
11.1.3 過濾出所有包含數字的行 148
11.1.4 過濾出所有不包含數字的行 148
11.1.5 過濾掉所有以#開頭的行 148
11.1.6 過濾出任意一個字符和重複字符 149
11.1.7 指定要過濾出的字符出現次數 150
11.1.8 過濾出一個或多個指定的字符 150
11.1.9 過濾出零個或一個指定的字符 151
11.1.10 過濾出字符串1 或者字符串2 151
11.1.11 egrep 中()的應用 151
11.2 sed 工具的使用 152
11.2.1 打印某行 152
11.2.2 打印包含某個字符串的行 152
11.2.3 刪除某些行 153
11.2.4 替換字符或者字符串 153
11.2.5 調換兩個字符串的位置 154
11.2.6 直接修改文件的內容 155
11.2.7 sed 練習題 155
11.3 awk 工具的使用 156
11.3.1 截取文檔中的某個段 157
11.3.2 匹配字符或者字符串 157
11.3.3 條件操作符 158
11.3.4 awk 的內置變量 159
11.3.5 awk 中的數學運算 160
11.3.6 awk 練習題 161
11,4 課後習題 162
- 12 章 shell 腳本 163
12.1 什麼是shell 腳本 163
12.1.1 shell 腳本的創建和執行 164
12.1.2 命令date 165
12.2 shell 腳本中的變量 165
12.2.1 數學運算 166
12.2.2 和用戶交互 166
12.2.3 shell 腳本預設變量 167
12.3 shell 腳本中的邏輯判斷 168
12.3.1 不帶else 168
12.3.2 帶有else 168
12.3.3 帶有elif 169
12.3.4 和文件相關的判斷 170
12.3.5 case 邏輯判斷 171
12.4 shell 腳本中的循環 172
12.4.1 for 循環 172
12.4.2 while 循環 173
12.5 shell 腳本中的函數 173
12.6 shell 腳本中的中斷和繼續 174
12.6.1 break 174
12.6.2 continue 175
12.6.3 exit 175
12.7 shell 腳本練習題 176
12.8 課後習題 178
- 13 章 Linux 系統管理技巧 179
13.1 監控系統的狀態 179
13.1.1 使用w 命令查看當前系統的負載 179
13.1.2 用vmstat 命令監控系統的狀態 182
13.1.3 用top 命令顯示進程所占的系統資源 183
13.1.4 用sar 命令監控系統狀態 184
13.1.5 用nload 命令查看網卡流量 186
13.1.6 用free 命令查看內存使用狀況 186
13.1.7 用ps 命令查看系統進程 187
13.1.8 用netstat 命令查看網絡狀況 189
13.2 抓包工具 191
13.2.1 tcpdump 工具 191
13.2.2 wireshark 工具 192
13.3 Linux 網絡相關 192
13.3.1 用ifconfig 命令查看網卡IP 193
13.3.2 給一個網卡設定多個IP 193
13.3.3 查看網卡連接狀態 194
13.3.4 更改主機名 195
13.3.5 設置DNS 195
13.4 Linux 的防火牆 196
13.4.1 SELinux 196
13.4.2 netfilter 197
13.4.3 firewalld 204
13.5 Linux 系統的任務計劃 210
13.5.1 命令crontab 210
13.5.2 cron 練習題 211
13.6 Linux 系統服務管理 212
13.6.1 chkconfig 服務管理工具 212
13.6.2 systemd 服務管理 213
13.7 Linux 下的數據備份工具rsync 216
13.7.1 rsync 的命令格式 217
13.7.2 rsync 常用選項 217
13.7.3 rsync 應用實例 222
13.8 Linux 系統日誌 227
13.8.1 /var/log/messages 228
13.8.2 dmesg 229
13.8.3 安全日誌 229
13.9 xargs 與exec 230
13.9.1 xargs 應用 230
13.9.2 exec 應用 230
13.10 screen 工具介紹 231
13.10.1 使用nohup 231
13.10.2 screen 工具的使用 231
13.11 課後習題 232
- 14 章 LNMP 環境配置 234
14.1 安裝MySQL 234
14.1.1 下載軟件包 234
14.1.2 初始化 235
14.1.3 MySQL 配置文件 236
14.2 安裝PHP 236
14.3 安裝Nginx 239
14.4 Nginx 配置 242
14.4.1 默認虛擬主機 242
14.4.2 用戶認證 244
14.4.3 域名或鏈接重定向 245
14.4.4 Nginx 的訪問日誌 247
14.4.5 配置靜態文件不記錄日誌並添加過期時間 248
14.4.6 Nginx 防盜鏈 250
14.4.7 訪問控制 251
14.4.8 Nignx 解析PHP 253
14.4.9 Nginx 代理 253
14.4.10 Nignx 配置SSL 257
14.5 php-fpm 配置 261
14.5.1 php-fpm 的pool 261
14.5.2 php-fpm 的慢執行日誌 262
14.5.3 php-fpm 定義open_basedir 263
14.5.4 php-fpm 進程管理 263
14.6 課後習題 264
- 15 章 常用MySQL 操作 265
15.1 更改MySQL 數據庫root 的密碼 265
15.2 連接數據庫 268
15.3 MySQL 基本操作的常用命令 268
15.3.1 查詢當前庫 268
15.3.2 查詢某個庫的表 269
15.3.3 查看某個表的全部字段 270
15.3.4 查看當前是哪個用戶 271
15.3.5 查看當前所使用的數據庫 271
15.3.6 創建一個新庫 272
15.3.7 創建一個新表 272
15.3.8 查看當前數據庫的版本 272
15.3.9 查看MySQL 的當前狀態 272
15.3.10 查看MySQL 的參數 273
15.3.11 修改MySQL 的參數 273
15.3.12 查看當前MySQL 服務器的隊列 273
15.3.13 創建一個普通用戶並授權 274
15.4 常用的SQL 語句 274
15.4.1 查詢語句 274
15.4.2 插入一行 275
15.4.3 更改表的某一行 275
15.4.4 清空某個表的數據 275
15.4.5 刪除表 276
15.4.6 刪除數據庫 276
15.5 MySQL 數據庫的備份與恢復 276
15.5.1 MySQL 備份 276
15.5.2 MySQL 的恢復 276
15.6 課後習題 276
- 16 章 NFS 服務配置 278
16.1 服務端配置NFS 278
16.2 客戶端掛載NFS 279
16.3 命令exportfs 280
16.4 課後習題 281
- 17 章 配置FTP 服務 282
17.1 使用vsftpd 搭建FTP 服務 282
17.1.1 安裝vsftpd 282
17.1.2 建立賬號 282
17.1.3 創建和用戶對應的配置文件 283
17.1.4 修改全局配置文件/etc/vsftpd/vsftpdconf 284
17.2 安裝配置pure-ftpd 284
17.2.1 安裝pure-ftpd 284
17.2.2 配置pure-ftpd 285
17.2.3 建立賬號 285
17.2.4 測試pure-ftpd 286
17.3 課後習題 286
- 18 章 配置Tomcat 287
18.1 安裝Tomcat 287
18.1.1 安裝JDK 287
18.1.2 安裝Tomcat 288
18.2 配置Tomcat 290
18.2.1 配置Tomcat 服務的訪問端口 290
18.2.2 Tomca 的虛擬主機 290
18.3 測試Tomcat 解析JSP 292
18.4 Tomcat 日誌 293
18.5 Tomcat 連接MySQL 293
- 19 章 MySQL Replication 配置 296
19.1 配置MySQL 服務 296
19.2 配置Replication 297
19.2.1 設置master(主) 298
19.2.2 設置slave(從) 299
19.3 測試主從 300
19.4 課後習題 301
- 20 章 Linux 集群 302
20.1 搭建高可用集群 302
20.1.1 keepalived 的工作原理 303
20.1.2 安裝keepalived 303
20.1.3 keepalived+Nginx 實現 Web 高可用 303
20.2 搭建負載均衡集群 309
20.2.1 介紹LVS 309
20.2.2 LVS 的調度算法 313
20.2.3 使用keepalived+LVS DR 模式實現負載均衡 315
20.2.4 使用Nginx 實現負載均衡 317
20.3 課後習題 319
- 21 章 配置監控服務器 320
21.1 Zabbix 監控介紹 320
21.1.1 Zabbix 組件 321
21.1.2 Zabbix 架構 321
21.2 Zabbix 監控安裝和部署 322
21.2.1 用yum 安裝Zabbix 322
21.2.2 配置MySQL 323
21.2.3 配置Web 界面 324
21.2.4 部署Zabbix 客戶端 327
21.3 Zabbix 配置和使用 328
21.3.1 忘記Admin 密碼 328
21.3.2 添加主機 328
21.3.3 添加模板 330
21.3.4 主機鏈接模板 332
21.3.5 圖形中的中文亂碼 332
21.3.6 添加自定義監控項目 333
21.3.7 配置告警 335
- 22 章 Docker 容器 338
22.1 在CentOS 8 上安裝Docker 338
22.1.1 下載Docker 338
22.1.2 在CentOS 8 上安裝 Docker 339
22.2 Docker 鏡像 340
22.3 容器 342
22.4 創建鏡像 345
22.4.1 通過容器創建鏡像 345
22.4.2 使用模板創建鏡像 345
22.4.3 使用Dockerfile 創建鏡像 346
22.4.4 Dockerfile 實踐 349
22.5 Docker 私人倉庫 350
22.5.1 部署harbor 前的準備工作 351
22.5.2 部署harbor 351
22.5.3 使用harbor 352
參考文獻
- ↑ 我國出版社的等級劃分和分類標準,知網出書,2021-03-01
- ↑ 人民郵電出版社簡介,人民郵電出版社