树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!

树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!

  • 系列教程简介
  • 前言 :Rasbian OS初相识
  • 硬件列表
  • Raspberry Pi OS(Rasbian OS)的安装
    • microSD卡的选型
      • 品牌型号选择
      • 容量选择
    • Raspberry Pi OS(Rasbian OS)的安装
      • 下载Raspberry Pi OS
      • 格式化SD卡
      • 利用etcher 拷贝镜像到SD卡
  • 通过VNC建立与树莓派4B的连接
    • 情况一:有显示器、键盘和鼠标连接树莓派4B
      • 电脑端VNC软件安装
      • 树莓派端相关设置
      • 电脑端设置
    • 情况二:有显示器和鼠标连接树莓派
      • 在SD卡根目录添加网络配置文件
      • 树莓派端设置SSH和VNC
      • 电脑端设置
    • 情况三 只有笔记本电脑和树莓派
      • 在SD卡根目录添加网络配置文件和SSH文件
      • SSH连接树莓派
        • 局域网内查找树莓派IP地址
        • putty的安装
        • SSH连接树莓派
      • 开启树莓派的VNC
      • 电脑端设置
    • 手机、ipad通过VNC连接树莓派
    • 初次VNC登录树莓派提示“cannot currently show the desktop”问题的解决
    • 知识扩充
  • 初次登录树莓派的基本设置
  • Raspbian OS基本生存指南
    • Raspberry Pi OS的目录结构
      • 和WindowsOS的 显著区别
      • Raspberry Pi OS 文件结构及功能详解
    • 基本命令
      • - 如何知道当前所在目录位置
      • - 如何切换目录
      • - 如何显示当前路径下的所有文件以及进行路径切换
      • - Windows中“F1”般的存在
      • - 新建和删除一个文件夹(目录)
      • - 用nano 新建一个文件
      • - 如何移动文件或者目录
      • - 如何复制文件
      • - 如何重命名一个文件
      • - 删除一个文件
      • - 如何查找文件
      • - 如何使用gerb正则表达式在文件里寻找字符串
      • -如何解压缩文件
      • - 如何利用wget进行文件下载
      • - 如何获取Windows中Admin管理员的权限
      • - 如何安装删除软件
      • - 如何退出终端
      • - 如何 重新启动
      • - 如何关机
      • - 如何终止进行中的程序
      • - 如何查询软件的版本
    • 历史命令、命令补全、右键粘贴
    • 更换系统源、软件源和pip源
      • 更换系统软件源
      • 更换pip源
    • 如何在电脑和树莓派间传输文件
    • 如何安装.deb文件
    • 更换更强大的shell
      • 安装zsh
      • 安装oh-my-zsh插件
  • 下集预告: 树莓派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”系列。树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第1张图片
但是翻译的延时,软硬件更新的迅速在本就一窍不通的艰难入门之旅中平添了极多的障碍。走走停停。放弃、捡起来。每每遇到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
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第2张图片

容量选择

本实验选择的是闪迪的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文件。
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第3张图片
    我选择的torrent方式,下载速度还可以,半个小时就搞定了。

    下载完成后,解压出img文件备用。
    在这里插入图片描述

格式化SD卡

  • 小于32G可以用windows内建格式化程序进行
  • 打开“我的电脑”,在U盘的盘符处点击右键弹出如下所示菜单,选择“格式化”。
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第4张图片
    全部选择默认就好。点击“开始”。格式化完毕
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第5张图片
  • 大于32G
    微軟內建的格式化程式最大到32G,大于32G的SD卡需使用第三方程式例如guiformat进行格式化。打开下面的地址链接,点击如下图所示的图片的红框位置即可开始下载。
    guiformat下载地址
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第6张图片

利用etcher 拷贝镜像到SD卡

下载etcher镜像烧写工具
etcher官方下载地址
如下图所示,点击绿色按钮进行下载。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第7张图片
将img文件拖拽到相应位置,选择sd卡所在的盘符,点击"FLASH"
开始进行下载。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第8张图片

通过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的文件如下图所示。树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第9张图片
打开这个文件输入下列代码,这个操作可以保证你的树莓派通电后直接连上网络,在电脑端通过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的文件如下图所示。树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第10张图片
打开这个文件输入下列代码,这个操作可以保证你的树莓派通电后直接连上网络,在电脑端通过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。具体设置参见路由器说明。
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第11张图片
  • 方式二:通过WIinwos 命令行工具输入arp -a实现,对比树莓派接入Wi-Fi前后的区别来识别出设备。
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第12张图片
  • 方式三:免费的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地址。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第13张图片
