如何利用樹莓派學習Linux及Python?


建議題主放棄這個想法。

工具只是工具,學習靠的是人。

工具只是工具,學習靠的是人。

工具只是工具,學習靠的是人。

為了打消題主這個念頭,我決定給題主詳細解釋一下原因。

首先,樹莓派是什麼?

樹莓派是一種便宜的卡片式Linux電腦,風靡全球。它是世界上眾多廉價又成熟的電腦之一,只要35美元,而且十分容易上手。 樹莓派能替代日常桌面計算機的多種用途,包括文字處理、電子表格、媒體中心甚至是遊戲。並且樹莓派還可以播放高至1080p的高清視頻。 樹莓派有成千上萬種玩 法,但常常有些人心血來潮買了樹莓派後,卻突然不知道自己要用它來做什麼了。

樹莓派能用來做啥? | 樹莓派實驗室

在這個頁面里,題主可以去查看一下已有的一些樹莓派玩法。

你會發現,樹莓派更多的用來做一些下面的事情:

用樹莓派打造一個家庭影院把樹莓派配置成無線路由器用樹莓派搭建BT下載伺服器拿樹莓派當FTP文件伺服器在樹莓派上搭建代碼託管服務(SVN)

對於培養你的動手能力大有裨益,但是具體到你的要求,學習Linux和Python,可以說並不適合。

對Linux初學者來說,比較重要的幾點:

1. 選擇適合自己的Linux發行版

談到linux的發行版本,太多了,可能誰也不能給出一個準確的數字,但是有一點是可以肯定的,linux正在變得越來越流行, 面對這麼多的Linux 發行版,打算從其他系統轉到linux系統來的初學者可能會感到困惑,即便是忠實的 Linux 用戶也沒有時間和精力去挨個嘗試,因此初學者在學習linux的之前,需要有一個明確的方向,選擇一個適合自己的系統開始學習linux至關重要!

2.養成良好的linux操作習慣

當你進入linux的學習之後,請不要用windows的工作方式來思考問題,因為它們之間確實有很大的不同,比如它們之間的內存管理機制,進程運行機制等都有很大不同,這些異同點將在下面章節陸續講述,因此,拋開windows那種思維,用全新的理念嘗試去挖掘linux身上特有的潛質,對初學者至關重要。

3. 習慣命令行方式

Linux是一個命令行組成的操作系統,精髓在命令行,無論圖形界面發展到什麼水平,命令行方式的操作永遠是不會變的,Linux命令有許多強大的功能:從簡單的磁碟操作、文件存取、到進行複雜的多媒體圖象和流媒體文件的製作都離不開命令行。雖然linux也有桌面系統,但是X-window也只是運行在命令行模式下的一個應用程序。

因此,可以這麼說,命令是學習linux系統的基礎,學習linux,很大程度上就是學習命令,很多linux高手其實都是玩兒命令很熟的人。

4.理論結合實踐

有很多初學者都會遇到這麼一個問題,說到系統的每個命令,都很熟悉,但是在系統出現故障的時候,面對出現問題的linux系統無從下手了。不知道在什麼時候用什麼命令去檢查系統,這是很多linux新手最無奈的事情了。說到底,就是學習的理論沒有很好的與系統實際操作相結合。

很多linux知識,例如每個命令的參數含義,在書本上說的很清楚,看起來也很容易理解,但是一旦組合起來使用,卻並不是那麼容易,沒有多次的動手練習,其中的技巧是無法掌握的。

5.學會使用linux聯機幫助

主流的linux發行版都自帶了非常詳細的幫助文檔,包括使用說明和FAQ,從系統的安裝到系統的維護,再到系統安全,針對不同層次人群的詳盡文檔。仔細閱讀文檔後60%的問題都可在這裡得到解決。

6.學會獨立思考問題,獨立解決問題

遇到問題,首先想到的應該是如何自己去解決這個問題,解決方式很多,看書查資料,網路搜索引擎,技術論壇等等,通過這幾種方式,90%的問題都能得到解決,通過這種方式一方面鍛煉了自己獨立解決問題的能力。另一方面技術上也能得到快速提高。

7.由低至高,循序漸進

到這裡,我們總結一下linux的學習路線圖,給各位初學者作為參考。

初級階段:

1.命令是必須要學的,linux常用的命令大概在80個左右,這些常用命令一定要熟練掌握。

2. 掌握linux軟體包的常用安裝方法,例如源碼安裝,rpm方式安裝等等。

3. 學習安裝設備驅動程序(比如網卡、顯卡驅動)

4. 熟悉Grub/Lilo引導程序及簡單的修復操作。

5. 熟悉Linux文件系統和目錄結構以及linux基本運行原理。

6. 掌握vi,gcc,gdb等常用編輯器,編譯器,調試器。

7. 理解shell別名、管道、I/O重定向、輸入和輸出以及shell簡單腳本編程。

8. 學習Linux環境下的網路基本組建。

