写在前面

Hi,大家好,这是本系列的第三篇文章,介于大部分刚刚知道树莓派的朋友还是windows或mac OS的用户,对Linux还处于听说过,并没有实际使用过。所以这一篇文章主要是帮助萌新了解一些必备的基础知识。在了解之后再开始玩一些项目就会简单许多。

本文全部内容是基于树莓派3B和Raspbian OS来进行说明的,其他Linux的发行版也具有一定的参照性(你要是不知道什么意思,可以无视这句话,不重要)。废话少说,下面就开始吧。

指示灯

首先还是要从外观说起。在3B上面指示灯只有两个,一个红灯一个绿灯。

红灯是电源灯,在接通电源后就会常亮,如果你发现红灯在闪烁的话,说明电源质量不佳,可能是功率问题,也可能是接触不良,建议重新插拔或者尝试更换供电源。(用电脑的USB供电一定是不够用的,充电宝的话一定要选择支持快充输出的。若是充电器的话,注意充电规格最低保证5V、1A,如果可以请保证5V、2A)

绿灯是读写指示灯,在储存卡发生数据读写是会闪烁,你可以通过它判断下载是否在继续之类的运行状态。

连接Wi-Fi

如果你是使用的Raspbian同时外接显示器,那么连接Wi-Fi就非常简单,右上角有Wi-Fi图标,都是图形化操作,十分方便。

若你是使用的Raspbian Lite又或者是使用的SSH远程登录的话,就要通过命令行来操作了。其实对于Linux系统来说,命令行可以承载几乎所有的操作,虽然命令行看起来很难,但只要稍微掌握方法,用起来比图形界面效率高多了。下面演示用命令行来连接Wi-Fi。

在命令行输入下面命令

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

sudo的意思是暂时使用Root权限执行命令(如果你不知道什么是Root,后文会提到)

nano是一个文本编辑器的名字,很多Linux的发行版都自带有

后面是wpa_supplicant.conf的文件绝对路径,这里面保存有Wi-Fi的一些设置(关于绝对路径,是文件的所在位置的一种描述方法。有点像你的家庭地址,比如/中国/省份/城市/地区/小区/栋/单元/楼层这样的感觉。相对的就有相对路径,比如/我家/楼上/对门,这种描述方法,这里就不在深究了)

在打开的文本编辑器中按照下列格式输入

network={ ssid=”将我替换成Wi-Fi名”

psk=”将我替换成Wi-Fi密码”

priority=将我替换成数字,数字越大代表优先级越高

}

例如我有两个Wi-Fi,Wi-Fi_A优先级高于Wi-Fi_B,那么如下编写即可

network={

ssid=”Wi-Fi_A”

psk=”12345678”priority=5

}

network={

ssid=”Wi-Fi_B”

psk=”12345678”priority=4

}

按Ctrl+O之后回车保存,按Ctrl+X退出nano编辑器。

⚠️P.S. 即使你是用的是Mac进行的SSH,这里依然是使用Ctrl而不是Command

⚠️P.S.2 priority后面不可以是负数

之后你需要重启树莓派,可以使用下面命令完成重启

sudo reboot

这个命令组成很简单,我想你应该已经看懂了。

nano编辑器使用简介

刚刚我们在用命令行设置Wi-Fi的时候使用到了nano编辑器。也许你已经发现了nano编辑器是一个在命令行中运行的文本编辑器,它的特点就是实用简单直观,方便上手。

在Linux中还有一个文本编辑器非常流行,叫做Vi/Vim,但是这个编辑器是基于命令操作的,虽然很多程序员喜欢用,但是上手起来并不容易。所以还是推荐nano,当然你要是感兴趣也可以去了解下。

使用nano非常简单,只需要输入命令“sudo nano 文件名或文件地址”就可以了。这里输入文件名会在当前文件夹中寻找文件,若没有则会新建一个。有时为了准确找到文件可以使用文件的绝对地址来描述。