点击OPEN后如果弹出下图界面。选择yes
在这里插入图片描述
login as是要求输入登录树莓派的用户名。我们选择使用pi账户(下面的目录结构部分会详细介绍)。所有新装系统的树莓派pi账户的密码都是raspberry。输入时要特别注意。因为这个输入过程没有任何的屏幕提示。这个git我就录了两遍。。。因为第一遍我的密码就输错了。哈哈哈。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第14张图片

开启树莓派的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”树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第15张图片
  • 选择第五个选项“set a special screen resolution"在这里插入图片描述
  • 然后选择MODE16也就是分辨率为“1024*768”就可以了
  • 这个位置的操作就只支持“Tab”和上下方向键。最后选择保存退出后。因为这个造作要求重启所以putty会显示连接断开。没关系。关掉putty,重新连接VNC。DuangDuang~界面以显示。树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第16张图片
  • 奇怪的问题:也试着用了下面的方式解决,但是不管用。而且这个VNC连接后会出现无法显示屏幕的问题也不是每一个树莓派SD都会出现。我自己手里的两个SD卡插入同一个块树莓派板子。就一个会出现这个一个不会。。。俺也不知道为虾米。。。树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第17张图片

知识扩充

树莓派和电脑的连接要保证在一个局域网,也就是同一个IP字段内。主要的连接方式有下面6中。最常见的应该是第二种,即电脑和树莓派连接在同一个Wi-Fi下。家里宽带欠费了上不了网并不会影响树莓派和电脑间用SSH通信(详细的介绍可以参见《数据通信》这门课程。)。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第18张图片
老王很啰嗦: 虽然没有电脑时,手机也是一个不错的弥补办法。但我还是很建议没电脑的朋友可以入一台二手电脑一般价格在1千左右就好。目前我所有的博客都是在这样千元的二手电脑上测试并完成的。除了不能打游戏,还没觉得有啥不好。内存至少8G,固态硬盘128以上。后续的教程也是在电脑加树莓派的vnc连接下进行的。当然二手电脑并不是什么牌子的都ok。我还是喜欢小黑系列。都是原本万+的高端机。品控是有保障的。emmm。。。好吧,这是另一个话题,有需求我可以写个二手电脑选购指南。哈哈哈哈哈。下面这张图就是我自己电脑的配置。thinkpad X1 2012年版。
在这里插入图片描述

初次登录树莓派的基本设置

第一次登录会弹出如下的设置界面。点击next
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第19张图片
选择所在地、语言和时区。树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第20张图片
更换pi用户的默认密码。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第21张图片
我的VNC里显示了黑色的边框。随意我在提示里大了对号。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第22张图片
选择Wi-Fi。因为之前我们已经连接上了Wi-Fi直接next就好了
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第23张图片
这一步是提示检查系统和预装的软件是否有更新。其实整个过程和我们安装Windows系统是一样的。安完了之后进行更新。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第24张图片
时间会有点长,耐心等待。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第25张图片
可以选用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的部分重要系统文件夹结构的示意图。
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第26张图片
    Pi OS目录结构是一个统一的目录结构,所有的目录和文件最终都统一到"/"根文件系统下。文件系统是无论是不是挂载过来的,最终都分层排列到以"/"为起始的文件系统之下。
  • “/”根路径
    这是Pi OS系统的“根”目录,也是所有目录结构的最底层。在UNIX以及和它兼容的系统中,”/“是一个单独的目录。
  • /boot
    这个目录下包含系统启动文件(boot loader),例如Grub,Lilo或者Kernel,以及initrd,system.map等配置文件。Initrd ramdisk或者””initrd””是指一个临时文件系统,它在启动阶段被Linux内核调用。initrd主要用于当“根”文件系统被挂载之前,进行准备工作。
  • /sys
    这个目录下包含内核、固件以及系统相关文件。
  • /sbin
    包含系统操作和运作所必需的二进制文件以及管理工具,主要就是可执行文件。类似WINDOWS下的EXE文件。
  • /bin
    包含单用户模式下的二进制文件以及工具程序,比如catlscp这些命令。
  • /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/”后面的文件夹。
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第27张图片
  • /mnt
    临时文件系统挂载点。比如,你并不想长期挂载某个驱动器,而是只是临时挂载一会U盘烤个MP3之类的,那么应该挂载在这个位置下。
  • /opt
    在Linux系统中,这个目录用到的并不多,opt是 可选系统程序包(Optional Software Packages)的简称。这个目录在UNIX系统,如Sun Solaris用途要广泛的多。
  • /usr
    用户数据目录,包含了属于用户的实用程序和应用程序。这里有很多重要的,但并非关键的文件系统挂载这个路径下面。在这里,你会重新找到一个binsbinlib目录,其中包含非关键用户和系统二进制文件以及相关的库和共享目录,以及一些库文件。
  • /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”
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第28张图片
  • 返回到Pi OS的根目录则使用"cd+空格+/"
    在这里插入图片描述

