首頁>Club>
8
回覆列表
  • 1 # FungLeo

    在Linux下進行程式設計需要什麼技術?看來你是沒有接觸過Linux作業系統啊。

    很多人想到Linux就想到什麼呢?想到黑乎乎的命令列?一堆自己完全沒有接觸過的命令,然後想到自己一臉懵逼的樣子?

    哈哈哈哈,你實在是想得太多了。

    首先你需要選擇一個正確的發行版,或者說選擇一個比較好用的Linux發行版。我個人推薦初次接觸Linux作業系統的人,使用深度開發的深度Linux作業系統。

    當你進入到深度Linux作業系統的桌面之後,你就會發現原來是這樣的一個系統啊,和windows有什麼區別呀?

    然後你該用什麼編輯器就用什麼編輯器,該用什麼就用什麼,沒有任何的關係的。

    至於程式設計本身需要的技術和作業系統沒有關係。

    當然如果你對Linux作業系統有了更進一步的研究,你還需要去嘗試一下不同的發行版本,比如說由紅帽公司推出的cent OS作業系統。這是一個非常常見的執行在伺服器上的作業系統,當然你接觸這樣的作業系統的話是必須使用命令行了。

    還有ubuntu的Linux作業系統,也是需要去嘗試一下的。因為現在有很多的伺服器上開始使用ubuntu的作業系統了。

    如果你的Linux水平達到了一定的境界,你一定要嘗試一下arch Linux作業系統。當你能夠順利的在虛擬機器上把它給安裝上,說明你的Linux作業系統已經達到一定的境界了。

    當你使用的發行版足夠多之後,你就會發現其實各種各樣的Linux作業系統都是差不多的。只不過在自帶的環境方面各有特色而已。

    總之不要害怕,也不要膽怯,放手去幹 just do it。

  • 2 # 小小猿愛嘻嘻

    其實和Windows下面程式設計流程差不多,唯一的區別就是你需要先熟悉一下Linux環境(畢竟沒有Windows使用起來那麼方便),其次,還有就是你需要熟悉一下常用的shell命令及vim等編輯器,下面我簡單介紹一下:

    瞭解一下Linux的目錄結構:這個是瞭解Linux的基礎,根目錄下面都有哪些目錄,每個目錄都是幹什麼,常用的配置檔案(網路IP、環境變數)都在哪,常用庫都在哪,這個都需要了解掌握:

    熟悉常用的Linux Shell命令:這個是使用Linux的基礎,像常見的ls,cd,find,mdkir,rm,top,grep,sed,awk,su等,簡化版的Linux就只Terminal終端而已,如果你連基本的命令都不會,就不要想著還能操作Linux:

    熟悉一下vim,emacs等編輯器的使用,可能在迷你版的Linux下,就只是一個vim編輯器,你所有的程式設計工作都只能在這個環境下進行,wq!命令,這個你會經常用到,如果是桌面版的,可能還有相關IDE可供使用:

    最後就是程式設計了,這個根據自己的程式語言安裝對應的包或編譯器就行(gcc,java,python等),無非就是vim編輯,命令列編譯,除錯執行而已(和windows平臺可能會有差異),開始使用起來不舒服,後面熟悉後,也就沒啥了,當然,有些IDE是跨平臺的,也有Linux平臺的版本,使用起來和windows的差異不會太大:

    就分享這麼多吧,可能有些亂,初學程式設計的話,如果對Linux不熟悉的話,建議還是在Windows環境下面進行,使用起來能更方便一些,熟悉後,可在Linux下面進行,當然,直接在Linux下面也行,不過有個熟悉的過程,建議初學者,還是下載一個桌面版的Linux,不至於直接一個終端命令列,使用起來很迷茫,不知所措,以後很多伺服器都是基於Linux平臺的,Linux的應用也很廣泛,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。

  • 3 # 蟲蟲安全

    Linux下程式設計其實非常方便,Linux下了有完整的編輯、除錯,編譯,打包一棧式工具。

    當然需要有前提熟悉linux常用命令、熟悉shell環境、能適應純命令列終端的使用(Xwindows環境不咋成熟,不建議)。然後蟲蟲給大家說說Linux程式設計的一些技術:

    終端編輯器和外掛

    Vim:vim是最常用的Linux編輯工具和linux IDE環境的母體,使用vim配合一些外掛完全可以實現現代IDE環境下的絕大多數功能。

    推薦組合:

    主題:molokai(github:/tomasr/molokai),vim-colors-solarized

    外掛:YouCompleteM自動補全(github:/Valloric/YouCompleteMe)

    瀏覽目錄結構的外掛nerdtree(github:/crooloose/nerdtree)

    其他有益插的vim工具推薦:

    matchit:用%在字元間跳轉。

    tComment:快速註釋、反註釋程式碼。

    tabular:對齊。

    snipmate.vim:程式碼片段。

    vim-easymotion:定位。

    vim-instant-markdown: Markdown文件時預覽。

    Emacs:

    emacs是*unix體系最大強大的編輯器和作業系統(幾乎可以做任何事情)

    emacs常用的外掛推薦

    spacemacs vim和emacs功能的優勢集合;

    dracula-theme 很靚的主題;

    更多的可以看github的這個倉庫awesome-emacs(github :/emacs-tw/awesome-emacs)

    除錯debug

    linux有強大的除錯工具gdb。GDB可以讓你除錯一個程式,包括讓程式在你希望的地方停下,此時 你可以檢視變數,暫存器,記憶體及堆疊。更進一步你可以修改變數及記憶體值。原生支援c、c++、Fortran,rust、golang,透過外掛可以支援其他語言。比如基於瀏覽器的擴充套件gdbgui(github:/cs01/gdbgui)

    連結和編譯工具Make

    make是*nix下最強大的連結和編譯工具,基於Makefiles的配置可以實現對大規模專案的自動編譯和編譯,可以大家減輕開發人員的編譯勞動。

    視窗和分屏工具

    screen、Tmux和byobu等工具也是碼農們必不可少的工具,這些蟲蟲文章中有過專門介紹,在此不再贅述。

    更多

    基於需求和碼農的語言環境,Linux下也有大量的工具來滿足需求,這也是蟲蟲文章涉獵的領域之一,關注蟲蟲可以學習並且接受蟲蟲最新文章介紹。

  • 4 # 老好學IT

    程式設計不侷限某個系統,方法基本一致

    程式設計很多技術,技能基本類似,不完全依賴於作業系統,比如WEB程式設計。區域性區別在於工具,不過工具很多也跨平臺了。差別更多是系統呼叫層面,這個層面如果準尋POSIX也是相容的。

    目的不同,需要學習內容會有差異

    要做什麼如,運維:Shell,Python;WEB開發:HTML,CSS,JavaScript,資料庫(MySQL,MongoDB);服務端:Java,Python;遊戲:unity,C++,Javascript等等。

    要熟練掌握某些工具

    如類似編輯工具:vim/vi vscode,Atom,Sublime text 其中一種,還有一些測試、效能分析工具等等。

  • 5 # 我就喜歡你6523

    一、熟悉Linux基本操作和系統管理;

    二、熟悉vim基本操作和man命令;

    三、找一本厚點的C語言教材(比如<c語言程式設計第二版>),精讀+實現每一個例子,做每一個習題;

    四、熟悉計算機基礎

    1.買一本二手<深入理解計算機系統(csapp)>(影印或原版),精讀+實現每一個例子,做每一個習題;

    2.看網課cmu的15-213,做每一個作業,完成全部六個lab;

    五、補課數學課

    微積分、線性代數、機率和數理統計

    離散數學

    六、演算法

    1.買一本clrs<演算法導論intro algorithms>(影印或原版),精讀+實現每一個例題+做每一個習題

    2.上網課,cs61b或Princeton的algorithms I&II

    七、作業系統

    1.買二手書<作業系統概念><現代作業系統><作業系統:原理和實現>(影印或原版),粗讀前兩本,最後一本精讀+做每一個例子和習題。

    2.上網課MIT6.828,做每一個作業,完成全部6個lab。

    八、資料庫

    參照七。

    九、網路

    參照七。

    十、雲計算

    1.直接上網課分散式系統

    2.直接上網課cloud computing(以及advanced)。

    ----

    十一大資料方向(線性代數和統計高分)

    上網課

    十二machine learning方向(線代和統計高分)

    網課(推薦Stanford cs229+230,Andrew Ng吳恩達)

  • 6 # 程式猿來導事

    Linux是一個開源的作業系統,它最初僅僅只是芬蘭Helsinki大學的一位年輕學生Linux Torvalds作為愛好開發的。Linus對Minix(一個小型的UNIX系統)很感興趣,並且決定開發一個比Minix更好的系統。

    Linux下程式設計可分為Linux C語言程式設計和Linux底層核心程式設計

    Linux C語言程式設計需要掌握技術

    1.Linux之io系統程式設計

    2.Linux

    程序間通訊

    3.Linux

    多執行緒程式設計

    4.Linux

    網路程式設計

    Linux底層核心程式設計需要掌握技術

    1.Uboot原理和程式設計

    2.Kernel

    啟動流程和移植

    3.Linux

    驅動程式設計

  • 7 # 極客宇文氏

    在Linux下程式設計不需要什麼特別的技術,你只需要掌握Linux作業系統的使用方法,然後在裡面安裝你所需要程式語言的IDE即可。

    Linux系統下是相容大部分編譯軟體的,比如Java語言應用最廣泛的是eclipse,它具備Linux版本,而且用起來和Windows下差別不大。

    Linux生態圈還有一款廣為人知的可以寫程式碼的軟體,那就是vim,如果你在Linux下跑過C語言程式,那一定用過vi這個指令。它類似於Windows上的notepad,功能強大。

    Linux入門,個人推薦一本書:《Linux鳥叔的私房菜》。

  • 8 # EmacserVimer

    由於某些特殊的歷史原因,國內開發者還是以Windows系統為主,這跟國外在Unix哲學下成長起來的開發者群體不一樣。

    不過這兩年Linux在國內開發者群體中的歡迎程度越愛越高,要知道連Windows10都有了Ubuntu/Debian/fedora等Linux發行版作為Windows10的Linux子系統,那麼想要在Linux下程式設計,需要掌握哪些知識呢?

    為什麼要在Linux下開發?

    二十年前你在Linux上學習的程式設計知識,基本上現在還能用,不過五年前你在windows上學習的程式設計知識,也許大部分現在已經用不了了。

    絕大多數伺服器環境都是執行Linux作業系統,大部分開發者寫的程式,最終都是要在Linux伺服器上執行的;絕大多數的開源軟體會優先適配Linux平臺;很大比例的第三方庫只會登陸Linux平臺。Linux開源、免費、高效,Linux能夠給你最大的可能性,Linux給了你一大堆最為原始的工具,你可以用這些工具組合成專屬於你自己的高效工具庫。

    Linux下各種開源環境應有盡有,各種shell拿來就可以用,跟Unix保持了很好的血緣關係,Lisp/Python/Java/C/C++/PHP/Ruby等各種各樣的環境拿來就可以用。

    visual studio是銀河系最好的繼承開發環境,但是Windows卻沒有因此成為最強的開發者生態。

    Linux程式設計需要掌握哪些知識

    想要在Linux下熟練程式設計,你必須要學很多專業技能。

    熟悉Linux命令

    Linux的精華是命令列,你必須熟練使用命令列進行日常的工作、學習,Linux上有各種各樣的shell命令,bash、sh等命令應有盡有。

    你還得熟悉在Linux上透過命令列安裝軟體、搭建開發環境、完成檔案管理,對於程式碼除錯、編譯等等。

    熟練使用vim/emacs

    在Linux程式設計世界裡,不會使用emacs和vim是可怕的。

    emacs號稱是“神之編輯器”,vim則被稱為“編輯器之神”,這兩款文字編輯器都是Linux下開發者的重要程式設計工具,豐富的外掛讓這兩款編輯器非常強大。

    看一些Linux的書籍

    《鳥哥Linux私房菜》、《深入理解Linux核心》、《Unix環境高階程式設計》、《Unix網路程式設計》、《Linux程式設計》、《深入理解Linux核心》等,這些都是Linux/Unix下的經典書籍。

  • 9 # 產品經理老胡

    Linux下程式設計,除了需要掌握程式語言之外,需要的技術大概就是構建程式設計環境了。和搞開發工作一樣,你要先搞清楚自己的需求。比如你要搞清楚自己要使用哪些語言、面向什麼場景(web、分散式或者是嵌入式),如果有團隊的話,要考慮工程檔案的互用性(就是你編寫的程式碼和生成的中間檔案,別人拿過來就可以直接用),然後就是你自己的使用習慣問題了。

    因為我不從事嵌入式開發,所以我就但從應用軟體開發的角度描述一下,構建Linux下程式設計的工作環境大概有這麼幾個方面:

    選擇整合開發環境IDE

    Linux下最常見的IDE,針對Java的有Eclipse和IntelliJ IDEA,針對Web的有WebStorm等等。它們的特點是將編輯、除錯、執行等功能全部整合到一個大的軟體裡,一次安裝好,一般不需要過多折騰。比較適合程式設計的新手入門使用。但是IDE的缺點就是過於笨重,佔用資源太多,用起來總感覺不是那麼的流暢。

    或者選擇文字編輯器+外掛組合

    Linux平臺下的優秀的文字編輯器太多了,有秒天秒地的Emacs、Vim,還有小巧的nano,圖形化的編輯器有Gedit、Mousepad以及微軟的VS Code。不想使用IDE的朋友可以在這些編輯器內編輯原始碼,再利用外掛進行編譯、除錯。在這裡我用到的是VS Code,它的外掛極其豐富,支援多種語言程式設計,並且執行速度也很快。我自己為了方便編寫Markdown時插入圖片,還開發了一個貼上圖片到圖床的小外掛。使用code開發的優點是和Eclipse、IDEA一樣,工程檔案可以跨平臺。

    選擇一個棒棒的程式碼託管平臺做版本控制

    Github可能是不二之選,但是一些不想開源的核心程式碼放到公網上可能會有洩露的風險。如果那天加班加的昏昏沉沉一個不小心把核心程式碼搞出去了就得不償失了。除了Github之外,還可以自己搭建一個開源的Gitlab託管平臺,把程式碼放到內網伺服器上,這樣在方便版本控制的同時也規避了程式碼洩露的風險。

    選擇一個靈巧的方案做產品部署

    目前比較火的是使用Docker進行產品部署,不過這個已經快走出程式設計的範圍了,我們是研發和產品各出一部分人來搞這一塊。Docker的方便之處在於它的容器化機制,可以很方便的把所有部署檔案從一個伺服器轉移到另一個伺服器,遷移、升級、運維管理都比較方便。

    總之,在Linux下程式設計需要的只有構建程式設計環境的技術。當然了,Linux的操作基本功還是要紮實的,不然怎麼完成程式設計工作呢。程式設計環境的構建是在自己一步步摸索中不斷磨合完善的,你可以先試著用一套方法,在這個基礎上慢慢改進,以求得最適合自己的環境。

  • 10 # drinkingcode
    環境搭建

    如果要在Linux下進行程式設計,那麼首先我們需要有Linux作業系統的環境。通常的做法是下載並安裝VMware,然後在VMware下安裝Linux作業系統的發行版,比如Ubuntu,CentOS等。當一切安裝就緒後,你就擁有一個Linux的程式設計環境了。如果大家需要相關資料,可以關注私信我,百度網盤分享給大家。(僅供個人參考學習)

    入門

    掌握C語言

    環境搭建好之後,接下來我們需要掌握一門程式語言。由於在Linux下提供的系統API都是針對C語言的,所以想要進行Linux程式設計,就需要掌握C語言的基本使用。針對C語言的學習,給推薦大家一本《C和指標》

    熟悉Linux命令

    在Linux下程式設計,很多時候都是透過命令來進行操作的,ls命令,cd命令等。所以掌握常用 的Linux命令之後,你就能更方便地去使用Linux系統。對於Linux命令的掌握,大家只需要選擇一些常用的命令來進行學習就可以,至於平時不常見的命令,到時遇到再去選擇性學習。在這裡推薦一本學習Linux命令的書籍《鳥哥的Linux私房菜》基礎學習篇

    熟悉vim

    有了前三步的基礎,接下來,我們就可以手動來寫C語言了。在Linux下,C語言的編輯器為vim。但是想要在vim上編寫程式碼,就需要了解vim基本命令的使用,因為vim的使用使用vim命令來進行互動的。當我們熟悉了vim命令的使用後,我們就可以自由自在地在Linux下編寫我們的C語言程式碼啦,然後用gcc編譯器編譯我們寫好C語言程式碼的檔案,就可以得到可執行程式,執行可執行程式,就可以看到輸出結果。

    進階

    熟悉系統API

    在入門階段,我們掌握基本開發Linux程式的流程。但是在入門階段中,我們編寫的應用還不具備太大的實用意義,因為我們編寫的程式並沒有藉助系統的API。所以在進階階段,我們需要做的就是藉助Linux系統API,以便我們編寫的應用發揮更大的威力,更具有實用的價值。

    在Linux系統中,比如讀取一個檔案的內容或者把伺服器建立一個連線等,都需要呼叫Linux系統API才能實現。如何掌握這些API呢?在這裡,推薦搭建閱讀《UNIX環境高階程式設計》,裡邊介紹了檔案I/O,程序間通訊等知識。這樣我們就可以藉助系統API讓應用發揮更大的價值。

    掌握Makefile

    當我們編寫一個程式的時候,為了讓其層次更清晰,通常會把不同部分的程式放在不同的檔案或資料夾中,但這些檔案之後又是有相互依賴關係的,如何在gcc編譯時告知他們之間的順序呢?此時,就需要我們掌握Makefile的基本語法,然後用Makefile來告知gcc如何編譯。在這裡推薦一本《GNU make》。

  • 中秋節和大豐收的關聯?
  • 7月25日創業板指數繼續上漲,可以加倉嗎?