首先,要學(xué)Linux編程,你得會(huì)用Linux,也就是得在命令行環(huán)境下生存下來(lái)。什么叫生存下來(lái)呢?就是我現(xiàn)在給你一臺(tái)主機(jī),鍵盤(pán),顯示器啥的,然后給你一個(gè)服務(wù)器版的Linux系統(tǒng)的光盤(pán)或者其他什么安裝盤(pán),你去把這臺(tái)主機(jī)用起來(lái)。什么叫用起來(lái)呢?你平常用Windows電腦干啥,你現(xiàn)在還用這臺(tái)電腦干啥。新建文件啊,查看文件,編輯文件,保存文件,復(fù)制,移動(dòng),刪除,打包,解壓,聯(lián)網(wǎng),下載個(gè)什么東西啊等等基本操作你得會(huì)。還有軟件怎么安裝,不僅要熟悉apt-get和yum,還有給你源碼的軟件怎么安裝你得會(huì),另外要熟悉Linux下的文件系統(tǒng),每個(gè)目錄是干啥的,目錄下的文件是干嘛的,插入一個(gè)U盤(pán),如何掛載這個(gè)U盤(pán),操作U盤(pán)下的文件你得會(huì)啊。這個(gè)看一本書(shū)就行了,《鳥(niǎo)哥的Linux私房菜-基礎(chǔ)篇》,記得是基礎(chǔ)篇,記得安裝Linux系統(tǒng)自己操作一遍,還有一本是服務(wù)器篇,你既然是要學(xué)Linux編程開(kāi)發(fā),那就不用看服務(wù)器架設(shè)篇了。做完這一步,你可以開(kāi)發(fā)了。
同江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
Linux下開(kāi)發(fā),兩種基本語(yǔ)言,C和C++咯,至于其他人要說(shuō)Python,Java,Ruby啥的不討論,因?yàn)榫陀懻揕inux下的開(kāi)發(fā),什么是Linux開(kāi)發(fā)呢?就是利用Linux的API進(jìn)行開(kāi)發(fā)咯,首先你得會(huì)C語(yǔ)言或者C++語(yǔ)言啊,這個(gè)去看丹尼斯的《C程序設(shè)計(jì)語(yǔ)言》,注意是丹尼斯的,C++的就去看《Essential C++》或者《C++ Primer》,然后在Linux下的程序開(kāi)發(fā),Linux的API是遵循POSIX標(biāo)準(zhǔn)的,自行谷歌什么叫POSIX。Linux下程序開(kāi)發(fā)幾大塊,文件操作,這個(gè)很重要,你要知道Linux下的一個(gè)思想叫一切皆文件,可見(jiàn)文件讀寫(xiě)多重要了。I/O模型,五大I/O模型,阻塞,非阻塞,復(fù)用,信號(hào)驅(qū)動(dòng)和異步I/O,環(huán)環(huán)相扣絲絲相連,概念和操作都要仔細(xì)琢磨,最重要的當(dāng)屬?gòu)?fù)用,就是select,poll和epoll,面試筆試就問(wèn)這個(gè)東西,要知道他們的適用范圍和優(yōu)缺點(diǎn)。進(jìn)程和線(xiàn)程,包括進(jìn)程和線(xiàn)程的概念和區(qū)別,進(jìn)程和線(xiàn)程的建立,同步,通信,互斥等等。網(wǎng)絡(luò)編程,就是socket編程,Linux編程,這個(gè)學(xué)不好等于啥都沒(méi)學(xué),這個(gè)估計(jì)還得了解一下TCP/IP協(xié)議,編程方面主要是那幾步,申請(qǐng)socket,bind,listen,accept幾步,要熟悉種常見(jiàn)的服務(wù)器模型,進(jìn)程池線(xiàn)程池方式的,多進(jìn)程方式的,復(fù)用方式的,最重要的是復(fù)用方式的,這部分可以先只寫(xiě)服務(wù)器,測(cè)試直接用Telnet就好了,加快速度么。其余的就是數(shù)據(jù)庫(kù),這個(gè)東西不屬于Linux,但是還得會(huì),要不然啥都做不了,看那本《MySQL必知必會(huì)》,當(dāng)然深入的話(huà)還得找本專(zhuān)業(yè)的書(shū)細(xì)細(xì)看。這個(gè)時(shí)候就可以真刀真槍的去干點(diǎn)有意思的事了,比如寫(xiě)個(gè)終端下的類(lèi)似于QQ的軟件啊,包括服務(wù)器和客戶(hù)端啊,慢慢的增加并發(fā)數(shù),比如可以同時(shí)支持五千人在線(xiàn)啊,文件傳輸啊等等。然后學(xué)學(xué)Qt,熟悉一下圖形界面,可以把你的終端下的QQ完全改成圖形界面下的。估計(jì)到這個(gè)時(shí)候,你差不多在Linux下進(jìn)行像樣的開(kāi)發(fā)了吧。在這個(gè)過(guò)程的學(xué)習(xí)中,相信你已經(jīng)學(xué)會(huì)Makefile的編寫(xiě)啊,編譯啊,鏈接啊等等一些細(xì)枝末節(jié)的東西了,還得反思一下把零散的東西串一串,要系統(tǒng)化。
接下來(lái)就是繼續(xù)深入了,Linux為什么這么多人用,好處在哪里,你得去稍微的看看內(nèi)核源碼啊,內(nèi)核的進(jìn)線(xiàn)程調(diào)度啊,我告訴你,Linux內(nèi)核的一個(gè)鏈表都?jí)蚰阊芯亢脦坠?jié)課的。哦,這個(gè)時(shí)候,數(shù)據(jù)結(jié)構(gòu)啥的又得翻出來(lái)加強(qiáng)一下了不是,計(jì)算機(jī)網(wǎng)絡(luò)啥的也得看看,操作系統(tǒng)原理啥的也得看看呢不是,把這些東西放在這里是合適的,前面讓你知其然,知道怎么編程怎么做,現(xiàn)在要知其所以然了不是。
在學(xué)習(xí)的過(guò)程中,要不斷積累和了解最新的東西,最起碼要知道個(gè)概念,比如分布式,大數(shù)據(jù),云計(jì)算,機(jī)器學(xué)習(xí),計(jì)算機(jī)視覺(jué),JIT等等,形成知識(shí)鏈,這樣不會(huì)導(dǎo)致你最后不知道學(xué)啥。有個(gè)建議,一定要學(xué)一下Python,一定要學(xué)一下Python,一定要學(xué)一下Python,重要的事情說(shuō)三遍。它能極大的提高你的工作效率,也能和C/C++結(jié)合在一起用,很nice的語(yǔ)言。
最后推薦幾本書(shū)(前面的包含在內(nèi)):
《鳥(niǎo)哥的Linux私房菜 基礎(chǔ)篇》
《C程序設(shè)計(jì)語(yǔ)言》 丹尼斯寫(xiě)的
《Linux C編程一站式學(xué)習(xí)》 宋勁杉寫(xiě)的
《Eensstial C++》
《C++ Primer》
《Effective C++》
《Linux網(wǎng)絡(luò)編程》 宋勁彬?qū)懙?/p>
《Unix環(huán)境高級(jí)編程》
《Unix網(wǎng)絡(luò)編程》 兩部
《Linux高級(jí)程序設(shè)計(jì)》 華清遠(yuǎn)見(jiàn)的
《MySQL必知必會(huì)》
《數(shù)據(jù)庫(kù)系統(tǒng)概念》
《大話(huà)數(shù)據(jù)結(jié)構(gòu)》
《算法導(dǎo)論》
《Linux內(nèi)核情景分析》
《深入理解Linux內(nèi)核》
《深入理解計(jì)算機(jī)系統(tǒng)》
《現(xiàn)代操作系統(tǒng)》
《深入理解計(jì)算機(jī)網(wǎng)絡(luò)》
《TCP/IP》的三卷經(jīng)典書(shū)
學(xué)習(xí)Linux步驟:
1、先了解了解基礎(chǔ)吧,找一本薄一點(diǎn)的,淺一點(diǎn)的書(shū),了解一下什么是linux。有個(gè)基本了解即可。不建議馬上看《鳥(niǎo)哥的Linux私房菜》,這本書(shū)很不錯(cuò),如果你了解linux基礎(chǔ)之后再看,對(duì)你可以說(shuō)是不受益匪淺都不行。沒(méi)基礎(chǔ)看《鳥(niǎo)哥的Linux私房菜》比較痛苦,內(nèi)容很多。
2、了解之后,在自己電腦上弄個(gè)虛擬機(jī),裝上linux系統(tǒng)(redhat或ubuntu都行)。專(zhuān)攻《鳥(niǎo)哥的Linux私房菜》。當(dāng)你把這本書(shū)攻下來(lái)時(shí),才知道原來(lái)命令行并不可怕,自己打著打著就很長(zhǎng)啦。
學(xué)linux最主要靠實(shí)踐,不實(shí)踐,只看書(shū)對(duì)你沒(méi)好處的哦。自己在虛擬機(jī)上慢慢玩吧,玩多了就知道咋回事啦。不懂的多找資料弄懂,弄懂之后再實(shí)踐,這才會(huì)有收獲。
linux常用的語(yǔ)言就是shell和python,首先我們得先了解語(yǔ)言的概念
-EOF
EOF
編寫(xiě)一個(gè)簡(jiǎn)單的bash檔如下:
我們可以看到用./執(zhí)行bash檔時(shí),沒(méi)有進(jìn)入到/home目錄下,這種我們稱(chēng)為 在子shell中執(zhí)行 ,其不影響當(dāng)前shell的狀況(有時(shí)候執(zhí)行成功沒(méi)有效果的原因)。但是無(wú)論是. 執(zhí)行還是source執(zhí)行我們都成功進(jìn)入了home路徑下,這我們稱(chēng)之為 在當(dāng)前shell執(zhí)行
su nologinshell 不加載用戶(hù)的shell
su - loginshell 加載用戶(hù)的shell
可以很明顯的看出來(lái),當(dāng)用不加載用戶(hù)的shell加載用戶(hù)時(shí),是不會(huì)具有當(dāng)前加載用戶(hù)的權(quán)限的,很像windows中的游客模式
history歷史記錄緩存
~/.bash_history退出后寫(xiě)入緩存
~/.bash_logout退出后執(zhí)行
在這一層,順帶按圖索驥,理解一下linux系統(tǒng)開(kāi)機(jī)的歷程。紅字:系統(tǒng)層開(kāi)機(jī)/切換用戶(hù)歷程;藍(lán)字:用戶(hù)層開(kāi)機(jī)/切換用戶(hù)歷程;黃字:用戶(hù)層關(guān)機(jī)歷程。
曾經(jīng)玩過(guò)一個(gè)游戲:在用戶(hù)指令關(guān)機(jī)時(shí),會(huì)有一輛小火車(chē)開(kāi)過(guò),所以我們可以把調(diào)用小火車(chē)開(kāi)過(guò)的程式調(diào)用寫(xiě)在?
1、命令和文件的自動(dòng)補(bǔ)齊 shift
2、命令的歷史記憶功能:上下鍵、!number 執(zhí)行第多少條命令、
!string 找到最近以string開(kāi)頭的命令、! 上一個(gè)命令最后的參數(shù)、
!! 執(zhí)行上一個(gè)命令、^R 搜索歷史命令
3、別名功能:alias 查看別名、unalias 取消別名、(命名前加\斜線(xiàn)跳過(guò)別名)
alias xx=’xx’ 定義臨時(shí)別名、vim ~/.bashrc 定義永久別名
4.快捷鍵:^D 退出、^A 光標(biāo)移動(dòng)到命令最前、^E 光標(biāo)移動(dòng)到命令最后、
^L 清屏、^U 往前的刪掉、^K 往后的刪掉、^Y 撤銷(xiāo)、^M 回車(chē)
^S 鎖屏、^Q 解除鎖屏
5.前后臺(tái)作業(yè)控制: 后臺(tái)不保留、nohup 后臺(tái)保留、screen
; || (命令返回值echo ?)
*任意多個(gè)字符
?任意一個(gè)字符
[]匹配括號(hào)內(nèi)任意一個(gè)字符
()在子shell中執(zhí)行
{}集合
\轉(zhuǎn)義字符
注意點(diǎn):echo -e “a\tb”
$? 前一條命令的執(zhí)行成功與否
$1 傳入的第一個(gè)參數(shù) $2 $3 位置變量
沒(méi)有使用環(huán)境變量的必要性
練習(xí)內(nèi)容:讀取用戶(hù)指定文檔的ip連通性
bc計(jì)算器
假設(shè)我們定義了一個(gè)變量為:
記憶的方法為:
利用${ } 還可針對(duì)不同的變數(shù)狀態(tài)賦值(沒(méi)設(shè)定、空值、非空值):
我之前看鳥(niǎo)哥的Linux私房菜,據(jù)說(shuō)那個(gè)是經(jīng)典入門(mén)的。我當(dāng)時(shí)也是這么學(xué)法,實(shí)話(huà)說(shuō),效率很低,而且單純是本著對(duì)linux的喜愛(ài)才學(xué)的,事實(shí)上,再一個(gè)項(xiàng)目中學(xué)習(xí)并運(yùn)用linux技巧才是效率最高最急迫的,如果我們拿linux來(lái)做娛樂(lè),桌面的話(huà),除非是對(duì)其有特殊的愛(ài),否則會(huì)覺(jué)得既麻煩功能又少。
其實(shí)不然,linux本身就不是娛樂(lè)的,linux就是為解決問(wèn)題而生的,比如很多服務(wù)器都是搭載linux系統(tǒng)的。系統(tǒng)深入地學(xué)習(xí)推薦使用《linux就該這么學(xué)》,這本書(shū)能提供更全面的學(xué)習(xí)路線(xiàn)。
對(duì)于Linux的學(xué)習(xí),可以分為四個(gè)階段,Linux初級(jí)入門(mén)階段→Linux中級(jí)進(jìn)階→Linux高級(jí)進(jìn)階→Linux資深方向細(xì)化階段
第一階段:初級(jí)階段
初級(jí)階段需要把linux學(xué)習(xí)路線(xiàn)搞清楚,任何學(xué)習(xí)都是循序漸進(jìn)的,所以學(xué)linux也是需要有一定的路線(xiàn)。
1. Linux基礎(chǔ)知識(shí)、基本命令;
2. Linux用戶(hù)及權(quán)限基礎(chǔ);
3. Linux系統(tǒng)進(jìn)程管理進(jìn)階;
4. linux高效文本、文件處理命令;
5. shell腳本入門(mén)
第二階段:中級(jí)進(jìn)階
中級(jí)進(jìn)階需要在充分了解linux原理和基礎(chǔ)知識(shí)之后,對(duì)上層的應(yīng)用和服務(wù)進(jìn)行深入學(xué)習(xí),其中說(shuō)到服務(wù)肯定涉及到網(wǎng)絡(luò)的相關(guān)知識(shí),是需要花時(shí)間學(xué)習(xí)的。
1. TCP/IP網(wǎng)絡(luò)基礎(chǔ);
2. Linux企業(yè)常用服務(wù);
3. Linux企業(yè)級(jí)安全原理和防范技巧;
4. 加密/解密原理及數(shù)據(jù)安全、系統(tǒng)服務(wù)訪問(wèn)控制及服務(wù)安全基礎(chǔ);
5. iptables安全策略構(gòu)建;
6. shell腳本進(jìn)階;
7. MySQL應(yīng)用原理及管理入門(mén)
第三階段:Linux高級(jí)進(jìn)階
1. http服務(wù)代理緩存加速;
2. 企業(yè)級(jí)負(fù)載集群;
3. 企業(yè)級(jí)高可用集群;
4. 運(yùn)維監(jiān)控zabbix詳解;
5. 運(yùn)維自動(dòng)化學(xué)習(xí);
第四階段:Linux資深方向細(xì)化
1. 大數(shù)據(jù)方向;
2. 云計(jì)算方向;
3. 運(yùn)維開(kāi)發(fā);
4. 自動(dòng)化運(yùn)維;
5. 運(yùn)維架構(gòu)師
linux運(yùn)維的學(xué)習(xí)過(guò)程,主要分為4個(gè)階段,初級(jí)入門(mén)-中級(jí)進(jìn)階-高級(jí)提升-資深細(xì)化。
第一階段:初級(jí)入門(mén)
1、linux基礎(chǔ)知識(shí)、命令(常用命令如cp、ls、mkdir等)
2、linux用戶(hù)及權(quán)限基礎(chǔ)
3、linux系統(tǒng)進(jìn)程管理進(jìn)階
4、linux文件處理命令(vim、grep、sed、awk、find等)
5、shell腳本入門(mén)
第二階段:中級(jí)進(jìn)階
1、tcp/ip網(wǎng)絡(luò)基礎(chǔ)
2、linux企業(yè)級(jí)安全原理和防范技巧
3、加密/解密原理及數(shù)據(jù)安全、系統(tǒng)服務(wù)訪問(wèn)控制及服務(wù)安全基礎(chǔ)
4、iptables安全策略構(gòu)建
5、shell腳本進(jìn)階
6、mysql應(yīng)用原理及管理入門(mén)
第三階段:高級(jí)提升
1、企業(yè)級(jí)負(fù)載集群(主要學(xué)習(xí)varnish、nginx緩存系統(tǒng))
2、企業(yè)級(jí)高可用集群(需要對(duì)keepalived、heartbeat有一定了解)
3、運(yùn)維監(jiān)控zabbix詳解(主要是zabbix、cacti、nagios等監(jiān)控系統(tǒng))
4、運(yùn)維自動(dòng)化學(xué)習(xí)(需要學(xué)一些開(kāi)源運(yùn)維自動(dòng)化工具的使用,如ansible、puppet、cobbler等工具)
第四階段:資深進(jìn)階
1、大數(shù)據(jù)方向(需要對(duì)hadoop、storm等常見(jiàn)開(kāi)源大數(shù)據(jù)系統(tǒng)深入了解)
2、云計(jì)算方向(主要是openstack,kvm等虛擬化技術(shù)也是需要的,還有docker)
3、運(yùn)維開(kāi)發(fā)(python運(yùn)維開(kāi)發(fā))
4、自動(dòng)化運(yùn)維(在之前自動(dòng)化基礎(chǔ)上做深入)
文章名稱(chēng):linux命令進(jìn)階三部曲,Linux進(jìn)階
本文URL:http://jinyejixie.com/article12/dssdidc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、微信公眾號(hào)、定制網(wǎng)站、網(wǎng)站導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)