3dwoo大學簡體電腦書店
Linux實戰
( 簡體 字)
作者:作者:[美] 戴維·克林頓(David Clinton) 著類別:1. -> 作業系統 -> Linux
出版社:機械工業出版社Linux實戰 3dWoo書號: 51398
詢問書籍請說出此書號!
有庫存
NT售價: 545
出版日:7/1/2019
頁數:330
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787111627043 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
譯者序
前言
第1章 歡迎使用Linux1
1.1 是什么讓Linux與其他操作系統不同2
1.2 基本的實踐技能3
1.2.1 Linux文件系統4
1.2.2 探索:Linux導航工具5
1.2.3 完成任務:Linux文件管理工具9
1.2.4 鍵盤技巧13
1.2.5 偽文件系統13
1.2.6 向他們展示誰才是老大:sudo14
1.3 獲取幫助15
1.3.1 man文件15
1.3.2 info命令16
1.3.3 互聯網17
1.4 小結18
第2章 Linux虛擬化:構建Linux工作環境21
2.1 什么是虛擬化22
2.2 使用VirtualBox25
2.2.1 使用Linux包管理器25
2.2.2 定義虛擬機32
2.2.3 安裝操作系統35
2.2.4 克隆和共享VirtualBox虛擬機38
2.3 使用Linux容器40
2.3.1 LXC入門40
2.3.2 創建第一個容器41
2.4 小結44
第3章 遠程連接:安全訪問聯網的計算機48
3.1 加密的重要性48
3.2 OpenSSH入門49
3.3 使用SSH登錄一臺遠程服務器52
3.4 免密碼SSH訪問53
3.4.1 生成新的密鑰對54
3.4.2 在網絡上復制公鑰55
3.4.3 使用多個加密密鑰57
3.5 使用SCP安全地拷貝文件57
3.6 使用SSH連接上的遠程圖形程序58
3.7 Linux進程管理59
3.7.1 用ps命令查看進程60
3.7.2 使用systemd62
3.8 小結63
第4章 歸檔管理:備份或拷貝整個文件系統66
4.1 為什么要歸檔66
4.1.1 壓縮67
4.1.2 歸檔文件:一些重要注意事項68
4.2 將什么歸檔69
4.3 備份到何處71
4.4 使用tar命令歸檔文件和文件系統71
4.4.1 幾個簡單的歸檔和壓縮示例72
4.4.2 流式傳輸文件系統的歸檔文件73
4.4.3 使用find命令聚合文件75
4.4.4 保護權限與所有權并展開歸檔文件76
4.5 使用dd命令歸檔分區80
4.5.1 dd操作80
4.5.2 使用dd擦除硬盤81
4.6 使用rsync命令同步歸檔文件81
4.7 規劃注意事項83
4.8 小結84
第5章 自動化管理:自動異地備份的配置87
5.1 用Bash編寫腳本88
5.1.1 備份系統文件的腳本示例88
5.1.2 用于更改文件名的示例腳本92
5.2 將數據備份至AWS S393
5.2.1 安裝AWS命令行接口94
5.2.2 配置你的AWS賬戶94
5.2.3 建立你的第一個bucket96
5.3 使用cron調度定期備份96
5.4 使用anacron預定非正常備份99
5.5 利用系統計時器設定常規備份100
5.6 小結102
第6章 應急工具:構建一個系統恢復設備105
6.1 在恢復/救援模式下工作106
6.1.1 GRUB引導加載程序107
6.1.2 在Ubuntu環境下使用恢復模式108
6.1.3 在CentOS下使用救援模式108
6.1.4 找到命令行救援工具109
6.2 創建一個原生系統引導恢復設備110
6.2.1 系統救援映像110
6.2.2 將原生系統引導映像寫入USB驅動112
6.3 讓你的原生系統引導設備運行115
6.3.1 檢測系統存儲區115
6.3.2 受損的分區117
6.3.3 從損壞的文件系統中恢復文件119
6.4 密碼恢復:使用chroot安裝文件系統120
6.5 小結122
第7章 Web服務器:建立MediaWiki服務器125
7.1 建立LAMP服務器126
7.2 手動設置Apache Web服務器127
7.2.1 在Ubuntu上安裝Apache Web服務器127
7.2.2 填充你的網站文檔root128
7.3 安裝SQL數據庫129
7.3.1 強化SQL131
7.3.2 SQL管理131
7.4 安裝PHP134
7.4.1 在Ubuntu中安裝PHP134
7.4.2 測試你的PHP安裝134
7.5 安裝和配置MediaWiki135
7.5.1 缺少擴展的故障排除136
7.5.2 將MediaWiki連接到數據庫138
7.6 在CentOS上安裝Apache Web服務器140
7.6.1 了解網絡端口141
7.6.2 網絡流量控制142
7.6.3 在CentOS上安裝MariaDB142
7.6.4 在CentOS上安裝PHP143
7.7 小結145
第8章 網絡文件共享:構建Nextcloud文件共享服務器148
8.1 企業文件共享和Nextcloud149
8.2 使用snaps安裝Nextcloud149
8.3 手動安裝Nextcloud152
8.3.1 硬件預備知識152
8.3.2 建立LAMP服務器153
8.3.3 配置Apache154
8.3.4 下載和解壓縮Nextcloud156
8.4 Nextcloud管理158
8.5 將AWS S3作為Nextcloud的主存儲介質161
8.6 小結163
第9章 保護Web服務器166
9.1 顯而易見的事情167
9.2 控制網絡訪問168
9.2.1 配置防火墻168
9.2.2 使用非標準端口175
9.3 加密傳輸中的數據177
9.3.1 準備你的網站域178
9.3.2 用Let抯 Encrypt生成證書179
9.4 強化認證過程180
9.4.1 使用SELinux控制文件系統對象181
9.4.2 安裝并激活SELinux182
9.4.3 應用SELinux策略184
9.4.4 系統組與最少特權原則185
9.4.5 隔離容器中的進程187
9.4.6 掃描危險的用戶ID值187
9.5 審計系統資源188
9.5.1 掃描打開的端口188
9.5.2 掃描激活的服務189
9.5.3 搜索已安裝的軟件190
9.6 小結190
第10章 保護網絡連接:創建VPN或DMZ194
10.1 構建OpenVPN隧道195
10.1.1 配置OpenVPN服務器196
10.1.2 配置OpenVPN客戶端202
10.1.3 測試你的VPN203
10.2 構建抗入侵網絡205
10.2.1 非軍事區205
10.2.2 使用iptables207
10.2.3 使用iptables創建DMZ208
10.2.4 使用shorewall創建DMZ210
10.3 為基礎設施測試構建虛擬網絡213
10.4 小結215
第11章 系統監控:使用日志文件218
11.1 使用系統日志219
11.1.1 使用journald記錄日志220
11.1.2 使用syslogd記錄日志222
11.2 管理日志文件224
11.2.1 journald 方法224
11.2.2 syslogd方法224
11.3 處理大文件226
11.3.1 使用grep226
11.3.2 使用awk227
11.3.3 使用sed228
11.4 使用入侵檢測進行監控229
11.4.1 搭建郵件服務器229
11.4.2 安裝Tripwire230
11.4.3 配置Tripwire232
11.4.4 生成Tripwire測試報告235
11.5 小結235
第12章 在私有網絡上共享數據239
12.1 通過網絡文件系統共享文件240
12.1.1 設置NFS服務器241
12.1.2 建立客戶端242
12.1.3 在引導時掛載NFS共享243
12.1.4 NFS安全性245
12.2 使用Samba與Windows用戶共享文件247
12.2.1 測試你的Samba配置248
12.2.2 從Windows訪問Samba服務器249
12.3 使用符號鏈接與自己共享文件250
12.4 小結251
第13章 解決系統性能問題255
13.1 CPU負載問題256
13.1.1 測量CPU負載256
13.1.2 管理CPU負載257
13.1.3 制造麻煩(模擬CPU負載)260
13.2 內存問題260
13.2.1 評估內存狀態260
13.2.2 評估交換狀態261
13.3 存儲可用性問題261
13.3.1 索引節點的限制262
13.3.2 解決方案264
13.4 網絡負載問題265
13.4.1 測量帶寬265
13.4.2 解決方案266
13.4.3 與tc形成網絡流量267
13.5 監控工具268
13.5.1 收集監測數據268
13.5.2 將數據進行可視化269
13.6 小結270
第14章 排除網絡故障274
14.1 理解TCP/IP尋址275
14.1.1 什么是NAT尋址275
14.1.2 使用NAT尋址275
14.2 建立網絡連接278
14.3 排除傳出連通性故障278
14.3.1 跟蹤網絡狀態280
14.3.2 分配IP地址281
14.3.3 配置DNS服務284
14.3.4 管道286
14.4 排除傳入連通性故障286
14.4.1 內部連通性掃描:netstat 287
14.4.2 外部連通性掃描:netcat287
14.5 小結288
第15章 排除外圍設備故障292
15.1 識別連接的設備292
15.2 用Linux內核模塊管理外設294
15.2.1 查找內核模塊295
15.2.2 手動加載內核模塊297
15.3 引導時手動管理內核參數298
15.3.1 引導時傳遞參數298
15.3.2 通過文件系統傳遞參數299
15.4 管理打印機300
15.4.1 lp基礎301
15.4.2 使用CUPS管理打印機301
15.5 小結303
第16章 DevOps工具:使用Ansible部署一個腳本化的服務器環境305
16.1 部署協調器可以為你做什么306
16.2 Ansible:安裝和設置308
16.2.1 設置對宿主機的無密碼訪問309
16.2.2 組織Ansible的宿主機309
16.2.3 測試連接性310
16.3 認證311
16.4 Ansible playbook312
16.4.1 編寫一個簡單的playbook313
16.4.2 創建多層、角色驅動的playbook314
16.4.3 用Ansible管理密碼316
16.5 小結317
總結320
附錄 每章命令行回顧324
如果不親自動手實踐,你就學不到任何知識,Linux也不例外。所有認真的用戶,包括開發人員、管理人員以及DevOps專業人員,都需要具備諸如保護文件、文件夾以及服務器、安裝補丁與應用以及網絡管理等技能。通過學習本書中的實踐教程,你就可以卷起袖子,一個項目接一個項目地進行學習。

