Ubuntu Desktop開發生產環境搭建

Ubuntu Desktop開發生產環境搭建

1   開發生產環境搭建

在本節內容開始前,先定義一下使用場合,沒有哪一種系統或者設備是萬能的,都有它的優勢和缺點,可以在具體的使用場景,根據自身的需求來取之便可。html

  • 主要用途是影音視頻娛樂消費,那麼最好的選擇是iPad
  • 主要用途是office辦公,那麼最好的選擇是windows或者mac
  • 主要用途是學術研究或者是互聯網開發相關的工做,那麼linux則是最優選擇。

在本節以前,花了大量的篇幅來強調如何美化和如何安裝平常辦公應用程序,其實都是爲了配合開發人員的 重開發,輕辦公,基本無娛樂 的需求而提出的。是以做爲生產力平臺爲目的而作的一些開發環境搭建。前端

2   服務器環境支持

  • Web服務器
  • 數據庫服務器
  • 文件服務器
  • 版本管理服務器

3   文本編輯器

在Linux下面有豐富的linux

  • Geany
  • SublimeText
  • Visual Studio Code

總體點評:git

  • Visual Studio Code,支持中文的文本,也能夠調整成自動換行。
  • SublimeText,和其它平臺的操做界面和習慣一致
  • Geany,直接在Linux系統的「軟件中心」裏面就能夠找到。體積小,徹底能夠知足平常的可視化文本編輯需求。

可視化的文本編輯器在 Linux Desktop 中是很重要的應用,首先由於Linux的文件系統就是一切皆文本。另外,在Linux下面高級的文檔寫做和開發工做也基本上全依賴於文原本實現的。github

4   文檔及寫做

文檔的寫做工做主要有以下幾個步驟:sql

  • 內容準備
  • 文字錄入
  • 圖片素材嵌入
  • 段落結構排版
  • 總體外觀樣式調整和美化
  • 文檔發佈/傳播/展現

在Windows系統下面的傳統Office辦公用戶,基本上是MsOffice全套所見即所得的方式來完成以上步驟,MsOffice爲上面全部的內容都提供了一站式的服務,上手門檻低,只須要可以熟悉使用計算機,而後學習一些軟件的基本操做就能夠勝任基本的需求。數據庫

此方法缺點也很明顯:windows

  • 會花費大量的精力來調整段落
  • 會花費大量時間來排版和美化
  • 樣式和內容徹底糅雜在一塊兒,內容遷移性差
  • 單文檔個體書寫模式,不利於大型工程文檔的多人協做和專業化分工
  • 和HTML沒法達到完美契合,致使現在互聯網時代由它些內容生產的文檔的暴光度一直不高

總體來講 ,傳統的MsOffice的文檔模式,是一種離線單體包辦的模式,固然同時也是一種最簡單上手的模式。瀏覽器

在Linux下,對於有Geek範的人,或者有必定開發能力的人,更新一些文檔理念和使用一些更先進的文檔工做是頗有必要的。服務器

Linux下面文檔的寫做也基本上遵循如上的步驟,可是它的工具鏈則更加接近開發人員的思惟,將文檔的非內容部分的步驟變成和編寫代碼同樣的過程了。所以 文檔書寫 在這裏實際上變成了 文檔開發 了。在Linux下面進行文檔幹發,須要有以下技能:

  1. 文檔內容的組織能力

    不論是哪一種平臺使用哪一種工具,都是必須的,畢竟文檔的展示形式只是表象,內容纔是文檔的核心價值體現。

  2. 簡單的文檔語法能力

    此文檔排版方式須要將版式信息包含在錄入的文本當中 ,因此必需要一些簡單的語法約束。

  3. 文檔編譯轉化工具鏈使用能力

    根據文檔語法,對文檔的源文件進行編譯轉化,生成指定的文檔,主要是HTML,PDF等等。

對於普通非開發人員來講,可能第3條是門檻最高的,可是目前已經有一些至關友好的可視化工具的產生,將使用門檻下降到普通非開發人員也能上手的程度了。

主要的文檔語法以下(由上到下,語法的難度依次增長,可是功能也依次增強):

  • Markdown

    語法簡單,對於絕大多數人來講易學習並且夠用,主要用於內容扁平涉及不多量的交叉引用的小文檔寫做,經過極其簡單的語法能夠快速生成整潔的文檔。目前在網絡上的主要:博客/發帖/郵件等場合。

  • RestructuredText

    語法稍微複雜,能夠處理不少複雜的文檔需求,工程組織性和交叉引用方面都有很強的優點,主要用於大型文檔的寫做,真正的接近於代碼開發的思惟和模式(後面會專門開闢章節來詳細講解)。目前在網絡上的主要應用:大型技術文檔/產品介紹書等等場合。

  • LaTex

    主要用於科技論文的排版寫做,語法最複雜,通常用於科研在學術刊物上的投稿。在網絡上的應用還很少見。此語法是全部語法性文檔的鼻祖。

