導航:首頁 > 編程系統 > linuxgitide

linuxgitide

發布時間:2023-03-07 01:30:37

1. 日常生活和開發全用linux可行嗎為什麼

完全可行的。

很多人的頭腦印像中,認為linux是主要用作伺服器系統,特別的高深,需要手敲很多的命令來執行操作。

其實Linux是一個完全可以作為日常使用的操作系統來使用的。 只不過,在大平台的推廣下,它只能作為一個小眾產品來使用而已。

現在很多linux桌面操作系統本身就被設計成為模仿Windows的界面風格,熟悉Windows的用戶在這一系統下會比較順手。 常見的Linux桌面發行版有Ubuntu、深度(deepin)等。

聊天 ,騰訊QQ Linux版本,支持X64、ARM64、MIPS64架構。

辦公軟體 ,雖然Linux下沒有微軟的Office系列,但WPS是非常不錯的一套辦公軟體哦,完全不遜色與微軟的Office。

游戲 ,很多人質疑說,Linux下的 游戲 太少了,根本滿足不了大眾的 游戲 需求,其實,在我看來,是大多數用戶的大型 游戲 的需求還是不大,即便有需求,Linux下也有相應的解決方案,比如:Steam就是在Linux系統下的 游戲 分發軟體,通過Steam平台,很多相當不錯的 游戲 進入Linux。

程序開發 ,對於程序員來說,幾乎的程序開發環境都可以在Linux中搭建起來,並且絕大多數,在Linux下的開發效率是要比在Windows下開發要容易和高效的,因為Linux有著極其強大的自由性。尤其是對於web開發,由於伺服器端一般都採用Linux系統,所以,如果本機也安裝linux進行開發,那將會節省很多成本,並且保持了環境的高度統一。

Linux對於移動端、雲計算、Ai技術以及嵌入式等各個領域,都發揮著非常重要的作用。

非常難,最關鍵的原因是在linux下,眾多的專業軟體沒有,網銀軟體什麼的沒有,同時一些日常生活中的冷僻一點的軟體也沒有。

1、專業的軟體沒有

比如PS、CAD等等,這些工具軟體就是沒有的,所以如果你需要使用這些專業的工具軟體,就無法實現全部用linux。

2、日常生活的很多軟體也沒有

有些人說我不用專業軟體,就日常看看視頻,上上網之類的。如果你只是這些簡單的需求,估計是可以。

但問題是,在linux下,很多的網銀軟體,控制項什麼的都沒有,這樣你付不了款,登不網上銀行什麼的,這些可就是大問題了。

3、開發方面

開發方面也分好多種,有些是必須在windows下開發的,有些是需要MacOS環境,有些需要linux環境,具體看你的開發需求是什麼,並不能一概而論。

但是在我看來,完全只使用linux,不用其它的操作系統,真的很難的,這也是目前國產系統無法廣泛推廣的根本原因之所以,畢竟所有的國產系統都是基於linux系統的修改版。

我嘗試過Linux系統桌面版本的使用情況,這里使Ubuntu及國內的Deepin系統。本文以Ubuntu18.04為例。

我們下載系統後初始安裝界面差不多就是這個樣子,後期可以自定義出各種界面,自由度非常高!

一、日常生活及辦公軟體

1、聊天軟體QQ

騰訊曾於2008年推出QQ for Linux版本,但2009年之後就再也沒有更新過,但在上個月24號騰訊宣布QQ for Linux版正式回歸!全新版本優化了消息體驗,完善了消息的收發能力以及在性能上得到了提升。

2.辦公軟體WPS

WPS官網也是有發布Linux版本的

總體來說辦公軟體也是非常好用的,跟windows基本沒什麼區別,滿足日常辦公需求。

我自己嘗試過用Linux來應付一個周的時間,在完全不打開macOS和Windows的前提下,深度Linux基本上可以完全滿足我的需求。

得事先講清楚的是,我基本上已經很少玩 游戲 了,目前做的也都是互聯網產研線上的工作, 娛樂 就是看視頻聽音樂、看博客逛開發者社區,其餘的工作和學習也都是跟互聯網軟體開發相關的,因此Linux對於我來說可以滿足基本需求。

矽谷有兩種程序員,一種是用macOS的,一種是Linux的,基本上都是這兩類程序員佔主要,Google和Facebook就是這類矽谷公司的典型。兩類程序員基本上都是用Emacs和Vim開發的居多,尤其是做後台的大部分都是在遠程伺服器上完成,而伺服器上就是Linux系統。

Google之前一直用定製版Ubuntu、也就是goobuntu,現在逐漸轉向了gLinux,也是基於Debian的Linux版本,Google不限制員工使用什麼類型的操作系統,不過Google鼓勵工程師實用Linux操作系統。

很多同學可能平時不大能接觸上,國內也有不少的企業是用這樣的環境開發的,比較著名的就是擁有著11億注冊用戶的微信開發。微信PRC框架、伺服器框架代碼、微服務、路由策略、過載和自適應,消息隊列等都是在Linux C/C++環境下開發,你所了解的微信的主要功能,比如朋友圈、公眾號、支付等核心功能全都是在Linux下開發的。

基本上是採用的微信後台是採用SSH到伺服器開發機,大部分基本上採用的是vim/emacs+gcc+gdb進行開發,聽說只有很少一部分是本地IDE寫好傳到變以及進行編譯調試,要知道微信這種級別的產品,用戶量是10億級的,代碼量是千萬行以上的,都還是在Linux C/C++為主要技術棧的環境下進行開發,因此Linux做開發是肯定沒問題的。

除了沒有Visual Studio、Xcode這些Windows或者macOS下的專門開發工具,其他的主流開發工具,Linux上都非常全面,甚至體驗上會更好。

作為生產力系統,Linux對於開發者是極度友好的,Linux是最接近生產環境的,大多數的互聯網企業都會選擇CentOS、Debian、RedHat Linux、或者一些企業專門深度定製的Linux發行版作為伺服器,即使如WhatsApp、Yahoo使用FreeBSD作為伺服器,Linux也是非常接近生產環境。

我自己曾經嘗試過在深度Linux下學習和工作一周時間,事實上深度Linux很好的完成了我的工作、學習和日常任務。

Emacs/Vim、Visual Studio Code、IntelliJ IDEA、PyCharm是我用得比較多的開發工具,除此之外GCC、GDB、Git都是用得比較多的工具,深度終端已經非常好用了,不需要像Windows上弄個Zoc、Cmder這些第三方終端。

文檔編輯我現在基本上已經很少用office了,大部分我都是雲端用Google Docs、本地用WPS,除此之外就是做presentation的時候用keynote,基本上已經不用office了,主要是我也忍不office了。腦圖一個在線的ProcessOn,本地用MindMaster和Xmind也綽綽有餘了。

這可能是大多數同學平時會用的, 娛樂 和社交必然是大家要用的。看視頻直接用網站就好了,客戶端完全可以不需要,聽音樂網易雲音樂、Spotify都有Linux原生客戶端。

游戲 方面Linux也有Steam,大家可以去下載體驗一些 游戲 ,當然如果你是個資深 游戲 玩家,我還是建議你使用Windows,畢竟大多數經典的單機 游戲 、網路 游戲 都是在Linux上沒辦法玩的。

