Linux:初學總結(一些開發工具總結)

Linux學習目錄


開始linux學習時想必大多數人開始使用的文本編譯器是Vim編譯器,但是linux裏可不止只有它一個編譯器。來開始講起:

1.文本編譯器介紹

1.1:Vim文本編譯器

Vim是一個類似於Vi的著名的功能強大、高度可定製的文本編輯器,在Vi的基礎上改進和增加了很多特性。VIM是自由的軟件,具有特別豐富代碼補全、編譯及錯誤跳轉等方便編程的功能,在程序員中被廣泛使用,和Emacs並列成爲類Unix系統用戶最喜歡的文本編輯器。

Vim的設計理念就是命令組合,就像linux一樣,用命令組合操作文件。“yy”複製當前行,”p”粘貼,“dd”刪除當前行,一開始用時是不是感覺很酷,哈哈,我就覺得很酷啊。

在非插入模式下Vim移動光標可以用上下左右鍵來移動光標,但是正規Vim是用小寫h,j,k,l,分別控制光標左、下、上、右移動。是不是很神奇,知道爲什麼嗎?
看看最開始的使用Vim文本編譯器的鍵盤
這裏寫圖片描述
明白了吧。

1.2:Emace

Emacs,著名的集成開發環境和文本編輯器。Emacs被公認爲是最受專業程序員喜愛的代碼編輯器之一,另外一個是Vim。
特點:Emacs不僅僅是一個編輯器,他是一個整合環境,或可稱它爲集成開發環境,這些功能如讓使用者置身於全功能的操作系統中,在基於編輯器的功能基礎上,Emacs自行開發了一個“bourne-shell-like”的shell: EShell。
Emacs還可以:

收發電子郵件
通過FTP/TRAMP編輯遠程檔案
通過Telnet登錄主機
上新聞組
登陸IRC和朋友交流
查看日曆
撰寫文章大綱
對多種編程語言的編輯
調試程序,結合GDB,EDebug等。支持C/C++,Perl,Python,Lisp等等
玩遊戲
計算器
記日記
管理日程,Task,ToDo,約會等
個人信息管理
目錄管理
文件比較
閱讀info和man文檔
瀏覽網站
爲各種程序(TeX等)提供統一的操作界面

1.3:Eclipse

Eclipse 是一個開放源代碼的、基於Java的可擴展開發平臺。就其本身而言,它只是一個框架和一組服務,用於通過插件組件構建開發環境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發工具(Java Development Kit,JDK),它是著名的跨平臺的自由集成開發環境(IDE)。最初主要用來Java語言開發,通過安裝不同的插件Eclipse可以支持不同的計算機語言,比如C++和Python等開發工具。Eclipse的本身只是一個框架平臺,但是衆多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發商以Eclipse爲框架開發自己的IDE。

1.4:Brackets

Brackets是一個輕量級但功能強大的現代文本編輯器。它可以將可視化工具混合到編輯器中,這樣當您需要它時,您就可以得到正確的幫助,而不會妨礙您的創作過程。你會喜歡用括號寫代碼。它是一個開源項目,由一個積極和充滿激情的社區支持着。

1.5:Lighttable

LightTable是一個應用ClojureScript寫的可擴展的集成編輯環境(IDE)。由ChrisGranger和RobertAttorri開發。具有實時運行反饋,調試和搜索文檔的功能。及時反饋功能提供了一個不同尋常的運行環境來讓程序員構建抽象。
開發團隊試圖創造一個能夠讓程序員及時獲知程序運行狀態的軟件。該軟件一開始只支持Clojure語言,但是現在通過衆多擴展,也能夠支持Python和JavaScript語言。

1.6:Sublime Text

Sublime Text 是一個代碼編輯器,也是HTML和散文先進的文本編輯器。Sublime Text是由程序員Jon Skinner於2008年1月份所開發出來,它最初被設計爲一個具有豐富擴展功能的Vim。
Sublime Text具有漂亮的用戶界面和強大的功能,例如代碼縮略圖,Python的插件,代碼段等。還可自定義鍵綁定,菜單和工具欄。Sublime Text 的主要功能包括:拼寫檢查,書籤,完整的 Python API , Goto 功能,即時項目切換,多選擇,多窗口等等。Sublime Text 是一個跨平臺的編輯器,同時支持Windows、Linux、Mac OS X等操作系統。