本書中共有12個實際項目,包括自動備份與恢復系統、建立一個私有的Dtropbox風格的文件云以及構建你自己的MediaWiki服務器等。當你開展諸如虛擬化、災難恢復、安全、備份、DevOps以及系統故障診斷等核心實踐時,你將會接觸到一些有趣的例子。每章都以回顧主要名詞、安全最佳實踐、命令行以及習題結束。



本書主要內容

·構建一個安全的Linux環境

·管理安全遠程連接

·構建系統恢復設備

·對系統打補丁以及升級

不需要之前有Linux管理經驗。
不論你在IT領域或者編程世界中從事什么工作或者已經從事了多久,如果你不學習新東西,就會遇到新問題。這不僅僅是因為平臺和范例在持續發生變化,因為新的業務需求需要新的思想,或者因為那些不懷好意的家伙正在不斷想出新的辦法來攻擊你的服務器。原因遠遠不只這些。停止學習的代價你根本承擔不起。關鍵是要找到一種方法來學習高優先級的技能,而不是守著經驗兜圈子。

我的意圖和期望在于,通過閱讀本書,哪怕是只讀了一章,你也能有足夠的信心去承擔具有挑戰性和創造性的工作,也就是那些你之前沒有考慮過的事情。如果能一直堅持讀到最后,你將學會使用那些支持虛擬化、災難恢復、基礎設施安全、數據備份、Web服務器、DevOps以及排除系統故障等關鍵和流行的技術。