高級階段:

1:嘗試閱讀linux內核源碼:

2:嘗試編譯安裝和調試自己的linux內核:

在閱讀源碼了解了linux底層的運行原理後,完全可以編譯一個適合自己的linux系統來。

3:深入學習shell, perl,cgi等腳本語言:

這些腳本語言在linux下非常強大,它們能完成你想做的任何事情,熟練掌握這些語言,可以讓你在linux系統下遊刃有餘,如魚得水。

4:構建企業級linux高可用集群系統:

linux下有很多開源免費的集群軟體,利用這些免費的集群軟體完全可以構建出與商業unix系統想媲美的集群系統來。

再來看Python學習的幾個階段:

第一個階段:初級,掌握Python的語法和一些常用庫的使用 第二個階段:中級,掌握自己特定領域的庫,掌握pythonic寫法,非常熟悉Python的特性 第三個階段:高級,從整個工程項目著眼,考慮document,distribution,性能優化等

結論

無論是Linux還是Python,其學習過程對於硬體都沒什麼要求,對於知識的掌握才是核心。

理論上用樹莓派學習當然可以,但是鑒於你依然處於初學者水平,特別是Linux相關的不夠熟練,還是不太建議你是用樹莓派來進行學習。

如你所見,樹莓派是一個很需要DIY能力的「玩具」,非常酷炫,但對於入門學習幾乎沒有什麼幫助——特別是對於Python,即使Windows環境也完全不會影響你的學習。

請記住:在未入門之前,應該儘力去降低自己的學習難度,而不是為了好玩或者其他原因,來憑空給自己的學習道路增加許多麻煩。


你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:

【超全整理】《Python自動化全能開發從入門到精通》筆記全放送


小更,在樹莓派上裝了kodi,這下連電視盒子都省了。支持播放移動硬碟里的資源,支持用手機app(優酷,愛奇藝等)直接dlna投放到kodi上觀看。

-------------------------------------------

更新!

今天我的樹莓派又增添了一個新功能:串流遊戲到電視上。買了新的台式機和大電視,於是利用NVIDIA GeForxe experience的串流功能串流steam到電視上,配合一個遊戲手柄就可以直接用電視玩pc上的遊戲,連steam link的錢都省啦!

-------------------------------------------------

樹莓派是拿來玩的,創造的

抱著這種心態,不知不覺就能學會很多

看到有人對alexa項目感興趣,貼一下教程鏈接:https://github.com/alexa/alexa-avs-sample-app

這個教程很詳細很簡單,樹莓派還有一鍵安裝環境的腳本,不出意外小白也能搞定。

我的樹莓派的用途:

1.smb伺服器。pc,手機都可以直接訪問接在上面的移動硬碟。

2.dlna伺服器,電視盒子可以直接播放移動硬碟的視頻

3.迅雷遠程下載,遠程下載資源到移動硬碟

4.owncloud私有雲,配合ngrok可以隨時隨地像網盤一樣訪問移動硬碟。配合手機上的app可以每天自動備份照片視頻到私有雲。

5.web開發測試伺服器以及資料庫,女朋友最近在搞一個自己的web項目,於是配合ngrok給她搭了一個web測試伺服器以及資料庫

//以下是最近在玩的項目,並不是穩定長期運行的

6.amazon alexa智能音響。接了外接音響和麥克風,根據amazon給出的教程很容易很容易就能實現一個alexa智能語音助手,有點想siri,cortana的那種,並且是靠語音喚醒的(就是指你喊一句"alexa"就能啟動它,它會聽你說話並且回復你)

7.加了一塊"瑞士軍刀開發版",實現了顯示時間,cpu佔用的功能。一鍵播放/切換

/喜歡網易雲音樂私人fm的功能。

如果點贊評論的多我再給詳細的說明或者教程吧。


快慢有些不同,但是隨便什麼linux的server,ssh上去不都是一樣的嘛。。。


樹莓派上的系統是閹割版的debian或者ubuntu. 要學的話幹嘛不直接下個virtualbox安裝虛擬機呢?樹莓派有的虛擬機跑不了的只有一個GPIO,但是你學的是Linux不是數字電路啊。等Linux用熟了再回來整GPIO so easy. 基本上都有模塊直接調API就好了。


做個廣告吧,用python以在線編程的方式來控制樹莓派的智能控制課程:

課程列表