社交方面,現在微信、釘釘都可以用,微軟為Linux開發了Skype原生版本,騰訊也為Linux開發了QQ原生版本,完全夠用了。

總體來說,我覺得深度Linux基本上可以滿足國內程序員的日常學習、工作、以及 娛樂 的大部分需求。

從問題分析,想必題主應該是一個開發人員。但是題主是一個什麼樣的開發人員,我卻不得而知了。不過既然題主在問題中表示希望開發全部使用Linux系統的表態來看,應該並非Windows系統或者Mac系統的專有程序的開發人員。

因此,我可以假定題主的開發語言應該是跨平台的,或者對特定的開發平台系統是沒有要求的。因為只有這樣的假定,才符合題主的問題的基礎要素。

從這個推斷來看,在開發層面上使用Linux系統應該是沒有任何問題的。需要注意的是,雖然在Linux系統上沒有像Windows或者Mac那麼多的可視化工具,但是主流的IDE和常用工具是並不缺少的。只是可能在使用習慣上有一些差異,作為開發人員我相信通過短時間的適應,應該是可以適用的。

但是,作為開發人員,不能僅僅從開發者的角度去考慮問題。因為你需要和各個部門的人進行交互,交換各類文件是常有的事情。所以,如果你的同事適用了某個特定系統支持的特定文件格式,那麼在你的電腦上可能就會出現一些問題。

比如使用蘋果系統的人,給你一個.page文件對吧。這個例子極端了一些,但是這樣的場景確實是存在的。

所以,在和同事的文件交互問題解決的前提下,使用Linux系統作為開發操作系統平台是沒有太大的問題的。

而在日常生活中,使用Linux系統會有什麼影響嗎?其實還是有比較大的影響的。首先就是,很多國產端游可能你就沒辦法愉快的玩耍了。系統不支持,沒辦法。

雖然Linux系統上有很多的 游戲 ,但更多的人還是喜歡玩自己常玩的 游戲 。因此,如果你常玩的 游戲 在Linux沒有發行版,那麼這一關就會卡死你了。

不過這個問題並不嚴重,因為現在大家玩 游戲 主力都轉移到了移動端,在PC端的 游戲 大家玩的越來越少。因此,如果你忽略 游戲 方面的需求的話,或者有專門的 游戲 主機的話,那麼日常生活中使用Linux系統並沒有什麼太大的影響。

無論是看電影,聽音樂,瀏覽網頁,還是從事一些日常的輕度辦公以及一些Linux下的各類 游戲 ,還是比較豐富的。

還有一點,Linux系統在部分情況下,對列印機的支持並不好,如果你有大量列印需求,最好先確認系統是否支持你的列印機型號。如果沒有這個需求,那就忽略好了。

一個長期使用Windows系統的用戶,貿然切換為Linux系統,是會存在很多不適應的地方的。但這並非不能克服,我個人建議如果你初次嘗試Linux系統,可以安裝國內優秀的Linux發行版Deepin系統。該系統集成了國人常用的各類軟體,讓大家開箱即用、拎包入住。比如QQ\WPS\搜狗輸入法等等。

其自行開發的各類影音 娛樂 軟體,也能滿足大多數人的日常需求了。而近期因為美國政策原因,華為已經在很多電腦產品上面預裝Deepin系統了。如果你近期有購買電腦的需求,並且想要嘗試Linux系統,可以購買華為的電腦產品。我相信通過一段時間的學習和適應,你會喜歡上Linux的世界的。

PS:我個人已經有四年不曾使用Windows系統了。主力是蘋果系統和Deepin系統,我個人感覺良好。

以上。

Linux的破冰之路在於強大的雲端,比如我要用CAD設計,Linux沒有這個軟體,但是可以在雲端有,通過雲獲得使用軟體的能力。那麼關鍵就是需要有更多,更快的實時雲端。更人性化的收費標准,太貴了不行。還要有靈活的收費服務套餐。比如我設計一個東西,本來預計三天完成,預計雲端費用三百塊錢,結果由於某種原因,導致十五天才造成,結果就造成遠遠超出預期費用。我的意思是,雲端收費可以多樣化,可以針對時間收費,也可以針對項目收費。未來中國晶元系統的突破之路或許就在雲計算服務的普及。這需要更多強大的雲端和更快的網路接入速度。雲端當然也可以運行任何 游戲 ,由於可控性,還可以避免小孩整夜玩 游戲 !雲端建設也可以多樣化,比如專門面向 游戲 的,專門面向工業設計的,專門面向影視的……到那時候,個人電腦不需要極其強大的配置,就可以獲得頂配的性能,這也是晶元等突出重圍的路子,可以獲得喘息之機,逐步提高晶元設計製造能力。

如果是常用cad這類制圖類軟體那在上是不太方便,雖然linux上也有相似軟體替代,但總體成熟度目前不如Windows。不過工作中只是偶爾用一下的話有太多雲端cad,ps,cd的應用可用了,完全可以用Linux替代

從2012年開始使用fedora至今,中間換過windows,發現不適合開發,又換回fedora,如今fedora已發布31,除了電池管理和顯卡驅動,其他問題不大,甚至更高效

完全可行

嗯嗯,,,

2. 想學Linux 應該怎麼入手