但為什么使用Linux呢?因為Linux支持大部分的互聯網、科學研究以及商業運營—實際上,支持世界上大部分的服務器。那些服務器需要被聰明且接受過良好訓練的人員有效地進行配置、啟動、保障和管理。聰明是你的天賦,而我能做的是幫助你得到良好的訓練。

不確信自己是否擁有足夠的Linux知識來開始這樣一個雄心勃勃的計劃嗎?第1章將很快回答這個問題。之后,請系好你的安全帶并準備好面對一段嚴肅的學習旅程吧。

致謝

撰寫一本書時,必須仔細考慮方方面面的情況,否則就不可能度過漫長且時而令人受盡折磨的寫作時光并完成寫作。就本書來說,如同我寫作《Learn Amazon Web Services in a Month of Lunches》時一樣,完成這項工作需要Manning團隊每個環節的工作人員的才華和奉獻精神。

再一次說明,Frances Lefkowitz作為一名策劃編輯,為每一章設立了清晰的定位和目標,堅持不懈地讓我專注其中并走上正軌。Reka Horvath和John Guthrie耐心地測試了本書中的所有項目并在此過程中給出了有價值的操作建議。文字編輯Frances Buran似乎從未遇到過她能認可的副詞,至少在我這里如此。但是,目前的書中,字里行間的準確性和優雅度清楚地說明了她的工作質量。

作為項目主管,Deirdre Hiam有效地指導我們走完最后一英里,并成功地讓各個部分同步運轉。本書的每一位同行評審人員也都做出了重要貢獻。他們可能沒有意識到,但是他們所有的寶貴建議都被仔細地分析和權衡,而且,只要可能,就都會被采納。因此,非常感謝Angelo Costo、Christopher Phillips、Dario Victor Duran、Flayol Frederic、Foster Haines、George L. Gaines、Gustavo Patino、Javier Collado、Jens Christian B. Madsen、Jonas Medina de los Reyes、Maciej Jurkowski、Mayer Patil、Mohsen Mostafa Jokar和Tim Kane。

