Linux 從入門到精通

姚偉

  • 出版商: 電子工業
  • 出版日期: 2022-09-01
  • 定價: $630
  • 售價: 8.5$536
  • 語言: 簡體中文
  • 頁數: 400
  • ISBN: 7121442752
  • ISBN-13: 9787121442759
  • 相關分類: Linux
  • 立即出貨

買這商品的人也買了...

商品描述

本書從Linux的概念說起,由淺入深地介紹如何使用Linux命令進行日常操作與管理。每章都附有實戰案例,方便回顧所學內容與生產工作中的實用技巧。讀者不但可以系統地學習Linux的基礎操作,而且能對Linux上的運維、開發有更為深入的理解。本書共10章,涵蓋的主要內容有Linux系統選擇與安裝、Linux入門命令與文件管理、Linux用戶與權限、磁盤掛載與擴展、進程管理與性能監控、網絡通信與安全等。本書內容通俗易懂,案例豐富,實用性強,特別適合Linux的入門讀者和進階讀者閱讀,也適合經常與Linux系統打交道的開發、測試、運維崗位的IT從業者閱讀。另外,本書也適合作為相關培訓機構的教材使用。

作者簡介

姚偉
神州數碼技術經理。曾任分時科技技術合夥人、科大訊飛中間件研發項目負責人、神州數碼項目經理。12年軟件開發經驗,多年Linux運維經驗,從小白一步步成長為高級工程師。

目錄大綱

第1章為什麼要學習Linux 1
1.1 Linux是什麼 1
1.2 Linux的特點與用途 3
1.3 如何學習Linux 3
1.4 小結 4

第2章安裝Linux系統與客戶端工具 6
2.1 Linux系統的選擇與下載 6
2.1.1 CentOS簡介與版本選擇 6
2.1.2 CentOS鏡像的選擇與下載 9
2.2 虛擬機安裝系統 12
2.2.1 VMware for Windows的下載與安裝 12
2.2.2 VMware for macOS的下載與安裝 13
2.2.3 在Windows系統下的虛擬機中安裝Linux系統 14
2.2.4 在macOS系統下的虛擬機中安裝Linux系統 19
2.3 物理機安裝系統 19
2.3.1 PE製作 19
2.3.2 系統安裝 22
2.3.3 密碼找回 23
2.4 雲服務器申請 25
2.4.1 阿裡雲 25
2.4.2 騰訊雲 26
2.4.3 AWS 28
2.5 客戶端工具 29
2.5.1 Xshell+Xftp 30
2.5.2 SecureCRT 32
2.5.3 macOS原生終端 33
2.5.4 FinalShell 35
2.5.5 用密鑰登錄AWS 36
2.6 系統初始化 39
2.6.1 來電自啟 39
2.6.2 系統host設置 39
2.6.3 時鐘同步NTP 40
2.6.4 關閉防火牆與開通安全組 40
2.7 小結 42

第3章Linux入門命令與文件管理 43
3.1 學習指南 43
3.1.1 Linux命令與Shell 43
3.1.2 快捷鍵 44
3.1.3 幫助命令 45
3.1.4 歷史命令 46
3.1.5 FAQ 46
3.2 文件及目錄操作 47
3.2.1 目錄切換與查看:cd、ls、ll、pwd 47
3.2.2 文件與目錄創建:touch、mkdir 48
3.2.3 複製、移動和刪除:cp、mv、rm 48
3.3 文件查看與編輯 49
3.3.1 文件查看:cat、tac 、nl 49
3.3.2 日誌查看:tail與head 51
3.3.3 文件編輯器:vi / vim 52
3.3.4 基於vi的文件查看工具:more與less 57
3.3.5 流文件編輯工具:sed 61
3.4 文件查找與統計 66
3.4.1 文件查找:find、wc、xargs 66
3.4.2 文件統計與排序:du+sort 71
3.4.3 字符查找:grep+正則表達式 73
3.4.4 文件索引查找:locate+updatedb 76
3.5 文件處理 77
3.5.1 文件亂碼處理:文件編碼、inode與dos2unix 77
3.5.2 文件比對、校驗與剪切:diff / vimdiff、md5sum、cut 80
3.5.3 其他命令:od、iconv、tr、split、paste、rev、tee、join、uniq 82
3.6 特殊字符簡析 85
3.6.1 特殊字符表 85
3.6.2 通配符 86
3.6.3 管道、重定向、標準輸入/輸出 87
3.6.4 特殊設備 90
3.6.5 單引號、轉義符、雙引號、反引號 90
3.6.6 命令執行與邏輯符 91
3.7 小結 92

