樹莓派4B改裝RC玩具車玩轉opencv系列教程(一)樹莓派基礎入門篇------Hello Raspberry Pi OS(Rasbian )!
- 系列教程簡介
- 前言 :Rasbian OS初相識
- 硬件列表
- Raspberry Pi OS(Rasbian OS)的安裝
- 通過VNC建立與樹莓派4B的連接
- 情況一:有顯示器、鍵盤和鼠標連接樹莓派4B
- 情況二:有顯示器和鼠標連接樹莓派
- 情況三 只有筆記本電腦和樹莓派
- 手機、ipad通過VNC連接樹莓派
- 初次VNC登錄樹莓派提示“cannot currently show the desktop”問題的解決
- 知識擴充
- 初次登錄樹莓派的基本設置
- Raspbian OS基本生存指南
- Raspberry Pi OS的目錄結構
- 基本命令
- - 如何知道當前所在目錄位置
- - 如何切換目錄
- - 如何顯示當前路徑下的所有文件以及進行路徑切換
- - Windows中“F1”般的存在
- - 新建和刪除一個文件夾(目錄)
- - 用nano 新建一個文件
- - 如何移動文件或者目錄
- - 如何複製文件
- - 如何重命名一個文件
- - 刪除一個文件
- - 如何查找文件
- - 如何使用gerb正則表達式在文件裏尋找字符串
- -如何解壓縮文件
- - 如何利用wget進行文件下載
- - 如何獲取Windows中Admin管理員的權限
- - 如何安裝刪除軟件
- - 如何退出終端
- - 如何 重新啓動
- - 如何關機
- - 如何終止進行中的程序
- - 如何查詢軟件的版本
- 歷史命令、命令補全、右鍵粘貼
- 更換系統源、軟件源和pip源
- 如何在電腦和樹莓派間傳輸文件
- 如何安裝.deb文件
- 更換更強大的shell
- 下集預告: 樹莓派4B改裝RC玩具車玩轉opencv系列教程(二)樹莓派4B通過PCA9685 控制舵機轉動
系列教程簡介
本系列博客計劃完成樹莓派4B對RC四驅車的改裝控制,在樹莓派4B上安裝opencv,嘗試通過對紅色色塊的追蹤實現小車的前進後退。涉及的內容比較多。比如樹莓派4B對嘎斯四驅車波箱電機的控制(L298N)、樹莓派4B對四驅車舵機的控制(PCA9685)、樹莓派上opencv的安裝、樹莓派上Flask的安裝、Tensorflow安裝。。恩。都是掃平進軍樹莓派的攔路虎系列小白教程。
前言 :Rasbian OS初相識
博主是個徜徉於windows海洋的linux小白(現在很喜歡linux),2013在最初接觸樹莓派的時候並不知道任何關於linux的前世今生。所以在衆多的linux門派鬥爭之外安安靜靜的選擇了官方推薦的Rasbian OS。入門書籍就是這本著名的“愛上XXX”系列。
但是翻譯的延時,軟硬件更新的迅速在本就一竅不通的艱難入門之旅中平添了極多的障礙。走走停停。放棄、撿起來。每每遇到linux大神都無法解決我這種凡人的各種困惑。他們總是get不到我白到什麼程度。提供的幫助都是零零散散,對於系統入門並沒有特別友好。直到遇到了思揚和小殭屍兩個人,才總算一隻腳踏進了linux的門兒。到今天終於可以把之前遇到的坑稍微添一添。哈哈哈。寫一篇我覺得真的可以白到極點的入門博客。希望可以幫助想嘗試樹莓派的朋友少走些彎路。當然因爲個人能力有限,可能存在很多不足和問題,歡迎拍磚、指正。
硬件列表
樹莓派4B(帶散熱片) 4G*1
樹莓派開關電源線 *1
16GmicroSD卡 *1 (8G、32G我都試了沒啥問題。)
樹莓派4B專用電源(!!5V3A)*1
樹莓派外殼 *1
( 樹莓派外殼:因爲後續要跟小車以及攝像頭、電機和舵機對接。s市面上現有的殼體的接口大多不方便。下面圖裏所示的紅白殼基本上只用了下面紅色的部分。上面就是裸奔狀態。風扇也沒加。散熱片還是需要的。)
Raspberry Pi OS(Rasbian OS)的安裝
microSD卡的選型
品牌型號選擇
《2019年樹莓派microSD卡測評》一篇特別詳細的國外測評報告,指出SamsungEVO plus的性能表現突出性價比最高。本教程在最初測試的時候使用的是SanDisk16G紅卡。寫博客時截圖用的Netac32G(朗科)。
Raspberry Pi microSD card performance comparison - 2019
容量選擇
本實驗選擇的是閃迪的16G紅卡
官方SD卡容量介紹
DOCUMENTATION > INSTALLATION > SD-CARDS
如果以NOOBS的方式安裝桌面帶軟件版本:>=16GB
Raspberry Pi OS桌面帶軟件版本:>=8GB
Raspberry Pi OS Lite版本:>=4GB
注意:只有Raspberry Pi 3A+,3B+可以啓動256GB以上的SD卡。
因爲大於32G的SD卡是SDXC卡,需要用exFAT文件系統來進行格式化。所以官方的SD格式化工具會默認將大於等於64G的SD卡格式化微exFAT格式。但是樹莓派的bootloader只能在FAT16或者FAT32系統上啓動。所以你需要使用>=64G的卡時,需要將盤重新格式化爲FAT32格式。(以上文字翻譯自官方文檔)
Raspberry Pi OS(Rasbian OS)的安裝
建議初學者最快開始進入學習的方式是買樹莓派時要求店家寫好系統在SD卡里。這樣能讓最初的熱情和動力留在比較耗神的下一節“Raspberry Pi OS生存篇”,哈哈哈哈。
下載Raspberry Pi OS
Raspberry Pi OS的安裝有兩種方式:
- 一種是NOOBS的安裝。這種方式就是在官網下載NOOBS的安裝引導程序離線安裝包。利用鏡像工具拷貝進SD卡在樹莓派內進行安裝,官方對於初學者推薦了這種方式。我自己在最初學的時候也是用的這個方法。但是看了上一段SD容量選擇部分,就會知道這種方式的弊端就是會佔用本就不多的SD卡資源。後續還要裝opencv這樣的大塊頭。所以本教程不用這種方式。
- 另一種是將操作系統鏡像寫入SD卡,樹莓派啓動後直接進入操作系統。
鏡像下載地址
三個版本: 桌面帶軟件版本、桌面版本、和mini版本。我裝的是第一個版本。裏面自帶VNC、Fu等工具。桌面版本身也很好友好。
以下內容摘錄自:樹莓派系統 Raspbian Buster 發佈 - 關於Bluster版本:樹莓派基金會在本週發佈樹莓派4B硬件之後,緊接着更新了 Raspbian 操作系統。新的版本號是 Buster,來自皮克斯《玩具總動員》電影中狗的名字。
- 這個版本基於最新的 Debian 開發,甚至比 Debian 的官方版本更早發佈,這是爲了在 Buster 中針對樹莓派4添加 OpenGL 視頻驅動爲默認項。
- Raspbian 中一直集成了 Thonny Python 作爲開發環境,在 Buster 中,這成爲了默認的開發環境。而之前的 IDLE 因體驗上不太舒服而被移除,強烈建議試試 Thonny Python。
- 推薦全新安裝 Buster,而不建議從現有的 Stretch(以及更早的版本)升級到 Buster。如果一定要這麼幹,請先做一個備份,並且請確保你的系統已經更新到 Stretch 的最新版之後再進行。
選擇桌面帶應用的版本進行下載。可以選擇下載torrent文件或者直接下載ZIP文件。
我選擇的torrent方式,下載速度還可以,半個小時就搞定了。
下載完成後,解壓出img文件備用。
格式化SD卡
- 小於32G可以用windows內建格式化程序進行
- 打開“我的電腦”,在U盤的盤符處點擊右鍵彈出如下所示菜單,選擇“格式化”。
全部選擇默認就好。點擊“開始”。格式化完畢
- 大於32G
微軟內建的格式化程式最大到32G,大於32G的SD卡需使用第三方程式例如guiformat進行格式化。打開下面的地址鏈接,點擊如下圖所示的圖片的紅框位置即可開始下載。
guiformat下載地址
利用etcher 拷貝鏡像到SD卡
下載etcher鏡像燒寫工具
etcher官方下載地址
如下圖所示,點擊綠色按鈕進行下載。
將img文件拖拽到相應位置,選擇sd卡所在的盤符,點擊"FLASH"
開始進行下載。
通過VNC建立與樹莓派4B的連接
情況一:有顯示器、鍵盤和鼠標連接樹莓派4B
電腦端VNC軟件安裝
下載exe安裝包進行安裝
樹莓派端相關設置
- 打開樹莓派端的SSH和VNC(此時樹莓派連接有鍵盤、鼠標和HDMI顯示設備。如多家裏沒有電腦顯示器,我覺得電視是個不錯的選擇。)
- 連接Wi-Fi
點擊下圖紅框位置的FWi-Fi圖標進行賬號和密碼的設置。 - 查詢樹莓派局域網IP地址
電腦端設置
點擊“ok”後,成功顯示出樹莓派桌面。可以進行操作了。之後就不用爲樹莓派連接額外的顯示器了
如無法顯示參見下面的解決辦法:
初次VNC登錄樹莓派提示“cannot currently show the desktop”問題的解決
情況二:有顯示器和鼠標連接樹莓派
這種情況沒有鍵盤。所以無法在樹莓派端進行Wi-Fi賬號密碼的輸入工作。需要在SD卡上進行配置。
在SD卡根目錄添加網絡配置文件
打開剛剛燒寫好鏡像SD卡,用記事本新建一個名爲wpa_supplicant.conf
的文件如下圖所示。
打開這個文件輸入下列代碼,這個操作可以保證你的樹莓派通電後直接連上網絡,在電腦端通過SSH直接連接樹莓派。無需額外的顯示器、鍵盤以及鼠標。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
ssid=“你的WIFI名”
psk=“WIFI密碼”
}
樹莓派端設置SSH和VNC
將SD卡插回樹莓派,開啓電源。樹莓派連接上網絡。
打開樹莓派端的SSH和VNC(此時樹莓派連接有鼠標和HDMI顯示設備)。
- 查詢樹莓派局域網IP地址
電腦端設置
點擊“ok”後,成功顯示出樹莓派桌面。可以進行操作了。之後就不用爲樹莓派連接額外的顯示器了
如無法顯示參見下面的解決辦法:
初次VNC登錄樹莓派提示“cannot currently show the desktop”問題的解決
情況三 只有筆記本電腦和樹莓派
這是最最可憐的情況。沒有顯示器(電視也沒有,,,)、沒有單獨的鍵盤和鼠標。
在SD卡根目錄添加網絡配置文件和SSH文件
打開剛剛燒寫好鏡像SD卡,用記事本新建一個名爲wpa_supplicant.conf
的文件如下圖所示。
打開這個文件輸入下列代碼,這個操作可以保證你的樹莓派通電後直接連上網絡,在電腦端通過SSH直接連接樹莓派。無需額外的顯示器、鍵盤以及鼠標。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
ssid=“你的WIFI名”
psk=“WIFI密碼”
}
因爲樹莓派默認SSH功能默認是關閉的,所以還需要在SD卡根目錄下再添加一個名爲ssh
的空文件。注意沒有任何的擴展名。
將已經寫入了Wi-Fi賬號和密碼並開啓了ssh的SD卡插入樹莓派內通電。
SSH連接樹莓派
局域網內查找樹莓派IP地址
- 方式一:在路由器端直接查找找到後可以順便在路由器端將樹莓派的ip設爲靜態IP。具體設置參見路由器說明。
- 方式二:通過WIinwos 命令行工具輸入
arp -a
實現,對比樹莓派接入Wi-Fi前後的區別來識別出設備。
- 方式三:免費的Advanced IP Scanner軟件,在紅框裏輸入路由器的網段因爲我的是路由器網段是
192.168.3.1
所以搜索範圍就是192.168.3.1-192.168.3.255
。這是因爲ip地址由32位二進制數表示的。一共分爲四個部分。每個部分是8位。2的8次方是256。一般從0開始數所以最大爲255.而0這個數字是作爲保留地址有自己特殊功能(廣播)不做分配使用。所以就是1-255
。如果你的路由器登錄地址是192.168.1.1
那麼紅框的範圍就是192.168.1.1-192.168.1.255
。
putty的安裝
putty下載地址
根據自己系統選擇32位或者64位下載。如果不確定自己電腦的位數可以右鍵“我的電腦”選擇“屬性”進行查看。
SSH連接樹莓派
SSH連接的默認端口號是22
,在Host Name
處填寫剛剛查找到的IP地址。
點擊OPEN
後如果彈出下圖界面。選擇yes
。
login as
是要求輸入登錄樹莓派的用戶名。我們選擇使用pi
賬戶(下面的目錄結構部分會詳細介紹)。所有新裝系統的樹莓派pi
賬戶的密碼都是raspberry
。輸入時要特別注意。因爲這個輸入過程沒有任何的屏幕提示。這個git我就錄了兩遍。。。因爲第一遍我的密碼就輸錯了。哈哈哈。
開啓樹莓派的VNC
在上面的頁面命令提示符後輸入sudo raspi-config ...
。在彈出的界面中用鍵盤的上下方向鍵選擇5 interfacing options
,接下來選擇P3 VNC...
,按下回車,用Tab
鍵選擇是
,用Tab
鍵選擇Finish
,完成了VNC的開啓。
電腦端設置
點擊“ok”後,成功顯示出樹莓派桌面。可以進行操作了。之後就不用爲樹莓派連接額外的顯示器了
如無法顯示參見下面的解決辦法:
初次VNC登錄樹莓派提示“cannot currently show the desktop”問題的解決
手機、ipad通過VNC連接樹莓派
戳這裏:電腦、手機和iPad通過VNC Viewer連接樹莓派
初次VNC登錄樹莓派提示“cannot currently show the desktop”問題的解決
可能的意外
如果連接上VNC後,屏幕顯示
-putty連接登錄樹莓派:
(ssh連接樹莓派的方式參見本博客這個主題的情況三,裏面有詳細介紹)
輸入:sudo raspi-config
彈出樹莓派設置頁面;
- 選擇第七個選項:“Advanced Option”
- 選擇第五個選項“set a special screen resolution"
- 然後選擇MODE16也就是分辨率爲“1024*768”就可以了
- 這個位置的操作就只支持“Tab”和上下方向鍵。最後選擇保存退出後。因爲這個造作要求重啓所以putty會顯示連接斷開。沒關係。關掉putty,重新連接VNC。DuangDuang~界面以顯示。
- 奇怪的問題:也試着用了下面的方式解決,但是不管用。而且這個VNC連接後會出現無法顯示屏幕的問題也不是每一個樹莓派SD都會出現。我自己手裏的兩個SD卡插入同一個塊樹莓派板子。就一個會出現這個一個不會。。。俺也不知道爲蝦米。。。
知識擴充
樹莓派和電腦的連接要保證在一個局域網,也就是同一個IP字段內。主要的連接方式有下面6中。最常見的應該是第二種,即電腦和樹莓派連接在同一個Wi-Fi下。家裏寬帶欠費了上不了網並不會影響樹莓派和電腦間用SSH通信(詳細的介紹可以參見《數據通信》這門課程。)。
老王很囉嗦: 雖然沒有電腦時,手機也是一個不錯的彌補辦法。但我還是很建議沒電腦的朋友可以入一臺二手電腦一般價格在1千左右就好。目前我所有的博客都是在這樣千元的二手電腦上測試並完成的。除了不能打遊戲,還沒覺得有啥不好。內存至少8G,固態硬盤128以上。後續的教程也是在電腦加樹莓派的vnc連接下進行的。當然二手電腦並不是什麼牌子的都ok。我還是喜歡小黑系列。都是原本萬+的高端機。品控是有保障的。emmm。。。好吧,這是另一個話題,有需求我可以寫個二手電腦選購指南。哈哈哈哈哈。下面這張圖就是我自己電腦的配置。thinkpad X1 2012年版。
初次登錄樹莓派的基本設置
第一次登錄會彈出如下的設置界面。點擊next
。
選擇所在地、語言和時區。
更換pi
用戶的默認密碼。
我的VNC裏顯示了黑色的邊框。隨意我在提示裏大了對號。
選擇Wi-Fi。因爲之前我們已經連接上了Wi-Fi直接next
就好了
這一步是提示檢查系統和預裝的軟件是否有更新。其實整個過程和我們安裝Windows系統是一樣的。安完了之後進行更新。
時間會有點長,耐心等待。
可以選用later
稍後重啓。或者Restart
立刻重啓。
Raspbian OS基本生存指南
接下來就是本文最最核心的部分,對於習慣了windows操作系統的人兒來說,Raspbian OS第一棘手的問題就是操作習慣的完全顛覆(雖然桌面化帶來了一部分同化,但真正深入到編程層面還是要和烏漆墨黑的命令行稱爲朋友纔可以)。生存指南將在下面幾個方面提供入門必須的基本知識。愛上他從瞭解開始~~~
Raspberry Pi OS的目錄結構
Pi OS目錄結構官方說明
理解Pi OS的目錄結構是非常重要的,他可以幫助你理解那些是重要的,那些是危險的不要輕易動會導致系統崩潰的,而下載的軟件又是放在那個位置。
和WindowsOS的 顯著區別
- 斜線傾斜的方向不同,沒有C盤D盤的概念,Linux系統啓動之後,所有的文件根據所處目錄結構的不同統統放在“/”根目錄的後面。
Raspberry Pi OS:“/home/pi”
(用戶文件夾下,用戶名爲“pi”
的用戶所有的文件)
Windows OS:“
C:\Users\admin”
(用戶文件夾下,用戶名爲“admin”
用戶的文件)
Raspberry Pi OS 文件結構及功能詳解
安裝的是桌面版的Pi OS所有對於整個的文件夾結構可以直觀的看到,在桌面上側的工具欄點擊“文件夾”圖標,會彈出一個類似WINS裏的文件資源管理器的界面。如下圖所示:如果用“pi”
用戶登錄。那麼所以的下載、桌面、圖片、文檔、音樂等文件就都在“/home/pi”這個路徑之下。
"/home/pi/Desktop":
pi用戶的桌面上的所有文件(和WINS的桌面一樣的)"/home/pi/Documents":
pi用戶的文檔文件夾"/home/pi/Downloads":
pi用戶下載的文件默認放在這個文件夾下
爲了後續可以對整個Raspberry Pi OS的文件操作有更清晰的認識。在進一步進行相關命令操作前,有必要對相關的文件夾及其結構進行系統的認識。下面這張圖就是Pi OS的部分重要系統文件夾結構的示意圖。
Pi OS目錄結構是一個統一的目錄結構,所有的目錄和文件最終都統一到"/"
根文件系統下。文件系統是無論是不是掛載過來的,最終都分層排列到以"/"
爲起始的文件系統之下。“/”
根路徑
這是Pi OS系統的“根”目錄,也是所有目錄結構的最底層。在UNIX以及和它兼容的系統中,”/“是一個單獨的目錄。/boot
這個目錄下包含系統啓動文件(boot loader),例如Grub,Lilo或者Kernel,以及initrd,system.map等配置文件。Initrd ramdisk或者””initrd””是指一個臨時文件系統,它在啓動階段被Linux內核調用。initrd主要用於當“根”文件系統被掛載之前,進行準備工作。/sys
這個目錄下包含內核、固件以及系統相關文件。/sbin
包含系統操作和運作所必需的二進制文件以及管理工具,主要就是可執行文件。類似WINDOWS下的EXE文件。/bin
包含單用戶模式下的二進制文件以及工具程序,比如cat
,ls
,cp
這些命令。/lib
包含/sbin
和/bin
目錄下二進制文件運行所需要的庫文件。/lost+found
一般情況下是空的,當系統非法關機後,這裏就存放了一些文件/dev
內含必需的系統文件和驅動器。後續用opencv驅動攝像頭的時候,攝像頭所在的驅動文件就在這個目錄下。wins下串口通常用“com1”
、“com2”
來調用,但是Pi OS則是使用這個文件夾下的文件路徑表示。一般爲“/dev/tty1”
、"/dev/tty2"
/etc
內含系統配置文件,其下的目錄,比如/etc/hosts
,/etc/resolv.conf
,nsswitch.conf
, 以及系統缺省設置,網絡配置文件等等。以及一些系統和應用程序的配置文件。/home
每一個用戶的在這個目錄下,都會單獨有一個以其用戶名命令的目錄,在這裏保存着用戶的個人設置文件,尤其是以profile
結尾的文件。但是也有例外,root用戶的數據就不在這個目錄中,而是單獨在根路徑下,保存在單獨的/root
文件夾下。/media
一個給所有可移動設備比如光驅、USB外接盤、軟盤提供的常規掛載點。下圖就是我用pi用戶登陸後,插入一個64GU盤後的顯示。這個“/media/pi/”
後面的文件夾。
/mnt
臨時文件系統掛載點。比如,你並不想長期掛載某個驅動器,而是隻是臨時掛載一會U盤烤個MP3之類的,那麼應該掛載在這個位置下。/opt
在Linux系統中,這個目錄用到的並不多,opt是 可選系統程序包(Optional Software Packages)的簡稱。這個目錄在UNIX系統,如Sun Solaris用途要廣泛的多。/usr
用戶數據目錄,包含了屬於用戶的實用程序和應用程序。這裏有很多重要的,但並非關鍵的文件系統掛載這個路徑下面。在這裏,你會重新找到一個bin
、sbin
和lib
目錄,其中包含非關鍵用戶和系統二進制文件以及相關的庫和共享目錄,以及一些庫文件。/usr/sbin
包含系統中非必備和並不是特別重要的系統二進制文件以及網絡應用工具。/usr/bin
包含用戶的非必備和並不是特別重要的二進制文件。/usr/lib
保存着/usr/sbin以及/usr/bin中二進制文件所需要的庫文件。/usr/share
“平臺無關”的共享數據目錄。/usr/local
是/usr下的二級目錄,這裏主要保存着包含系統二進制文件以及運行庫在內的本地系統數據。/var
這個路徑下通常保存着包括系統日誌、打印機後臺文件(spool files)、定時任務(crontab)、郵件、運行進程、進程鎖文件等。這個目錄尤其需要注意進行日常的檢查和維護,因爲這個目錄下文件的大小可能會增長很快,以致於很快佔滿硬盤,然後導致系統便會出現各種奇奇怪怪的問題。/tmp
顧名思義,這是一個臨時文件夾,專門用來保存臨時文件,每次系統重啓之後,這個目錄下的”臨時”文件便會被清空。同樣,/var/tmp 也同樣保存着臨時文件。兩者唯一的不同是,後者 /var/tmp目錄保存的文件會受到系統保護,系統重啓之後這個目錄下的文件也不會被清空。/proc
這個目錄是駐留在系統內存中的虛擬(psuedo,僞)文件系統,其中保存的都是文本格式的系統內核和進程信息。1
基本命令
上面已經詳細介紹了Pi OS的文件目錄結構。在桌面界面的幫助下。可以很快的掌握。但是後續的編程大多還是在烏漆墨黑的命令行界面完成的。所以關於命令行下的基本操作還是要必知必會的。對於小白來說,記住這麼多的命令還是有些困難的。需要的時候把這些當字典翻看查找也是ok的。用久了也就記住了。
- 如何知道當前所在目錄位置
Pi OS是文件結構的,每次操作都是在一個具體的路徑下完成的。小白最容易遇到的一個問題就是“我是誰?”“我在那裏?”這時可以使用"pwd"
命令:如下圖所示。輸入"pwd"
命令後顯示當前所在路徑爲"/home/pi"
。
- 如何切換目錄
- 熟悉的Windows系統裏都是想去哪裏雙擊哪裏。這是命令行所做不到的。大黑屏下熟練進行目錄切換也是必修課。
“cd”
命令。使用方法就是“cd”+空格+路徑
。 - 直接輸入
cd
命令則回到pi用戶的默認目錄“/home/pi”
。
- 返回到Pi OS的根目錄則使用
"cd+空格+/"
。
- 如何顯示當前路徑下的所有文件以及進行路徑切換
使用"ls"
命令就可以顯示當前路徑下全部文件和文件夾。
上圖可以看到顯示的文件和文件夾具有不同的顏色,諸如白色、藍色、綠色。其實這些顏色代表着不同的含義。
- 綠色:可執行文件,可執行的程序
- 紅色:壓縮文件或者包文件
- 藍色:目錄
- 白色:普通,如文本文件,配置文件,源碼文件等
- 淺藍色:鏈接文件,主要是使用ln命令建立的文件
- 紅色閃爍:表示鏈接的文件有問題
- 黃色:表示設備文件
- 灰色文件:表示其它文件2
Tips:Pi OS的命令都是可以帶參數的。不同的參數可以改變命令執行後的顯示效果。如"ls+空格+'-l'"
就可以顯示出全部文件及其詳細信息。而"ls+空格+'-a'"
則可以顯示隱藏文件。類似windows系統裏那個顯示全部文件夾的設置。
下圖中,輸入帶“-l”
參數的ls
命令後,顯示當前目錄下有一個叫Desktop
的文件夾,輸入"cd +空格+Desktop"
命令。則會進入到Desktop
文件夾。輸入cd ..
則返回上級目錄 cd ../../
:其中../
是指上一級目錄,這是相對路徑的描述,兩層就是跳轉到上兩級目錄cd ../文件名
:訪問同級目錄下名爲“xxx”的文件
舉個例子:現在路徑在·/home/pi/Desktop
位置。
- Windows中“F1”般的存在
在命令行中輸入man ls
會打開如下圖所示的界面。詳解介紹了ls
命令的功能,可以使用的參數。每個參數的意義。這個功能特別重要。Pi OS中命令多,命令的參數也多。很多時候都記不太住。關鍵時刻可以man
下。非常重要~
- 新建和刪除一個文件夾(目錄)
"mkdir+空格+文件夾名稱"
:新建一個文件夾
"rmdir+文件夾名稱"
:刪除一個文件夾(僅限該文件夾爲空的情況,如果不爲空會報錯)
如果想要刪除這個不爲空的名爲test
的文件夾需要用rm -r test
。
- 用nano 新建一個文件
在Pi OS裏面創建一個文件的最簡單方法就是用自帶的文本編輯器nano
。nano
很像是windows裏的記事本。在window裏新建一個文件的方法就是用記事本,保存的時候通過更改後綴來指定類型。比如:
一個名爲test.html
的文件就被新建好了。而在Pi OS裏執行這個操作的類似程序叫做nano
。
用nano
建立一個名爲hello.txt
的文件。在命令行輸入nano hello.txt
。
整個終端會跳轉入nano
編輯器內,就像打開記事本一樣。界面如下:相應的命令就是“ctrl”+相應的字母或符號。
如果再nano
裏輸入內容以後,按下“ctrl+x”後,頁面下端會提示是否保存。鍵盤輸入“y”。
頁面下端提示你輸入文件名。如果不想更改用默認的就行。回車後。文件創建完畢。
如果之後你在其他的程序裏看到了vi hello.txt
這樣的新建文件的命令,不用驚慌。vi
這個命令是Pi OS裏另外一個文本編譯器vim
的調用命令。其界面如下:
可以看到上面這個編譯器是沒有命令提示的。對於新手沒有nano友好。所以你可以放心大膽的將vi
命令替換成nano
。不會有啥子問題。就類似wps和word差不多。
- 如何移動文件或者目錄
在/home/pi/Desktop
目錄下有兩個文件夾分別叫做test
和test2
。在test
文件夾內新建一個叫名爲hello.txt
的文件。用mv
命令將其移動到test2
文件夾內。
Tips:在新建文件的部分,講解的是通過nano hello.txt
的方式來新建文件。但是上面這段程序可以發現用的卻是touch hello.txt
的方式。這裏用到的命令是touch
。其不同點在於直接新建文件而不彈出任何編輯器界面。
- 如何複製文件
- 如何重命名一個文件
將test
文件夾中的hello.txt
改名爲hello2.txt
。用的依然是mv
命令。
- 刪除一個文件
- 如何查找文件
find -name hello.txt
:在當前目錄下查找文件名爲 hello.txt
的文件。
- 如何使用gerb正則表達式在文件裏尋找字符串
在hello2.txt
寫入下面這段話後回到命令行界面。
在hello2.txt
文件中尋找nice
字符串。查找的內容會直接返回在終端中。其應用功能非常強大。具體使用可以查找相關書籍和文獻。
-如何解壓縮文件
tar –xvf file.tar
tar -xzvf file.tar.gz
tar -xjvf file.tar.bz2
tar -xZvf file.tar.Z
unrar e file.rar
//需要安裝應用
unzip file.zip
3//需要安裝應用
- 如何利用wget進行文件下載
- 直接下載
從https://cn.wordpress.org/wordpress-4.3.1-zh_CN.tar.gz網址下載wordpress-4.3.1-zh_CN.tar.gz
這個壓縮文件到當前目錄。
wget https://cn.wordpress.org/wordpress-4.3.1-zh_CN.tar.gz - 斷點續傳
wget -c https://cn.wordpress.org/wordpress-4.3.1-zh_CN.tar.gz
使用wget -c重新啓動下載中斷的文件,對於我們下載大文件時突然由於網絡等原因中斷非常有幫助,我們可以繼續接着下載而不是重新下載一個文件。需要繼續中斷的下載時可以使用-c參數。。4
- 如何獲取Windows中Admin管理員的權限
在Windows系統中,一些軟件的運行是需要管理員admin
的權限的。其實Pi OS中也是這樣,Pi OS中的管理員是root
。樹莓派默認使用pi
用戶登錄,並且不會啓用root
用戶,那麼當你需要使用root身份來執行一些任務的時候可以使用sudo
命令,比如在《電腦、手機和iPad通過VNC Viewer連接樹莓派4》這篇博客提到的。如果忘記了pi
用戶的密碼。就需要:sudo passwd pi
命令來修改密碼。
- 如何安裝刪除軟件
- 安裝軟件
小白版本的Pi OS安裝都是使用一個官方的軟件源倉庫(新手可以粗略理解成是蘋果的AppStore或者Google Play),這個倉庫可以很好的解決不同軟件包之間的依賴問題,很好解決不同版本之間的不兼容問題。想要什麼軟件用apt
獲取就OK了方便的很。而這個`apt在安裝軟件前最好對系統和已安裝的軟件包進行升級:
sudo apt update
:將系統源更新一遍
sudo apt upgrade
:將已經安裝的所有軟件更新到最新版
apt install xxxx
:安裝軟件用
例如安裝之前提到過的vim文件編輯器:apt install vim
。
- 刪除軟件
刪除掉剛剛安裝的vim:sudo apt remove vim
Tips:apt
命令取代了之前的apt-get
,apt
命令整合了apt-get
、 apt-cache
和 apt-config
, 更加結構化,爲用戶提供了管理軟件包所需的必要選項。
- 如何退出終端
終端輸入: “exit
+回車”即可,
- 如何 重新啓動
終端輸入:sudo reboot
- 如何關機
終端輸入:sudo shutdown -h now
- 如何終止進行中的程序
比如下載的時候耗時太長,不想下載了。
鍵盤輸入:ctrl+c
就會回到命令提示符。
- 如何查詢軟件的版本
比如想要查詢電腦裏python的版本就用python -V
,從下面的圖可以很清晰的看到。在Pi OS裏python
命令代表的是python2
,而如果想用最新版本的python需要用python3
命令。
而同樣的還有pip
和pip3
。使用的時候要特別注意。因爲他們會導致通過pip安裝的插件所在目錄的不同。
歷史命令、命令補全、右鍵粘貼
- 歷史命令
在Pi OS終端裏。按下鍵盤的上下方向鍵可以顯示歷史輸入的命令。複雜切要反覆輸入的命令可以用這種方式。 - 右鍵粘貼
用VNC的方式連接電腦和樹莓派。會發現Windows下常用的ctrl+c
複製內容後,切換到樹莓派的VNC顯示界面時ctrl+v
卻沒有作用。其實這個時候內容已經複製好了,只是ctrl+v
快捷鍵不生效而已(因爲這個是Windows OS的快捷鍵)。只需在想要粘貼的位置按下鼠標右鍵,選擇粘貼
即可。
更換系統源、軟件源和pip源
在接下來執行任何具體操作之前,需要先更換下apt
的倉庫下載源。默認的源在國外的服務器。更新下載的速度會特別慢。如下圖,只是簡單執行sudo apt upgrade
,下載其中一個9M的文件就要9個小時。爲了解決這個問題。國內有很多服務器都放了官方的倉庫鏡像。我們需要打開存放這個倉庫源的文件進行網址替換就好。
更換系統軟件源
- 將需要修改的文件進行備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
說明:sudo
是以root
用戶的權限執行cp
命令,將位於/etc/apt/
目錄的sources.list
文件進行備份,並命名爲source.list.bak
。第二句則是將/etc/apt/sources.list.d/
路徑下的raspi.list
文件備份並命名爲raspi.list.bak
- 打開
sources.list
文件
用nano編輯器打開source.list文件
sudo nano /etc/apt/sources.list
- 修改source.list相關條目
在剛打開的文件中註釋掉原有的源,添加下面的兩條語句。
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
按ctrl+x
退出nano,會提示是否保存,鍵盤輸入y
後回車。
- 打開raspi.list 文件
sudo nano /etc/apt/sources.list.d/raspi.list
- 修改raspi.list文件的相關條目
將原有的源註釋掉更換成下面的源:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
換完結構如下圖所示。
保存文件執行sudo apt update
和sudo apt upgrade
可看到系統源已經更換完畢。
更換pip源
pip是一款非常方便的Python包管理工具,可在Python開發過程中大大提高開發效率,本系列教程後續的好多程序都是pip安裝的。pip的外網速度同樣很慢。所以也要換成國內的鏡像。
- 具體方法
終端輸入sudo nano /etc/pip.conf
命令打開位於/etc
目錄下的pip.conf
文件。清空原有文件的內容,粘貼下面的內容。錄屏的gif操作時是粘貼了之後才刪掉的。
[global]
timeout = 6000
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url=https://www.piwheels.org/simple/
[install]
use-mirrors = true
mirrors = http://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com5
如何在電腦和樹莓派間傳輸文件
使用filezilla軟件傳輸文件非常方便。很像以前的ftp的使用。
filezilla下載地址
-點擊下圖所示的綠色按鈕進行下載、安裝。
- 安裝後打開
主機的位置填寫樹莓派的IP地址。用“pi”賬號進行登錄,輸入密碼。端口寫22(因爲是SFTP的方式)。點擊“快速連接”按鈕即可連接成功。
支持文件的直接拖拽,用起來非常的方便。之後安裝opencv時雖然換了國內的源但是有時候速度還是很慢。就需要在電腦上下載好了導入樹莓派。這個小工具事半功倍~
如何安裝.deb文件
deb是debian linux的安裝格式,而Raspberry Pi則是根據Debian系統而來的。所以樹莓派後續安裝的很多軟件的安裝都是deb結尾的。安裝deb的命令爲:sudo dpkg -i file.deb
卸載deb的命令:dpkg -r file.deb
更換更強大的shell
如果你耐着心看完了全部的指令部分,應該會有一個疑問:爲甚博主的截圖中命令提示行的系統顯示部分和你的不一樣。。。哈哈 因爲我這個版本是更換過shell的。Pi OS默認使用的shell是bash。但是其自動補全和歷史記錄功能總是讓人想死。Zsh是一個Linux下強大的shell,oh-my-zsh是基於zsh的功能做了一個擴展,方便的插件管理、主題自定義,以及漂亮的自動完成效果。更簡便的使用和安裝。
安裝zsh
命令行輸入:sudo apt-get install zsh
6
安裝oh-my-zsh插件
- 執行下面的語句程序會下載
“oh-my-zsh”
文件下載到home/pi
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
- 輸入命令:
cd .oh-my-zsh/tools
(切換目錄到"oh-my-zsh")
- 輸入
./install.sh
命令安裝。退處重進終端設置生效。
這時候你就會發現打複雜的文件名時。按下“tab”鍵就會方便的補全。
而原有系統提示符的結構也變成了可以顯示當前路勁。不用不停pwd來查詢~
當然無論是zsh還是oh-my-zsh都還有非常強大的功能可以通過配置文件進行修改、自定義。但是作爲初學者進行到目前這個一步已經暫時夠用啦~~~等之後入門更精通了在去探索也不遲~
下集預告: 樹莓派4B改裝RC玩具車玩轉opencv系列教程(二)樹莓派4B通過PCA9685 控制舵機轉動
raspbian文件系統詳解https://shumeipai.nxez.com/2018/01/05/directory-introduction-in-raspbian.html ↩︎
Linux學習(4)-文件顏色,綠色,藍色,白色,紅色等代表的意義:https://blog.csdn.net/sunhuansheng/article/details/82111172?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase ↩︎
tar.gz zip 解壓縮 壓縮命令
https://blog.csdn.net/hailangnet/article/details/50444198 ↩︎linux下載文件命令 wget 介紹:https://www.lxx1.com/935 ↩︎
PiSugar—樹莓派更換pip爲國內源https://www.pisugar.net/20190715/ ↩︎
Linux終極shell-Z Shell–用強大的zsh & oh-my-zsh把Bash換掉https://blog.csdn.net/gatieme/article/details/52741221 ↩︎