1. 程式人生 > >linux常用工具問答

linux常用工具問答

一.自行查詢資料, 調研除了vim, 還有哪些常用的牛逼的編輯器, 並能夠橫向對比編輯器之間的區別和優缺點.

1.vim

vim是一個類似於vi的著名的功能強大、高度可定製的文字編輯器,在vi的基礎上改進和增加了很多特性。VIM是自由軟體。

vim普遍被推崇為類vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。1999 Emacs被選為Linuxworld文字編輯分類的優勝者,vim屈居第二。但在20002Vim贏得了Slashdot Beanie的最佳開放原始碼文字編輯器大獎,又將Emacs推至二線, 總的來看, vimEmacs在文字編輯方面都是非常優秀的。

2.Emacs

Emacs,著名的整合開發環境和文字編輯器。Emacs被公認為是最受專業程式設計師喜愛的程式碼編輯器之一,另外一個vim

EMACS,即Editor MACroS(編輯器巨集)的縮寫,最初由Richard Stallman(理查德·馬修·斯托曼)1975年在MIT協同Guy Steele共同完成。這一創意的靈感來源於TECMACTMACS,它們是由Guy SteeleDave MoonRichard GreenblattCharles Frankston等人編寫的巨集文字編輯器。

自誕生以來,Emacs演化出了眾多分支,其中使用最廣泛的兩種是:1984年由Richard Stallman

發起並由他維護至今的GNU Emacs,以及1991年發起的XEmacsXEmacsGNU Emacs的分支,至今仍保持著相當的相容性。

Emac使用Emacs Lisp,這種有著極強擴充套件性的程式語言,從而實現了包括程式設計、編譯乃至網路瀏覽等等功能的擴充套件。

3.Eclipse

Eclipse 是一個開放原始碼的、基於Java的可擴充套件開發平臺。就其本身而言,它只是一個框架和一組服務,用於通過外掛元件構建開發環境。雖然大多數使用者很樂於將 Eclipse 當作 Java 整合開發環境(IDE)來使用,但 Eclipse 的目標卻不僅限於此。Eclipse 還包括外掛開發環境(

Plug-in Development EnvironmentPDE),這個元件主要針對希望擴充套件 Eclipse 的軟體開發人員,因為它允許他們構建與 Eclipse 環境無縫整合的工具。由於 Eclipse 中的每樣東西都是外掛,對於給 Eclipse 提供外掛,以及給使用者提供一致和統一的整合開發環境而言,所有工具開發人員都具有同等的發揮場所。 

這種平等和一致性並不僅限於 Java 開發工具。儘管 Eclipse 是使用Java語言開發的,但它的用途並不限於 Java 語言;例如,支援諸如C/C++COBOLPHPAndroid等程式語言的外掛已經可用,或預計將會推出。Eclipse 框架還可用來作為與軟體開發無關的其他應用程式型別的基礎,比如內容管理系統。 

 


二.自行查詢資料, 調研除了gcc, 還有哪些常用的牛逼的編譯器(不限制程式語言, 不限制平臺).

1. Kdevelop是一個專為C/C++及其他語言的開源擴充套件外掛IDE,它基於KDevPlatform平臺,這是一款可用於IDE基礎開源庫。

2. Anjuta Devstudio是另外一款強大的開發工具,擁有先進的程式設計特性包括專案管理、應用程式嚮導、互動式偵錯程式、原始碼編輯器、版本控制,GUI設計、分析器等等,這款工具為C/C++開發者提供強大的使用者介面介面。

3. Code Blocks是一款比較流行的免費且開源的整合開發環境,該工具擁有所有功能,能夠滿足開發者所需,比如高效的使用者介面、編譯及除錯功能等。 

4. Visual-MigGW是一款極為簡單的開源IDE,它所有的Windows API可來進行簡單快速的開發,它還支援一個隨時可用的應用框架,專案託管在SourceForge.net

 5. Ideone是一款線上編輯器和除錯工具,這款工具提供了強大的功能,幫助程式設計師以更加快速有效的方式編譯原始碼。

 6. Eclipse CDT提供更加高效的功能,如:支援為各種工具鏈提供專案建立及管理、標準構建、原始碼導航、各種知識工具源,程式碼編輯器功能如高亮顯示、摺疊、超連結導航、原始碼重構以及程式碼生成,視覺化除錯工具,包括記憶體、暫存器及反彙編檢視。

 7. Compiler是一款線上整合開發工具,允許你編寫令人印象深刻的程式碼功能和簡單的使用者介面,該工具支援的語言如CC++JavaHTML

8. Code lite是一款極好的免費開源的IDE,幾乎可運行於所有平臺。

9. Netbeans工具包含多種型別模板,它擁有迷人的功能,使其在Web開發者更加流行,比如:程式碼協助、編譯配置、單元測試、原始碼檢測、遠端開發及檔案導航等功能。

10. Dev C++的功能包括:類瀏覽器、整合除錯、支援GCC、專案管理、程式碼編譯、編輯且編譯資原始檔工具管理、功能清單。
 

三. 為什麼除錯的時候需要編譯選項中新增 -g. 同學們自行調研readelf命令.

預設編譯生成的可執行檔案是無法使用 gdb 來跟蹤或除錯的,因為可執行程式中沒有可供 gdb 除錯使用的特殊資訊,為了將必要的除錯資訊整合到可執行檔案中,我們便需要用到 -g 選項,這樣生成的可執行程式,倘若出現問題,便可以使用 gdb 找出問題具體出現的位置,便於問題的解決。

 

四. 在Linux下實現進度條程式. 通過makefile進行編譯. 建議自主完成一個彩色的進度條.

1.

2.寫一個.c的程式碼

3.編寫makefile

注意:gcc前不是空格,而是Tab鍵

 

五. 同學們自行調研Linux下軟體安裝的幾種方式(原始碼安裝, rpm安裝, yum安裝). 重點要理解rpm安裝和yum安裝的區別.  

rpm是由紅帽公司開發的軟體包管理方式,使用rpm我們可以方便的進行軟體的安裝、查詢、解除安裝、升級等工作。但是rpm軟體包之間的依賴性問題往往會很繁瑣,尤其是軟體由多個rpm包組成時。

Yum(全稱為YellowdogUpdater,Modified)是一個在FedoraRedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。