第4章Linux用戶與權限 93
4.1 root與用戶管理 93
4.1.1 root與UID、GID 93
4.1.2 用戶新增:useradd 95
4.1.3 用戶修改與刪除:usermod、userdel 98
4.1.4 用戶與密碼的配置文件:/etc/passwd、/etc/shadow 99
4.1.5 密碼修改:passwd、chage 101
4.1.6 用戶的批量管理:newusers、chpasswd 103
4.2 權限切換 103
4.2.1 用戶切換:su 104
4.2.2 權限升級:sudo 105
4.2.3 su與sudo的異同 106
4.3 用戶查看 107
4.3.1 用戶查看:id、w、who、users、whoami、finger 107
4.3.2 用戶登錄日誌:last、lastb、lastlog與secure 110
4.4 文件權限 112
4.4.1 標準權限模型:777與umask 112
4.4.2 更改文件所屬:chown 116
4.4.3 更改讀寫權限:chmod 118
4.4.4 特殊權限:SUID、SGID、Sticky bit 120
4.4.5 隱藏權限與擴展文件系統:chattr、lsattr 122
4.4.6 文件訪問控制模型簡析:標準模型、PAM、ACL、SELinux 124
4.5 實戰案例 126
4.5.1 FTP搭建與賬戶賦權 127
4.5.2 批量創建賬號密碼 129
4.6 小結 131

第5章文件傳輸、會話管理與定時任務 132
5.1 文件下載與推送 132
5.1.1 文件下載:wget、curl 132
5.1.2 文件推送:scp、rsync 135
5.2 文件壓縮 136
5.2.1 官方打包:tar 136
5.2.2 其他壓縮工具:zip、unzip、7za 138
5.3 會話管理 140
5.3.1 互信加密:SSH 140
5.3.2 終端復用器:screen 144
5.4 定時任務與郵件 149
5.4.1 定時任務:crontab與crond 149
5.4.2 郵件發送:mail、mailx、mailq與postfix 150
5.5 實戰案例 153
5.5.1 7-Zip For Linux的下載、安裝與使用 153
5.5.2 定時備份FTP文件數據 155
5.6 小結 158

第6章Linux磁盤與文件系統 159
6.1 磁盤與文件系統 159
6.1.1 設備查看:df、lsblk 159
6.1.2 文件、句柄和設備標識:inode、openfiles、UUID 164
6.1.3 硬鏈接與軟連接:ln 168
6.1.4 文件系統:VFS、XFS及動態調整inode 169
6.2 磁盤掛載 172
6.2.1 硬盤與接口:HDD與SSD、IDE與SATA、SCSI、SAS 172
6.2.2 分區格式化:GPT、fdisk與mkfs 174
6.2.3 掛載與卸載:mount、umount與/etc/fstab 178
6.3 磁盤擴展 180
6.3.1 分區擴展:LVM 180
6.3.2 磁盤陣列:RAID 183
6.4 磁盤診斷 185
6.4.1 系統日誌:dmesg、journalctl 185
6.4.2 磁盤壞道檢測:badblocks、smartctl 186
6.4.3 故障模擬與磁盤自檢修復:fsck、xfs_repair 188
6.5 實戰案例 190
6.5.1 LVM創建、擴展與縮減 190
6.5.2 RAID創建、掛載、刪除與熱插拔 195
6.5.3 NFS共享磁盤掛載 201
6.5.4 磁盤使用率100%的解決方法 204
6.6 小結 204

第7章Linux進程 206
7.1 系統與內存 206
7.1.1 系統、主機與CPU:uname、hostnamectl、lscpu 206
7.1.2 內存與交換空間:free、Swap 209
7.2 進程與PID 211
7.2.1 進程、程序、PID 211
7.2.2 進程查看:ps、pgrep、pstree 213
7.2.3 進程文件查看:lsof 217
7.2.4 程序查找:pwdx、which、whereis 220
7.3 進程管理 221
7.3.1 前後台進程與免掛起:&與nohup 221
7.3.2 殺死進程:kill、killall、pkill 224
7.3.3 進程優先級:nice與renice 228
7.3.4 進程小結:進程運行與KILL信號 229
7.4 性能監控 231
7.4.1 命令監聽:watch 231
7.4.2 監測工具包Procps-ng:uptime、top、vmstat 231
7.4.3 進階工具包SYSSTAT:pidstat、mpstat、iostat、sar 238
7.5 實戰案例 248
7.5.1 熵池耗盡的解決方案 248
7.5.2 資源不足自動報警方案 249
7.6 小結 254

