{eval=Array;=+count(Array);}
想要學(xué)習(xí)Linux系統(tǒng)下的C語(yǔ)言,肯定是要先學(xué)會(huì)Linux系統(tǒng),然后學(xué)習(xí)C語(yǔ)言,正好我這里有一套學(xué)習(xí)線路圖,也許能幫到你。
第一階段: C開(kāi)發(fā)實(shí)戰(zhàn)
成就:
(1)全國(guó)計(jì)算機(jī)二級(jí)考試(80分以上水平)
(2)入門(mén)計(jì)算機(jī)開(kāi)發(fā)編程領(lǐng)域
(3)一本以上大學(xué)高?!禖語(yǔ)言課程設(shè)計(jì)》,《C語(yǔ)言期末考試》搶手能力
第二階段:C高級(jí)編程
成就:
(1)高于一般985、211等高校,計(jì)算機(jī)相關(guān)專(zhuān)業(yè)應(yīng)屆生編程水平
(2)1年傳統(tǒng)企業(yè)(二線、三線、四線城市居多)C語(yǔ)言工程師編程能力
(3)全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)水平
第三階段:C++核心編程與桌面應(yīng)用開(kāi)發(fā)
C++面向?qū)ο缶幊棠芰ε囵B(yǎng)。培養(yǎng)應(yīng)用級(jí)別開(kāi)發(fā)能力、可以在PC端開(kāi)發(fā)基本的桌面系統(tǒng)
如“斗地主”游戲界面、“Foxmail”軟件界面、“360電腦管家”桌面應(yīng)用界面等。
成就:
(1)PC端桌面應(yīng)用程序開(kāi)發(fā)能
(2)1-3年P(guān)C端應(yīng)用編程崗位任職能力
(3)面向?qū)ο缶幊棠芰?/p>
(4)游戲程序開(kāi)發(fā)能力
第四階段:Linux系統(tǒng)編程及服務(wù)器開(kāi)發(fā)
本階段課程完全參考一線軟件技術(shù)型公司,Linux后臺(tái)研發(fā)能力研究、
課程設(shè)計(jì)靈感來(lái)自清華大學(xué)實(shí)驗(yàn)室技術(shù)教學(xué)思路。覆蓋90%以上全國(guó)軟件公司
Linux服務(wù)器研發(fā)技術(shù)領(lǐng)域。
成就:
(1)1-3年Linux服務(wù)器開(kāi)發(fā)工程師水平
(2)10人以下創(chuàng)業(yè)型公司后端研發(fā)主程(主力工程師)。
(3)Linux系統(tǒng)運(yùn)維能力
(4)互聯(lián)網(wǎng)公司高并發(fā)服務(wù)器設(shè)計(jì)能力
第五階段:信息安全及數(shù)據(jù)庫(kù)編程開(kāi)發(fā)
掌握基本信息安全技術(shù)(信息加密、通信認(rèn)證加密等)、及數(shù)據(jù)庫(kù)編程能力。
成就:
(1)計(jì)算機(jī)安全技術(shù)能力
(2)企業(yè)級(jí)安全研發(fā)工程師任職能力
(3)金融(銀行、支付寶)系統(tǒng)業(yè)務(wù)(支付、轉(zhuǎn)賬、辦理基金)開(kāi)發(fā)能力
第六階段:分布式云平臺(tái)開(kāi)發(fā)
云平臺(tái)開(kāi)發(fā),結(jié)合互聯(lián)網(wǎng)分布式存儲(chǔ)解決方案,百度大牛提供百度云盤(pán)企業(yè)
真實(shí)分布式云盤(pán)架構(gòu)(類(lèi)似百度云盤(pán)、ucloud云盤(pán)、網(wǎng)易云盤(pán)等)。
成就:
(1)一線城市互聯(lián)網(wǎng)公司開(kāi)發(fā)認(rèn)知能力
(2)分布式開(kāi)發(fā)能力
第七階段:網(wǎng)絡(luò)攻防Hacker入侵檢測(cè)防護(hù)系統(tǒng)開(kāi)發(fā)
本課程講解基本的網(wǎng)絡(luò)攻防知識(shí),和異常網(wǎng)絡(luò)行為防護(hù)。比如,如果公司在內(nèi)網(wǎng)有嘗試破解其他員工電腦行為,這條通信廣播將被系統(tǒng)截獲并攔截。系統(tǒng)技術(shù)采用國(guó)內(nèi)領(lǐng)先網(wǎng)絡(luò)安全公司技術(shù)根基,迎合市場(chǎng)LinuxC安全開(kāi)發(fā)方向需求設(shè)計(jì)。
成就:
(1)游戲外掛開(kāi)發(fā)能力
(2)Hacker滲透技術(shù)能力
(3)網(wǎng)絡(luò)攻防專(zhuān)家
(4)Linux C網(wǎng)絡(luò)攻防工程師
第八階段:Shell腳本編程與面試強(qiáng)化
Unix/Linux下Shell編程開(kāi)發(fā),掌握Shell的函數(shù)語(yǔ)法和工具制作,掌握Linux常用Shell指令和問(wèn)題定位方法.
成就:
(1)Linux運(yùn)維工程師;(2)腳本開(kāi)發(fā)工程師;(3)語(yǔ)言面試達(dá)人。
關(guān)于每個(gè)階段的學(xué)習(xí),部分是有視頻的,如果想獲取視頻,可以關(guān)注后臺(tái)回復(fù)我。
linux學(xué)習(xí)C語(yǔ)言編程需要做好幾件事情
1.安裝一個(gè)linux系統(tǒng),有兩種選擇安裝linux系統(tǒng)或者在windows上安裝虛擬機(jī),但筆者更加喜歡直接安裝一個(gè)linux系統(tǒng),然后安裝個(gè)windows虛擬機(jī),這樣既能滿(mǎn)足自己玩linux的虛榮心,還能在虛擬機(jī)上的windows系統(tǒng)進(jìn)行購(gòu)物。
2.學(xué)習(xí)常見(jiàn)的linux命令,常見(jiàn)的命令也就十幾個(gè)命令,簡(jiǎn)單概述在windows下用鼠標(biāo)做的事情,能不能用命令行得代替了
3.需要懂得如何用命令行進(jìn)行編譯,其實(shí)這對(duì)初學(xué)者來(lái)說(shuō)還是存在一定的挑戰(zhàn),拓展的再多點(diǎn)就是學(xué)習(xí)如何構(gòu)建makefile了
4.無(wú)論在什么系統(tǒng)下學(xué)習(xí)都要把C語(yǔ)言的基礎(chǔ)搞定,C語(yǔ)言的入門(mén)書(shū)籍可以選擇C程序員設(shè)計(jì)語(yǔ)言,其實(shí)教材都不是最重要的,重要的是自己有沒(méi)有學(xué)習(xí)的決心。
1. 搭建Linux開(kāi)發(fā)環(huán)境
如果有PC資源的話,可以自行安裝一個(gè)Ubuntu或者Redhat操作系統(tǒng),如果目前只有一臺(tái)windows或者mac的話,那么可以安裝一個(gè)虛擬機(jī),在虛擬機(jī)里面裝一個(gè)Ubuntu系統(tǒng)。
有了Linux系統(tǒng)之后,那么接下來(lái)就是配置你自己的Linux系統(tǒng)了,安裝各種軟件包,根據(jù)你個(gè)人的習(xí)慣,設(shè)置桌面等等。
最后就是你要熟悉Ubuntu系統(tǒng)了,剛開(kāi)始可以自己先熟悉Linux終端下的各種shell命令,這些命令只有你敲的多了,自然就熟記于心了,這也是我為什么建議自己安裝一臺(tái)Ubuntu的原因,強(qiáng)迫自己必須去使用Linux的shell命令。
2. 搭建編輯編譯環(huán)境
Linux下的編輯環(huán)境那么就非Vim莫屬了,但是對(duì)于初學(xué)者來(lái)說(shuō),使用Vim確實(shí)不是那么容易,但是當(dāng)你熟練運(yùn)用Vim后,你會(huì)發(fā)現(xiàn),在Vim下不需要鼠標(biāo),一個(gè)鍵盤(pán)在手,代碼我就有,比windows下的編輯工具好用多了。所以剛開(kāi)始一定不要?dú)怵H,配置你自己的Vim界面風(fēng)格,可以下載一下插件,幫助你有效的使用Vim,對(duì)于vim的各種命令,更是要勤加練習(xí)。
編譯的話,剛開(kāi)始可以使用簡(jiǎn)單的gcc,例如gcc hello.c就可以將你的hello.c編譯生成一個(gè)Linux下的可執(zhí)行文件a.out。當(dāng)你學(xué)習(xí)的工程越來(lái)越大時(shí),那么就要學(xué)習(xí)使用Makefile了。
4. 看案例,寫(xiě)demo練習(xí)
可以自己上網(wǎng)上,或者從書(shū)上,把別人寫(xiě)的例子,自己照著敲一遍,學(xué)習(xí)別人的編碼風(fēng)格及代碼框架構(gòu)思,慢慢的,可以在別人的代碼基礎(chǔ)上,根據(jù)自己的想法去修改代碼,然后編譯調(diào)試,這個(gè)過(guò)程中你們學(xué)習(xí)到很多的。
總結(jié)
要想學(xué)好編程,那么必須多寫(xiě)、多練,必須自己動(dòng)手去調(diào)試、去解決問(wèn)題,當(dāng)然最重要的就是一定要有一顆持之以恒、永不放棄的決心。
入門(mén)的話可以選擇一些含有圖形化界面的集成開(kāi)發(fā)環(huán)境,像codelite,直接從源一條命令行就可以安裝,當(dāng)然熟悉的話vim+gcc也不錯(cuò)。另外,覺(jué)得最重要的不是用什么工具入門(mén),而是你怎么去理解這個(gè)東西。
windows下寫(xiě)程序很簡(jiǎn)單,只需要在IDE(集成開(kāi)發(fā)環(huán)境)中鼠標(biāo)點(diǎn)擊編譯按鈕,然后便可按執(zhí)行按鈕執(zhí)行,非常簡(jiǎn)單,但是linux就不一樣了,需要手動(dòng)編譯,手動(dòng)執(zhí)行,稍微麻煩,但是可以理解其運(yùn)行原理,對(duì)初學(xué)者很有用
首先得安裝gcc編譯器,在命令行終端中輸入gcc,如果你的機(jī)器安裝有g(shù)cc編譯器,那么會(huì)輸入一下信息
gcc: fatal error: no input files
compilation terminated.
一般情況所有l(wèi)inux發(fā)行版都安裝有g(shù)cc編譯器,如果沒(méi)有執(zhí)行以下命令安裝
apt-get install gcc
安裝完gcc編譯器后就可以開(kāi)始寫(xiě)代碼了,那你得有一款代碼編輯器,推薦使用
vim,如果沒(méi)有安裝則執(zhí)行一下命令安裝
apt-get install vim
所有工具安裝完成后,新建地一個(gè)c程序,命名為helloworld.c,代碼如下
接下來(lái)開(kāi)始編譯,命令如下
方式一: gcc helloworld.c 此命令將編譯生a.out可執(zhí)行文件
方式二: gcc helloworld.c -o helloworld 生成helloworld可執(zhí)行文件
接下來(lái)可以執(zhí)行編譯后的程序了,在當(dāng)前目錄下執(zhí)行命令
./helloworld
Linux的C語(yǔ)言編程有兩種:傻瓜型和折騰型。
傻瓜型的,就是打開(kāi)QtCreator,新建工程,選擇Qt Console Application,然后就開(kāi)始寫(xiě)代碼、編譯、運(yùn)行。
傻瓜型沒(méi)什么好說(shuō)的。但要真正學(xué)技術(shù),還是推薦折騰型的,是高手進(jìn)階的必由之路。
折騰型分三個(gè)階段:
小白
在小白階段,剛會(huì)一點(diǎn)C,急于試一試,在終端打開(kāi)nano或vim,寫(xiě)上經(jīng)典的hello world,保存為
main.c,然后運(yùn)行命令gcc main.c
這個(gè)命令會(huì)生成a.out的可執(zhí)行文件,運(yùn)行它./a.out即可。
小白階段可以用很久,直到你煩了,大吼一聲,能不能少打幾個(gè)字?于是進(jìn)階到第二階段。
自動(dòng)化
自動(dòng)化編譯過(guò)程,當(dāng)然是用Makefile文件。在與main.c同目錄的地方新建文件Makefile,寫(xiě)入:
all:
gcc
main.c
-o test注意:gcc前是一個(gè)tab符,不是空格。
然后在命令行輸入make,即可編譯得到test可執(zhí)行文件。
是不是少輸了不少字符?!
這個(gè)階段也可用很長(zhǎng)時(shí)間,你也可以并列多個(gè)gcc,生成多個(gè)可執(zhí)行文件。
如果你要開(kāi)始做項(xiàng)目,這個(gè)也就不夠用了,這是應(yīng)主動(dòng)升級(jí)到第三階段:構(gòu)建系統(tǒng)。
構(gòu)建系統(tǒng)
當(dāng)做真正的項(xiàng)目時(shí),源文件一般有多個(gè),可能還有幾個(gè)目錄。這時(shí)手寫(xiě)Makefile就顯得吃力。這是可以借助構(gòu)建系統(tǒng)。
常用的構(gòu)建系統(tǒng)有Autotools、CMake、QBS等。建立構(gòu)建系統(tǒng)的一個(gè)方法是從一個(gè)已有的項(xiàng)目中復(fù)制配置文件,即仿照一個(gè)已有的項(xiàng)目。
比如Autotools構(gòu)建系統(tǒng),可以仿照gnu hello項(xiàng)目。下載:http://ftp.gnu.org/gnu/hello/
跟windows下一樣,寫(xiě)個(gè)helloworld程序保存為helloworld.c,然后再打開(kāi)跟cmd差不多的終端輸入gcc helloworld.c ,這時(shí)會(huì)默認(rèn)生成a.out可執(zhí)行文件,然后在終端輸入./a.out運(yùn)行這個(gè)可執(zhí)行程序,注意斜杠前有點(diǎn)號(hào)。最簡(jiǎn)單的就是這個(gè),其余加參數(shù)什么的就是改變一些功能而已,你暫時(shí)不需要管那么多,都很簡(jiǎn)單的命令。至于語(yǔ)法都一樣,不分系統(tǒng),差別只是編譯工具不同罷了。
0
回答0
回答0
回答0
回答0
回答0
回答2
回答0
回答0
回答0
回答