我想給大家講個(gè)故事。
故事內(nèi)容不是 Linus Torvalds 在1991年怎樣寫了 Linux 內(nèi)核的第一個(gè)版本,因?yàn)檫@些內(nèi)容你可以在許多 Linux 書籍中讀到。我也不是來告訴你,更早之前,Richard Stallman是如何開始 GNU 項(xiàng)目,設(shè)計(jì)了一個(gè)免費(fèi)的類Unix 的操作系統(tǒng)。那也是一個(gè)很有意義的故事,但大多數(shù) Linux 書籍也講到了它。
我想告訴大家一個(gè)你如何才能奪回計(jì)算機(jī)管理權(quán)的故事。
在20世紀(jì)70年代末,我剛開始和計(jì)算機(jī)打交道時(shí),正進(jìn)行著一場革命,那時(shí)的我還是一名大學(xué)生。微處理器的發(fā)明,使普通老百姓(就如你和我)真正擁有一臺(tái)計(jì)算機(jī)成為可能。今天,人們難以想象,只有大企業(yè)和強(qiáng)大的政府才能夠擁有計(jì)算機(jī)的世界,是怎樣的一個(gè)世界。簡單說,你做不了多少事情。
今天,世界已經(jīng)截然不同了。計(jì)算機(jī)遍布各個(gè)領(lǐng)域,從小手表到大型數(shù)據(jù)中心,及大小介于它們之間的每件東西。除了隨處可見的計(jì)算機(jī)之外,我們還有一個(gè)無處不在的連接所有計(jì)算機(jī)的網(wǎng)絡(luò)。這已經(jīng)開創(chuàng)了一個(gè)奇妙的,個(gè)人授權(quán)和創(chuàng)作自由的新時(shí)代,但是在過去的二三十年里,一些事情一直在發(fā)生著。一個(gè)大公司不斷地把它的管理權(quán)強(qiáng)加到世界上絕大多數(shù)的計(jì)算機(jī)上,并且決定你對(duì)計(jì)算機(jī)的操作權(quán)力。幸運(yùn)地是,來自世界各地的人們,正積極努力地做些事情來改變這種境況。通過編寫自己的軟件,他們一直在為維護(hù)電腦的管理權(quán)而戰(zhàn)斗著。他們建設(shè)著 Linux。
一提到 Linux,許多人都會(huì)說到“自由”,但我不認(rèn)為他們都知道“自由”的真正涵義?!白杂伞笔且环N權(quán)力,它決定你的計(jì)算機(jī)能做什么,同時(shí)能夠擁有這種“自由”的唯一方式就是知道計(jì)算機(jī)正在做什么?!白杂伞笔侵敢慌_(tái)沒有任何秘密的計(jì)算機(jī),你可以從它那里了解一切,只要你用心的去尋找。
你是否注意到,在電影中一個(gè)“超級(jí)黑客”坐在電腦前,從不摸一下鼠標(biāo),就能夠在30秒內(nèi)侵入到超安全的軍事計(jì)算機(jī)中。這是因?yàn)殡娪爸破艘庾R(shí)到,作為人類,本能地知道讓計(jì)算機(jī)圓滿完成工作的唯一途徑,是用鍵盤來操縱計(jì)算機(jī)。
現(xiàn)在,大多數(shù)的計(jì)算機(jī)用戶只是熟悉圖形用戶界面(GUI),并且產(chǎn)品供應(yīng)商和此領(lǐng)域的學(xué)者會(huì)灌輸給用戶這樣的思想,命令行界面(CLI)是過去使用的一種很恐怖的東西。這就很不幸,因?yàn)橐粋€(gè)好的命令行界面,是用來和計(jì)算機(jī)進(jìn)行交流溝通的非常有效的方式,正像人類社會(huì)使用文字互通信息一樣。人們說,“圖形用戶界面讓簡單的任務(wù)更容易完成,而命令行界面使完成復(fù)雜的任務(wù)成為可能”,到現(xiàn)在這句話仍然很正確。
因?yàn)?Linux 是以 Unix 家族的操作系統(tǒng)為模型寫成的,所以它分享了 Unix 豐富的命令行工具。Unix 在20世紀(jì)80年代初顯赫一時(shí)(雖然,開發(fā)它在更早之前),結(jié)果,在普遍地使用圖形界面之前,開發(fā)了一種廣泛的命令行界面。事實(shí)上,很多人選擇 Linux(而不是其他的系統(tǒng),比如說 Windows NT)是因?yàn)槠淇梢允埂巴瓿蓮?fù)雜的任務(wù)成為可能”的強(qiáng)大的命令行界面。
這本書介紹如何生存在 Linux 命令行的世界。不像一些書籍僅僅涉及一個(gè)程序,比如像 shell 程序,bash。這本書將試著向你傳授如何與命令行界面友好相處。它是怎樣工作的? 它能做什么? 使用它的最好方法是什么?
這不是一本關(guān)于 Linux 系統(tǒng)管理的書。然而任何一個(gè)關(guān)于命令行的深入討論,都一定會(huì)牽涉到系統(tǒng)管理方面的內(nèi)容,這本書僅僅提到一點(diǎn)兒管理方面的知識(shí)。但是這本書為讀者準(zhǔn)備好了學(xué)習(xí)更多內(nèi)容的堅(jiān)實(shí)基礎(chǔ),畢竟要?jiǎng)偃蜗到y(tǒng)管理工作也需要良好的命令行使用基本功。
這本書是圍繞 Linux 而寫的。許多書籍,為了擴(kuò)大自身的影響力,會(huì)包含一些其它平臺(tái)的知識(shí),比如 Unix, MacOS X 等。這樣做,很多內(nèi)容只能比較空泛的去講了。另一方面,這本書只研究了當(dāng)代 Linux 發(fā)行版。雖然,對(duì)于使用其它類 Unix 系統(tǒng)的用戶來說,書中95%的內(nèi)容是有用的,但這本書主要面向的對(duì)象是現(xiàn)代 Linux 命令行用戶。
這本書是為已經(jīng)從其它平臺(tái)移民到 Linux 系統(tǒng)的新手而寫的。最有可能,你是使用某個(gè) Windows 版本的高手?;蛟S是老板讓你去管理一個(gè) Linux 服務(wù)器,或許你只是一個(gè)桌面用戶,厭倦了系統(tǒng)出現(xiàn)的各種安全防御問題,而想要體驗(yàn)一下 Linux。很好,這里歡迎你們!
不過一般來說,對(duì)于 Linux 的啟蒙教育,沒有捷徑可言。學(xué)習(xí)命令行富于挑戰(zhàn)性,而且很費(fèi)氣力。這并不是說 Linux 命令行很難學(xué),而是它的知識(shí)量很大,不容易掌握。Linux 操作系統(tǒng),差不多有數(shù)以千計(jì)的命令可供用戶操作。由此可見,要給自己提個(gè)醒,命令行可不是輕輕松松就能學(xué)好的。
另一方面,學(xué)習(xí) Linux 命令行會(huì)讓你受益匪淺,給你極大的回報(bào)。如果你認(rèn)為,現(xiàn)在你已經(jīng)是高手了。別急,其實(shí)你還不知道什么才是真正的高手。不像其他一些計(jì)算機(jī)技能,一段時(shí)間之后可能就被淘汰了,命令行知識(shí)卻不會(huì)落伍,你今天所學(xué)到的,在十年以后,都會(huì)有用處。命令行通過了時(shí)間的檢驗(yàn)。
如果你沒有編程經(jīng)驗(yàn),也不要擔(dān)心,我會(huì)帶你入門。
這些材料是經(jīng)過精心安排的,很像一位老師坐在你身旁,耐心地指導(dǎo)你。許多作者用系統(tǒng)化的方式講解這些材料,雖然從一個(gè)作者的角度考慮很有道理,但對(duì)于 Linux 新手來說,他們可能會(huì)感到非常困惑。
另一個(gè)目的,是想讓讀者熟悉 Unix 的思維方式,這種思維方式與 Windows 不同。在學(xué)習(xí)過程中,我們會(huì)幫助你理解為什么某些命令會(huì)按照它們的方式工作,以及它們是怎樣實(shí)現(xiàn)那樣的工作方式的。Linux 不僅是一款軟件,也是 Unix 文化的一小部分,它有自己的語言和歷史淵源。同時(shí),我也許會(huì)說些過激的話。
這本書共分為五部分,每一部分講述了不同方面的命令行知識(shí)。除了第一部分,也就是你正在閱讀的這一部分,這本書還包括:
第二部分 — 學(xué)習(xí) shell 開始探究命令行基本語言,包括命令組成結(jié)構(gòu),文件系統(tǒng)瀏覽,編寫命令行,查找命令幫助文檔。
第三部分 — 配置文件及環(huán)境 講述了如何編寫配置文件,通過配置文件,用命令行來操控計(jì)算機(jī)。
第四部分 — 常見任務(wù)及主要工具 探究了許多命令行經(jīng)常執(zhí)行的普通任務(wù)。類似于Unix 的操作系統(tǒng),例如 Linux, 包括許多經(jīng)典的命令行程序,這些程序可以用來對(duì)數(shù)據(jù)進(jìn)行強(qiáng)大的操作。
第五部分 — 編寫 Shell 腳本 介紹了 shell 編程,一個(gè)無可否認(rèn)的基本技能,能夠自動(dòng)化許多常見的計(jì)算任務(wù),很容易學(xué)。通過學(xué)習(xí) shell 編程,你會(huì)逐漸熟悉一些關(guān)于編程語言方面的概念,這些概念也適用于其他的編程語言。
從頭到尾的閱讀。它并不是一本技術(shù)參考手冊(cè),實(shí)際上它更像一本故事書,有開頭,過程,結(jié)尾。
為了使用這本書,你需要安裝 Linux 操作系統(tǒng)。你可以通過兩種方式,來完成安裝。
在一臺(tái)(不用很新)的電腦上安裝 Linux。你選擇哪個(gè) Linux 發(fā)行版安裝,是無關(guān)緊要的事。雖然大多數(shù)人一開始選擇安裝 Ubuntu, Fedora, 或者 OpenSUSE。如果你拿不定主意,那就先試試 Ubuntu。由于主機(jī)硬件配置不同,安裝 Linux 時(shí),你可能不費(fèi)吹灰之力就裝上了,也可能費(fèi)了九牛二虎之力還裝不上。所以我建議,一臺(tái)使用了幾年的臺(tái)式機(jī),至少要有256M 的內(nèi)存,6G 的硬盤可用空間。盡可能避免使用筆記本電腦和無線網(wǎng)絡(luò),在 Linux 環(huán)境下,它們經(jīng)常不能工作。
使用“Live CD.” 許多 Linux 發(fā)行版都自帶一個(gè)比較酷的功能,你可以直接從系統(tǒng)安裝盤 CDROM 中運(yùn)行 Linux,而不必安裝 Linux。開機(jī)進(jìn)入 BIOS 設(shè)置界面,更改引導(dǎo)項(xiàng),設(shè)置為“從 CDROM 啟動(dòng)”。
不管你怎樣安裝 Linux,為了練習(xí)書中介紹的知識(shí),你需要有超級(jí)用戶(管理員)權(quán)限。
當(dāng)你在自己的電腦上安裝了 Linux 系統(tǒng)之后,就開始一邊閱讀本書,一邊練習(xí)吧。本書大部分內(nèi)容都可以自己動(dòng)手練習(xí),坐下來,敲入命令,體驗(yàn)一下吧。
為什么我不叫它“GNU/Linux”
在某些領(lǐng)域,把 Linux 操作系統(tǒng)稱為“GNU/Linux 操作系統(tǒng)”, 則政治立場正確。但“Linux”的問題是,沒有一個(gè)完全正確的方式能命名它,因?yàn)樗怯稍S許多多,分布在世界各地的貢獻(xiàn)者們,合作開發(fā)而成的。從技術(shù)層面講,Linux 只是操作系統(tǒng)的內(nèi)核名字,沒別的含義。當(dāng)然內(nèi)核非常重要,因?yàn)橛兴?,操作系統(tǒng)才能運(yùn)行起來,但它并不能構(gòu)成一個(gè)完備的操作系統(tǒng)。
Richard Stallman 是一個(gè)天才的哲學(xué)家,自由軟件運(yùn)動(dòng)創(chuàng)始人,自由軟件基金會(huì)創(chuàng)辦者,他創(chuàng)建了 GNU 工程,編寫了第一版 GNU C 編譯器(gcc),創(chuàng)立了 GNU 通用公共協(xié)議(the GPL)等等。他堅(jiān)持把 Linux 稱為“GNU/Linux”,為的是準(zhǔn)確地反映 GNU 工程對(duì) Linux 操作系統(tǒng)的貢獻(xiàn)。然而,盡管 GNU 項(xiàng)目早于 Linux 內(nèi)核,項(xiàng)目的貢獻(xiàn)應(yīng)該得到極高的贊譽(yù),但是把 GNU 用在 Linux 名字里,這對(duì)其他為 Linux 的發(fā)展做出重大貢獻(xiàn)的程序員來說,就不公平了。而且,我覺得要是叫也要叫 “Linux/GNU” 比較準(zhǔn)確一些,因?yàn)閮?nèi)核會(huì)先啟動(dòng),其他一切都運(yùn)行在內(nèi)核之上。
在目前流行的用法中,“Linux”指的是內(nèi)核以及在一個(gè)典型的 Linux 發(fā)行版中所包含的所有免費(fèi)及開源軟件;也就是說,整個(gè) Linux 生態(tài)系統(tǒng),不只有 GNU 項(xiàng)目軟件。在操作系統(tǒng)商界,好像喜歡使用單個(gè)詞的名字,比如說 DOS, Windows, MacOS, Solaris, Irix, AIX. 所以我選擇用流行的命名規(guī)則。然而,如果你喜歡用“GNU/Linux”,當(dāng)你讀這本書時(shí),可以在腦子里搜索并替換“Linux”。我不介意。
來源:http://www.lovean.com/doc/linux-command-line/
聯(lián)系客服