主要的網絡寫做(最後要發佈到網絡上的文檔)使用的語法是:Markdown和RestructuredText。這兩種寫做語法在Linux下面的主要開發工具以下:

  • Markdown
    • liteide
    • haroopad
    • retext
  • RestructuredText
    • retext
    • 任意文本編輯器+restview工具鏈

5   生產開發工具

只要是最終運行環境是基於Linux或者是跨平臺的瀏覽器的開發,在Linux下面均可以找到很好的開發環境解決方案,固然對於Windows 客戶端程序或者iOS客戶端程序開發,Linux則顯得很乏力。

目前對於這三類程序的開發,在Linux下面有很好的解決方案:

  • 服務端程序

    目前Linux Server絕對是互聯網服務器的主流,全部的致使服務器開發的主流生產力工具在Linux基本上是最優解。

  • 基於瀏覽器的Web應用

    在服務器端確立以後,客戶端是運行於瀏覽器的,在Linux下面對高級瀏覽器支持度很好。

  • 基於Android的移動應用

    因爲Android自己就是基於Linux的架構,因此在Linux下面開發也是一種很天然的選擇。

主要的開發用途及對應的生產工具以下:

  • 前端調試
    • FireFox
    • Chrome
  • 代碼開發工具
    • Pycharm
    • Eclipse
    • WebStorm
  • Android開發套件
    • Android Studio/Genymotion
    • Android ADT/Genymotion
  • 虛擬機
    • VirtualBox
    • Vmware
  • 版本協做
    • Git Server/Client
    • Svn Server/Client
  • 服務器
    • Tomcat
    • Apache
    • Uwsgi
    • Nginx
    • Vsftpd
    • Supervisor
  • 網絡工具
    • Tcpdump
    • Wireshark
  • 數據庫
    • Robomongo
    • Mysql Workbench
  • FTP客戶端
    • Firezilla

這些程序通常要麼是直接到官網上下載安裝包,或者是直接在軟件源裏面使用:

apt-get install XXXX

便可輕鬆完成相應的環境搭建。

6   重要總結

不少人覺得在Linux下做開發就只是只有黑窗口的控制檯,以下:


而後對Linux環境下的開發就產生了恐懼感,其實並非這樣的。

Linux本質是內核,而後上面運行各類應用程序,桌面也只是運行在Linux內核之上的一個應用程序而已。因爲絕大多數用戶習慣了Windows或者Mac下的圖形用戶界面,目前主流的Linux分支都將發行的Linux文件分爲兩個版本:

  • Server服務器版

    主要用於服務器程序運行。重視系統調用的穩定性,而弱化了人機交互體驗,沒有圖形交互界面,純粹依靠CLI命令行來進行操做。

  • Desktop桌面版

    主要用於平常的辦公和開發。重視人機交互體驗,集成了比較強大的Desktop桌面及桌面應用程序。

普通新手入門的時候,恐懼的都是沒有界面的Server版,而不肯意在Linux作平常的辦公和開發,即便有些項目的生產服務器是在Linux系統下,仍然會有人捨近求遠堅持在Windows下作開發。這樣每每會人爲形成文件路徑和系統環境移植上的麻煩。

其實Linux Desktop下面有不少成熟的桌面應用,特別是在開發領域,這些桌面應用的便捷性不亞於Windows。例如,下面的一些主要的IDE。

Python IDE(Pycharm):


Java IDE(Eclipse):

7   結語

前端所說的這些內容,基本上算是以Linux的功能以及做爲生產力設備能夠發揮的做用給概述一遍了。有了這些總體認識,創建起了樸素的Linux的世界觀和方法論以後,再補充一些基本的Linux操做系統(非Desktop)的知識,就能夠開始互聯網開發和應用之旅了。

後續會對Linux的原理及其強大的生產力工具和方法進行介紹。

 

PS: 可能有人會問,什麼是「生產力」,在此要解釋一下:

按照恩格斯的觀點,從本原看,生產力是具備勞動能力的人和生產資料相結合而造成的改造天然的能力。

按照目前世俗的觀點,從表象來看,生產力就是可以給你帶來更好的生活體驗和生活自由的東西(其實我不想說是「錢」,太俗氣了)


做者: Harmo哈莫
做者介紹: https://zhengwh.github.io
QQ: 1295351490
時間: 2015-08-24
版權說明: 未經許可,嚴禁用於商業目的的非法傳播
聯繫或打賞: http://zhengwh.github.io/contact-donate.html
相關文章
相關標籤/搜索