相較Linux管理技能而言,本書的內容更為豐富。要想成為一名成功的管理員,面對自己負責的服務器和系統,應當具備更強的責任感。我非常幸運能在擔任Linux系統管理員的職業生涯之初,就從一位偉大的導師那里受益良多。Peter Fedorow對良好運營的細節以及全局大勢的關注讓他成為一名特別高效的管理員。他把我帶進Linux虛擬化的世界,甚至沒等那些容器冷卻下來,它們就把我吸引住了。雖然一切都說完了、做完了,但毋庸置疑,Peter對我的影響力依然還在。

最后,如果沒有我的妻子愉快的參與和幫助,我的任何專業(或私人)項目都不會順利完成。我們充分分擔著這項艱苦的工作,但成功主要歸功于她。

關于本書

你正在期望學習管理Linux計算機嗎?這是一個很好的選擇。雖然Linux常常駐留于消費者的桌面計算機上,但它同時也是服務器領域的絕對主宰,特別是虛擬服務器和云服務器。鑒于現在大多數嚴格的服務器管理都是遠程實施的,通過某個這樣或那樣的GUI進行工作只會增加無謂的開銷。如果你打算管理當前引人關注的服務器和網絡體系架構,你將不得不圍繞Linux的命令行展開學習。

一個好消息是,核心Linux命令集可以實現跨地域和跨公司的運行,你可以僅關注計算機與業務相交的那些地方。一個更好的消息是,相對而言,Linux技能具有持久性。因為它是一個特別成熟和穩定的操作系統,25年前使用的大多數工具至今仍然在使用,而且,當今使用的大量工具在25年后也將可能繼續發揮作用。換句話說,學習Linux將是一生的投資。

但是你非常繁忙,工作堆積如山。好吧,我不能保證掌握Linux與學會系鞋帶一樣簡單。但是我可以幫助你像激光一樣進行聚焦,從而將那些不需要的東西都扔到公路上去,讓它們窒息在你開車駛過后留下的尾氣中(當然,得假設你駕駛的不是一輛特斯拉,因為特斯拉是純電動汽車)。

我將如何實現這一點呢?本書不采用技術培訓的講授方式。也就是說,雖然其他的書籍、課程及在線資源都圍繞常規主題來組織內容(好了,孩子們,拿出你們的尺和筆,今天我們將學習Linux文件系統),但我卻將基于現實生活中的一組項目來進行講授。

例如,我本可以基于Linux文件系統構建完整的一章(或兩章)。但本書并未按照這種方式處理,相反,你將學習如何構建企業文件服務器、系統恢復盤以及用來復制關鍵數據歸檔文件的腳本等。在這個過程中,你將會順帶學習文件系統的知識,這是本書提供的免費紅利。

請不要認為我會覆蓋Linux管理的所有工具。那是不可能的,毫不夸張地說,這樣的工具有成千上萬個。但也不用擔心。本書將涵蓋Linux管理員職業生涯早期所需掌握的核心技能,并且只有當實際的關鍵項目需要某些技能時,才會做有針對性的介紹。讀完本書后,你能學到的將比基于傳統資源所能學到的更多。你將學會如何掌控十幾個主要的管理項目,而且能夠輕松地處理更多的項目。

現在你有所了解了嗎?我想是的。

讀者對象

本書的目的是讓你獲得一系列可靠的Linux管理技能。也許你是一位開發者,更希望直接在駐留應用程序的服務器環境工作。或者,也許你已經準備好在服務器管理或DevOps領域開展工作。不論怎樣,你就是我們中的一員。

你應該擁有什么基礎知識呢?你至少應該能輕松地使用文件、網絡及現代操作系統資源來進行工作。系統管理、網絡管理與編程語言方面的經驗肯定沒有壞處,但不是必需的。最為重要的是,你應該不畏懼探索新的環境,并有試用新工具的熱情。另一件事情是,期望你知道如何進行簡單、直接的Linux操作系統的安裝。

內容組織

這里簡要給出本書的組織方式。除了第1章之外,本書的每一章都包括一個或兩個實際項目。鑒于第1章的內容主要用來填補你的Linux知識體系中可能存在的基礎知識空白,因此其組織形式與其他章節有所不同。不需要這些基礎知識嗎?我敢肯定你在第2章就能找到很多有趣的新玩具。

伴隨本書中的這些項目,我還將介紹你需要掌握的技能和工具。另外,每章中的項目通常都是基于之前章節所學習的技能來構建的。為了清楚地表述我的意思,這里給出一個非常完整的列表,其中分章列出了你將在本書中碰到的技能范疇及工具。

