零基礎(chǔ)入門web開發(fā)(6)——初識(shí)Linux

本教程官方討論群: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目錄下绣檬。

  • 進(jìn)一步了解linux目錄結(jié)構(gòu)

文件系統(tǒng)的相關(guān)指令

文件系統(tǒng)相關(guān)的指令較為基礎(chǔ)足陨,也比較多,這里給出一篇鏈接教程供大家學(xué)習(xí):

*Linux基礎(chǔ)文件操作

為了滿足日常開發(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)限代碼:777755,在大部分的開發(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è)事情)钞脂。

在這里提一下常見的幾種依賴問題:

  1. 需要安裝包A揣云,但是包A是基于B來開發(fā)的,就必須先安裝包B冰啃,一般情況下遇到這種情況包管理器會(huì)幫我們自動(dòng)安裝好B邓夕,來解決這個(gè)依賴。
  2. 需要安裝包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)限铺罢。

  1. 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è)月一次都是夠的稠歉。

  2. apt-get install 包名

    這個(gè)就是安裝了掰担,只要你知道包名,安裝一個(gè)軟件就只需要這一行命令怒炸,簡(jiǎn)單爽快带饱。

  3. apt search 關(guān)鍵字

    問題是,有些時(shí)候我們不太能確定要安裝的包名阅羹,你可以用這個(gè)命令來查找遠(yuǎn)程源中有哪些名字相近的包勺疼。(雖然大多數(shù)情況下我們是先谷歌到要安裝啥包才去install的,基本也用不到它)

  4. apt list

這個(gè)用于列出當(dāng)前系統(tǒng)中都安裝了哪些包捏鱼,一般會(huì)輸出一堆成百上千的列表执庐,為了能夠進(jìn)一步縮小范圍,一般會(huì)使用apt list |grep 關(guān)鍵字這樣的形式來查找导梆。|grep 關(guān)鍵字是一個(gè)十分好用的限定功能轨淌,當(dāng)你需要在大量的終端輸出中檢索一些特定的信息時(shí),都可以使用它看尼,建議自己搜索一下它的使用原理和途徑递鹉。

  1. 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í)熟尉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末归露,一起剝皮案震驚了整個(gè)濱河市洲脂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖恐锦,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件往果,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡一铅,警方通過查閱死者的電腦和手機(jī)陕贮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來潘飘,“玉大人肮之,你說我怎么就攤上這事〔仿迹” “怎么了戈擒?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)艰毒。 經(jīng)常有香客問我筐高,道長(zhǎng),這世上最難降的妖魔是什么丑瞧? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任柑土,我火速辦了婚禮,結(jié)果婚禮上绊汹,老公的妹妹穿的比我還像新娘稽屏。我一直安慰自己,他們只是感情好西乖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布诫欠。 她就那樣靜靜地躺著,像睡著了一般浴栽。 火紅的嫁衣襯著肌膚如雪荒叼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天典鸡,我揣著相機(jī)與錄音被廓,去河邊找鬼。 笑死萝玷,一個(gè)胖子當(dāng)著我的面吹牛嫁乘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播球碉,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蜓斧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了睁冬?” 一聲冷哼從身側(cè)響起挎春,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤看疙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后直奋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體能庆,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年脚线,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搁胆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡邮绿,死狀恐怖渠旁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情船逮,我是刑警寧澤一死,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站傻唾,受9級(jí)特大地震影響投慈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冠骄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一伪煤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凛辣,春花似錦抱既、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蝗敢,卻和暖如春捷泞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寿谴。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工锁右, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讶泰。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓咏瑟,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親痪署。 傳聞我的和親對(duì)象是個(gè)殘疾皇子码泞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容