學習Linux並不難,做好規劃,有合適的學習路線,堅持學習,就可以達到意想不到的結果,初學者可以按照以下路線進行學習:
第一階段:linux基礎入門
1. 開班課程介紹-規章制度介紹-破冰活動;
2. Linux硬體基礎/Linux發展歷史;
3. Linux系統安裝/xshell連接/xshell優化/SSH遠程連接故障問題排查
4. 第一關一大波命令及特殊字元知識考試題講解
5. Linux基礎優化
6. Linux目錄結構知識精講
7. 第二關一大波命令及特殊知識考試題講解(上)
8. 第二關一大波命令及特殊知識考試題講解(下)
9. Linux文件屬性一大堆知識精講
10. Linux通配符/正則表達式
11. 第三關一大波命令及重要知識考試題講解(上)
12. 第三關一大波命令及重要知識考試題講解(下)
13. Linux系統許可權(上)
14. Linux系統許可權(下)
15. 整體課程回顧
第二階段:linux系統管理進階
1. Linux定時任務
2. Linux用戶管理
3. Linux磁碟與文件系統(上)
4. Linux磁碟與文件系統(下)
5. Linux三劍客之sed命令
第三階段:Linux Shell基礎
1. Shell編程基礎上
2. Shell編程基礎下
3. Linux三劍客之awk命令
第四階段:Linux網路基礎
1. 計算機網路基礎上
2. 計算機網路基礎下
3. 第二階段整體課程回顧
第五階段:Linux網路服務
1. 集群實戰架構開始及環境准備
2. rsync數據同步服務
3. Linux全網備份項目案例精講
4. nfs網路存儲服務精講
5. inotify/sersync實時數據同步/nfs存儲實時備份項目案例精講
第六階段:Linux重要網路服務
1. http協議/www服務基礎
2. nginx web介紹及基礎實踐
3. nginx web精講結束
4. lnmp環境部署/資料庫異機遷移/共享數據異機遷移到NFS系統
5. nginx負載均衡
6. keepalived高可用
第七階段:Linux中小規模集群構建與優化(50台)
1. 期中架構開戰說明+期中架構部署回顧
2. 部署期中架構並完成上台述職演講
3. kickstart cobbler批量自動安裝系統
4. pptp vpn與ntp服務
5. memcached原理及部署/作為緩存及session會話共享
第八階段:Ansible自動化運維與Zabbix監控
1. SSH服務秘鑰認證
2. ansible批量自動化管理集群
3. zabbix監控
第九階段:大規模集群高可用服務(Lvs、Keepalived)
1. Centos7系統自行安裝/centos6與7區別
2. lvs負載均衡集群/keepalived管理LVS集群
第十階段:java Tomcat服務及防火牆Iptables
1. iptables防火牆精講上
2. iptables防火牆精講下
3. tomcat java應用服務/nginx配合tomcat服務部署及優化
第十一階段:MySQL DBA高級應用實踐
1. MySQL資料庫入門基礎命令
2. MySQL資料庫進階備份恢復
3. MySQL資料庫深入事務引擎
4. MySQL資料庫優化SQL語句優化
5. MySQL資料庫集群主從復制/讀寫分離
6. MySQL資料庫高可用/mha/keepalved
第十二階段:高性能資料庫Redis和Memcached課程
第十三階段:Linux大規模集群架構構建(200台)
第十四階段:Linux Shell編程企業案例實戰
第十五階段:企業級代碼發布上線方案(SVN和Git)
1. GIT管理
2. 代碼上線項目案例
第十六階段:企業級Kvm虛擬化與OpenStack雲計算
1. KVM虛擬化企業級實戰
2. OpenStack雲計算企業級實戰
第十七階段:公有雲阿里雲8大組件構建集群實戰
第十八階段:Docker技術企業應用實踐
1. Docker容器與微服務深入實踐
2. 大數據Hadoop生態體系及實踐
第十九階段:Python自動化入門及進階
第二十階段:職業規劃與高薪就業指導

3. 有哪些好用的代碼編輯器值得推薦

給大家推薦8款最受程序員喜愛的代碼編輯器

1、Atom

Atom是Github打造的一款開源代碼編輯器,支持 macOS、Windows和Linux操作系統,支持Node.js所寫的插件,並內置由Github提供的Git版本控制系統,也可被當作 IDE 使用。

Atom的特色在於它極其豐富的可定製性,以及賞心悅目的界面。特別是自帶的代碼縮略圖和代碼折疊功能,不管是用Python還是做前端都非常好用。

2、EMACS

EMACS的強大之處在於已經超出了編輯器的范疇,搞成了大的平台,很多開發人員在上面直接都以他為入口完成各種功能需求了。

主要有如下特性:上網瀏覽網頁看視頻,收發郵件,調試程序,玩游戲,計算器,;、文件比較,記日記,目錄管理

3、Notepad++

Notepad++被稱為是JAVA程序員的最愛,幾乎可以替代記事本的最佳編輯器,很多強大的功能集於一身。可以在Windows操作系統下編輯,有完整的中文化介面支持多國語言編寫的功能(UTF8技術),支持自定義語言。該程序還支持自動完成某些編程語言的API子集。

4、Sublime Text

Sublime 是一種比Notepad++功能強大的多編輯器,現在很多前端開發人員都很喜歡,雖然代碼不開源,裡面需要拿到注冊碼才能使用,但是它幾乎涵蓋了notepad++的所有特性,界面美觀功能全的編輯器。

主要有如下特性:

跨平台,幾乎在各個操作系統上都能使用

查找和替換功能做得非常友善

不僅支持多種語言關鍵字的高亮提示,還能針對編程語言編譯錯誤給提示

支持插件功能

能夠支持多種布局方式

5、Brackets

Brackets是一款為Linux開發者設計的開源代碼編輯器,使用Brackets寫代碼,你不會被任何事情所打斷。比如在寫HTML代碼時,即便你沒有保存代碼也可以及時預覽你的Web頁面效果。你也可以使用Theseus來檢查變數,Brackets默認提供一種主題,當然你也可以在擴展中心獲取更多的主題。

6、Vim

Vim 是一款高度可定製的文本編輯器,可以用於包括編寫代碼在內的各種文本創建與編輯工作。

Vim 的特色在於,它可以僅僅通過鍵盤來在插入、執行命令、文本批量處理等模式之中切換。這就使得 Vim 可以不用進行菜單或者滑鼠操作,並且最小化組合鍵的操作。對文字錄入員或者程序員可以大大增強速度和效率。

7、Visual Studio Code

Visual Studio Code是目前最受歡迎的代碼編輯器。Visual Studio Code是一個由微軟公司發布的免費開源且跨平台的代碼編輯器,剛一問世,它就以強大的功能、美觀的界面、高度的可定製性,被譽為微軟的良心之作。

Visual StudioCode 內置了代碼調試、Git 版本控制、代碼高亮、智能代碼補完、代碼片段管理、代碼重構等豐富的功能。此外,VS Code 的用戶個性配置選項也很豐富,能方便地修改主題顏色、鍵盤快捷方式等各種屬性和參數,還在內置了擴展程序管理的功能。

8、Eclipse

Eclipse以一種友好的集成開發環境,為各種類型的用戶,提供了一系列針對開發Web和Java應用的可用工具。雖然專注於Java,但是也支持其他各種編程語言,如C ++、JavaScript、PHP、C、Perl、Fortran、Ruby、Python,甚至是COBOL。它還包括了適用於各種語言、向導和內置應用程序以簡化開發的源代碼和圖形編輯器,以及支持部署、運行和測試app的工具和API。

Eclipse提供的插件功能相當豐富,有助於更加簡便地創建、集成和使用軟體工具,節省時間和金錢。

4. 關於linux學習路線的問題 請教前輩