章  節 技 能 范 疇 工  具

第1章 Shell、分區及文件系統 Bash、man

第2章 虛擬化、文件系統 VirtualBox、LXC、apt、yum/dnf

第3章 安全性、遠程連接 ssh、scp、systemctl、ps、grep

第4章 分區、文件系統及文本流 tar、dd、redirects、rsync、locate、split、chmod、chown

第5章 腳本、系統進程管理與安全性 腳本、cron、anacron、systemd 定時器

第6章 分區、文件系統及設備管理 parted、GRUB、mount、chroot

第7章 數據庫、網絡、包管理 PHP、MySQL(MariaDB)、Apache Web服務器、包依賴性

第8章 包管理、網絡及安全性 snapd、文件系統、加密

第9章 網絡、安全性、系統監控 Apache、iptables、/etc/group、SELinux、apt、yum/dnf、chmod、chown、Let抯 Encrypt

第10章 網絡與安全性 firewalls、ssh、Apache、OpenVPN、sysctl、easy-rsa

第11章 系統監控、文本流及安全性 grep、sed、journalctl、rsyslogd、/var/log/、Tripwire

第12章 網絡、分區及文件系統 nfs、smb、ln、/etc/fstab

第13章 系統監控、系統進程管理與網絡 top、free、nice、nmon、tc、iftop、df、kill、killall、uptime

第14章 網絡 ip、dhclient、dmesg、ping、nmap、traceroute、netstat、netcat (nc)

第15章 設備管理 lshw、lspci、lsusb、, modprobe、CUPS

第16章 腳本、虛擬化 Ansible、YAML、apt



關于代碼

本書中,代碼清單和普通文本行中包括大量的源代碼示例。在這兩種情況下,源代碼都被設置為代碼體,以區別于常規的文本內容。

很多情況下,我調整了原有源代碼的格式,增加了換行符并重置了縮進符以適應可用的頁面空間。在極少數情況下這種方法還不夠用,代碼中還會包括續行符標記()。另外,當在文字中描述一段源代碼時,通常會從清單中移除該段代碼的注釋。很多清單中都有代碼注釋,以突出一些重要的概念。

Linux發行版本

當前在有效維護的Linux發行版本有很多。對于所有Linux發行版本而言,大多數的基礎都是相同的,但總有一些版本是能夠在“這里”運行而不能夠在“那里”運行的。出于實踐性的目的,我將主要聚焦于兩個版本:Ubuntu和CentOS。為什么是這兩個版本呢?因為這兩個版本代表了不同的版本系列。Ubuntu與Debian、Mint、Kali Linux及其他版本是同源的,而CentOS則與紅帽(Red Hat)企業Linux和Fedora同源。

這并不是說我不重視Arch Linux、SUSE以及Gentoo等其他發行版本,或者說你在本書中學到的東西對在其他版本的環境中開展工作沒有幫助。但是,對Ubuntu和CentOS的完全覆蓋意味著抓住了Linux餡餅中最大的那一塊,我僅使用這兩個版本就可以達到這個目標。

本書的論壇

歡迎訪問Manning出版公司運營的網絡論壇,在該論壇中你可以對本書進行評論、提出技術問題并獲得來自作者和其他用戶的幫助等。你可以通過鏈接https://forums.manning.com/forums/linux-in-action訪問該論壇。你也可以通過鏈接https://forums.manning.com/forums/about了解Manning論壇及其管理規則。

Manning對廣大讀者的承諾是,在讀者之間以及讀者與作者之間提供一個進行有意義對話的平臺。這并非對作者具體參與度的任何承諾,他們對論壇的貢獻是自愿的(而且是免費的)。我們建議大家向作者咨詢一些有挑戰性的問題,以免他喪失了興趣!只要本書還在發行,你就可以在出版商的網站上訪問該論壇以及之前討論的內容。

其他在線資源

遇到問題了嗎?網絡搜索是你最好的朋友,因為它可以快速地將你與現有的Linux指南、排除故障的專業知識關聯到一起。但是,你不該忘記StackExchange系列網站,特別是serverfault.com。如果某個系統配置出現了錯誤或者網絡已經丟失,那么其他人已經遇到過相同問題的概率會很高,可能有人已經在ServerFault上問過這個問題并得到了答案。找不到任何答案嗎?那么請自己留言提問。LinuxQuestions.org和ubuntuforums.org也會很有幫助。

同時,喜歡視頻培訓的用戶將在Pluralsight.com上找到范圍非常廣泛的Linux課程,其中包括了十多門我自己的課程。
pagetop