linux常用工具問答
一.自行查詢資料, 調研除了vim, 還有哪些常用的牛逼的編輯器, 並能夠橫向對比編輯器之間的區別和優缺點.
1.vim
vim是一個類似於vi的著名的功能強大、高度可定製的文字編輯器,在vi的基礎上改進和增加了很多特性。VIM是自由軟體。
vim普遍被推崇為類vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。1999 年Emacs被選為Linuxworld文字編輯分類的優勝者,vim屈居第二。但在2000年2月Vim贏得了Slashdot Beanie的最佳開放原始碼文字編輯器大獎,又將Emacs推至二線, 總的來看, vim和Emacs在文字編輯方面都是非常優秀的。
2.Emacs
Emacs,著名的整合開發環境和文字編輯器。Emacs被公認為是最受專業程式設計師喜愛的程式碼編輯器之一,另外一個vim。
EMACS,即Editor MACroS(編輯器巨集)的縮寫,最初由Richard Stallman(理查德·馬修·斯托曼)於1975年在MIT協同Guy Steele共同完成。這一創意的靈感來源於TECMAC和TMACS,它們是由Guy Steele、Dave Moon、Richard Greenblatt、Charles Frankston等人編寫的巨集文字編輯器。
自誕生以來,Emacs演化出了眾多分支,其中使用最廣泛的兩種是:1984年由Richard Stallman
Emac使用Emacs Lisp,這種有著極強擴充套件性的程式語言,從而實現了包括程式設計、編譯乃至網路瀏覽等等功能的擴充套件。
3.Eclipse
Eclipse 是一個開放原始碼的、基於Java的可擴充套件開發平臺。就其本身而言,它只是一個框架和一組服務,用於通過外掛元件構建開發環境。雖然大多數使用者很樂於將 Eclipse 當作 Java 整合開發環境(IDE)來使用,但 Eclipse 的目標卻不僅限於此。Eclipse 還包括外掛開發環境(
這種平等和一致性並不僅限於 Java 開發工具。儘管 Eclipse 是使用Java語言開發的,但它的用途並不限於 Java 語言;例如,支援諸如C/C++、COBOL、PHP、Android等程式語言的外掛已經可用,或預計將會推出。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是一款線上整合開發工具,允許你編寫令人印象深刻的程式碼功能和簡單的使用者介面,該工具支援的語言如C、C++、Java、HTML。
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)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。