《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 解決方案 > 以最簡(jiǎn)單方式學(xué)習(xí)Linux

以最簡(jiǎn)單方式學(xué)習(xí)Linux

2017-07-06
關(guān)鍵詞: Linux 游戲

       有很多關(guān)于Linux的書籍,,博客,。大多數(shù)都會(huì)比較“粗暴“的將一大堆的命令塞給讀者,從而使很多.NET程序員望而卻步,。未入其門就路過了,。

  所以我設(shè)想用一種更為平滑的學(xué)習(xí)方式, 就是在學(xué)習(xí)命令時(shí),,先用純語言來介紹Linux背景和動(dòng)機(jī),。 就如同所有的的網(wǎng)絡(luò)游戲都要先介紹游戲的歷史觀,然后再介紹游戲的操作,。

  大多數(shù)初學(xué)者在剛剛接觸Linux都會(huì)有非常陌生的感覺,。往往會(huì)有一些疑惑和問題。而我們就沿著這些問題,,從遠(yuǎn)及近,,從宏觀到微觀來理解Linux的簡(jiǎn)潔和美麗。

  問題1: Winows有注冊(cè)表,,為什么Linux沒有注冊(cè)表

  注冊(cè)表是Windows核心組件,,對(duì)整個(gè)系統(tǒng)進(jìn)行配置。Linux是以整個(gè)文件系統(tǒng)作為"注冊(cè)表“,,Windows注冊(cè)表的樹形結(jié)構(gòu),,可以粗略的對(duì)應(yīng)Linux文件系統(tǒng)的樹形結(jié)構(gòu)。

  Linux的配置文件就相當(dāng)于注冊(cè)表的鍵,,或者說Linux采用是的分布式的注冊(cè)表,。

  那么Linux為什么要這樣設(shè)計(jì)呢?因?yàn)長(zhǎng)inux是所謂的網(wǎng)絡(luò)操作系統(tǒng),所以單臺(tái)電腦不是Linux的界限,,如果是多臺(tái)電腦組成的系統(tǒng),,那么分布式的管理就有著巨大的優(yōu)勢(shì)。

  例如:一個(gè)包含配置文件的磁盤的損害不會(huì)讓整個(gè)系統(tǒng)癱瘓,,而可能只是讓部分功能失效。

  問題2:Windows有完善的圖形界面,,而Linux為什么要學(xué)命令行,。

  首先,命令行絕對(duì)要比圖形界面先進(jìn)的多,。命令行是程序員的第一界面,,而圖形界面是普通用戶的第一界面,。

  也許很多人會(huì)有不同意見,其實(shí)我們?cè)傧蚯跋胍徊?,就很清楚了?/p>

  命令行的下一步演化是什么? 很簡(jiǎn)單就是語音控制,,就是把人類自然語言轉(zhuǎn)化為命令

  圖形界面的的下一步演化是什么? 是姿勢(shì)控制。從目前的Windows系統(tǒng)來說一共只有3種姿勢(shì),, 單擊,,雙擊,拖放,。而更先進(jìn)的IPad有撥動(dòng),,畫圈等。

  姿勢(shì)控制很簡(jiǎn)單,,便于用戶上手,,語音控制很復(fù)雜,但是控制精度很高,。

  作為程序員我們要求電腦完成的工作要比普通用戶復(fù)雜的多,,所以使用命令行會(huì)非常高效。

  退一步講,,圖形界面本質(zhì)也是命令行,,只不過將姿勢(shì)翻譯成命令執(zhí)行而已。

  程序員編程的代碼也都是“命令行”,,一條一條的指令而已,。

  總之,只要能打破對(duì)Linux命令行的恐懼感,,接下來的事就會(huì)非常容易了,。這個(gè)命令行絕對(duì)不是你簡(jiǎn)單想像中的命令行,它是非常智能化的,。

  問題3:Linux有那么多目錄,,那么多命令,怎么記得住呢?

  首先,,Linux目錄是Linux系統(tǒng)最靈魂的東西,,所有的硬件都可以被抽象為文件,從而實(shí)現(xiàn)網(wǎng)絡(luò)化,。(Internet只不過是Unix/Linux的進(jìn)一步的演化而已)

  所以只要掌握了Linux目錄的規(guī)律,,在理解的基礎(chǔ)上記憶就可以容易的多,。另外Linux的命令行有智能化功能,,可以讓你少打95%以上的字符來完成命令。

  絕非你所想象的傻乎乎的敲一大堆命令,,那些用Linux大牛都是絕頂聰明的人,,怎么可能讓自己辛苦呢?

  問題4:Linux的文件夾結(jié)構(gòu)看上去很復(fù)雜,,怎么理解呢?

  我們這里假設(shè),我們就是設(shè)計(jì)者,,如果我們?cè)O(shè)計(jì)一個(gè)文件系統(tǒng),,我們會(huì)如何去做呢?

  我們需要一個(gè)起點(diǎn), 這個(gè)起點(diǎn)就叫根目錄,,用“/”來表示,,然后我們需要啟動(dòng)Linux,那么我們就會(huì)把所有核心的啟動(dòng)文件(包括Linux核心本身)都放到一個(gè)“/boot"目錄下。

  當(dāng)系統(tǒng)啟動(dòng)后,,我們需要執(zhí)行一些基本命令在操作系統(tǒng),,這些命令都會(huì)放到“/bin"目錄下。然后這些命令可能會(huì)用到一些庫(kù),,這些庫(kù)就被放到“/lib"下面,,而這些庫(kù)可能會(huì)會(huì)用到一些設(shè)備驅(qū)動(dòng)文件,

  那么這些驅(qū)動(dòng)文件就會(huì)放到“/dev"目錄下,。

  /:根目錄

  /boot:系統(tǒng)啟動(dòng)和內(nèi)核

  /bin :系統(tǒng)基本命令 (bin是binary的縮寫)

  /lib : 系統(tǒng)庫(kù)(不能直接運(yùn)行的代碼)(lib是libary的縮寫)

  /dev : 設(shè)備驅(qū)動(dòng) (dev是device的縮寫)

  到目前為止只用5個(gè)目錄,,很簡(jiǎn)單吧。

  問題5: 什么是"/usr" ,,"/etc"和“/var“

  當(dāng)用戶啟動(dòng)系統(tǒng)以后,,要做一些更加復(fù)雜的工作,這時(shí)候就會(huì)涉及到一個(gè)叫“/usr",這個(gè)情況稍微有些復(fù)雜,,是一個(gè)難點(diǎn),。不過也很容易解釋清楚。

  早期的unix系統(tǒng)都有很多塊硬盤,,當(dāng)時(shí)硬盤的容量都很小,, 所以往往一個(gè)硬盤只放一個(gè)目錄,比如“/boot"可以放在一個(gè)單獨(dú)的"boot"盤上,,上面提到的5個(gè)目錄,,是系統(tǒng)運(yùn)行必不可少的。

  而當(dāng)系統(tǒng)啟動(dòng)以后,,我們需要其他一些用于具體工作的程序時(shí),,我們就會(huì)加載一個(gè)“/usr"目錄,上面放重要的運(yùn)行程序,。

  容易引起疑惑的是"usr"這個(gè)名字,, 在歷史上,原來這個(gè)確實(shí)是user的縮寫,,不過現(xiàn)在和user沒有任何關(guān)系了,, 你可以把它看成是"universal software resource"的縮寫。

  這個(gè)“/usr"有點(diǎn)類似Windows里面的Program Files,。

  因此 /bin 和 /usr/bin的區(qū)別,,就是 /bin里面的程序更加核心

  這時(shí)候,,很多人會(huì)有疑問, 我們記住哪些命令在/bin 還是在/usr/bin呢?

  放心,,由于所有的bin目錄都會(huì)登記到系統(tǒng)變量PATH里面,, 因此無論你在任何當(dāng)前目錄中,只要輸入命令文件的名稱,,系統(tǒng)都會(huì)幫你找到這個(gè)命令并運(yùn)行,。

  要點(diǎn):

  1、/usr上面一般都是只讀文件,,數(shù)據(jù)文件和配置文件不放在上面(放到哪里,,后面會(huì)講)

  2,沒有“/usr",linux系統(tǒng)也能正常運(yùn)行

  2、/usr可以被多臺(tái)電腦共享(這里體現(xiàn)Linux系統(tǒng)的網(wǎng)絡(luò)性)

  由于/usr只放只讀文件,,那么配置文件和數(shù)據(jù)文件放哪里呢?這里就出現(xiàn)了2個(gè)新的目錄“/etc"和“/var"

  這里容易初學(xué)者迷惑的就是這個(gè)2個(gè)目錄的名字,。

  在歷史上 "etc“是 “etcetera”,中文意為“其他”,, 現(xiàn)在這個(gè)和“其他”沒有任何關(guān)系,, 就是專門存放配置文件的地方,可以理解為“editable text configuration"的縮寫

  比如 /etc/mysql就是放mysql的配置文件 /ect/apache2/就是apache2的配置文件

  在歷史上“var" 是 “variable",,中文意為“變動(dòng)”,,現(xiàn)在主要用來存放log,lock等文件。

  例如 /var/mysql就是用來存放mysql的log

  問題6:用戶自己產(chǎn)生的數(shù)據(jù)放到哪里?

  當(dāng)我們運(yùn)行程序后,,會(huì)產(chǎn)生很多自己的成果,,這些成果放哪里呢? 這里就出現(xiàn)了一個(gè)“/home"目錄,不過你不能直接放到“/home"目錄下,, 因?yàn)長(zhǎng)inux是個(gè)多用戶操作系統(tǒng),, 所以系統(tǒng)會(huì)有一個(gè)以用戶的名字命名的目錄。

  例如:用戶是jack ,那么目錄就是/home/jack ,這個(gè)目錄也可以用“~“來表示,。

  至此,,我們.Net程序員也就基本了解了Linux的組成。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。