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