第8章Linux網絡與安全 255
8.1 網卡是如何管理的 255
8.1.1 手動配置網卡 255
8.1.2 網卡設置:ifconfig、ip、ifup/ifdown 256
8.1.3 網卡服務:network、NetworkManager與nmcli 261
8.1.4 網關路由:route、arp 264
8.2 域名是如何工作的 265
8.2.1 域名與DNS解析 265
8.2.2 域名篡改 267
8.2.3 根域名與公網IP地址分類 268
8.2.4 DHCP與NAT 271
8.2.5 子網掩碼與私有IP地址分類 274
8.2.6 DNS查看與修改 275
8.3 網絡探測與流量監聽 275
8.3.1 IP地址探測:ping、ICMP與fping 276
8.3.2 埠探測:telnet、netstat、nmap 277
8.3.3 路由追蹤:traceroute、tcptraceroute 279
8.3.4 流量監聽:iftop、nethogs 280
8.3.5 流量抓取與復制:tcpdump與tcpreplay 282
8.4 防火牆與安全組 284
8.4.1 安全增強防禦系統:SELinux 284
8.4.2 老牌防火牆:iptables 285
8.4.3 新型防火牆:firewalld 288
8.4.4 雲上安全組 289
8.5 簡說TCP/IP 290
8.5.1 TCP/IP與OSI網絡模型 290
8.5.2 Socket與TCP/UDP 291
8.5.3 TCP和UDP是什麼 292
8.5.4 HTTPS = HTTP+TLS/SSL 294
8.6 網絡安全的“矛”與“盾” 295
8.6.1 內網穿透與遠程控制:ToDesk、frp與其他 296
8.6.2 漏洞掃描及安全工具:OpenVAS、Nessus、Nikto、T-Sec、Aliyundun 297
8.6.3 安全防禦的“四大紀律” 298
8.6.4 三級等保的採購與建設 299
8.7 實戰案例 301
8.7.1 安全防火牆:denyhosts 301
8.7.2 搭建內網穿透服務:frp 303
8.7.3 清除挖礦病毒大作戰 308
8.8 小結 308

第9章Linux系統管理與軟件安裝 310
9.1 Linux的關機與啟動 310
9.1.1 Linux的關機、重啟與註銷 310
9.1.2 Linux啟動流程簡析 311
9.1.3 Linux運行級別與target 312
9.2 Linux系統服務systemd 313
9.2.1 為什麼CentOS 7.x放棄init取用systemd 313
9.2.2 systemd啟動流程與架構簡析 314
9.2.3 systemd Utilities工具簡析 316
9.2.4 systemd與Unit 319
9.2.5 systemd添加自定義服務 320
9.3 Linux根目錄簡析 322
9.3.1 根目錄“/”與/root 322
9.3.2 /bin與/usr/bin、/sbin與/usr/sbin 322
9.3.3 /boot 323
9.3.4 /dev 323
9.3.5 /etc 323
9.3.6 /home、/tmp 323
9.3.7 /lib、/lib64 323
9.3.8 lost+found 324
9.3.9 /media、/mnt 324
9.3.10 /opt 324
9.3.11 /proc 324
9.3.12 /run 326
9.3.13 /srv 326
9.3.14 /sys 326
9.3.15 /usr 327
9.3.16 /var 328
9.4 Linux軟件安裝 328
9.4.1 包管理器:RPM與Yum 329
9.4.2 Yum源更換與配置 336
9.4.3 安裝源碼:GCC、Make與CMake 339
9.5 實戰案例 340
9.5.1 WoL遠程網絡喚醒 340
9.5.2 Yum + repo安裝Nginx 341
9.5.3 使用源碼安裝Nginx,手動添加系統開機服務 342
9.6 小結 345

第10章快速入門Shell編程 346
10.1 Shell基礎 346
10.1.1 Shell簡述 346
10.1.2 環境配置 348
10.1.3 Shell腳本執行 353
10.1.4 Shell命令快捷鍵補充 355
10.2 Shell基本語法 356
10.2.1 變量:$、${}、$n 356
10.2.2 運算符:賦值、數值、邏輯、比較、文件測試 358
10.2.3 條件判斷:if、case 360
10.2.4 循環:for、while、until、select 362
10.2.5 函數:function 364
10.2.6 中斷循環與退出:continue、break、return、exit、$? 365
10.3 特殊命令awk 367
10.3.1 awk命令速查手冊 367
10.3.2 awk命令詳解 369
10.3.3 生產作業:awk命令解析json數據 373
10.4 Shell擴展 374
10.4.1 內置函數:read、printf、shift、eval 374
10.4.2 腳本調試:bash -x、set -x、trap 377
10.4.3 編程規範 380
10.5 實戰案例 381
10.5.1 編寫一個自己的日誌命令:logmsg 381
10.5.2 編寫一個常用的備份命令:backup 382
10.5.3 編寫一個Java項目的管理腳本:springboot-admin.sh 383
10.6 小結