大家好,这是这个系列的第三篇文章。刚接触树莓派的朋友大部分还是 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 的设置(绝对路径是描述文件位置的一种方式,有点像你家的住址,比如 /China/Province/City/Region/Community/Building/Unit/Floor,相对的就有相对路径,比如 /my home/upstairs/opposite door,这种描述方式这里就不深入探讨了)
在打开的文本编辑器中输入以下格式:
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 并按 Enter 保存更改。按 Ctrl+X 退出 nano 编辑器。
⚠️PS 即使你使用 Mac 进行 SSH,你仍然应该使用 Ctrl 而不是 Command
⚠️PS2priority 后面不能跟负数
之后需要重启树莓派,可以使用以下命令完成重启
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 发行版都会使用它。如果你不明白我在说什么,就把它想象成一个应用商店吧。第一句 update 是更新列表,第二句 upgrade 是更新所有已安装的应用。
获取超级管理员(Root)
就算你不关注电脑,你也一定听说过Root这个词,毕竟安卓手机向来都是需要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默认禁止root账户SSH登录,所以我们还需要修改配置文件。命令行输入:
sudo nano /etc/ssh/sshd_config
使用 Ctrl + W 搜索 PermitRootLogin
找到之后,将PermitRootLogin without-password改为PermitRootLogin yes
然后按Ctrl + O保存,按Enter,再按Ctrl + X退出编辑器。然后就可以使用su来切换账户了。
这里有个建议:root账号权限太大,为了避免操作失误,使用sudo命令不难。(你问我为什么教完就告诉你这个?–啊哈哈哈)
远程文件传输方法
我们使用 SSH 来远程登录树莓派,有时候我们需要在本机(控制端)和树莓派之间交换文件,有很多简单的方法可以做到这一点,比如 SCP 命令,但是从易用性的角度来说,它并不是最方便的方法,最方便的方法是配置一次,终身使用。这里要介绍的一种方法叫做 SFTP。
SFTP 代表 SSH 文件传输协议,顾名思义,它与 SSH 相关。但这并不重要。你只需要知道它不需要你在 Raspberry Pi 上配置任何东西或安装任何服务。只要 SSH 可以连接,SFTP 就可以工作。
首先介绍一款开源的 SFTP 软件——FileZilla。它在 Windows 和 Mac OS 平台上都有提供,所以就不多说下载和安装了。下面是官网下载链接:
安装完成后,打开FileZilla,输入树莓派的IP地址、账号、账号密码、端口号。
然后点击快速连接,当右侧出现文件时即表示连接成功。
如何使用呢?很简单,找到要传输的文件,从左边拖到右边,就可以上传到树莓派了,否则就下载到本地电脑了。
关于 SSH 的一个小技巧
在 SSH 连接状态下,进行更新、下载等操作时,可以新开一个终端通过 SSH 访问。这样可以直接完成后续操作,也可以同时下载多个文件。下面是我平时使用树莓派的状态,三个终端同时登录树莓派,可以节省不少时间。(PS 下面的内容是为了验证我的想法,大家不要关心我具体在干什么)
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的文件目录结构等等,想了想还是算了,等以后遇到再讲。
继本文之后,下次我写文章,会写具体的项目,或者怎么玩。需要提前声明一下,后续我写的有些项目其实网上都有,毕竟不是我原创,唯一的不同就是我会尽量把每一个小点讲清楚。很多高手的玩法很巧妙,但是高手也很忙,很多教程都是匆匆看完的,如果一点基础都没有,根本看不懂,或者出了和约定不一样的事情就傻眼了。很多时候,高手以为都是基础,讲到核心就够了,但是新手缺乏基础,经常被一些很小的点卡住,慢慢的,树莓派就积满灰尘了。
正是因为在学习的过程中经历过这样的打击,才决定在了解之后写下这个系列。如果大家有什么好的建议或者意见,欢迎在评论区留言,帮助我改善这些问题。最后感谢大家的支持,我们下篇文章再见。