很多同學接觸Linux不多,對Linux平台的開發更是一無所知。而現在的趨勢越來越表明,作為一 個優秀的軟體開發人員,或計算機IT行業從業人員,掌握Linux是一種很重要的謀生資源與手段。下來我將會結合自己的幾年的個人開發經驗,及對 Linux,更是類UNIX系統,及開源軟體文化,談談Linux的學習方法與學習中應該注意的一些事。
就如同剛才說的,很多同學以前可能連Linux是什麼都不知道,對UNIX更是一無所知。所以我們從最基礎的講起,對於Linux及UNIX的歷史我們不做多談,直接進入入門的學習。
Linux入門是很簡單的,問題是你是否有耐心,是否愛折騰,是否不排斥重裝一類的大修。沒折騰可以說是學不好Linux的,鳥哥說過,要真正了解Linux的分區機制,對LVM使用相當熟練,沒有20次以上的Linux裝機經驗是積累不起來的,所以一定不要怕折騰。
由於大家之前都使用Windows,所以我也盡可能照顧這些「菜鳥」。我的推薦,如果你第一次接觸Linux,那麼首先在虛擬機中嘗試它。虛擬機我推薦Virtual Box,我並不主張使用VM,原因是VM是閉源的,並且是收費的,我不希望推動盜版。當然如果你的Money足夠多,可以嘗試VM,但我要說的是即使是VM,不一定就一定好。付費的軟體不一定好。首先,Virtual Box很小巧,Windows平台下安裝包在80MB左右,而VM動輒600MB,雖然功能強大,但資源消耗也多,何況你的需求Virtual Box完全能夠滿足。所以,還是自己選。如何使用虛擬機,是你的事,這個我不教你,因為很簡單,不會的話Google或Bai都可以,英文好的可以直接看官方文檔。
現在介紹Linux發行版的知識。正如你所見,Linux發行版並非Linux,Linux僅是指操作系統的內核,作為科班出生的你不要讓我解釋,我也沒時間。我推薦的發行版如下:
UBUNTU適合純菜鳥,追求穩定的官方支持,對系統穩定性要求較弱,喜歡最新應用,相對來說不太喜歡折騰的開發者。
Debian,相對UBUNTU難很多的發行版,突出特點是穩定與容易使用的包管理系統,缺點是企業支持不足,為社區開發驅動。
Arch,追逐時尚的開發者的首選,優點是包更新相當快,無縫升級,一次安裝基本可以一直運作下去,沒有如UBUNTU那樣的版本概念,說的專業點叫滾動升級,保持你的系統一定是最新的。缺點顯然易見,不穩定。同時安裝配置相對Debian再麻煩點。
Gentoo,相對Arch再難點,考驗使用者的綜合水平,從系統安裝到微調,內核編譯都親歷親為,是高手及黑客顯示自己技術手段,按需配置符合自己要求的系統的首選。
Slackware與Gentoo類似。
CentOS,社區維護的RedHat的復刻版本,完全使用RedHat的源碼重新編譯生成,與RedHat的兼容性在理論上來說是最好的。如果你專注於Linux伺服器,如網路管理,架站,那麼CentOS是你的選擇。
LFS,終極黑客顯擺工具,完全從源代碼安裝,編譯系統。安裝前你得到的只有一份文檔,你要做的就是照文檔你的說明,一步步,一條條命令,一個個軟體包的去構建你的Linux,完全由你自己控制,想要什麼就是什麼。如果你做出了LFS,證明你的Linux功底已經相當不錯,如果你能拿LFS文檔活學活用,再將Linux從源代碼開始移植到嵌入式系統,我敢說中國的企業你可以混的很好。
你得挑一個適合你的系統,然後在虛擬機安裝它,開始使用它。如果你想快速學會Linux,我有一個建議就是忘記圖形界面,不要想圖形界面能不能提供你問題的答案,而是滿世界的去找,去問,如何用命令行解決你的問題。在這個過程中,你最好能將Linux的命令掌握的不錯,起碼常用的命令得知道,同時建立了自己的知識庫,裡面是你積累的各項知識。
再下個階段,你需要學習的是Linux平台的C/C++開發,同時還有Bash腳本編程,如果你對Java興趣很深還有Java。同樣,建議你拋棄掉圖形界面的IDE,從VIM開始,為什麼是VIM,而不是Emacs,我無意挑起編輯器大戰,但我覺得VIM適合初學者,適合手比較笨,腦袋比較慢的開發者。Emacs的鍵位太多,太復雜,我很畏懼。然後是GCC,Make,Eclipse(Java,C++或者)。雖然將C++列在了Eclipse中,但我並不推薦用IDE開發C++,因為這不是Linux的文化,容易讓你忽略一些你應該注意的問題。IDE讓你變懶,懶得跟豬一樣。如果你對程序調試,測試工作很感興趣,GDB也得學的很好,如果不是GDB也是必修課。這是開發的第一步,注意我並沒有提過一句Linux系統API的內容,這個階段也不要關心這個。你要做的就是積累經驗,在Linux平台的開發經驗。我推薦的書如下:C語言程序設計,譚浩強的也可以。C語言,白皮書當然更好。C++推薦C++ Primer Plus,Java我不喜歡,就不推薦了。工具方面推薦VIM的官方手冊,GCC中文文檔,GDB中文文檔,GNU開源軟體開發指導(電子書),匯編語言程序設計(讓你對庫,鏈接,內嵌匯編,編譯器優化選項有初步了解,不必深度)。
如果你這個階段過不了就不必往下做了,這是底線,最基礎的基礎,否則離開,不要霍霍Linux開發。不專業的Linux開發者作出的程序是與Linux文化或UNIX文化相背的,程序是走不遠的,不可能像Bash,VIM這些神品一樣。所以做不好乾脆離開。
接下來進入Linux系統編程,不二選擇,APUE,UNIX環境高級編程,一遍一遍的看,看10遍都嫌少,如果你可以在大學將這本書翻爛,裡面的內容都實踐過,有作品,你口頭表達能力夠強,你可以在面試時說服所有的考官。(可能有點誇張,但APUE絕對是聖經一般的讀物,即使是Windows程序員也從其中汲取養分,Google創始人的案頭書籍,扎爾伯克的床頭讀物。)
這本書看完後你會對Linux系統編程有相當的了解,知道Linux與Windows平台間開發的差異在哪?它們的優缺點在哪?我的總結如下:做Windows平台開發,很苦,微軟的系統API總在擴容,想使用最新潮,最高效的功能,最適合當前流行系統的功能你必須時刻學習。Linux不是,Linux系統的核心API就100來個,記憶力好完全可以背下來。而且經久不變,為什麼不變,因為要同UNIX兼容,符合POSIX標准。所以Linux平台的開發大多是專注於底層的或伺服器編程。這是其優點,當然圖形是Linux的軟肋,但我站在一個開發者的角度,我無所謂,因為命令行我也可以適應,如果有更好的圖形界面我就當作恩賜吧。另外,Windows閉源,系統做了什麼你更本不知道,永遠被微軟牽著鼻子跑,想想如果微軟說Win8不支持QQ,那騰訊不得哭死。而Linux完全開源,你不喜歡,可以自己改,只要你技術夠。另外,Windows雖然使用的人多,但使用場合單一,專注與桌面。而Linux在各個方面都有發展,尤其在雲計算,伺服器軟體,嵌入式領域,企業級應用上有廣大前景,而且兼容性一流,由於支持POSIX可以無縫的運行在UNIX系統之上,不管是蘋果的Mac還是IBM的AS400系列,都是完全支持的。另外,Linux的開發環境支持也絕對是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就連C#也支持。而微軟除Visual Stdio套件以外,都不怎麼友好,不是嗎?
如果你看完APUE的感觸有很多,希望驗證你的某些想法或經驗,推薦UNIX程序設計藝術,世界頂級黑客將同你分享他的看法。
現在是時候做分流了。 大體上我分為四個方向:網路,圖形,嵌入式,設備驅動。
如果選擇網路,再細分,我對其他的不是他熟悉,只說伺服器軟體編寫及高性能的並發程序編寫吧。相對來說這是網路編程中技術含量最高的,也是底層的。需要很多的經驗,看很多的書,做很多的項目。
我的看法是以下面的順序來看書:
APUE再深讀 – 尤其是進程,線程,IPC,套接字
多核程序設計 - Pthread一定得吃透了,你很NB
UNIX網路編程 – 卷一,卷二
TCP/IP網路詳解 – 卷一 再看上面兩本書時就該看了
5.TCP/IP 網路詳解 – 卷二 我覺得看到卷二就差不多了,當然卷三看了更好,努力,爭取看了
6.Lighttpd源代碼 - 這個伺服器也很有名了
7.Nginx源代碼 – 相較於Apache,Nginx的源碼較少,如果能看個大致,很NB。看源代碼主要是要學習裡面的套接字編程及並發控制,想想都激動。如果你有這些本事,可以試著往暴雪投簡歷,為他們寫伺服器後台,想一想全球的魔獸都運行在你的伺服器軟體上。
Linux內核 TCP/IP協議棧 – 深入了解TCP/IP的實現
如果你還喜歡驅動程序設計,可以看看更底層的協議,如鏈路層的,寫什麼路由器,網卡,網路設備的驅動及嵌入式系統軟體應該也不成問題了。
當然一般的網路公司,就算網路級別的也該毫不猶豫的僱用你。只是看後面這些書需要時間與經驗,所以35歲以前辦到吧!跳槽到給你未來的地方!
圖形方向,我覺得圖形方向也是很有前途的,以下幾個方面。
Opengl的工業及游戲開發,國外較成熟。
影視動畫特效,如皮克斯,也是國外較成熟。
GPU計算技術,可以應用在瀏覽器網頁渲染上,GPU計算資源利用上,由於開源的原因,有很多的文檔程序可以參考。如果能進火狐開發,或google做瀏覽器開發,應該會很好 。
嵌入式方向:嵌入式方向沒說的,Linux很重要。
掌握多個架構,不僅X86的,ARM的,單片機什麼的也必須得懂。硬體不懂我預見你會死在半路上,我也想走嵌入式方向,但我覺得就學校教授嵌入式的方法,我連學電子的那幫學生都競爭不過。奉勸大家,一定得懂硬體再去做,如果走到嵌入式應用開發,只能祝你好運,不要碰上像Nokia,Hp這樣的公司,否則你會很慘的。
驅動程序設計:軟體開發周期是很長的,硬體不同,很快。每個月誕生那麼多的新硬體,如何讓他們在Linux上工作起來,這是你的工作。由於Linux的兼容性很好,如果不是太低層的驅動,基本C語言就可以搞定,系統架構的影響不大,因為有系統支持,你可能做些許更改就可以在ARM上使用PC的硬體了,所以做硬體驅動開發不像嵌入式,對硬體知識的要求很高。可以從事的方向也很多,如家電啊,特別是如索尼,日立,希捷,富士康這樣的廠子,很稀缺的。
LDD – Linux驅動程序設計與內核編程的基礎讀物
深入理解Linux內核 – 進階的
Linux源代碼 – 永無止境的
當然你還的看個方面的書,如網路啊什麼的。