- 如何显示当前路径下的所有文件以及进行路径切换

使用"ls"命令就可以显示当前路径下全部文件和文件夹。
在这里插入图片描述
上图可以看到显示的文件和文件夹具有不同的颜色,诸如白色、蓝色、绿色。其实这些颜色代表着不同的含义。

  • 绿色:可执行文件,可执行的程序
  • 红色:压缩文件或者包文件
  • 蓝色:目录
  • 白色:普通,如文本文件,配置文件,源码文件等
  • 浅蓝色:链接文件,主要是使用ln命令建立的文件
  • 红色闪烁:表示链接的文件有问题
  • 黄色:表示设备文件
  • 灰色文件:表示其它文件2
    Tips:Pi OS的命令都是可以带参数的。不同的参数可以改变命令执行后的显示效果。如"ls+空格+'-l'"就可以显示出全部文件及其详细信息。而"ls+空格+'-a'"则可以显示隐藏文件。类似windows系统里那个显示全部文件夹的设置。
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第29张图片
    下图中,输入带“-l”参数的ls 命令后,显示当前目录下有一个叫Desktop的文件夹,输入"cd +空格+Desktop"命令。则会进入到Desktop文件夹。输入cd ..则返回上级目录树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第30张图片
  • cd ../../:其中../是指上一级目录,这是相对路径的描述,两层就是跳转到上两级目录
  • cd ../文件名:访问同级目录下名为“xxx”的文件
    举个例子:现在路径在·/home/pi/Desktop位置。在这里插入图片描述

- Windows中“F1”般的存在

在命令行中输入man ls会打开如下图所示的界面。详解介绍了ls命令的功能,可以使用的参数。每个参数的意义。这个功能特别重要。Pi OS中命令多,命令的参数也多。很多时候都记不太住。关键时刻可以man下。非常重要~
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第31张图片

- 新建和删除一个文件夹(目录)

"mkdir+空格+文件夹名称":新建一个文件夹
"rmdir+文件夹名称":删除一个文件夹(仅限该文件夹为空的情况,如果不为空会报错)
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第32张图片
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第33张图片
如果想要删除这个不为空的名为test的文件夹需要用rm -r test
在这里插入图片描述

- 用nano 新建一个文件

在Pi OS里面创建一个文件的最简单方法就是用自带的文本编辑器nanonano很像是windows里的记事本。在window里新建一个文件的方法就是用记事本,保存的时候通过更改后缀来指定类型。比如:
在这里插入图片描述
一个名为test.html的文件就被新建好了。而在Pi OS里执行这个操作的类似程序叫做nano
在这里插入图片描述
nano建立一个名为hello.txt的文件。在命令行输入nano hello.txt
在这里插入图片描述
整个终端会跳转入nano编辑器内,就像打开记事本一样。界面如下:相应的命令就是“ctrl”+相应的字母或符号。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第34张图片
如果再nano里输入内容以后,按下“ctrl+x”后,页面下端会提示是否保存。键盘输入“y”。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第35张图片
页面下端提示你输入文件名。如果不想更改用默认的就行。回车后。文件创建完毕。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第36张图片
如果之后你在其他的程序里看到了vi hello.txt这样的新建文件的命令,不用惊慌。vi这个命令是Pi OS里另外一个文本编译器vim的调用命令。其界面如下:树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第37张图片
可以看到上面这个编译器是没有命令提示的。对于新手没有nano友好。所以你可以放心大胆的将vi命令替换成nano。不会有啥子问题。就类似wps和word差不多。

- 如何移动文件或者目录

/home/pi/Desktop目录下有两个文件夹分别叫做testtest2。在test文件夹内新建一个叫名为hello.txt的文件。用mv命令将其移动到test2文件夹内。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第38张图片
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第39张图片
Tips:在新建文件的部分,讲解的是通过nano hello.txt的方式来新建文件。但是上面这段程序可以发现用的却是touch hello.txt的方式。这里用到的命令是touch。其不同点在于直接新建文件而不弹出任何编辑器界面

- 如何复制文件

树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第40张图片
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第41张图片

- 如何重命名一个文件