不過可能和你的要求差了點:(


Minecraft player的福利:

Minecraft有一個基於樹莓派平台的版本,用於編程教學,不過13年就停止更新維護

樹莓派版 - Minecraft Wiki

最重要的是:API支持python


不黑……買個玩具就別想干學習的事情,你也不嫌它卡啊?

直接在PC上裝一個linux不好么?


我就想問問樹莓派跟pc裝linux優勢在哪裡?

如果非要樹莓派,那就配上無線鍵鼠,配上顯示器,扯根網線,學吧。。。


不如用虛擬機或者wsl


樓主這個問題挺有意思的,作為Python和樹莓派愛好者,我必須回答一下。

回樓上某些答主:我買了Kindle DXG以後,讀了幾本pdf,買了小kindle之後,多讀了幾本小說,買了樹莓派之後,複習了一些模擬電路的知識。

親身經歷說明,新工具會增強興趣,影響我們的行為。

樹莓派這麼好玩的東西,拿它來上手Linux和Python,實在是再好不過了。

回題主,大致是這麼個建議:

買樹莓派的時候,別搞什麼小鍵盤、小屏幕,直接插便宜的普通鍵盤滑鼠,顯示器如果家裡有兩個,就電腦和樹莓派各用一個,如果只有一個就和電腦共用。插樹莓派的HDMI口,可能需要轉接線。

因為我玩樹莓派時候已經是伺服器老手了,我就直接SSH登陸用的。樓主新手的話,按網上教程直接裝Raspbian系統,很好裝。

網路配置好以前,你可能需要在電腦和樹莓派之間來回切換,上網查資料。網路配置好以後,基本就可以完全在樹莓派裡面玩了。另外還得有輸入法。

然後在Raspbian裡面玩Linux就可以了。建議看《鳥哥私房菜》這種入門書,簡簡單單掌握一半就足夠日常使用了。

Python就更有意思了,寫點小程序,比如計算器、海戰棋之類的。

喜歡遊戲的用Pygame寫小遊戲。

想學通用窗口編程的,學習Tkinter就可以,也可以寫一些掃雷之類的小遊戲。


看到大家都在說讓題主放棄這個想法,我就想來回答一下。因為我的python入門就是在樹莓派上。

首先我覺得題主需不需要在樹莓派上學習不是我們這些學習過的人替她決定的。既然他有這樣的問題提出,一定是有他的原因的。我利用樹莓派學習Linux和python完全是因為大創項目需要。我學習python的目的,就是要快速的上手,以便於實現,使用樹莓派進行開發,並且語言用python。對於題主的建議就是,你要弄清楚是不是非要這麼學習,是想要日後可以成為pythoneer,還是需要快速掌握去實現一些具體的功能。

至於如何利用樹莓派和Linux系統去學習,就和正常學習方式一樣啊,安裝一個好用的編譯器,先學習寫系統指令,然後就是不斷的寫小程序去練習啊。如果有目的的學習,就掌握了基本語言結構屬性特點之後,有目的的去練習,可能你寫的小程序就不是hello world ,而是和你的項目相關的了。

希望題主學習愉快吧。


刪掉X Server,砸了Windows的電腦,只剩手機和樹莓派,逼自己用命令行,然後你就會了。


你也可以用安卓學習Linux啊。

把手機root一下,然後下載:

Linux deploy

Termux

BusyBox Pro

配置完畢後就可以通過SSH連接到Linux了。


寫好系統鏡像後就是linux了,安裝好Python就可以操作Python了,你學習linux用虛擬機用硬碟安裝用樹莓派等開發板效果一樣,Python就更通用了,Python移植性不是一般的好,目前為止,你的問題可以看出你連怎麼學習都不知道。


樹莓派是一款基於arm架構的微型電腦主板,樹莓派官方認定的變成語言是Python,並且大部分固件都安裝好了Python。樹莓派使用的事Debian操作系統,也是linux操作系統,你以前學過linux命令行在這裡同樣適用,並且樹莓派具有IO口,有助於以後單片機


題主的問題應該分解為:

如何學習Python?

如何學習Linux?

如何學習樹莓派?

其實我很好奇為什麼來知乎問這種問題,純粹是知乎上癮?這些常見基礎技術已經滿大街都是教程了,搜一下很難嗎?有知乎發貼的工夫都跑完hello world了。知乎也沒幾個權威大拿;權威大拿也不會無商業目的的在知乎講出比已有公開資料更加有效果的方法。


拿樹莓派學習linux並不合適,因為圖形操作雖然差不多,但是命令行和庫是簡略版本的,網上教材經常並不適用,如果稍微習慣linux命令行操作的話,都差不多啦


利用阿里雲或者其他vps學吧


樹莓派學嵌入式和物聯網還比較靠譜,如果只是想學linux和python,還是找台pc裝linux吧。

如果只是想學python,建議用win或者mac,不要把時間浪費在linux配置上。


光折騰就能耗光你學習的樂趣


安裝配置各種服務 學習Linux ,gpio控制各種感測器 學習Python


推薦閱讀:

編程好學嗎?
你們都通過閱讀開源的代碼獲得了哪些跟操作系統和語言無關的技術知識?
如何快速吃透別人的代碼?
如何在 Github 上做一個規範的開源項目?
假如沒有載入畫面遮掩,在進入遊戲或者關卡時玩家會看到什麼樣的場景?

TAG:Python | 編程 | Linux | 嵌入式系統 | 樹莓派RaspberryPi |