5. linux基礎知識有哪些

第一階段:linux基礎入門
Linux基礎入門主要包括: Linux硬體基礎、Linux發展歷史、Linux系統安裝、xshell連接、xshell優化、SSH遠程連接故障問題排查、L inux基礎優化、Linux目錄結構知識、Linux文件屬性、Linux通配符、正則表達式、Linux系統許可權等
第二階段:linux系統管理進階
linux系統管理進階包括:Linux定時任務、Linux用戶管理、Linux磁碟與文件系統、Linux三劍客之sed命令等。
第三階段:Linux Shell基礎
Linux Shell基礎包括:Shell編程基礎、Linux三劍客之awk命令等。
第四階段:Linux網路基礎
第五階段:Linux網路服務
Linux網路服務包括:集群實戰架構開始及環境准備、rsync數據同步服務、Linux全網備份項目、nfs網路存儲服務精講、inotify/sersync實時數據同步/nfs存儲實時備份項目等。
第六階段:Linux重要網路服務
Linux重要網路服務包括:http協議/www服務基礎、nginx web介紹及基礎實踐、nginx web、lnmp環境部署/資料庫異機遷移/共享數據異機遷移到NFS系統、nginx負載均衡、keepalived高可用等。
第七階段:Ansible自動化運維與Zabbix監控
Ansible自動化運維與Zabbix監控包括: SSH服務秘鑰認證、ansible批量自動化管理集群、 zabbix監控等。
第九階段:大規模集群高可用服務(Lvs、Keepalived)
第十階段:Java Tomcat服務及防火牆Iptables
第十一階段:MySQL DBA高級應用實踐
MySQL DBA高級應用實踐包括:MySQL資料庫入門基礎命令、MySQL資料庫進階備份恢復、MySQL資料庫深入事務引擎、MySQL資料庫優化SQL語句優化、MySQL資料庫集群主從復制/讀寫分離、MySQL資料庫高可用/mha/keepalved等。
第十二階段:高性能資料庫Redis和Memcached課程
第十三階段:Linux大規模集群架構構建(200台)
第十四階段:Linux Shell編程企業案例實戰
第十五階段:企業級代碼發布上線方案(SVN和Git)
第十六階段企業級Kvm虛擬化與OpenStack雲計算
第十七階段公有雲阿里雲8大組件構建集群實戰
第十八階段:Docker技術企業應用實踐
第十九階段:Python自動化入門及進階
第二十階段:職業規劃與高薪就業指導

6. 新手如何學習Linux

學linux開發難嗎?是 Linux初學者經常會問的問題,其實和Windows一樣都屬於操作系統,對於大部分人來說,對Windows操作系統十分熟悉,而對Linux操作系統沒有使用過,所以覺得很難,其實,只要熟練掌握其操作命令和一些系統規則,就可以像使用Windows一樣可以輕松使用Linux操作系統!
想要學好Linux,需要具備以下能力:
1. 基本功要扎實
學習任何一種語言,必備的基本功是必須要有的,一方面可以提高效率,另一方面可以拓寬思路。
對於Linux基本知識的學習,對一些初學者來說是枯燥乏味的,可以通過理解再背誦的方式先進行代碼及語法的學習,然後進行實踐操作,必須手動輸入命令行,不要藉助工具,這樣可以更快速有效的掌握Linux。
2. 學以致用
Linux學習的目的是應用,Linux基本知識是一些零散的技術,當沒有應用在項目上時,我們無法理解他的真實價值,所以打好基本功之後,最緊迫的是多做幾個完整的項目,剛開始可以是功能簡單的項目,之後可以選擇稍微復雜的項目,勤於動手,敢於實踐,一定能學好Linux。
3. 學會使用Linux聯機幫助
任何一種教材都不會完全講述Linux知識,一般講的都是比較常用的或者是比較有代表性的知識,但是,我們在項目應用中往往有些功能的實現是需要一些生僻知識和技能的,那麼,如何查找我們所需的知識呢,推薦查閱Linux幫助文檔,主流的Linux都自帶詳細的幫助文檔,很方便解決問題!
4. 在網上找資源
在Linux的學習和應用中,難免會遇到一些沒有思路、不知道如何解決的問題,這時就要藉助網路力量,可以通過搜索引擎搜索查找,也可以咨詢資深技術人員,最終實現問題的解決,這是Linux知識積累的一個重要的途徑!
5. 查閱英文技術文檔
如果想深入學習Linux,查閱英文技術文檔是十分必要的,往往最新的技術都是採用英文文檔的方式發布的,而且更全面,因此,對於Linux人員來說,多看一些Linux技術文檔,對於掌握前沿技術和加深知識是十分有必要的!
Linux學習是一個需要長期堅持不懈的過程,新的技術不斷的產生,要想成為Linux大牛,必須要時刻關注Linux發展動態,掌握最新技術,才能走在行業前列!