几个常用基本操作就是方向键控制,Ctrl+O是保存,Ctrl+X是退出,Ctrl+W是搜索关键字,会这几个就够了,其他的操作在nano的界面底部都会提示。

需要注意的是,在nano中鼠标点击是没有用的,不要偷懒,老老实实的用方向键移动光标吧。


更换国内镜像源

这是一个非常重要的知识点(敲黑板)。众所周知,树莓派的服务器在国外,所以对于在国内的我们来说,下载或更新非常的缓慢(如果你有路由器级别的梯子的话,自然也可以略过)。

好在国内有很多大学或者机构把国外的服务器做了镜像拷贝,并且免费供我们使用(在这里非常感谢他们做出的贡献,谢谢你们,你们让世界变得美好了许多)。我们只需要把地址更换成国内的地址,就可以大大提升速度和稳定性。

首先我们使用Root权限nano编辑器打开绝对地址为/etc/apt/sources.list的文件。即在命令行中输入:

sudo nano /etc/apt/sources.list

你会看见如下画面。


deb开头的就是镜像站的地址,这个地址链接的是国外的服务器,我们要做的就是把它改掉。

你可以把这里面的信息直接全部删除。或者用另外一种方法——代码注释。

代码注释的意思就是在最前面输入#号,那么这一行代码计算机就会无视,一般是程序员用于写一些标签之类的东西。一般来说不同的语言代码注释的方法也不同。使用代码注释的好处是之后如果需要,也可以随时复原。

那么我们就注释掉,如下。



之后在下面粘贴国内镜像站的地址,如下。



地址不一定要和上面演示的一致,你可以自由选择镜像站。我这里列出几个国内常见Raspbian OS镜像站及地址。

清华大学开源软件镜像站:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main non-free contrib

deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main non-free contrib

中国科学技术大学Linux用户协会:

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib

deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib

浙江大学开源镜像站:

deb http://mirrors.zju.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi

deb-src http://mirrors.zju.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi

华中科技大学开源镜像站:

deb http://mirrors.hust.edu.cn/raspbian/raspbian/ wheezy main non-free contrib

deb-src http://mirrors.hust.edu.cn/raspbian/raspbian/ wheezy main non-free contrib

阿里巴巴开源镜像站:

deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib

deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib

更多的就不再罗列了,在选择镜像站的时候,还是选择地理位置接近的为宜。

更换后,Ctrl+O回车保存,Ctrl+X退出nano编辑器,之后在命令行输入(逐行输入,这是两条命令)

sudo apt-get update

sudo apt-get upgrade

sudo不再解释。

apt-get命令是APT软件包管理工具,所有基于Debian的Linux发行版都使用这个包管理系统。如果你听不懂我在说什么,就理解为这是app store就好了。第一句update是更新列表,第二句是更新upgrade是更新所有已安装的app。

获得超级管理员(Root)

Root这个词即使不关注计算机应该也听说过,毕竟Android机总是说要Root。其实Root就是指的超级管理员,所谓超级管理员就是最高权限的意思,拥有对系统的一切修改权。

之前我们接触的sudo命令,就是暂时借用超级管理员运行的意思。为什么要借用呢?我们登录系统使用的是名为pi的账户登陆的,这个账户没有足够的权限执行一些操作,所以需要借用。

既然总是要用我们当然可以直接用Root账户登录。

首先我们要设置Root账户的密码,命令行输入:

sudo passwd root

passwd字面就可以看出用于设置密码,后面root就是指的具体账户。

之后会提示你输入Root账户密码,何所有设置密码一样,一共会让你输入两遍,但要注意的是输入过程中没有任何的现实,不是你的键盘坏了,是Linux为了安全彻底不显示罢了。



然后启用Root账户,命令行输入:

sudo passwd --unlock root


完成后就可以切换至Root账户了

su root

su命令用于切换账户,之后根据提示输入之前设置的密码即可。


补充说明:若你不是在本机直接操作而是使用SSH登录,则还有一丢丢操作才可以切换。Raspbian OS默认禁止SSH登录Root账户,我们还要修改一下配置文件。命令行输入:

