-
1 # 鴆鴆銪鷀
-
2 # 帶你學計算機技術
C語言基礎要打好,作業系統,還有計算機網路,可以看看linux的書籍,裡面的基本都是介紹的了。linux系統比較多,可以下載安裝紅帽子,ubuntu等等,可以自己找找影片看看。涉及的後面開發就是嵌入式了,還有作業系統
-
3 # kim5659
我說說我是怎麼學的,現在學到什麼程度,遇到哪些問題,困擾在哪裡這些問題。
我是怎麼學的:我是18年初買的第一個樹莓派3B,刷了centos系統(我主要學習centos),刷系統比較簡單,後來又買了3B+,4,和miniPC都是裝的centos系統,Windows虛擬機器也做一個系統。用樹莓派0W做了兩個專案。第一本書一定是鳥叔的Linux私房菜,版本2和3,這本書比較全面。一年寫筆記20萬字左右。
現在學到什麼程度:現在可以自己做FTP伺服器;外掛硬碟;檔案伺服器;常用命令;systemctl用法;使用者操作;Vim操作比較熟練;可以寫一shell指令碼;比較瞭解系統結構;瞭解個資料夾作用;會用top看系統情況等。
遇到那些問題:Linux的變數比較複雜,操作也複雜,難!正則表示式難!sed,grep,等命令用的不熟練。群組操作沒怎麼練習,不熟練。
困擾:不知道現在該學什麼,基本操作基本會了。現在處於不斷學習階段,下一步學什麼不知道。(這期間學習了Python,基本入門)。
這就是我的學習歷程,算經驗,深入運維學的不好,沒有環境,希望有機會提高。
-
4 # 網際網路快訊播報
1、Linux基礎你得挑一個適合你的系統,然後在虛擬機器安裝它,開始使用它。 如果你想快速學會Linux,我有一個建議就是忘記圖形介面,不要想圖形介面能不能提供你問題的答案, 而是滿世界的去找,去問,如何用命令列解決你的問題。在這個過程中,你最好能將Linux的命令掌握的不錯,起碼常用的命令得知道,同時建立了自己的知識庫, 裡面是你積累的各項知識。2、Linux平臺的C/C++開發,同時還有Bash指令碼程式設計[JAVA]再下個階段,你需要學習的是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我不喜歡,就不推薦了,附一個別人的書單:java 入門書籍。 工具方面推薦VIM的官方手冊,GCC中文文件,GDB中文文件,GNU開源軟體開發指導(電子書), 組合語言程式設計(讓你對庫,連結,內嵌彙編,編譯器最佳化選項有初步瞭解,不必深度)。如果你這個階段過不了就不必往下做了,這是底線,最基礎的基礎,否則離開,不要霍霍Linux開發。 不專業的Linux開發者作出的程式是與Linux文化或UNIX文化相背的,程式是走不遠的, 不可能像Bash,VIM這些神品一樣。 所以做不好乾脆離開。3、UNIX環境高階程式設計(作者英年早逝,第3版即將出版,稍等)UNIX環境高階程式設計堪稱神作,經典中的經典。接下來進入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程式設計藝術, 世界頂級駭客將同你分享他的看法。4、選擇方向:網路,圖形,嵌入式,裝置驅動網路方向:伺服器軟體編寫及高效能的併發程式編寫現在是時候做分流了。 大體上我分為四個方向:網路,圖形,嵌入式,裝置驅動。如果選擇網路,再細分,我對其他的不是他熟悉,只說伺服器軟體編寫及高效能的併發程式編寫吧。 相對來說這是網路程式設計中技術含量最高的,也是底層的。 需要很多的經驗,看很多的書,做很多的專案。我的看法是以下面的順序來看書:APUE再深讀 – 尤其是程序,執行緒,IPC,套接字多核程式設計 - Pthread一定得吃透了,你很NBUNIX網路程式設計 – 卷一,卷二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的硬體了, 所以做硬體驅動開發不像嵌入式,對硬體知識的要求很高。可以從事的方向也很多,如家電啊,特別是如索尼,日立,希捷,富士康這樣的廠子,很稀缺的。
-
5 # purelove
LINUX,我學習了4年,目前我的職位是一名資料庫運維工程師,對於linux的學習,我想我這個從網路畢業,變成linux運維方面的工作者蠻有心得。
基礎概念linux和蘋果系統,微軟系統一樣,承載應用服務的底層架構,我們要學習linux,首先一定要了解它的概念。
Linux是一種自由和開放原始碼的類UNIX作業系統,該作業系統的核心由林納斯·託瓦茲在1991年10月5日首次釋出。在加上使用者空間的應用程式之後,成為Linux作業系統。
linux有很多分支,redhat,debian等,根據不同的使用者需求,被包裝成不同的系統,可基礎還是linux或者說unix。
操作命令linux使我感興趣,很重要的原因是命令,敲鍵盤可不是程式設計師的特權。
但使用linux,一定要明白命令的意義,否則,會造成無法彌補的後果。
linux主要的命令是檔案系統,作業系統,程式管理相關,其他命令都是由其他搭載在上面的伺服器提供。
開源程式自學linux,最好是結合一個專案去學,比如docker,比如heartbert。
應用程式部署,會讓你發現很多基本原理以及命令概念,其實linux並不複雜,只要用心,我們專注發現問題,就可以很快的切入其中。
開源程式是學習linux的輔助工具,我們在研究過程遇到的問題便是我們學習的內容,怎麼去克服報錯,怎麼去分析報錯,怎麼去處理報錯,層層揭開linux的秘密。
結語興趣決定我們學習的高度,如果你是因為工作或者其他需求要自學,一定要系統的學習,不要出現操作失誤。
但如果你是因為興趣學習,我想你回答發現linux十分有趣。
-
6 # SuzyHuang
新手自學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自動化入門及進階第二十階段:職業規劃與高薪就業指導Linux學習週期因人而異,如果您有比較好的學習規劃,每天堅持學習4至5個小時,堅持3至6個月,應該可以熟練掌握Linux基本操作,但是,如果只有計劃,沒有實施,那就另當別論了,如果想更深入、更節省時間的學習Linux作業系統,建議報班學習,效果會更加明顯
-
7 # 開心玩技術
B站上面有很多Linux入門的一些影片都可以看一看,推薦你一個https://www.bilibili.com/video/BV1va4y1t7Yb/
回覆列表
沒有方向性,就是學習最大的阻礙了。
個人覺得最好先明確一個目標,比如透過Linux部署一個網路服務,或者部署一個網站。
自己的學習過程是這樣的,前期透過影片只學習了自己感興趣的部分。後期遇到需要使用到的時候又反覆學習了一下。
自己啃書還是算了,我是先看的影片瞭解的差不多了,又買書看了一遍方便加深記憶。