7. 作為程序員的你,常用的軟體有哪些

這個就非常多了,下面我以常見的編程開發軟體和資料庫管理軟體為例,簡單介紹幾種,感興趣的朋友可以嘗試一下:

01 編程開發軟體

這個要看具體編程語言了,不同語言開發工具自然不同,這里以常見的C/C++、Java和Python為例,簡單介紹3種比較常用的軟體:

這是Windows平台下一個非常專業的集成開發工具,號稱宇宙第一IDE環境,不僅僅只是C/C++,常見的C#、VB等編程語言,這個軟體都能很好支持,智能補全、代碼高亮、語法檢查等功能非常不錯,除此之外,還支持單元測試、代碼重構和分析等高級功能,因此非常適合大型項目開發和維護:

這是一個非常專業智能的Java開發工具,在企業和個人桌面中,有著非常高的使用率和歡迎度,自動補全、語法提示、代碼高亮等功能非常不錯,除此之外,還支持JUnit、CVS整合、代碼重構等高級功能,自帶有Maven和Gradle構建工具,因此更適合Java項目開發和維護,個人使用起來非常不錯:

這是一個非常專業的Python開發軟體,和IntelliJ IDEA一樣,Jetbrains公司的產品,在業界非常流行、受歡迎,智能補全、代碼高亮、語法提示等功能非常不錯,除此之外,還支持代碼重構和分析、單元測試等高級功能,因此更適合大型項目,個人使用來說,也非常簡單,很容易上手和掌握:

02 資料庫管理軟體

這個就非常多了,不同資料庫都有專門的管理軟體和工具,這里簡單介紹3個比較通用的資料庫管理軟體,分別是HeidiSQL、DBeaver和DataGrip,對於日常使用來說,非常不錯:

這是Windows平台下一個非常輕巧靈活的資料庫管理軟體,基於Delphi開發而來,目前支持MySQL、MariaDB、MSSQL、PostgreSQL等主流資料庫,常見的建庫建表、視圖索引、觸發器等基本功能,這個軟體都能很好兼容,除此之外,還支持SQL腳本導入導出、數據備份恢復等功能,對於日常資料庫管理來說,非常不錯:

這是一個基於Java開發的資料庫管理軟體,免費、開源、跨平台,目前支持Oracle、MySQL、PostgreSQL、SQL Server等十幾種主流資料庫開發,建庫建表、視圖索引、觸發器、存儲過程等基本功能 都 可輕松查看和設計,資料庫導入導出、數據 恢復 備份等功能也都非常不錯,對於日常資料庫管理和維護來說,是一個非常不錯的工具:

這也是一個通用的資料庫管理軟體,Jetbrains公司的產品,支持跨平台,但原則上針對個人不免費,常見的PostgreSQL、MySQL、Oracle等資料庫,這個軟體都能很好支持, 數據導入導出( 恢復備份 )、 智能代碼填充、版本 集成 控制等功能非常不錯,對於日常資料庫管理來說,也是一個不錯的工具:

每天常用開發工具:

0.Git:分布式版本控制系統;

1.IntelliJ IDEA:java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一;

2.Sublime Text:不只是代碼編輯器;

3.Postman:Http請求模擬工具和功能強大的網頁調試工具;

4.DataGrip:支持幾乎所有主流的關系資料庫、多功能的資料庫操作工具;

5.Vagrant:用於創建和部署虛擬化開發環境,配合虛擬機使用;

6.Gradle:自動化構建工具;

7.JIRA:項目與事務跟蹤工具;

8.iTerm2:Mac上的終端工具;

9.Jenkins:持續集成工具。

做了一個寫代碼用了十幾年的人,很多編程的習慣已經養成了,現在就羅列下每天必用的軟體:

直接安裝的linux系統,因為幾乎所有的代碼都是在linux下完成


java開發環境


C/C++代碼編輯工具


linux下虛擬windows系統virtualBox


軟體提交工具git

不同的開發語言,每天要用到的軟體可能不一樣。

我是開發java web的,電腦安裝了很多工具,但是說每天要用到的好像就幾個。


作為程序員使用最多的軟體,莫過於編程開發所用到的軟體編輯器,但是編輯器的種類有很多。我們需要做到的是,找到你最喜歡的編輯器然後熟練的使用它。

同時掌握常見的一些快捷鍵的操作方式,從而來提升我們的工作效率,而不是以軟體而論軟體,什麼都去接觸使用。畢竟軟體是工具是幫助我們提升開發效率。


下面我就列舉我們PHP經常使用的軟體

IDE工具類軟體

這一類是開發軟體編寫代碼用的。這一類的軟體非常多,我就推薦一個經常使用的PHPStorm,因為太多的話大家也用不到,也沒有那麼多的精力去熟練每一個編輯器。


PHPStorm是 JetBrains 公司開發的一款商業的 PHP 集成開發工具,旨在提高用戶效率,可深刻理解用戶的編碼,提供智能代碼補全,快速導航以及即時錯誤檢查。可以說是PHP開發程序員必備的神器。

常用快捷鍵如下:

1.復制快捷方式

F5 復制文件/文件夾

CTRL+C 復制

CTRL+V 粘貼

CTRL+X 剪 切,刪除行

CTRL+D 復制行

CTRL+SHIFT+V 可以復制多個文本

2.自動代碼

ALT+回車 導入包,自動修正

CTRL+ALT+L 格式化代

碼CTRL+ALT+I 自動縮進

CTRL+ALT+O 優化導入的類和包

CTRL+SHIFT+SPACE 切換窗口

CTRL+SPACE空格 代碼自動完成,代碼提示,一般與輸入法沖突

CTRL+ALT+SPACE 類 名或介面名提示(與系統沖突)

CTRL+P 方法參數提示,顯示默認參數

CTRL+J 自動代碼提示,自動補全

CTRL+ALT+T 把選中的代碼放在 TRY{} IF{} ELSE{} 里ALT+INSERT 生成代碼(如GET,SET方法,構造函數等)

3.運行

Alt + Shift + F10 選擇的配置和運行

Alt + Shift + F9 選擇配置和調試

Shift + F10 運行

Shift + F9調試

Ctrl + Shift + F10運行范圍內配置編輯器

Ctrl + Shift + X運行命令行

4.其他快捷方式

CTRL+Z 倒退(代碼後悔)

CTRL+SHIFT+Z 向前

CTRL+H 顯 示類結構圖

Ctrl +F12 文件結構彈出

CTRL+O 魔術方法

CTRL+/ 注釋//取消注釋

CTRL+SHIFT+/ 注釋/*...*/

ctrl + '.': 折疊選中的代碼的代碼

ALT+ / 切換代碼視圖,標簽切換

5.其他快捷方式

CTRL+Z 倒退(代碼後悔)

CTRL+SHIFT+Z 向前

CTRL+H 顯 示類結構圖

Ctrl +F12 文件結構彈出

