這是一本講解如何快速上手現(xiàn)代軟件開(kāi)發(fā)所需的三個(gè)核心工具:Unix命令行、文本編輯器和Git版本控制的實(shí)戰(zhàn)性著作。 通過(guò)閱讀本書,你將學(xué)習(xí): 運(yùn)行終端、輸入和編輯命令 操作和檢查文件 使用Atom和VS Code等編輯器的基本和高級(jí)編輯技巧 使用Markdown語(yǔ)言編寫快速文檔 格式化源代碼并編寫可執(zhí)行腳本 Git和GitHub基礎(chǔ)知識(shí) 使用關(guān)鍵的Git工作流程提交、推送、分支、合并 在Git項(xiàng)目上協(xié)作并解決代碼沖突 開(kāi)發(fā)環(huán)境macOS、Linux、Windows和云的設(shè)置。 本書通過(guò)針對(duì)性的練習(xí)來(lái)幫助讀者掌握命令行工具、文本編輯器和Git的重點(diǎn)知識(shí),讀者無(wú)須學(xué)習(xí)它們的全部?jī)?nèi)容,只要跟隨本書,便能高效地運(yùn)用它們來(lái)解決實(shí)際問(wèn)題。
由淺入深,內(nèi)容全面從基礎(chǔ)知識(shí)到應(yīng)用實(shí)戰(zhàn),對(duì)現(xiàn)代軟件開(kāi)發(fā)所需的工具:Unix命令行、文本編輯器和Git版本控制進(jìn)行了詳細(xì)闡述,既是一本學(xué)習(xí)指南,又是一本實(shí)戰(zhàn)手冊(cè)。通俗易懂,快速上手內(nèi)容通俗易懂,既適合軟件開(kāi)發(fā)的初學(xué)者,也適合經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員。理論與實(shí)踐的完美結(jié)合除了主要的知識(shí)闡述之外,本書還包含大量的練習(xí),以幫助測(cè)試讀者對(duì)當(dāng)前對(duì)知識(shí)的理解和掌握程度,并擴(kuò)展所學(xué)的理論知識(shí)。本書還有大量的實(shí)例來(lái)幫助讀者實(shí)踐所學(xué)技能,以盡快上手軟件編程。
現(xiàn)代軟件開(kāi)發(fā)必不可少的三個(gè)基本工具是Unix命令行、文本編輯器和Git版本控制。這三個(gè)工具在現(xiàn)代技術(shù)領(lǐng)域中使用十分普遍,然而令人驚訝的是,幾乎沒(méi)有專門介紹它們以及如何將它們結(jié)合在一起使用的書。本書除了需要具備一般的計(jì)算機(jī)知識(shí),沒(méi)有任何門檻,并且能夠填補(bǔ)這個(gè)空白。
無(wú)論你想成為一名開(kāi)發(fā)者,或是與開(kāi)發(fā)者合作,你在本書中學(xué)到的知識(shí)都是非常有價(jià)值的。如果你想提升當(dāng)前的工作水平,開(kāi)啟一段新的職業(yè)旅程,或者想自己創(chuàng)辦公司,本書也將是一個(gè)好的起點(diǎn)。
如果對(duì)本書涵蓋的三個(gè)主題深入討論,每個(gè)主題都可以寫一本書。但這樣的巨著可能會(huì)讓讀者難以承受,尤其是對(duì)初學(xué)者來(lái)說(shuō)。因此,本書著重各個(gè)主題中最重要的方面,這樣讀者就不需要去學(xué)習(xí)所有的內(nèi)容,只需要學(xué)習(xí)本書就可以了。
本書還可以幫助讀者提高技術(shù)熟練度,即包括命令行、文本編輯器和Git版本控制在內(nèi)的處理復(fù)雜問(wèn)題的技能,以及查詢報(bào)錯(cuò)信息和何時(shí)需要重啟等。這些技能貫穿全書,并附有許多真實(shí)案例來(lái)幫助你提高技術(shù)水平。
盡管本書三個(gè)部分是自成一體的,但它們之間也有大量的參照和廣泛的交叉引用,以展示不同的工具是如何組合在一起使用的。你將學(xué)習(xí)如何使用命令行啟動(dòng)文本編輯器和在文本編輯器中如何進(jìn)行修改,然后返回命令行通過(guò)Git來(lái)記錄修改。因此本書是對(duì)軟件開(kāi)發(fā)基礎(chǔ)的綜合介紹,這是獨(dú)一無(wú)二的。
命令行
本書的第一部分(第1~4章)是命令行,面向初學(xué)者介紹Unix命令行。對(duì)于這部分內(nèi)容,你只需要具備基礎(chǔ)的計(jì)算機(jī)技能(能夠在系統(tǒng)中安裝軟件)就能開(kāi)始學(xué)習(xí)。這部分以技術(shù)敘事的形式編寫,每一步都配有真實(shí)案例。第1章介紹了Unix命令的基本概念,并展示了如何通過(guò)系統(tǒng)來(lái)了解更多信息。第2章介紹了如何使用命令行來(lái)執(zhí)行一些操作,如移動(dòng)、重命名和刪除文件。第3章介紹了如何查看內(nèi)部文件(甚至是大文件),以及如何搜索文件。第4章介紹了如何使用命令行創(chuàng)建和導(dǎo)航目錄(文件夾),以管理系統(tǒng)中的文件。
讀完本部分,你將掌握開(kāi)發(fā)工具的基本知識(shí),以及那些很少被系統(tǒng)講解但在現(xiàn)代計(jì)算機(jī)系統(tǒng)尤其是類Unix系統(tǒng)中大量用到的知識(shí),包含Linux、Android、macOS和iOS等操作系統(tǒng)(幾乎除了Windows以外的所有系統(tǒng),盡管現(xiàn)在在Windows操作系統(tǒng)中也能夠運(yùn)行Linux)。這意味著如果你對(duì)Web或者移動(dòng)端開(kāi)發(fā)感興趣的話,你將領(lǐng)先一大步。
文本編輯器
第二部分(第5~7章)是文本編輯器,涵蓋了對(duì)于專業(yè)軟件開(kāi)發(fā)來(lái)說(shuō)是至關(guān)重要的一類應(yīng)用程序。文本編輯器用于編寫包含純文本的文件,純文本是幾乎所有Web技術(shù)(如HTML和CSS)和編程語(yǔ)言(JavaScript、Ruby、Python等)的文檔格式。因此,掌握文本編輯器是學(xué)習(xí)其他重要主題的必要前提。
文本編輯器和用戶配置種類繁多,本部分主要聚焦編輯器的通用功能。第5章介紹了功能強(qiáng)大的Vim文本編輯器,它幾乎能夠在所有類Unix系統(tǒng)中使用。第6章介紹了所謂的現(xiàn)代文本編輯器,主要基于免費(fèi)、開(kāi)源的Atom編輯器,重點(diǎn)介紹了與Sublime Text和Visual Studio Code等其他編輯器共有的功能。另外,第6章也對(duì)流行的Markdown格式語(yǔ)言進(jìn)行了介紹。第7章介紹了更多先進(jìn)的技術(shù),如選項(xiàng)卡觸發(fā)器和編輯源代碼,并展示了如何編寫一個(gè)shell腳本來(lái)擴(kuò)展第一部分中所講到的命令行功能。
Git
第三部分(第8~11章)是Git,介紹了如何使用Git進(jìn)行版本控制。和前兩部分一樣,學(xué)習(xí)這部分內(nèi)容不需要你知道什么是版本控制。作為一種用于追蹤項(xiàng)目變化的軟件系統(tǒng),版本控制在21世紀(jì)初可能還被認(rèn)為是可有可無(wú)的,但是對(duì)于現(xiàn)代軟件開(kāi)發(fā)來(lái)說(shuō),它絕對(duì)是必不可少的,而Git則是當(dāng)之無(wú)愧的贏家。
這部分介紹了如何使用Git來(lái)追蹤一個(gè)真實(shí)小型網(wǎng)站項(xiàng)目的變更(為學(xué)習(xí)Web開(kāi)發(fā)奠定了基礎(chǔ))。第8章展示了如何由簡(jiǎn)單的HTML(超文本標(biāo)記語(yǔ)言)組成的文件創(chuàng)建一個(gè)新的Git存儲(chǔ)庫(kù)來(lái)作為項(xiàng)目的容器。第9章介紹了如何在GitHub(一個(gè)受歡迎的代碼分享網(wǎng)站)為項(xiàng)目創(chuàng)建一個(gè)遠(yuǎn)程備份。第10章接著介紹了如何使用Git項(xiàng)目并記錄項(xiàng)目的更改,包括branching(分支)和merging(合并)等重要技術(shù)。第11章展示了如何使用Git來(lái)與其他用戶協(xié)作,包括如何解決不可避免的文件沖突。此外,你將學(xué)習(xí)如何使用GitHub Pages這個(gè)免費(fèi)服務(wù)來(lái)將你的網(wǎng)站部署到Web上。
其他說(shuō)明
本書包含了大量的練習(xí),以幫助測(cè)試你的學(xué)習(xí)情況和鞏固學(xué)習(xí)內(nèi)容。為了保持完整性,本書還增加了關(guān)于配置開(kāi)發(fā)環(huán)境的附錄,包括對(duì)操作系統(tǒng)(macOS、Linux、 Windows)的說(shuō)明和一個(gè)預(yù)配置的云端集成開(kāi)發(fā)環(huán)境的說(shuō)明。
邁克爾·哈特爾(Michael Hartl)畢業(yè)于哈佛大學(xué),擁有加州理工學(xué)院的物理學(xué)博士學(xué)位,并且是Y Combinator企業(yè)家計(jì)劃的成員。他曾任教加州理工學(xué)院,并獲得了教學(xué)卓越終身成就獎(jiǎng)。
前言
第一部分 命令行
第1章 命令行基礎(chǔ)知識(shí)2
1.1 介紹2
1.2 運(yùn)行終端3
1.3 第一條命令6
1.4 幫助文檔(man page)8
1.5 編輯命令行10
1.6 清除12
1.7 命令總結(jié)12
第2章 操作文件14
2.1 重定向和追加14
2.2 列表16
2.3 重命名、復(fù)制、刪除19
2.4 命令總結(jié)22
第3章 檢查文件24
3.1 下載文件24
3.2 對(duì)文件使用head和tail命令26
3.3 少即是多(less is more)28
3.4 檢索目標(biāo)行命令31
3.5 命令總結(jié)35
第4章 目錄36
4.1 目錄結(jié)構(gòu)36
4.2 創(chuàng)建目錄38
4.3 導(dǎo)航目錄39
4.4 重命名、復(fù)制、刪除目錄42
4.5 命令總結(jié)45
4.6 本章小結(jié)45
第二部分 文本編輯器
第5章 文本編輯器簡(jiǎn)介48
5.1 最小可運(yùn)行編輯器Vim50
5.2 啟動(dòng)Vim51
5.3 編輯小文件53
5.4 保存并退出文件54
5.5 刪除內(nèi)容57
5.6 編輯大文件58
5.7 命令總結(jié)60
第6章 現(xiàn)代文本編輯器62
6.1 選擇文本編輯器63
6.2 打開(kāi)文件64
6.3 移動(dòng)70
6.4 選擇文本73
6.5 剪切、復(fù)制、粘貼77
6.6 刪除和撤回80
6.7 保存82
6.8 查找和替換84
6.9 命令總結(jié)87
第7章 高級(jí)文本編輯器88
7.1 自動(dòng)補(bǔ)全和Tab觸發(fā)器88
7.2 輸入源代碼92
7.3 編寫可執(zhí)行腳本100
7.4 編輯項(xiàng)目105
7.5 定制化113
7.6 命令總結(jié)116
7.7 本章小結(jié) 117
第三部分 Git
第8章 Git入門120
8.1 安裝和配置121
8.2 初始化Repo123
8.3 第一次提交124
8.4 查看差異126
8.5 添加一個(gè)HTML標(biāo)簽128
8.6 添加HTML結(jié)構(gòu)131
8.7 命令總結(jié)134
第9章 備份和共享135
9.1 注冊(cè)GitHub賬號(hào)135
9.2 遠(yuǎn)程存儲(chǔ)庫(kù)135
9.3 添加自述文件139
9.4 命令總結(jié)143
第10章 中間工作流程144
10.1 提交、推送、重復(fù)144
10.2 忽略文件148
10.3 分支與合并149
10.4 恢復(fù)156
10.5 命令總結(jié)160
第11章 協(xié)作161
11.1 克隆、推送、拉取161
11.2 拉取和合并沖突168
11.3 推送分支178
11.4 意外驚喜184
11.5 命令總結(jié)187
11.6 高級(jí)設(shè)置188
11.7 本章小結(jié)190
附錄A 開(kāi)發(fā)環(huán)境191