本教程官方討論群:591293628 歡迎加入
簡(jiǎn)介
Linux是開發(fā)人員不可缺少的“專用操作系統(tǒng)”个绍,強(qiáng)大的內(nèi)核呻畸、各種命令行工具、文件系統(tǒng)所意、終端都能為你的開發(fā)帶來極大的便利,它也是幾乎所有開發(fā)人員的必修課催首。也許你還并未聽說過這個(gè)神奇的系統(tǒng)扁眯,今天就讓我們一起來認(rèn)識(shí)他。
目標(biāo)
- 安裝Linux操作系統(tǒng)的一個(gè)桌面發(fā)行版
- 了解Linux系統(tǒng)的特點(diǎn)
- 學(xué)習(xí)一些常用的Linux基本指令翅帜,學(xué)習(xí)使用終端
- 學(xué)習(xí)如何在Linux上安裝軟件包和環(huán)境依賴
任務(wù)
- 搭建LNMP環(huán)境姻檀,為后端開發(fā)的學(xué)習(xí)做準(zhǔn)備
預(yù)期時(shí)間
- 1-2 天 (鑒于首次安裝linux系統(tǒng)對(duì)于不同電腦來說難度不同,所以可酌情增加)
前言
Linux的誕生
讓我們回到年代久遠(yuǎn)的70年代涝滴,那時(shí)候windows等類似的圖形化操作系統(tǒng)還沒有誕生绣版,系統(tǒng)操作主要以命令行指令為主。在這個(gè)階段誕生了UNIX操作系統(tǒng)歼疮,它是歷史上第一款相對(duì)較為成型的操作系統(tǒng)(也一直沿用到今日)杂抽。90年代,芬蘭人李納斯·托瓦茲(Linus Torvalds)認(rèn)為UNIX太過臃腫而且不開源韩脏,萌生了開發(fā)自己的操作系統(tǒng)的想法缩麸,于是他基于UNIX和POSIX兩大操作系統(tǒng)的基本機(jī)制開發(fā)了Linux(Linus' Unix)系統(tǒng),由于設(shè)計(jì)的成功和開源社區(qū)的推動(dòng)赡矢,Linux最終成為了開發(fā)界獨(dú)占鰲頭的操作系統(tǒng)(內(nèi)核)杭朱。
Linux的誕生伴隨著開源意識(shí)的崛起,在極客文化史上也有著重要的地位吹散,對(duì)這方面感興趣的同學(xué)不妨去了解一下 : )
為什么要使用Linux
你可能會(huì)問弧械,用Windows就不能做開發(fā)了嗎?答案當(dāng)然是可以的空民,只是沒有那么方便刃唐。
首先你可以簡(jiǎn)要的了解一下Linux和Windows之間的差別:
我根據(jù)個(gè)人的經(jīng)驗(yàn),簡(jiǎn)要的概括一下Linux在開發(fā)中幾大優(yōu)點(diǎn):
Linux系統(tǒng)內(nèi)核比起Windows要透明,簡(jiǎn)單得多画饥,因此你可以根據(jù)所需深入系統(tǒng)進(jìn)行調(diào)試衔瓮,更容易理解你程序運(yùn)行的流程以及debug(當(dāng)然這也帶來更大的危險(xiǎn)性)
許多的開發(fā)工具都是基于Linux開發(fā)的,并且需要借助Linux的終端命令行來使用抖甘,比如我們接下來要接觸到的git,composer,npm,nginx...等等报辱,這些工具雖然在Windows上也能使用,但是安裝和使用都要麻煩許多单山。
強(qiáng)大的終端。借助各種工具幅疼,你可以使用終端快速完成很多操作米奸,很快你就將意識(shí)到,圖形界面是阻礙程序員生產(chǎn)力發(fā)展的一個(gè)重要因素(笑)
安裝Linux
讓我們進(jìn)入正題爽篷,首先你得給自己的電腦安裝上Linux操作系統(tǒng)才能用它(如果你是MAC用戶可以跳過這一步了悴晰,OSX系統(tǒng)基于Unix系統(tǒng),已經(jīng)能滿足絕大多數(shù)開發(fā)需要)逐工。不過要說明的一點(diǎn)是铡溪,我們這里所說的Linux操作系統(tǒng),是各種公司基于Linux內(nèi)核封裝的發(fā)行版泪喊,目前主流的Linux發(fā)行版有以下幾個(gè):
- Debian
- Ubuntu(最為常見的圖形版本之一棕硫,基于Debian,在服務(wù)器上也有很好的表現(xiàn))
- RedHat
- centOS(老牌服務(wù)器操作系統(tǒng)袒啼,基于RedHat)
- Kali(黑客神器哈扮,附有大量滲透測(cè)試工具)
- Deepin(國(guó)產(chǎn)良心,基于Debian)
- Arch(Linux內(nèi)核永遠(yuǎn)保持最新蚓再,適合熱愛嘗鮮和折騰的人)
有關(guān)發(fā)行版的選擇在這里不做過多的贅述滑肉,你可以任選一款喜歡的,對(duì)于新手我們首推使用Deepin摘仅,省去很多麻煩的配置靶庙,其次是Ubuntu。
有關(guān)Linux的安裝本次教程不能給出詳細(xì)的流程來娃属,因?yàn)楦鞔蟀l(fā)行版本六荒,甚至于各種電腦的安裝方式都不盡相同,下面給出一個(gè)比較通用的安裝流程矾端,詳細(xì)的情況請(qǐng)根據(jù)自己電腦的版本和要安裝的發(fā)行版本來進(jìn)行搜索以獲得更多支持恬吕。
安裝流程
- 建議備份電腦上的重要資料,以防發(fā)生意外丟失數(shù)據(jù)
- 確認(rèn)自己的電腦為UEFI方式啟動(dòng)须床,這個(gè)可以在BIOS的Boot中查看(如果你不知道啥是BIOS铐料,怎么進(jìn)入BIOS,請(qǐng)進(jìn)行搜索..),另外建議將secure boot關(guān)閉钠惩。
- 在windows的磁盤管理工具中壓縮一個(gè)有剩余空間的磁盤柒凉,得到一個(gè)50G以上空間的未格式化的分區(qū)(千萬不要格式化),也不要分配盤符篓跛。
- 下載所需發(fā)行版的鏡像(.iso文件)膝捞,然后使用UltraISO刻盤工具(Deepin有自己的刻盤工具)將其刻錄到一個(gè)U盤上(刻盤會(huì)格式化U盤)
- 在BIOS中設(shè)置開啟啟動(dòng)順序?yàn)閁盤第一,或者使用快速啟動(dòng)菜單選擇愧沟,從刻錄的u盤啟動(dòng)電腦蔬咬,一般就會(huì)進(jìn)入一個(gè)圖形化的安裝界面。
- 選擇剛才分出來的空閑區(qū)間沐寺,把新系統(tǒng)安裝在上面(某些發(fā)行版本可能需要自己指定掛載點(diǎn))
- 耐心等待安裝完畢后拔出U盤重啟林艘,一般就可以看到雙系統(tǒng)的引導(dǎo)了,至此安裝完畢混坞,你可以同時(shí)在電腦上使用Linux和Windows兩種系統(tǒng)狐援。
- Deepin用戶可以查看這個(gè)教程來安裝,其安裝過程相對(duì)簡(jiǎn)單的多究孕,推薦新手使用國(guó)產(chǎn)良心系統(tǒng)Deepin! Deepin安裝教程
系統(tǒng)基本知識(shí)和指令
接下來的知識(shí)點(diǎn)基于各發(fā)行版本共用的Linux內(nèi)核來進(jìn)行講解啥酱,主要是為了說明Linux系統(tǒng)的一些特征和常用指令,幫助你理解Linux的本質(zhì)厨诸、思想以及如何操作镶殷。
使用終端
終端是我們使用命令來和Linux內(nèi)核交互的重要渠道,也是使用Linux的最大理由之一微酬,接下來的所有操作和知識(shí)點(diǎn)都將圍繞終端的操作來展開批钠。
注意,這里的終端快捷操作和指令主要基于bash來進(jìn)行得封,這是絕大多數(shù)發(fā)行版本默認(rèn)的終端系統(tǒng)埋心。
打開終端
一般你可以在所有的應(yīng)用程序中找到名為“終端”或者“Terminal”的應(yīng)用,打開來會(huì)是一個(gè)帶著閃爍光標(biāo)的小黑框(除了Ubuntu以外的系統(tǒng)一般都會(huì)默認(rèn)終端為黑白底色)忙上。Debian系的發(fā)行版本往往可以使用快捷鍵Ctrl+Alt+T
來打開一個(gè)新終端拷呆,這個(gè)非常有用。
我們來看一個(gè)典型的終端啟動(dòng)界面
你可以同時(shí)打開多個(gè)終端進(jìn)行不同的操作和指令疫粥。
1.文件系統(tǒng)
文件是Linux系統(tǒng)中最為基礎(chǔ)茬斧、最為底層的抽象。Linux早期的一個(gè)核心理念是:一切皆為文件——無論是普通文件梗逮、目錄项秉、應(yīng)用程序、乃至進(jìn)程慷彤、線程等一系列的資源都可以被抽象成文件娄蔼。
Linux中主要有三種類別的文件類型:普通文件
,目錄
,鏈接
怖喻,你可以把他們類比為Windows下的文件
,文件夾
和快捷方式
。
此外linux的整個(gè)文件系統(tǒng)為一個(gè)屬性系統(tǒng)岁诉,根節(jié)點(diǎn)為/
目錄锚沸,以此向下擴(kuò)展,主要的目錄如下所示:
每個(gè)目錄都有著自己的作用涕癣,其中最為常用的幾個(gè)目錄是
/home/用戶名
用戶主目錄哗蜈,這里保存著系統(tǒng)中每個(gè)用戶的主目錄,一般登錄后默認(rèn)的工作目錄就是這里坠韩,你可以使用~
來指代你的主目錄距潘,比如我的用戶名為mark,那么/home/mark
和~
是等價(jià)的只搁。此目錄主要用于存放用戶的各種文件音比,如圖片,文檔须蜗,安裝包等等,也是你以后最常用到的目錄目溉。/etc
配置目錄明肮,各大軟件都喜歡默認(rèn)把自己的配置文件放在這里。如果你要修改一個(gè)軟件的屬性和配置缭付,來這里準(zhǔn)能找得到柿估。/usr/local/bin
這里是放置各種全局命令腳本的地方,一般都是各種各樣的鏈接陷猫。/var
主要用來存放共享到網(wǎng)絡(luò)上的文件秫舌,在后端開發(fā)中,習(xí)慣會(huì)把運(yùn)行用的代碼和腳本放在/var/www
目錄下绣檬。
文件系統(tǒng)的相關(guān)指令
文件系統(tǒng)相關(guān)的指令較為基礎(chǔ)足陨,也比較多,這里給出一篇鏈接教程供大家學(xué)習(xí):
為了滿足日常開發(fā)的需要娇未,你需要了解以下知識(shí):
-
ls
,mkdir
,cd
,cat
,rm
,cp
,mv
,touch
等基礎(chǔ)指令的使用 - 如何識(shí)別目錄墨缘,文件和鏈接
體會(huì)為什么程序員們總拿rm -rf /
這條命令作為“刪庫(kù)跑路”的梗
!快捷鍵
在繼續(xù)講解后面的指令前零抬,你一定要先了解幾個(gè)最實(shí)用常用的終端快捷鍵镊讼。
Tab:智能補(bǔ)全
在使用cd,ls等命令時(shí)你一定已經(jīng)發(fā)現(xiàn)了,如果要自己一點(diǎn)一點(diǎn)手打冗長(zhǎng)的目錄或者文件名稱平夜,是一件極其痛苦的事情蝶棋,其實(shí)我們是不用這么麻煩自己手動(dòng)去輸入的,只要使用tab鍵忽妒,終端會(huì)自動(dòng)推測(cè)你當(dāng)前位置可能需要補(bǔ)全的內(nèi)容玩裙,如果只有一個(gè)候選項(xiàng)那么將會(huì)自動(dòng)填充兼贸,如果有多個(gè)候選項(xiàng)將會(huì)顯示一個(gè)列表,你可以輸入幾個(gè)字母進(jìn)行進(jìn)一步的填充献酗。
這么說可能比較抽象寝受,我們來看幾個(gè)基礎(chǔ)的實(shí)例:
比如我們的目錄下有這么兩個(gè)文件:
我們現(xiàn)在想要?jiǎng)h除fjaofjoaifjiojoiaffjfa
這個(gè)文件(靠上那個(gè)),自己去輸這個(gè)名字可得折騰死罕偎,現(xiàn)在然我們?cè)囍褂醚a(bǔ)全很澄,輸入rm f
然后按下tab鍵:
首先會(huì)自動(dòng)補(bǔ)全一個(gè)j,這是因?yàn)楫?dāng)前目錄下以f開頭的文件后面必定跟著一個(gè)j颜及,再按下tab鍵就會(huì)顯示一個(gè)候選的列表甩苛,因?yàn)橐詅j開頭的文件有兩個(gè),這時(shí)候需要你做出進(jìn)一步的選擇俏站,我們輸入一個(gè)a然后再按下tab鍵就可以補(bǔ)全選中第一個(gè)文件了讯蒲。
另外除了文件、目錄名肄扎,幾乎所有需要輸入的東西都可以使用tab鍵補(bǔ)全墨林,比如命令、用戶名..總之當(dāng)你不知道輸入什么的時(shí)候就按幾下tab鍵吧(笑)犯祠,親自嘗試幾次你很快就能掌握這個(gè)快捷鍵旭等。
CTRL+C 取消正在進(jìn)行中的操作
這個(gè)快捷鍵可以停止一個(gè)正在進(jìn)行的操作,比如ping
指令衡载,運(yùn)行之后是這樣的:
當(dāng)你運(yùn)行后它會(huì)不停的向指定的地址發(fā)送數(shù)據(jù)包來測(cè)試連接是否通常搔耕,在執(zhí)行過程中,你輸入任何東西都沒有用痰娱,當(dāng)你不想再運(yùn)行它的時(shí)候弃榨,就按下CTRL+C快捷鍵,這個(gè)操作就會(huì)被取消梨睁,然后返回我們的終端了:
復(fù)制和粘貼
bash終端中一般使用ctrl+shift+c和ctrl+shift+v來進(jìn)行復(fù)制和粘貼
2.用戶和權(quán)限系統(tǒng)
現(xiàn)在我們來講解Linux系統(tǒng)中的第二層重要抽象:用戶鲸睛、用戶組和權(quán)限系統(tǒng)。這個(gè)東西要真想講明白可就復(fù)雜了坡贺,在當(dāng)前階段腊凶,你只需要了解一下目錄和文件的權(quán)限屬性,以及一些sudo
提權(quán)這樣的常用操作就可以了拴念。
用戶和用戶組
linux是一款多用戶的操作系統(tǒng)钧萍,也就是說可以有多個(gè)用戶同時(shí)使用該操作系統(tǒng)。那么政鼠,為了區(qū)分不同用戶對(duì)文件的可操作度风瘦,就出現(xiàn)了以組來劃分用戶的系統(tǒng):用戶組。
而在眾多的用戶中公般,有一個(gè)名為root的用戶擁有至高無上的權(quán)利万搔,我們一般可以通過在命令前加sudo
來實(shí)現(xiàn)以root身份進(jìn)行操作:
mkdir temp
sudo mkdir temp // 以root用戶的身份創(chuàng)建
以root身份運(yùn)行命令可以帶來很大的遍歷(基本避免一切permission denied問題)胡桨,但是也會(huì)帶來很大的危險(xiǎn)性,因?yàn)閞oot擁有對(duì)整個(gè)系統(tǒng)的完整控制權(quán)瞬雹,如果被人提權(quán)或者操作不當(dāng)將會(huì)帶來極大的危害性昧谊,摧毀整個(gè)系統(tǒng)也是分分鐘的事(少年,來一發(fā)sudo rm -rf /
?)酗捌。
文件屬性
上面白話了那么多呢诬,不談到具體情況還是沒法理解權(quán)限系統(tǒng)的,現(xiàn)在讓我們來談?wù)勛畛R姷那闆r:也就是文件和目錄的操作胖缤。
首先查看這篇文章來學(xué)習(xí)文件的權(quán)限相關(guān)屬性:
這將有助你更好的了解ls -al
命令所展示的列表尚镰,此外要記住兩個(gè)最常見的權(quán)限代碼:777
和755
,在大部分的開發(fā)調(diào)試和生產(chǎn)環(huán)境下哪廓,我們都會(huì)用到這樣屬性的目錄狗唉。
運(yùn)行程序
現(xiàn)在我們來深入一些,討論運(yùn)維和后端開發(fā)中較為常見的一個(gè)問題涡真,那就是運(yùn)行的程序(進(jìn)程)的權(quán)限問題分俯。之前說過linux把一切都抽象成文件,這就使得進(jìn)程也擁有了和文件一樣的權(quán)限屬性:運(yùn)行它的人是誰(shuí)哆料?它能正常的讀哪些文件缸剪?寫哪些文件?這些問題常常能夠決定一個(gè)進(jìn)程的穩(wěn)定性和安全性剧劝。
為了保持穩(wěn)定和安全橄登,我們?cè)谡嬲纳a(chǎn)環(huán)境中常匙ゼ撸基于用戶和用戶組來指定一系列的策略讥此,一般來說我們不會(huì)以root身份去運(yùn)行后臺(tái)的進(jìn)程,而是會(huì)為它分配一個(gè)專用的賬戶谣妻,同時(shí)把這個(gè)進(jìn)程所需的資源(文件)的擁有者改為這個(gè)賬戶所有萄喳,然后基于用戶組來分配合理的權(quán)限以實(shí)現(xiàn)進(jìn)程之間基于資源的通信。
實(shí)際的情況可能還要比這個(gè)復(fù)雜一些蹋半,希望你在這里明白的一點(diǎn)是他巨,程序的運(yùn)行也是和權(quán)限掛鉤的,這對(duì)后臺(tái)的進(jìn)程而言尤為重要减江,在后面nginx服務(wù)器的配置中你將很快的意識(shí)到這一點(diǎn)染突。
3.安裝程序和擴(kuò)展
基本的終端命令已經(jīng)學(xué)習(xí)的差不多了,如果linux的功能被局限在這幾十個(gè)指令里辈灼,那就太無趣了份企。Linux既然是一個(gè)操作系統(tǒng),就應(yīng)該能和windows一樣安裝各種軟件巡莹,現(xiàn)在讓我們來看看基于終端的程序是如何安裝司志、卸載和管理的甜紫。
統(tǒng)一包管理平臺(tái)
在Linux系統(tǒng)上安裝應(yīng)用是一件很神奇的事情,你根本不需要和在windows上一樣在網(wǎng)上到處找下載地址骂远,每一個(gè)發(fā)行版都會(huì)為我們提供官方的一個(gè)軟件庫(kù)囚霸,基本上你能用到的絕大多數(shù)擴(kuò)展和軟件都能在這里找到,一般你只需要一行命令就能完成下載激才、安裝甚至是配置拓型。
我們一般稱這個(gè)庫(kù)為包管理平臺(tái),這是因?yàn)長(zhǎng)inux把獨(dú)立的一個(gè)個(gè)功能或是程序命名為包贸营,程序一般會(huì)基于包開發(fā)來產(chǎn)生新的包吨述,這就不可避免的會(huì)產(chǎn)生依賴問題(順便一提,依賴問題是以后我們經(jīng)常會(huì)遇到的一個(gè)事情)钞脂。
在這里提一下常見的幾種依賴問題:
- 需要安裝包
A
揣云,但是包A
是基于B
來開發(fā)的,就必須先安裝包B
冰啃,一般情況下遇到這種情況包管理器會(huì)幫我們自動(dòng)安裝好B
邓夕,來解決這個(gè)依賴。 - 需要安裝包
A
阎毅,包A
是基于B
來開發(fā)的焚刚,但是目前由于某些原因(比如其他軟件需要),已經(jīng)安裝了一個(gè)和A
所需的版本不同的包B'
扇调,這種牽扯到版本的依賴就變得復(fù)雜起來矿咕,往往需要我們自己手動(dòng)去調(diào)試解決沖突。
實(shí)際上說了這么多狼钮,在我們實(shí)際使用的過程中倒是很少遇到依賴沖突等情況碳柱,不過這里還是講一下,以便大家對(duì)包的管理有一個(gè)更進(jìn)一步的了解和意識(shí)熬芜。
使用包管理平臺(tái)
不同系的linux發(fā)行版本擁有不同的包管理平臺(tái)莲镣,最為常見的兩種是debian系的apt
和redhat系的yum
,就個(gè)人角度而言涎拉,apt
上的包比起yum
要更新更全一些瑞侮,所以這里還是推薦大家使用debian系的ubuntu和deepin來作為日常開發(fā)的主力系統(tǒng),下面的教程也會(huì)基于apt
來進(jìn)行鼓拧。
現(xiàn)在我們來介紹基于apt
的包管理命令半火,那就是apt-get
,請(qǐng)注意季俩,因?yàn)槭菍?duì)系統(tǒng)安裝功能钮糖,下面的所有指令基本都需要sudo
來提升權(quán)限铺罢。
-
apt-get update
這個(gè)用于更新包列表薪捍,我們使用apt安裝功能時(shí)程储,往往是在本地緩存的列表中尋找對(duì)應(yīng)的包的登疗,因此如果你沒有使用這個(gè)命令去及時(shí)更新你本地的列表,來保持和線上列表的同步娱节,你就很可能會(huì)找不到這個(gè)包挠蛉,或者安裝到一個(gè)較老版本的包。
一般這個(gè)命令只會(huì)在你第一次使用apt-get安裝軟件前肄满,或者更新了線上軟件源(待會(huì)會(huì)講到)以及添加了額外的第三方軟件倉(cāng)庫(kù)時(shí)才需要執(zhí)行谴古,你不需要非常頻繁的去update你的列表,有時(shí)候幾個(gè)月一次都是夠的稠歉。
-
apt-get install 包名
這個(gè)就是安裝了掰担,只要你知道包名,安裝一個(gè)軟件就只需要這一行命令怒炸,簡(jiǎn)單爽快带饱。
-
apt search 關(guān)鍵字
問題是,有些時(shí)候我們不太能確定要安裝的包名阅羹,你可以用這個(gè)命令來查找遠(yuǎn)程源中有哪些名字相近的包勺疼。(雖然大多數(shù)情況下我們是先谷歌到要安裝啥包才去install的,基本也用不到它)
apt list
這個(gè)用于列出當(dāng)前系統(tǒng)中都安裝了哪些包捏鱼,一般會(huì)輸出一堆成百上千的列表执庐,為了能夠進(jìn)一步縮小范圍,一般會(huì)使用apt list |grep 關(guān)鍵字
這樣的形式來查找导梆。|grep 關(guān)鍵字
是一個(gè)十分好用的限定功能轨淌,當(dāng)你需要在大量的終端輸出中檢索一些特定的信息時(shí),都可以使用它看尼,建議自己搜索一下它的使用原理和途徑递鹉。
-
apt-get remove 包名
用于卸載一個(gè)已經(jīng)安裝的包。
上述就是用于安裝擴(kuò)展和功能的基本命令狡忙,最后我再列出一個(gè)較為常用的修復(fù)依賴用的命令:apt-get install -f
梳虽,安裝時(shí)遇到依賴沖突可以試試它(雖然不一定好使)址芯。
現(xiàn)在我們來嘗試一下灾茁,裝上一個(gè)tree
命令試試吧:
首先apt-get update
:
等待一會(huì)之后就可以apt-get install tree
來安裝了,記得輸入y確認(rèn)(如果你在這里等了非常長(zhǎng)的時(shí)間或者根本沒法update谷炸,請(qǐng)準(zhǔn)備更換你的軟件源北专,下面我們會(huì)提到一下):
好了,現(xiàn)在我們就可以使用tree命令了:
是不是超級(jí)簡(jiǎn)單旬陡,如果你不想要這玩意了拓颓,apt remove tree
就可以刪掉它了。
軟件源
我們剛才說到統(tǒng)一包管理平臺(tái)描孟,它是有一個(gè)線上的大倉(cāng)庫(kù)(源)的驶睦,update就是在同步這個(gè)源到本地砰左,實(shí)際上除了官方提供的源,我們也有很多其他機(jī)構(gòu)(比如各大知名學(xué)校和公司)維護(hù)的源场航,有些時(shí)候因?yàn)槟承┰虿迹赡軙?huì)導(dǎo)致你現(xiàn)在的源訪問、安裝軟件的速度比較緩慢溉痢,這時(shí)候就需要換源僻造,具體的操作也不是特別復(fù)雜,這個(gè)主要針對(duì)于用ubuntu等國(guó)外發(fā)行版本的同學(xué)孩饼,大部分國(guó)內(nèi)的發(fā)行版源都是很快很穩(wěn)定的髓削。
軟件源,在我們的操作系統(tǒng)里其實(shí)就是一個(gè)包含了幾個(gè)網(wǎng)址的文件而已镀娶,這些網(wǎng)址就是apt命令去獲取包列表的途徑立膛,因此所謂的換源就是把這個(gè)文件里面的網(wǎng)址給替換一下而已,現(xiàn)在我們來說一下這個(gè)文件的位置梯码,它就是/etc/apt/
下的sources.list
旧巾。
我們先cd /etc/apt
移動(dòng)到該目錄下,然后使用sudo gedit sources.list
來查看和編輯里面的內(nèi)容忍些。
(注意鲁猩,gedit是debian系中的一個(gè)GUI文本編輯器,如果你的發(fā)行版本中沒有可以考慮安裝或者使用較為通用的vim,nano等指令)
沒錯(cuò)罢坝,一個(gè)源的格式大概就是這樣的:
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
如果你發(fā)現(xiàn)sources.list里面是空的也沒關(guān)系廓握,很多發(fā)行版本在使用默認(rèn)軟件源時(shí)都不會(huì)讀取sources.list里面的內(nèi)容。
現(xiàn)在讓我們來嘗試更換軟件源為阿里官方源吧
首先你應(yīng)該把原來的sources.list
備份一下嘁酿,正所謂小心駛得萬年船隙券,在執(zhí)行一些危險(xiǎn)的系統(tǒng)操作時(shí)最好都這么干
我們sudo cp sources.list sources.list.bak
就可以在當(dāng)前目錄下復(fù)制一個(gè)sources.list
的備份sources.list.bak
,備份文件的名字你可以隨便取闹司,只要你能記得起來就可以娱仔。這樣當(dāng)我們遇到問題需要重置原來的源時(shí),只需要sudo mv sources.list.bak sources.list
就可以覆蓋還原了游桩。
然后我們需要上網(wǎng)搜索所需要更換的源列表牲迫,請(qǐng)記住一定要指明你的發(fā)行版名稱和版本,比如ubuntu14.04就一定要搜索ubuntu14.04的源借卧,如果用錯(cuò)了發(fā)行版或者版本(比如用了16.04的軟件源)盹憎,將會(huì)導(dǎo)致apt無法工作。
在這里推薦幾個(gè)提供優(yōu)質(zhì)軟件源的公司和學(xué)校:網(wǎng)易铐刘、阿里陪每、中科大以及騰訊都是不錯(cuò)的選擇。
現(xiàn)在讓我們更換阿里的軟件源,執(zhí)行sudo gedit sources.list
檩禾,把查找到的源的內(nèi)容復(fù)制進(jìn)去然后保存(ctrl+s):
接下來執(zhí)行sudo apt-get update
更新挂签,就完成了,以后install和update的資源都將從阿里源獲取盼产。
任務(wù)1:安裝LAMP環(huán)境
下一講開始我們將會(huì)以PHP語(yǔ)言為基礎(chǔ)來入門后端開發(fā)竹握,但后端開發(fā)可不是只要一個(gè)編輯器和瀏覽器就能上手的,我們需要在本地配置一個(gè)服務(wù)器環(huán)境辆飘,它需要以下幾個(gè)模塊
- 應(yīng)用服務(wù)器:nginx或apache2,這里暫時(shí)使用不需配置的apache2啦辐,后續(xù)我們會(huì)改為nginx
- 一個(gè)后端開發(fā)語(yǔ)言,我們選擇php蜈项,版本為最新的7.0
- 數(shù)據(jù)庫(kù):主要是mysql或者M(jìn)ariaDB
現(xiàn)在你需要使用所講的知識(shí)芹关,參考下面這篇我所寫的教程來安裝相應(yīng)的軟件包,并進(jìn)行相應(yīng)配置紧卒,完成開發(fā)環(huán)境的搭建:
注意如果你是16.04以上的ubuntu或者最新的deepin的話侥衬,請(qǐng)?zhí)^中間增加php7.0源的指令:
//這兩行不用執(zhí)行
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
測(cè)試你是否完成環(huán)境搭建的辦法是,在/var/www/html
目錄下跑芳,創(chuàng)建一個(gè)test.php
文件轴总,然后將以下內(nèi)容復(fù)制進(jìn)去并保存
<?php
phpinfo();
?>
接下來在瀏覽器中訪問http://localhost/test.php
,如果看到以下的畫面就算成功了:
任務(wù)2:學(xué)習(xí)PHP基本語(yǔ)法
在搭建環(huán)境后博个,請(qǐng)先自學(xué)一部分PHP的基本語(yǔ)法怀樟,這些內(nèi)容比較冗長(zhǎng)麻煩,所以我在后續(xù)的教程中會(huì)跳過盆佣,同時(shí)這也是檢驗(yàn)?zāi)阕詫W(xué)能力的一個(gè)小測(cè)試往堡,在下次課開始前,你應(yīng)該學(xué)習(xí)一下php的基礎(chǔ)語(yǔ)法(放心共耍,很簡(jiǎn)單)虑灰,只需要了解以下內(nèi)容就夠了:
- 變量的定義和使用
- 函數(shù)的定義和使用
- 基本流程控制:選擇和循環(huán)
- 數(shù)組的使用:這里是個(gè)重點(diǎn),好好學(xué)習(xí)一下這個(gè)神奇的數(shù)據(jù)結(jié)構(gòu)
相信我痹兜,PHP的語(yǔ)法在有C語(yǔ)言基礎(chǔ)的情況下基本半天就能看完了: )
學(xué)習(xí)鏈接依舊是菜鳥教程:PHP教程
你大概需要看這幾節(jié)就夠了:
小結(jié)
這一篇教程算是有些難度了穆咐,希望大家能夠堅(jiān)持努力一些,你離真正的開發(fā)者已經(jīng)不遠(yuǎn)了字旭。
我在下一講等你
給出一些相關(guān)的閱讀:
以及一些推薦書籍:
《鳥哥的linux私房菜》
对湃、《PHP之道》
、《圖解HTTP》
等谐算,以供想要深入了解的同學(xué)進(jìn)一步學(xué)習(xí)熟尉。