CTRL+O 魔術方法CTRL+/ 注釋//取消注釋

CTRL+SHIFT+/ 注釋/*...*/

ctrl + '.': 折疊選中的代碼的代碼

ALT+ / 切換代碼視圖,

資料庫相關常用的工具

Navicat for MySQL是管理資料庫的操作工具,都是可以連接遠程的雲資料庫。方便簡化開發,還可以手動備份、可視化的sql分析。

常用快捷鍵:

ctrl+q 打開查詢窗口

ctrl+/ 注釋sql語句

ctrl+shift +/ 解除注釋

ctrl+r 運行查詢窗口的sql語句

ctrl+shift+r 只運行選中的sql語句

F6 打開一個mysql命令行窗口

ctrl+d (1):查看錶結構詳情,包括索引 觸發器,存儲過程,外鍵,唯一鍵;(2):復制一行

ctrl+l 刪除一行

ctrl+n 打開一個新的查詢窗口

ctrl+w 關閉一個查詢窗口

ctrl+tab 多窗口切換

伺服器連接軟體

XShell6是非常強大的SSH遠程終端客戶端,幫助我們連接遠程的Linux伺服器來進行操作。

粘貼:Shift+Insert

歷史 命令編輯ctrl + p 返回上一次輸入命令字元

alt + > 返回上一次執行命令

其它

ctrl + s 鎖住終端

ctrl + q 解鎖終端

ctrl + l 清屏相當於命令clear

Tab鍵,快速補全命令

輕量級文本編輯器

Notepad++。這個很輕量,打開一下文本非常的方便。

常用快捷鍵

Ctrl+C 復制

Ctrl+X 剪切

Ctrl+V 粘貼

Ctrl+Z 撤消

Ctrl+Y 恢復

Ctrl+A 全選

Ctrl+F 鍵查找對話框啟動

Ctrl+H 查找/替換對話框

Ctrl+D 復制並粘貼當行

Ctrl+F2 切換書簽

F2 轉到下一個書簽Shift+F2 轉到上一個書簽

F11 全屏模式


綜上所述,軟體只是一個工具,我們需要找到自己喜歡使用的,然後熟練一些常用的快捷方式即可,而並不是在於數量多。

前端

visual studio code

後端:

pycharm

IDEA

安卓

android studio

瀏覽器:

谷歌

火狐

資料庫管理:

navicat


遠端鏈接:

fileZilla

xshell

electerm(mac上使用)


流程圖設計:

xmind

processOn

筆記:

為知筆記(付費一年60)

有道雲筆記

虛擬機(容器)

VMware Fusion(mac上)

docker


其他:

postman

jmeter

作為一個12年開發經驗的前端程序員,我來聊聊每天必用的幾個軟體。

寫代碼自然離不開 編輯器 。目前我主要使用的是微軟的 Visual Studio Code 。VS Code比較輕量,功能足夠應付日常開發所需,跨平台,而且完全免費 。因為之前長期使用Visual Studio在Windows平台上做開發,後來技術棧變化,經常需要在Linux和MacOS上做開發,VS Code就成了我順理成章的選擇。後來乾脆在Windows上也用VS Code了。目前整個團隊都已經被VS Code圈粉了。其它類似的如Sublime Text(需要付費)和Atom也有不少人使用。

因為是團隊開發, 源代碼管理工具 自然必不可少,而 git 是目前最熱門的一個。我們公司也不例外,幾年前從Perforce遷移到了 GitHub企業版 (和公眾版本UI完全相同)。平時的代碼審查也都是在GitHub企業版上完成的,不再使用單獨的代碼審查工具。有些不習慣使用命令行方式的同事使用 SourceTree 完成日常的代碼分支管理和提交,而我則比較熱衷於命令行方式。VS Code也提供了比較完善的git集成,但因為習慣的原因,除了直觀比較不同代碼版本的差異,我一般也不用VS Code執行git操作。

作為一個Web前端, 瀏覽器及前端調試工具 自然不可或缺, Google Chrome + Developer Tools (F12) 自然是首選。使用Developer Tools,可以對JavaScript進行調試,監控HTTP請求/響應,分析CSS計算問題和JS性能問題。 Chrome下還有很多功能強大的插件,個人比較常用的包括React Developer Tools、PostMan、Proxy SwitchOmega和AdBlock。當然,因為經常面對瀏覽器兼容性問題,Firefox、IE、Edge、Apple Safari以及各自的Developer Tools都是免不了要用的。

團隊目前使用Scrum模型,自然需要一個做 任務規劃和質量管理 的工具。我們採用了 JIRA , 每天的站會(daily stanp meeting)都會對scrum看板(board)進行更新。

遇到技術問題,自然免不了要上網查找資料。 Google 的使用頻率非常高(需要科學上網)。大部分問題都能在 StackOveflow 上找到線索,但有時候也不得不跑到大名鼎鼎的同性交友網站 GitHub 上看源碼。 MDN (Mozilla Developer Network)對於前端開發也是不可或缺(此處鄙視一下w3cschool,上面到處是錯誤知識)。

其它如node.js/npm、docker等,因為和具體的技術棧相關,就不具體展開講了。

作為一個開發人員,你每天使用什麼軟體呢,歡迎說說看。

盡管我是後端出身的,不過也經常寫前端代碼,甚至還用C#/C++參與過一些客戶端開發,自認為也算是一個Web全棧工程師。隨著前端技術的不斷進步,現在的前端已經不再是寫寫頁面這么簡單了,很多邏輯在前端就寫了,我建議每一個出色的開發者應該盡可能對前後端都能有不錯的掌握。

今天給大家推薦一些我認為前端和後端開發都需要經常用到的一些軟體,這裡麵包括了查詢資料工具、原型工具、文本編輯器、版本管理工具。

原型工具

不管前端還是後端,尤其是前端程序員,在跟產品經歷溝通之後肯定會要查看原型的,方便自己在開發過程中使用,基本上大公司輸出的原型都比較規范,除非你遇到張小龍這種級別的大神,哥們兒直接盯著你做了。

目前主流的原型工具主要有Axure、MockPlus、墨刀等,其中Axure依然是應用最為廣泛的原型工具,大多數開發者也都應該用來看原型。

文本編輯器

不管是前端還是後端程序員,當然前端程序員就不說了,在WebStorm出現之前,沒有一款真正可以叫做IDE的前端開發工具,那麼基本上文本編輯器就是前端程序員最重要的編程工具。同樣後端程序員即使不需要寫前端代碼,文本編輯器也是必備的,您不需要每次看代碼都打開龐大的集成開發環境,像IDEA這種比較耗費資源的,平時查看代碼啥的完全沒有必要,何況你還經常要看一些前端代碼。

當然你比較習慣Linux/Unix下開發,Emacs/Vim可能是你用得比較多的文本編輯器,還有UltraEdit、Sublime Text、EditPlus、Atom這些老牌的文本編輯器,不過現在我覺得每個程序員都應該下載一個Visual Studio Code,支持的語言比較多,而且插件非常豐富,是微軟官方支持的開發者工具,開源免費而且顏值非常高。

查詢資料、版本管理工具

不用多說,每個程序員都要學會很好的使用Google、Stack Overflow兩個工具,可以說你日常開發當中可能遇到的問題,通過這兩個工具你全都能找到解決方案。