總結一下以上文本編譯器,Vim和Emace是最受廣大編程人員喜愛的,它們操作簡單,上手更加容易,功能更加強大。

2.編譯器介紹

2.1:gcc

GCC 原名爲 GNU C 語言編譯器(GNU C Compiler),因爲它原本只能處理 C語言。但GCC很快地擴展,變得可處理 C++。後來又擴展能夠支持更多編程語言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各類處理器架構上的彙編語言等,所以改名GNU編譯器套件
GCC的外部接口長得像一個標準的Unix編譯器。使用者在命令列下鍵入gcc之程序名,以及一些命令參數,以便決定每個輸入檔案使用的個別語言編譯器,併爲輸出程序碼使用適合此硬件平臺的組合語言編譯器,並且選擇性地執行連接器以製造可執行的程序。

2.2:EGCS

EGCS(Experimental/Enhanced GNU Compiler System)這是gcc的發展方向, 把fortran等編譯器集成進來, 它的構造很清晰, 把對gcc的各種改進/port都集成回去. 如gcc 2.7系列據說是沒有對Pentium進行優化的, 而egcs則把pgcc對Pentium的一些優化集成進去了。

2.3:PGCC

PGCC(Pentium GCC) 針對Pentium CPU進行了編譯器優化的compiler pgcc據說用JPEG壓縮解壓縮測試最快可比gcc快 30%!新版的pgcc都是基於egcs的, 以一個patch的形式release 。

我們用的最多的還是gcc編譯器,其他兩個可以先了解一下,主要是gcc要好好了解,要會使用。

gcc編譯分爲四個階段:
1.預處理 ->展開頭文件、宏替換、去掉註釋、條件編譯
2.編譯 ->檢查語法詞法並生成彙編代碼
3.彙編 ->彙編代碼變爲機器認識的機器碼
4.鏈接 ->鏈接到一起生成可執行程序

當你寫好程序編譯完發現有錯誤時,你就需用gdb進行調試,但是調試前你需要執行gcc -g a.out(可執行文件)。
那麼爲什麼要加-g,因爲它會生成可調式信息的可執行文件,這樣你纔可以進行調試。
學linux也要多練習,多敲代碼。
下面寫一個彩色進度條,如下圖:
這裏寫圖片描述
首先你要清楚你想要實現進度條的樣子,然後一步一步完成。
1.進度條是在一行顯示,並且字符是逐漸增加的,怎麼實現呢?
這時候就需要用\r,它的作用是將光標移動到本行最左端位置。這樣每次顯示都會從最左端覆蓋前面字符串然後打印,效果就像進度條一樣。
2.printf(“\033[3%im[%-100s][%d%%][%c]\033[0m\r”,i%7,baf,i,lable[i%4]);
\033

字體顏色格式:\033[33m變色內容\033[0m
第一個\033 是格式化處理
3%i,i是顏色代表值;0-7 0是黑色7是白色;以4開頭的是背景顏色(4%7:背景色爲白色)
最後的\033是把以前設置的格式清除掉

代碼:
#include<stdio.h>
#include<unistd.h>
#include<string.h>

int main()
{
    char baf[101];
    memset(baf,0x00,sizeof(baf));
    int i = 0;
    char *lable="\\|/-";//假裝旋轉的字符
    for(i = 0 ; i < 101 ; i++)
    {
         printf("\033[3%im[%-100s][%d%%][%c]\033[0m\r",i%7,baf,i,lable[i%4]);
         fflush(stdout);//如果不清緩衝區,就不會出現動態連續的效果,會斷斷續續出現,因爲linux中緩衝區寫滿後纔會輸出。
         baf[i] = '#';
         usleep(100000);//加載進度時每次睡眠0.1s,出現動態效果
    }
    printf("\n");
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章