新聞中心
到什么程度才叫精通Linux?
許多同學(xué)觸摸Linux不多,對Linux渠道的開發(fā)更是一竅不通。而如今的趨勢越來越標(biāo)明,作為一個優(yōu)秀的軟件開發(fā)人員,或計算機IT職業(yè)從業(yè)人員,把握Linux是一種很主要的營生資本與手法。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比河源網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式河源網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋河源地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
下來我將會結(jié)合自己的幾年的個人開發(fā)經(jīng)驗,及對 Linux,更是類UNIX系統(tǒng),及開源軟件文化,談?wù)凩inux的學(xué)習(xí)方法與學(xué)習(xí)中應(yīng)該注意的一些事。
就如同剛才說的,很多同學(xué)以前可能連Linux是什么都不知道,對UNIX更是一無所知。所以我們從最基礎(chǔ)的講起,對于Linux及UNIX的歷史我們不做多談,直接進入入門的學(xué)習(xí)。
Linux入門是很簡單的,問題是你是否有耐心,是否愛折騰,是否不排斥重裝一類的大修。沒折騰可以說是學(xué)不好Linux的,鳥哥說過,要真正了解Linux的分區(qū)機制,對LVM使用相當(dāng)熟練,沒有20次以上的Linux裝機經(jīng)驗是積累不起來的,所以一定不要怕折騰。
由于大家之前都使用Windows,所以我也盡可能照顧這些“菜鳥”。我的推薦,如果你第一次接觸Linux,那么首先在虛擬機中嘗試它。虛擬機我推薦Virtual Box,我并不主張使用VM,原因是VM是閉源的,并且是收費的,我不希望推動盜版。當(dāng)然如果你的Money足夠多,可以嘗試VM,但我要說的是即使是VM,不一定就一定好。
付費的軟件不一定好。
首先,Virtual Box很小巧,Windows平臺下安裝包在80MB左右,而VM動輒600MB,雖然功能強大,但資源消耗也多,何況你的需求Virtual Box完全能夠滿足。所以,還是自己選。
如何使用虛擬機,是你的事,這個我不教你,因為很簡單,不會的話Google或Baidu都可以,英文好的可以直接看官方文檔?,F(xiàn)在介紹Linux發(fā)行版的知識。
正如你所見,Linux發(fā)行版并非Linux,Linux僅是指操作系統(tǒng)的內(nèi)核,作為科班出生的你不要讓我解釋,我也沒時間。
我推薦的發(fā)行版如下:
UBUNTU 適合純菜鳥,追求穩(wěn)定的官方支持,對系統(tǒng)穩(wěn)定性要求較弱,喜歡最新應(yīng)用,相對來說不太喜歡折騰的開發(fā)者。
Debian,相對UBUNTU難很多的發(fā)行版,突出特點是穩(wěn)定與容易使用的包管理系統(tǒng),缺點是企業(yè)支持不足,為社區(qū)開發(fā)驅(qū)動。
Arch,追逐時尚的開發(fā)者的首選,優(yōu)點是包更新相當(dāng)快,無縫升級,一次安裝基本可以一直運作下去,沒有如UBUNTU那樣的版本概念,說的專業(yè)點叫滾動升級,保持你的系統(tǒng)一定是最新的。缺點顯然易見,不穩(wěn)定。同時安裝配置相對Debian再麻煩點。
Gentoo,相對Arch再難點,考驗使用者的綜合水平,從系統(tǒng)安裝到微調(diào),內(nèi)核編譯都親歷親為,是高手及黑客顯示自己技術(shù)手段,按需配置符合自己要求的系統(tǒng)的首選。
Slackware與Gentoo類似。
CentOS,社區(qū)維護的RedHat的復(fù)刻版本,完全使用RedHat的源碼重新編譯生成,與RedHat的兼容性在理論上來說是最好的。如果你專注于Linux服務(wù)器,如網(wǎng)絡(luò)管理,架站,那么CentOS是你的選擇。
LFS,終極黑客顯擺工具,完全從源代碼安裝,編譯系統(tǒng)。安裝前你得到的只有一份文檔,你要做的就是照文檔你的說明,一步步,一條條命令,一個個軟件包的去構(gòu)建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,證明你的Linux功底已經(jīng)相當(dāng)不錯,如果你能拿LFS文檔活學(xué)活用,再將Linux從源代碼開始移植到嵌入式系統(tǒng),我敢說中國的企業(yè)你可以混的很好。
1、Linux基礎(chǔ)
你得挑一個適合你的系統(tǒng),然后在虛擬機安裝它,開始使用它。如果你想快速學(xué)會Linux,我有一個建議就是忘記圖形界面,不要想圖形界面能不能提供你問題的答案,而是滿世界的去找,去問,如何用命令行解決你的問題。
在這個過程中,你最好能將Linux的命令掌握的不錯,起碼常用的命令得知道,同時建立了自己的知識庫,里面是你積累的各項知識。
2、Linux平臺的C/C++開發(fā),同時還有Bash腳本編程[JAVA]
再下個階段,你需要學(xué)習(xí)的是Linux平臺的C/C++開發(fā),同時還有Bash腳本編程,如果你對Java興趣很深還有Java。同樣,建議你拋棄掉圖形界面的IDE,從VIM開始,為什么是VIM,而不是Emacs,我無意挑起編輯器大戰(zhàn),但我覺得VIM適合初學(xué)者,適合手比較笨,腦袋比較慢的開發(fā)者。 Emacs的鍵位太多,太復(fù)雜,我很畏懼。然后是GCC,Make,Eclipse(Java,C++或者)。
雖然將C++列在了Eclipse中,但我并不推薦用IDE開發(fā)C++,因為這不是Linux的文化,容易讓你忽略一些你應(yīng)該注意的問題。 IDE讓你變懶,懶得跟豬一樣。如果你對程序調(diào)試,測試工作很感興趣,GDB也得學(xué)的很好,如果不是GDB也是必修課。這是開發(fā)的第一步,注意我并沒有提過一句Linux系統(tǒng)API的內(nèi)容,這個階段也不要關(guān)心這個。你要做的就是積累經(jīng)驗,在Linux平臺的開發(fā)經(jīng)驗。
我推薦的書如下:C語言程序設(shè)計。 C語言,白皮書當(dāng)然更好。 C++推薦 C++ Primer Plus, Java我不喜歡,就不推薦了,附一個別人的書單:java 入門書籍。工具方面推薦VIM的官方手冊,GCC中文文檔,GDB中文文檔,GNU開源軟件開發(fā)指導(dǎo)(電子書),匯編語言程序設(shè)計(讓你對庫,鏈接,內(nèi)嵌匯編,編譯器優(yōu)化選項有初步了解,不必深度)。
如果你這個階段過不了就不必往下做了,這是底線,最基礎(chǔ)的基礎(chǔ),否則離開,不要霍霍Linux開發(fā)。不專業(yè)的Linux開發(fā)者作出的程序是與Linux文化或UNIX文化相背的,程序是走不遠的,不可能像Bash,VIM這些神品一樣。所以做不好干脆離開。
3、UNIX環(huán)境高級編程
UNIX環(huán)境高級編程堪稱神作,經(jīng)典中的經(jīng)典。
接下來進入Linux系統(tǒng)編程,不二選擇,APUE,UNIX環(huán)境高級編程,一遍一遍的看,看10遍都嫌少,如果你可以在大學(xué)將這本書翻爛,里面的內(nèi)容都實踐過,有作品,你口頭表達能力夠強,你可以在面試時說服所有的考官。
(可能有點夸張,但APUE絕對是圣經(jīng)一般的讀物,即使是Windows程序員也從其中汲取養(yǎng)分, Google創(chuàng)始人的案頭書籍,扎爾伯克的床頭讀物。)
這本書看完后你會對Linux系統(tǒng)編程有相當(dāng)?shù)牧私?,知道Linux與Windows平臺間開發(fā)的差異在哪?它們的優(yōu)缺點在哪?我的總結(jié)如下:做Windows平臺開發(fā),很苦,微軟的系統(tǒng)API總在擴容,想使用最新潮,最高效的功能,最適合當(dāng)前流行系統(tǒng)的功能你必須時刻學(xué)習(xí)。 Linux不是,Linux系統(tǒng)的核心API就100來個,記憶力好完全可以背下來。而且經(jīng)久不變,為什么不變,因為要同UNIX兼容,符合POSIX標(biāo)準(zhǔn)。所以Linux平臺的開發(fā)大多是專注于底層的或服務(wù)器編程。
這是其優(yōu)點,當(dāng)然圖形是Linux的軟肋,但我站在一個開發(fā)者的角度,我無所謂,因為命令行我也可以適應(yīng),如果有更好的圖形界面我就當(dāng)作恩賜吧。另外,Windows閉源,系統(tǒng)做了什么你更本不知道,永遠被微軟牽著鼻子跑,想想如果微軟說Win8不支持QQ,那騰訊不得哭死。而Linux完全開源,你不喜歡,可以自己改,只要你技術(shù)夠。
另外,Windows雖然使用的人多,但使用場合單一,專注與桌面。而Linux在各個方面都有發(fā)展,尤其在云計算,服務(wù)器軟件,嵌入式領(lǐng)域,企業(yè)級應(yīng)用上有廣大前景,而且兼容性一流,由于支持POSIX可以無縫的運行在UNIX系統(tǒng)之上,不管是蘋果的Mac還是IBM的AS400系列,都是完全支持的。另外,Linux的開發(fā)環(huán)境支持也絕對是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就連C#也支持。而微軟除Visual Stdio套件以外,都不怎么友好,不是嗎?
如果你看完APUE的感觸有很多,希望驗證你的某些想法或經(jīng)驗,推薦UNIX程序設(shè)計藝術(shù),世界頂級黑客將同你分享他的看法。
4、選擇方向:網(wǎng)絡(luò),圖形,嵌入式,設(shè)備驅(qū)動
網(wǎng)絡(luò)方向:服務(wù)器軟件編寫及高性能的并發(fā)程序編寫
現(xiàn)在是時候做分流了。大體上我分為四個方向:網(wǎng)絡(luò),圖形,嵌入式,設(shè)備驅(qū)動。
如果選擇網(wǎng)絡(luò),再細分,我對其他的不是他熟悉,只說服務(wù)器軟件編寫及高性能的并發(fā)程序編寫吧。相對來說這是網(wǎng)絡(luò)編程中技術(shù)含量最高的,也是底層的。需要很多的經(jīng)驗,看很多的書,做很多的項目。
我的看法是以下面的順序來看書:
APUE再深讀– 尤其是進程,線程,IPC,套接字
多核程序設(shè)計- Pthread一定得吃透了,你很NB
UNIX網(wǎng)絡(luò)編程– 卷一,卷二
TCP/IP網(wǎng)絡(luò)詳解– 卷一再看上面兩本書時就該看了
5.TCP/IP 網(wǎng)絡(luò)詳解– 卷二我覺得看到卷二就差不多了,當(dāng)然卷三看了更好,努力,爭取看了
6.Lighttpd源代碼- 這個服務(wù)器也很有名了
7.Nginx源代碼– 相較于Apache,Nginx的源碼較少,如果能看個大致,很NB??丛创a主要是要學(xué)習(xí)里面的套接字編程及并發(fā)控制,想想都激動。如果你有這些本事,可以試著往暴雪投簡歷,為他們寫服務(wù)器后臺,想一想全球的魔獸都運行在你的服務(wù)器軟件上。
Linux內(nèi)核 TCP/IP協(xié)議棧– 深入了解TCP/IP的實現(xiàn)
如果你還喜歡驅(qū)動程序設(shè)計,可以看看更底層的協(xié)議,如鏈路層的,寫什么路由器,網(wǎng)卡,網(wǎng)絡(luò)設(shè)備的驅(qū)動及嵌入式系統(tǒng)軟件應(yīng)該也不成問題了。
當(dāng)然一般的網(wǎng)絡(luò)公司,就算百度級別的也該毫不猶豫的雇用你。只是看后面這些書需要時間與經(jīng)驗,所以35歲以前辦到吧!跳槽到給你未來的地方!
圖形方向,我覺得圖形方向也是很有前途的,以下幾個方面。
Opengl的工業(yè)及游戲開發(fā),國外較成熟。
影視動畫特效,如皮克斯,也是國外較成熟。
GPU計算技術(shù),可以應(yīng)用在瀏覽器網(wǎng)頁渲染上,GPU計算資源利用上,由于開源的原因,有很多的文檔程序可以參考。如果能進火狐開發(fā),或google做瀏覽器開發(fā),應(yīng)該會很好。
嵌入式方向:嵌入式方向沒說的,Linux很重要。
掌握多個架構(gòu),不僅X86的,ARM的,單片機什么的也必須得懂。硬件不懂我預(yù)見你會死在半路上,我也想走嵌入式方向,但我覺得就學(xué)校教授嵌入式的方法,我連學(xué)電子的那幫學(xué)生都競爭不過。奉勸大家,一定得懂硬件再去做,如果走到嵌入式應(yīng)用開發(fā),只能祝你好運,不要碰上像Nokia,Hp這樣的公司,否則你會很慘的。
驅(qū)動程序設(shè)計:
軟件開發(fā)周期是很長的,硬件不同,很快。每個月誕生那么多的新硬件,怎么讓他們在Linux上作業(yè)起來,這是你的作業(yè)。由于Linux的兼容性極好,假如不是太低層的驅(qū)動,根本C言語就能夠搞定,體系架構(gòu)的影響不大,由于有體系支撐,你可能做少許更改就能夠在ARM上運用PC的硬件了,所以做硬件驅(qū)動開發(fā)不像嵌入式,對硬件常識的請求很高。
能夠嫻熟的建立常見的效勞,lnmp,ftp,dns,smba,假如呈現(xiàn)毛病,能夠及時的排除去。。。常常運用Linux,必定能夠變成大神。
原文鏈接:
linux常用命令
linux常用命令如下:
1、查看內(nèi)核版本:uname -a。
2、控制臺-圖形界面:init 5或者startx。
3、圖形界面-控制臺: init3或者直接注銷。
4、如何查看ip地址:ifconfig。
5、配置ip:ifconfig eth0 ip地址。
6、重啟:reboot 或者 shutdown -r now。
操作命令
首先介紹一個名詞“控制臺”,它就是我們通常見到的使用字符操作界面的人機接口,例如dos。我們說控制臺命令,就是指通過字符界面輸入的可以操作系統(tǒng)的命令,例如dos命令就是控制臺命令。我們要了解的是基于Linux操作系統(tǒng)的基本控制臺命令和dos命令不同的是,Linux的命令(也包括文件名等等)對大小寫是敏感的。
Linux命令教程
之前的一篇文章小懿已經(jīng)給大家說了學(xué)習(xí)大數(shù)據(jù)都需要學(xué)習(xí)哪些內(nèi)容,接下來,小懿就會帶領(lǐng)著讀者們一起開始學(xué)習(xí)大數(shù)據(jù)的旅程。既然開始,那么就得從最基礎(chǔ)的地方開始,裝Linux系統(tǒng),別說Linux系統(tǒng)沒啥用,畢竟你已經(jīng)學(xué)會了Java,不想做運維的話,哪怕你只是會上傳文件,打包,解壓,啟動Tomcat的話,你都要會Linux的命令才能進行操作不是么?
Linux,全稱GNU/Linux,是一種免費使用和自由傳播的類UNIX操作系統(tǒng),其內(nèi)核由林納斯·本納第克特·托瓦茲于1991年10月5日首次發(fā)布,它主要受到Minix和Unix思想的啟發(fā),是一個基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。
其實我們劃重點,核心就是不要錢,開源,免費,功能還強大,那肯定是我們大家首選的東西了。學(xué)技術(shù)得先看點有趣的東西,那就是Linux的創(chuàng)始作者。
對就是這個人,在1991年,還在上大二的托瓦茲在互聯(lián)網(wǎng)上放出了他自己編寫的操作系統(tǒng) Linxus 0.01 版本。于是就有了最開始的Linux,以至于以后通過開源社區(qū)的不斷補充,使其從當(dāng)年一個人的“小項目”日益壯大起來。而之所以Linux能夠獲得這些資源,其實全依靠 Linux 采用的授權(quán)協(xié)議——GPL。
行了,這了解了Linux的創(chuàng)始和來源,我們就來安裝一下Linux操作系統(tǒng)吧。
在安裝Linux系統(tǒng)的時候,首先我們需要一個介質(zhì)工具,那就是VMware Workstation,虛擬機,安裝好這個之后,就相當(dāng)于是在你的電腦上裝了一個虛擬計算機的軟件,小懿相信,百分之九十以上的人,電腦里面都會有這個,它提供用戶可在單一的桌面上同時運行不同的操作系統(tǒng),和進行開發(fā)、測試、部署新的應(yīng)用程序的最佳解決方案。
如果有條件的,大家肯定可以使用阿里云或者華為云或者百度云等各種大廠出品的云服務(wù)器來進行使用,畢竟人家的服務(wù)器也是支持你在任何地方進行訪問的,只要你有賬號和密碼,所以阿粉也是整了一個云服務(wù)器來進行測試。
linux沒有盤符的概念,一切都是文件.
linux目錄結(jié)構(gòu) :
磁盤管理 :
最常用的就是查看文件多少的命令了,
ls 顯示當(dāng)前目錄下的文件或子目錄
cd 切換目錄
pwd 顯示當(dāng)前工作的目錄
mkdir 創(chuàng)建目錄
touch 創(chuàng)建文件
文件瀏覽 :
cat 命令 查看文件所有內(nèi)容
less 命令 分頁查看
tail 名稱 查看日志文件,查看的文件末尾內(nèi)容.
這個命令比如我們需要看日志的時候,就不用再去使用 XFTP 這樣的工具去把日志弄到本地來看了,直接就 tail -99f xxxx.log
文件操作 :
cp 復(fù)制
mv 重命名或移動
rm 刪除
find 查詢
文檔編輯
這是我們使用過程中最重要的一點,因為你需要修改配置文件的時候經(jīng)常會使用到文檔編輯的命令,所以這塊的內(nèi)容是你最需要掌握的。
vi/vim 修改
vi : 修改文件,但是顯示字體是白色
vim : 修改文件,但是關(guān)鍵字高亮顯示
這時候需要的就是我們需要熟記的一些命令,能夠幫我們剩下很多的時間,
一般模式:
插入模式:
底行模式:
grep 查找過濾
一般我們使用 grep 命令的時候,都是搭配著 ps 命令一起,去查看我們需要的一些進程信息,比如說:
ps -ef|grep tomcat 查看tomcat進程
kill 殺死進程
壓縮和解壓縮 :
chmod 文件授權(quán)
我們一般常用的組合就是那么幾種:
一般知道上面的權(quán)限這點內(nèi)容就差不多了,畢竟咱們干開發(fā)又不是專職 干運維的。
如何更深入地學(xué)習(xí)Linux?
如果想深入學(xué)習(xí)Linux,一定要嘗試去看英文文檔。 因為,技術(shù)性的東西寫得最好的,最全面的文檔都是英語寫的,最先發(fā)布的高新技術(shù)也都是用英語寫的。
開始Linux的學(xué)習(xí)之后,請不要用Windows的工作方式來思考問題,因為它們之間確實有很大的不同。
比如它們之間的內(nèi)存管理機制、進程運行機制等都有很大不同,因此拋開Windows的那種思維,用全新的理念嘗試去挖掘Linux身上特有的潛質(zhì),對初學(xué)者是至關(guān)重要的。
另外Linux是由命令行組成的操作系統(tǒng),精髓在命令行,無論圖形界面發(fā)展到什么水平,命令行方式的操作永遠是不會變的。
Linux命令有許多強大的功能:從簡單的磁盤操作、文件存取,到進行復(fù)雜的多媒體圖像和流媒體文件的制作,都離不開命令行。
雖然Linux也有桌面系統(tǒng),但是X-window也只是運行在命令行模式下的一個應(yīng)用程序。
因此,可以說命令是學(xué)習(xí)Linux系統(tǒng)的基礎(chǔ),在很大程度上學(xué)習(xí)Linux就是學(xué)習(xí)命令,很多Linux高手其實都是玩兒命令很熟練的人。
當(dāng)前題目:Linux會玩命令的人,linux初學(xué)者掌握的命令
文章轉(zhuǎn)載:http://fisionsoft.com.cn/article/phhshh.html