另外一個是Dash文檔管理工具,Dash是一個非常好的開發者幫助文檔工具,這個工具的好處是給所有的開發文檔做了一個整合,C/C++、Java、PHP、Python、Latex、Emacs Lisp、Haskell、JavaScript、Go語言等文檔都能夠在這個工具當中下載使用。

最後一個就是版本管理了,SVN和Git依然是目前使用最為廣泛的版本管理工具,不過就使用來說我還是推薦Git版本控制系統,可以說這個時代Git就是最好的版本管理工具了,尤其是開源時代、互聯網時代,Git已經成為了最重要的版本管理工具,不管是命令行管理還是使用Github等客戶端工具,堪稱完美。

入行十一年,現在主要做一些管理和架構方面的工作,也會做一些Coding,主要是一些新技術的研究和「踩坑」。

編輯器

首先是EditPlus,這是一個文本編輯器。最常用的兩個功能:正則表達式查詢和文件夾內所有文件內容搜索。

平時經常需要看一些系統日誌,甚至要從好幾天幾十個日誌文件中找到內容,這個軟體很好用。(原諒我們沒有上日誌平台)

然後就是IDE啦,我還是喜歡用Eclipse,有時候會用STS(Spring Tool Suite),它也是一個被包裝過的Eclipse,方便做一些Spring框架的研究。



資料庫工具

一個是DbVisualizer,凡是具有JDBC資料庫介面的資料庫都可以管理,什麼資料庫都能連。

還有一個是SQLyog,這是一個快速而簡潔的圖形化管理MYSQL資料庫的工具,我只用裡面一個功能,就是數據的導入導出,效率非常高!



介面測試工具

大部分項目只對外提供介面服務,所以介面測試工具少不了,我一般使用SoapUI,WebService/Rest都可以進行測試。



其他

每天肯定會用的肯定不止上面幾個,還有版本控制工具svn和git,都會用到是因為單位svn現在開始往git遷移。

因為用的Scrum敏捷開發流程,所以JIRA、Sonar、Fisheye這些也是都會用到的。

Maven也不用說了,幾個項目基本都是基於Maven構建的。

必用的基本就是這些,只要電腦開著,這幾個軟體基本都是打開狀態。

8. gitblit是什麼

gitblit是用於跟蹤任何一組文件中的更改的軟體,通常用於在軟體開發過程中協調程序員之間協作開發源代碼的工作。

Git 最初是由Linus Torvalds於 2005 年為開發Linux 內核而創作的,其他內核開發人員為其最初的開發做出了貢獻。自 2005 年以來,Junio Hamano 一直是核心維護者。

與大多數其他分布式版本控制系統一樣,並且與大多數客戶端-伺服器系統不同,每台計算機上的每個 Git目錄都是一個成熟的存儲庫,具有完整的歷史記錄和完整的版本跟蹤能力,獨立於網路訪問或中央伺服器。Git 是僅在 GPL-2.0下分發的免費開源軟體執照。

由於 Git 是一個分布式版本控制系統,它可以用作開箱即用的伺服器。它附帶一個內置命令git daemon,可以啟動一個在 GIT 協議上運行的簡單 TCP 伺服器。

專用 Git HTTP 伺服器通過添加訪問控制、通過 Web 界面顯示 Git 存儲庫的內容以及管理多個存儲庫來提供幫助(以及其他功能)。已經存在的 Git 存儲庫可以被克隆和共享,以供其他人用作集中式存儲庫。

它也可以通過遠程 shell 訪問,只需安裝 Git 軟體並允許用戶登錄。Git 伺服器通常偵聽TCP 埠9418。

實現

Git(C 中的主要實現)主要在Linux上開發,盡管它也支持大多數主要操作系統,包括 BSD(DragonFly BSD、FreeBSD、NetBSD和OpenBSD)、Solaris、macOS和Windows。

Git的第一個 Windows埠主要是一個託管 Linux 版本的 Linux 模擬框架。

在 Windows 下安裝 Git 會創建一個類似名稱的 Program Files 目錄,其中包含GNU Compiler Collection的Mingw-w64埠、Perl5、MSYS2和各種其他 Windows 埠或模擬Linux 實用程序和庫。

目前,Git 的原生 Windows 版本作為 32 位和 64 位安裝程序分發。git官網目前維護了一個Git for Windows的構建,仍然使用MSYS2環境。

Git 的 JGit 實現是一個純Java軟體庫,旨在嵌入到任何 Java 應用程序中。JGit 用於Gerrit代碼審查工具和 EGit(EclipseIDE 的 Git 客戶端)。

Go-git 是用純Go編寫的 Git的開源實現。它目前用於支持項目,作為Git 代碼存儲庫的SQL介面,並為 Git 提供加密。

Git 的 Dulwich 實現是Python 2.7、3.4 和 3.5的純Python軟體組件。

Git 的 libgit2 實現是一個 ANSI C 軟體庫,沒有其他依賴項,可以構建在多個平台上,包括 Windows、Linux、macOS 和 BSD。它綁定了許多編程語言,包括Ruby、Python 和Haskell。

9. Linux 下進行 C/C++ 開發一般使用什麼開發環境

Linux的C/C++開發環境一般都是文本編輯器(Vim、emacs等)+編譯器(GCC、g++、make、cmake)+調試器(gdb),用集成版開發環境IDE(比如權codeblocks、eclipse-cdt)的比Windows平台要少。我才開始用的是eclipse-cdt,也是覺得IDE不好用,而且寫一個helloworld都要產生一大堆文件(也不知道這些文件什麼作用),用git來維護管理代碼也非常不方便,而且如果編寫的是命令行程序會反復切換到終端,還不如直接在終端編譯,總之太不靈活了。不過如果gdb用得不習慣的,可以選擇用gdb的圖形前端ddd和Kdbg這兩個軟體。也有覺得命令行編輯器不習慣的,他們會選擇圖形界面的gVim+各種插件,或者圖形功能更好的代碼編輯器如gedit、Sublime Text、Atom、VScode等等。

閱讀全文

與linuxgitide相關的資料

熱點內容
專題學習網站源碼 瀏覽:163
jsphead什麼 瀏覽:88
gps串口數據怎麼發送 瀏覽:968
win10文件主頁共享查看 瀏覽:411
中國聯通有哪些app是免流的 瀏覽:176
邊做邊保存的文件找不到了 瀏覽:858
win10照片應用文件夾名稱 瀏覽:966
編程如何解決資金的原子性 瀏覽:638
如何製作廣角鏡頭矯正文件 瀏覽:513
在網頁開發中應該選用哪個資料庫 瀏覽:742
iphone5移動卡貼 瀏覽:990
電腦文件的格式 瀏覽:127
extjs的xtype 瀏覽:959
suse11iso文件要u盤安裝 瀏覽:153
如何將報表統計數據轉化為圖形 瀏覽:444
如何寄快遞材料文件 瀏覽:265
java構造方法private 瀏覽:475
手機文件找回恢復 瀏覽:516
word怎麼把u盤里的文件拔掉 瀏覽:976
港版蘋果用的插排 瀏覽:1000

友情鏈接