跳到主要内容

引导知识

世界上有各种各样的操作系统,比如我们熟悉的Windows系统、安卓系统、iOS系统等等。这些系统都是为了让设备能够正常运行而设计的。

我们熟悉的Windows系统有很多版本,如Windows 7、Windows 8、Windows 10等等。同样的,Linux系统也有很多版本,比如Ubuntu、CentOS、Linux等等。

信息

操作系统对于设备来说,就像是翅膀对于鸟一样,是设备运行的基础。但是如果给麻雀装上了老鹰的翅膀,那么麻雀不但无法飞行,还会因为翅膀太大而无法正常生活。对于麻雀这样小巧的鸟来说,小巧的翅膀才是最适合的。

Linux就是这样一种小巧的操作系统,它可以运行在一些小巧的设备上,比如我们的AIBox。它省去了大量的图形界面,只保留了最基础的功能,大部分的指令直接通过输入命令行来完成。所以它的体积很小,运行速度很快。

但显而易见的缺点是:命令行的使用对于初学者来说是一个很大的挑战。所以我们需要学习一些基础的命令行知识。

我们的AIBox使用的是Linux系统,所以我们需要了解一些Linux系统的基础知识。其中最主要的就是命令行的使用。

了解Linux系统、Bash和ssh

如果这是你第一次接触Linux系统,那么你需要知道Linux系统更倾向于使用键盘而不是鼠标(从命令行中我们就能初见端倪),由此你需要知道一些Linux的基础的快捷键,例如:

  • 在按钮和选项之间可以用 Tab 或右箭头键 "前进",Shift+Tab 或左箭头键 "后退"。
  • 上和下箭头键选择列表里面的选项,并可以滚动列表。
  • 另外,在长列表里面,您可以按下某个字母直接跳到对应字母开头的选项,按下 Pg-Up 和 Pg-Down 可以快速滚动列表。
  • 空格键可以选择选项,例如复选框。Enter 执行选择。
  • 为了将折叠的列表展开(例如在洲中选择国家),可以使用 + 和 - 按键。
  • 对于可以选择多个项目的问题(例如任务选择),您需要在做完选择之后首先用 tab 键定位到"继续"按钮;直接按 enter 键会切换是否选择一个选项,而不是执行"继续"。

Linux 和其它的发行版有些不同。即使您熟悉其它发行版的 Linux,您也应该了解 Linux 的一些东西,以便保持您的系统处在良好整洁的状态,但这并不是一个如何使用 Linux 的入门指南,而仅仅是对整个系统的一个粗略的介绍。

  • apt 是最好的安装方法之一。您可以使用命令行模式的 apt-get。
  • Linux 使用 dpkg 来安装软件包。您可以使用 dpkg -i 来安装一个deb 文件格式的软件包。

以创建文本文件为例,我们在Windows系统中的一般步骤是:鼠标右键 -> 新建 -> 文本文档 -> 命名文件

而在Linux系统中,我们可以通过命令行来完成。使用快捷键:按下 Ctrl+Alt+T 即可打开终端。

touch newfile.txt

这行命令会在当前目录下创建一个名为newfile.txt的文件。

当然,说命令行其实不算特别准确,它应该叫做Shell。Shell 这个单词的原意是“外壳”,跟 Kernel(内核)相对应,比喻内核外面的一层,即用户跟内核交互的对话界面,它可以解释我们输入的命令,并且执行这些命令。

具体来说,Shell 这个词有多种含义。

首先,Shell 是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境(Command Line Interface,简写为 CLI)。Shell 接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户。除非特别指明,Shell 指的就是命令行环境。

其次,Shell 是一个命令解释器,解释用户输入的命令。它支持变量、条件判断、循环操作等语法,所以用户可以用 Shell 命令写出各种小程序,又称为脚本(script)。这些脚本都通过 Shell 的解释执行,而不通过编译。

最后,Shell 是一个工具箱,提供了各种小工具,供用户方便地使用操作系统的功能。

而 Bash 是 Unix 系统和 Linux 系统的一种 Shell(命令行环境),是目前绝大多数 Linux 发行版的默认 Shell。除非特别指明,下文的 Shell 和 Bash 当作同义词使用,可以互换。

对于AIbox来说,我们需要学习一些基础的命令行知识,比如:Bash 脚本教程

其中特别说明的是,我们实验箱所用到的传感器,是通过加载拓展版的方式实现的,属于高度定制化的设备。而系统默认是关闭这样的权限的,所以我们需要学习一些基础的命令行权限知识,比如sudosudo !!命令,可以解决我们在使用命令时遇到的权限问题。

另外不用特别担心文档太长,命令太多记不住的问题,你要做的只是快速的看一遍,然后在实际操作中遇到问题时,再回来查阅。这样的学习效果会更好。

SSH 是 Linux 系统的登录工具,现在广泛用于服务器登录和各种加密通信。

假设本机的账户与密码默认都是linaro

一个基础的操作是:

  • 设备有一个网口,用一根网线把它和路由器连接起来
  • 然后让你的电脑也在这个路由器下
  • 通过路由器查看linaro设备的IP地址,通常以192.168.1.开头,假设为192.168.3.55
  • 在你的电脑上打开终端,输入ssh linaro@192.168.3.55,然后输入密码linaro即可登录。
  • 如果你想在本机和AIBox间文件传输,可以使用scp命令,在你的电脑上重新打开一个终端,输入对应的指令即可。

以下是一些基本的 scp 使用方式:

  1. 从本地复制文件到远程服务器:
scp /path/to/local/file username@remote_host:/path/to/remote/directory

这将把本地的 /path/to/local/file 文件复制到远程主机的 /path/to/remote/directory 目录下。

具体参考示例:

scp "Z:\技术资料\职教产品-配置资料\测试代码\test99.py" linaro@192.168.3.55:~/Downloads

表示把我windows电脑上的指定路径的test99.py文件复制到AIBox的Downloads文件夹下。

提示

如果你忘记了~的含义,可以重新查阅一下文档,熟能生巧。

  1. 从远程服务器复制文件到本地:
scp username@remote_host:/path/to/remote/file /path/to/local/directory

这将把远程主机的 /path/to/remote/file 文件复制到本地的 /path/to/local/directory 目录下。

请记住,你需要用你的实际值替换 username, remote_host, /path/to/local/file/path/to/remote/directory。如果你不确定远程服务器的路径,你可以先登录到SSH环境,然后使用 pwd 命令来查看当前目录的完整路径。

  1. 如果你想将本地的一个文件夹及其内容复制到远程主机,你可以使用 scp 命令的 -r(递归)选项。以下是一个示例:
scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory

在使用 scp 命令时,可能会提示你输入远程主机的密码。

熟练应用Python

最后,我们AIbox上搭载的13个传感器和5个自由拓展口均是通过Python语言来控制的。

后期对摄像头与图像的处理、机器学习同样是基于Python的。

所以我们需要学习一些基础的Python知识,比如:Python 教程

你应该至少知道:模块的加载顺序与路径、多python环境的切换、pip的使用、阅读报错的能力等。

信息

后续的教程建立在你已经掌握了这三块基础知识的基础上。