test文件夹中的hello.txt改名为hello2.txt。用的依然是mv命令。
在这里插入图片描述

- 删除一个文件

树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第42张图片

- 如何查找文件

find -name hello.txt:在当前目录下查找文件名为 hello.txt的文件。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第43张图片

- 如何使用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命令来修改密码。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第44张图片

- 如何安装删除软件

  • 安装软件
    小白版本的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

Tipsapt命令取代了之前的apt-getapt 命令整合了apt-getapt-cacheapt-config, 更加结构化,为用户提供了管理软件包所需的必要选项。

- 如何退出终端

终端输入: “exit+回车”即可,

- 如何 重新启动

终端输入:sudo reboot

- 如何关机

终端输入:sudo shutdown -h now

- 如何终止进行中的程序

比如下载的时候耗时太长,不想下载了。
键盘输入:ctrl+c
就会回到命令提示符。

- 如何查询软件的版本

比如想要查询电脑里python的版本就用python -V,从下面的图可以很清晰的看到。在Pi OS里python命令代表的是python2,而如果想用最新版本的python需要用python3命令。
在这里插入图片描述
而同样的还有pippip3。使用的时候要特别注意。因为他们会导致通过pip安装的插件所在目录的不同。
在这里插入图片描述

历史命令、命令补全、右键粘贴

  • 历史命令
    在Pi OS终端里。按下键盘的上下方向键可以显示历史输入的命令。复杂切要反复输入的命令可以用这种方式。
  • 右键粘贴
    用VNC的方式连接电脑和树莓派。会发现Windows下常用的ctrl+c复制内容后,切换到树莓派的VNC显示界面时ctrl+v却没有作用。其实这个时候内容已经复制好了,只是ctrl+v快捷键不生效而已(因为这个是Windows OS的快捷键)。只需在想要粘贴的位置按下鼠标右键,选择粘贴即可。树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第45张图片

更换系统源、软件源和pip源

在接下来执行任何具体操作之前,需要先更换下apt的仓库下载源。默认的源在国外的服务器。更新下载的速度会特别慢。如下图,只是简单执行sudo apt upgrade,下载其中一个9M的文件就要9个小时。为了解决这个问题。国内有很多服务器都放了官方的仓库镜像。我们需要打开存放这个仓库源的文件进行网址替换就好。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第46张图片

更换系统软件源

  • 将需要修改的文件进行备份

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后回车。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第47张图片

  • 打开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

换完结构如下图所示。
树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第48张图片
保存文件执行sudo apt updatesudo 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

树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第49张图片

如何在电脑和树莓派间传输文件

使用filezilla软件传输文件非常方便。很像以前的ftp的使用。
filezilla下载地址
-点击下图所示的绿色按钮进行下载、安装。树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第50张图片

  • 安装后打开
    主机的位置填写树莓派的IP地址。用“pi”账号进行登录,输入密码。端口写22(因为是SFTP的方式)。点击“快速连接”按钮即可连接成功。
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第51张图片
    支持文件的直接拖拽,用起来非常的方便。之后安装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 zsh6

安装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")
    树莓派4B改装RC玩具车玩转opencv系列教程(一)树莓派基础入门篇------Hello Raspberry Pi OS(Rasbian )!_第52张图片
  • 输入./install.sh命令安装。退处重进终端设置生效。
    这时候你就会发现打复杂的文件名时。按下“tab”键就会方便的补全。
    而原有系统提示符的结构也变成了可以显示当前路劲。不用不停pwd来查询~
    当然无论是zsh还是oh-my-zsh都还有非常强大的功能可以通过配置文件进行修改、自定义。但是作为初学者进行到目前这个一步已经暂时够用啦~~~等之后入门更精通了在去探索也不迟~

下集预告: 树莓派4B改装RC玩具车玩转opencv系列教程(二)树莓派4B通过PCA9685 控制舵机转动


  1. raspbian文件系统详解https://shumeipai.nxez.com/2018/01/05/directory-introduction-in-raspbian.html ↩︎

  2. 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 ↩︎

  3. tar.gz zip 解压缩 压缩命令
    https://blog.csdn.net/hailangnet/article/details/50444198 ↩︎

  4. linux下载文件命令 wget 介绍:https://www.lxx1.com/935 ↩︎

  5. PiSugar—树莓派更换pip为国内源https://www.pisugar.net/20190715/ ↩︎

  6. Linux终极shell-Z Shell–用强大的zsh & oh-my-zsh把Bash换掉https://blog.csdn.net/gatieme/article/details/52741221 ↩︎

你可能感兴趣的:(树莓派)