sudo nano /etc/ssh/sshd_config

用 Ctrl + W 搜索 PermitRootLogin



找到之后将 PermitRootLogin without-password 改成 PermitRootLogin yes



然后按 Ctrl + O 保存,回车之后Ctrl+X退出编辑器。接下来就可以用su切换账户了。

这里给个建议,Root账户权限太大了,为避免操作失误,其实用sudo命令也不麻烦啊。(你问我为什么教完了才说?——啊哈哈哈)

远程文件传输方法

我们通过使用SSH来远程登录树莓派,有时需要在本机也就是控制端和树莓派之间进行文件交换。有很多简单的方法可以完成,比如SCP命令,但是从使用的便利性来看,还不是最方便的方法。最方便的方法莫过于一次配置,终身使用。这里要介绍的一种方法叫做SFTP。

SFTP全名叫SSH File Transfer Protocol,从名字就可以看出来,这和SSH有关系。但这不重要,你只需要知道的是它不需要你在树莓派上面配置任何东西或者安装任何服务,只要SSH可以链接,SFTP就可以工作。

首先介绍一款开源SFTP软件——FileZilla。windows和Mac os平台都有,下载安装就不说了。这里放出官网下载链接:

https://www.filezilla.cn/download/client

安装完成以后,打开FileZilla,在上面分别输入树莓派的ip地址、账户、账户密码、端口



然后点击快速连接,右边出现文件就连接成功了。



如何用呢?很简单,找到想要传送的文件从左边拖到右边就上传给树莓派了。反之则下载到本机。



一个关于SSH的小技巧

在SSH连接的状态下,当进行更新下载之类的操作时,可以新开一个终端用SSH接入,这样的话,可以直接完成后面的操作,或者同时下载多个文件都是可以的。下面是我平时玩派的状态,三个终端同时登录树莓派,可以节约不少时间。(P.S.下面是在验证我的想法,就不要在意具体在干什么了)



关于Mac OS用户必须知道的

有时,因为操作失误,或者做实验导致需要重装系统的情况一定很多。从装之后你再进行SSH也许会遇到下面情况



这是由于树莓派系统发生了变化,配置文件不匹配导致。解决这个办法很简单。首先在终端中运行下面代码,然后重启电脑,使Mac OS显示隐藏文件:

defaults write com.apple.finder AppleShowAllFiles -bool true

之后打开Finder,在菜单中前往标签下选择电脑



然后按照如下路径找到known_hosts(注意,你肯定是没有DVA文件夹的,这是我的账户名,这里你要根据自己的实际情况来)



然后打开这个文件,把里面的内容全部删除后保存即可

之后如果你想要恢复隐藏文件不显示的话,在终端运行下列命令,重启即可。(注意SSH有没有连接,别在树莓派上运行了)

defaults write com.apple.finder AppleShowAllFiles -bool false


尾巴

其实还有很多零散的知识值得总结给萌新,但写着写着发现太多了,也太零散了。比如Linux的一些基础命令,Raspbian的文件目录结构等等...想来想去还是算了,等遇到了再讲好了。

这篇之后,再写文章,就写写具体的项目,或者说具体怎么玩。需要提前声明的是,之后要写的一些项目,其实互联网上都有,毕竟本就不是我首创的,只是不同的地方在于,我会尽量把每一个细小的点都讲清楚。很多大神的玩法,很巧妙,但大神也很忙,很多教程都是匆匆带过了,若没有一些基础的话,根本看不懂,或者说,出现了和说好的不一样的情况就傻眼了。很多时候,大神们觉得都是基础,讲讲核心就可以了,但是萌新们正是缺基础,常常被一些很小很小的点给卡住了,慢慢的,树莓派就吃灰了。

正是因为我在学习的过程中,生生地感受到过这种打击,所有才在玩懂之后,决定动手写这个系列。如果你有什么好的建议或意见,欢迎在评论区留言,以帮助我改进这些问题。最后要说的是,谢谢你的支持,我们下篇文章见。