Raspbian-学习指南-全-
Raspbian 学习指南(全)
原文:
annas-archive.org/md5/b03f23cf68cc34b598d5d2f2b1bef5eb译者:飞龙
前言
本书是介绍革命性树莓派计算机及其官方操作系统 Raspbian 的入门指南。Raspbian 是基于极其流行的 Debian Linux 发行版定制的免费开源操作系统。Raspbian 专为在树莓派上获得最大性能而定制。
阅读本书后,您将能够执行以下操作:
-
从头开始设置和配置树莓派
-
安装和配置 Raspbian 操作系统
-
自定义桌面环境以满足你的需求和口味
-
在你的树莓派上安装和管理软件包
通过查看基于 Raspbian 的其他项目,您可以深入了解您的树莓派和 Raspbian 的能力。
本书内容
第一章, 树莓派与 Raspbian,带你了解树莓派的历史以及组成树莓派的各种硬件和软件组件。
第二章, 使用 Raspbian 入门,带你了解如何设置你的树莓派,以及如何将 Raspbian 加载到你的 SD 卡上。
第三章, 启动 Raspbian,带你了解 Raspbian 的初步设置和 Linux 启动过程。
第四章, Raspbian 桌面介绍,详细介绍了 Raspbian 桌面并带你了解预装的软件。
第五章, 在 Raspbian 上安装软件,教你如何使用本章介绍的不同方法在你的树莓派上安装软件。
第六章, 控制台,带你了解 Raspbian 中 bash 控制台的基本使用。
第七章, 基于 Raspbian 的其他 Linux 发行版,探讨了几个基于 Raspbian 的其他激动人心的项目。
附录, 参考资料,列出了本书使用的资源链接和其他有趣信息。
本书内容所需
若要使用本书中的示例,您将需要以下内容:
-
一个树莓派
-
一个 4GB 或更大的 SD 卡
-
一个 USB 键盘和鼠标
-
一个显示器(最好有 HDMI)
-
一个 HDMI 电缆
-
一个微型 USB 手机充电器作为电源供应
所有这些都可以从 element14 获取。不要忘记来杯咖啡!
本书适合对象
本书适合希望学习如何充分利用他们的树莓派,并了解更多关于 Raspbian 的初学者,Raspbian 是树莓派的官方 Linux 操作系统。
约定
在本书中,您将看到多种文本样式,用于区分不同类型的信息。以下是这些样式的一些示例及其含义的解释。
文本中的代码词、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟网址、用户输入以及 Twitter 账号以如下方式显示:“这是一种软件工具,实际上是从.deb文件安装一个软件包。”
所有命令行输入或输出均如下所示:
sudo apt-get install apache2
新术语和重要词汇以粗体显示。您在屏幕上看到的词语,例如菜单或对话框中的内容,会以这种方式出现在文本中:“只需选择标记,然后点击应用。”
注意
警告或重要提示会以这种框的形式出现。
提示
提示和技巧如下所示。
读者反馈
我们始终欢迎读者的反馈。告诉我们您对本书的看法—喜欢还是不喜欢。读者反馈对我们非常重要,因为它帮助我们开发出您真正能从中受益的书籍。
要发送一般反馈,请简单地通过电子邮件 <feedback@packtpub.com> 与我们联系,并在邮件主题中提及书名。
如果您在某个领域有专长,并且有兴趣撰写或贡献书籍内容,请查看我们的作者指南,网址为 www.packtpub.com/authors。
客户支持
既然您已经是一本 Packt 书籍的骄傲拥有者,我们为您准备了许多资源,帮助您最大化利用您的购买。
勘误
虽然我们已经尽力确保内容的准确性,但错误仍然会发生。如果您在我们的书籍中发现错误—可能是文本错误或代码错误—我们将非常感激您向我们报告。这样,您可以帮助其他读者避免困扰,并帮助我们改进后续版本。如果您发现任何勘误,请通过访问 www.packtpub.com/submit-errata,选择您的书籍,点击勘误提交表单链接,输入您的勘误详情。一旦您的勘误得到验证,您的提交将被接受,勘误将被上传到我们的网站,或者添加到该书的勘误列表中。
要查看之前提交的勘误,访问 www.packtpub.com/books/content/support,并在搜索框中输入书名。所需信息将出现在勘误部分。
盗版
互联网版权材料的盗版是一个持续存在的问题,涉及所有媒体。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上遇到我们作品的任何非法副本,请立即提供该网址或网站名称,以便我们采取措施。
请通过<copyright@packtpub.com>联系我们,并附上涉嫌盗版材料的链接。
我们感谢您在保护我们的作者以及我们为您提供有价值内容方面所做的帮助。
问题
如果您在本书的任何方面遇到问题,可以通过<questions@packtpub.com>联系我们,我们将尽力解决问题。
第一章:树莓派与 Raspbian
在本章中,您将了解树莓派、树莓派基金会以及树莓派的官方基于 Linux 的操作系统——Raspbian。
在本章中,我们将讨论:
-
树莓派
-
树莓派的历史
-
树莓派硬件
-
Raspbian 操作系统
-
树莓派组件
树莓派
尽管乍看之下,树莓派并不是一种美味的零食。树莓派是一款小巧、强大且廉价的单板计算机,由树莓派基金会经过多年开发而成。
如果您正在寻找一种低成本、小巧、易于使用的计算机用于您的下一个项目,或者对学习计算机工作原理感兴趣,那么树莓派非常适合您。
树莓派最初被设计为一款教育设备,其灵感来源于 BBC Micro 成功地将计算机编程教授给一代人。树莓派基金会旨在在今天的世界中做到同样的事情,在当今的计算机世界里,使用计算机不再需要掌握软件编程知识。到印刷时,树莓派基金会已经出货超过250 万台,可以说他们已经超出了最初的预期!

树莓派基金会
树莓派基金会是一个非营利慈善机构,成立于 2006 年,由埃本·厄普顿(Eben Upton)、罗布·穆林斯(Rob Mullins)、杰克·朗(Jack Lang)和艾伦·迈克罗夫特(Alan Mycroft)共同创办。该慈善机构的目标是向一代没有接触过 BBC Micro 或 Commodore 64 的年轻人推广计算机科学的学习。
他们开始担心,缺乏一种可以让爱好者用来学习和实验的设备。家用计算机通常因其价格过高而被排除在外,这使得爱好者和孩子们没有合适的设备来提升自己的技能。
树莓派的历史
任何新产品都需要经过多次迭代才能进入量产阶段。对于树莓派来说,这一切始于 2006 年,当时基于 Atmel 8 位 ATMega664 微控制器的几种树莓派概念版本已经开发出来。随后又开发了基于 ARM 处理器的 USB 闪存盘概念(与当前树莓派使用的处理器类似)。经过六年的硬件开发,才有了今天我们所熟知和喜爱的树莓派!
树莓派的官方标志如下所示:

直到 2011 年 8 月,树莓派的 Alpha 版本才开始生产 50 块板卡。这些板卡比当前版本稍大,以便树莓派基金会调试设备并确认其能够正常运行。2011 年 12 月,组装了 25 块树莓派的 Beta 版本,并通过拍卖筹集资金支持树莓派基金会。这些版本仅发现并修正了一个小错误,之后才进入正式生产。
第一批生产的树莓派共有 10,000 块板子,这些板子在中国和台湾制造。不幸的是,树莓派的以太网接口被错误地替换成了一个不兼容的部件。这导致了一些小的运输延误,但所有树莓派板卡都在预定日期内交付。作为补偿,基金会能够将 A 型号的树莓派内存从原定的 128 MB 升级到 256 MB。这个内存升级使得树莓派能够执行更多令人惊叹的任务,如实时图像处理。
树莓派现在在英国制造,这为许多新的工作岗位创造了机会。
树莓派的发布引起了轰动,树莓派的两家原始零售商——Premier Farnell 和 RS Components——在几分钟内就售罄了第一批产品。
树莓派硬件
树莓派的核心是强大的 Broadcom BCM2835“系统芯片”。BCM2835 类似于全球几乎每一款使用 ARM 架构的智能手机和机顶盒的核心芯片。树莓派上的 BCM2835 CPU 运行频率为 700 MHz,其性能大致相当于 1999 年推出的 300 MHz 的 Pentium II 计算机。
为了让你更好地理解,阿波罗任务中使用的引导计算机的性能还不如一个口袋计算器!

树莓派的框图
树莓派配备了 256 MB 或 512 MB 的内存,具体取决于你购买的型号。希望未来的版本内存会有所增加!
图形能力
树莓派的图形由 Videocore 4 GPU 提供。图形 处理 单元(GPU)的图形性能大致相当于 2011 年发布的 Xbox,其售价为数百美元。这些看起来可能是非常低的规格,但它们足以在 1080p 分辨率下运行《Quake 3》并播放全高清电影。
连接显示器到树莓派有两种方式。第一种是使用复合视频电缆,第二种是使用 HDMI。复合输出非常有用,因为你可以使用任何旧电视作为显示器。然而,推荐使用 HDMI 输出,因为它提供更优质的视频质量。树莓派没有提供 VGA 连接,因为这会带来过高的成本。然而,对于拥有 VGA 或 DVI 显示器的用户,使用 HDMI 转 VGA/DVI 转换器是可行的。
树莓派还支持 LCD 触摸屏。虽然官方版本尚未发布,但有许多非官方版本可用。树莓派基金会表示,他们预计今年会发布官方版本。
树莓派型号
树莓派有几种不同的型号:Model A 和 Model B。Model A 是低成本版本,不幸的是,它省略了 USB 集线器芯片。该芯片还充当了 USB 到以太网转换器。树莓派基金会还刚刚发布了树莓派 Model B+,该版本增加了 USB 接口,并解决了 Model B 和 Model B USB 接口的许多电力问题。
| 参数 | Model A | Model B | Model B+ |
|---|---|---|---|
| CPU | BCM2835 | BCM2835 | BCM2835 |
| RAM | 256 MB | 512 MB | 512 MB |
| USB 端口 | 1 | 2 | 4 |
| 以太网端口 | 0 | 1 | 1 |
| 价格(美元) | ~$25 | ~$35 | ~$35 | |
| 自何时起可用 | 2012 年 2 月 | 2012 年 2 月 | 2014 年 7 月 |
| 主板 | ![]() |
![]() |
![]() |
树莓派型号之间的差异
注意
你知道吗,树莓派如此受欢迎,以至于如果你在 Google 中搜索 raspberry pie,它们实际上会显示树莓派的搜索结果!
配件
树莓派的成功鼓励了许多其他团队为树莓派设计配件,用户也开始使用这些配件。这些配件从相机到自动 CNC 机床控制器应有尽有。一些配件包括:
| 配件 | 链接 |
|---|---|
| 树莓派相机 | www.raspberrypi.org/tag/camera-board/ |
| VGA 板 | www.suptronics.com/RPI.html |
| CNC 控制器 | code.google.com/p/picnc/ |
| 自动驾驶仪 | www.emlid.com/ |
| 外壳 | shortcrust.net/ |
Raspbian
无论树莓派的硬件多么强大,没有操作系统,它也只是一个硅片、玻璃纤维和其他一些材料的集合。树莓派有几种不同的操作系统可供选择,包括 RISC OS、Pidora、Arch Linux 和 Raspbian。
目前,Raspbian 是最受欢迎的基于 Linux 的树莓派操作系统。Raspbian 是一个基于 Debian 的开源操作系统,专门为树莓派修改(因此得名 Raspbian)。Raspbian 包含了旨在使树莓派更易于使用的定制化内容,并且自带许多不同的软件包。
Raspbian 设计简单易用,是初学者开始使用树莓派时推荐的操作系统。
Debian
Debian 操作系统由 Ian Murdock 于 1993 年 8 月创建,是 Linux 的原始发行版之一。
由于 Raspbian 基于 Debian 操作系统,因此它几乎包含了 Debian 的所有特性,包括其庞大的软件包库。树莓派可以使用超过 35,000 个自由软件包,并且这些软件包现在就可以使用!
关于 Debian(因此也包括 Raspbian)的更多信息,一个很好的资源是《Debian 管理员手册》。该手册可以在 debian-handbook.info 上找到。
开源软件
构成 Raspbian 的大多数软件是开源的。开源软件是一种其源代码可以被任何人修改或增强的软件。
Linux 内核和构成 Raspbian 的大多数其他软件都采用 GPLv2 许可证。这意味着该软件对你免费提供,并且组成该软件的源代码可以供你按照自己的意愿使用。GPLv2 许可证还去除了任何索赔或担保。以下是 GPLv2 许可证序言的摘录,它让你很好地了解自由软件的精神:
“大多数软件的许可证旨在剥夺你共享和修改它的自由。相比之下,GNU 通用公共许可证的目的是保证你共享和修改自由软件的自由——确保软件对所有用户都是免费的……
当我们谈论自由软件时,我们指的是自由,而不是价格。我们的通用公共许可证旨在确保你有自由分发自由软件副本的权利(如果愿意,你可以收费提供此服务),你可以获得源代码或在需要时获得它,你可以修改软件或在新的自由程序中使用其部分代码;并且你知道你可以做这些事情。
Raspbian 组件
现代 Linux 发行版由许多组件组成。这些组件共同工作,提供你在计算机中所期待的所有现代功能。
Raspbian 是由几个关键组件构建的。这些组件包括:
-
树莓派引导加载程序
-
Linux 内核
-
守护进程
-
Shell
-
Shell 工具
-
X.Org 图形服务器
-
桌面环境
树莓派引导加载程序
当你的树莓派开机时,背后发生了很多事情。引导加载程序的作用是将树莓派的硬件初始化为已知状态,然后开始加载 Linux 内核。在树莓派的情况下,这是由第一阶段和第二阶段引导加载程序完成的。第一阶段引导加载程序在制造过程中被编程到树莓派的 ROM 中,无法修改。第二阶段和第三阶段引导加载程序存储在 SD 卡中,由前一个阶段的引导加载程序自动运行。
Linux 内核
Linux 内核是 Raspbian 中最基础的部分之一。它管理着你的树莓派的每个操作,从在屏幕上显示文本到接收你在键盘上输入的按键。
Linux 内核是由 Linus Torvalds 创建的,他在 1991 年 4 月开始开发内核。从那时起,一群志愿者和组织共同合作,持续开发内核,使其成为今天的样子。
注意
你知道吗?将 Linux 内核重写到 2011 年的水平,成本超过 30 亿美元?
Linux 的标志是一只名为 Tux 的企鹅:

如果你想通过连接硬件设备来使用它,内核需要知道它是什么以及如何使用它。市面上绝大多数设备都被 Linux 内核支持,而且还在不断增加支持的设备。例如,当你将 USB 驱动器插入树莓派时,内核会自动检测到 USB 驱动器,并通知守护进程自动使文件对你可用。
当内核加载完成后,它会自动运行一个名为 init 的程序。这个程序旨在完成树莓派的初始化,然后加载其余的操作系统。该程序首先加载所有守护进程到后台,然后加载图形用户界面。
守护进程
守护进程是运行在后台的软件,提供操作系统不同的功能。一些守护进程的例子包括 Apache Web 服务器、Cron(一个用于自动在不同时间运行程序的作业调度器)和 Autofs(一个自动挂载可移动存储设备,如 USB 驱动器的守护进程)。
类似 Raspbian 这样的发行版需要的不仅仅是内核才能工作。它还需要其他软件来使用户能够与内核互动,并管理操作系统的其余部分。核心操作系统由一系列程序和脚本组成,使这一切得以实现。
Shell
所有守护进程加载完毕后,init 启动一个 shell。Shell 是你与树莓派之间的接口,允许你通过键盘输入命令来监视和控制它。不要被这个界面欺骗,尽管它看起来就像 30 年前计算机使用的界面一样。Shell 是 Raspbian 中最强大的部分之一。
Linux 有多个可用的 shell。Raspbian 使用 Bourne Again Shell(bash)。这个 shell 目前是 Linux 中使用最广泛的 shell。

Bash 是一款功能极其强大的软件。Bash 最强大的特点之一是它能够运行脚本。脚本只是存储在文件中的一系列命令,可以做许多事情,比如运行程序、从键盘读取按键和其他许多操作。在本书的后面部分,你将看到如何使用 bash 来充分利用你的 Raspberry Pi!
Shell 实用程序
如果没有可执行的命令,命令解释器就没有什么用处。虽然 bash 提供了一些非常基础的命令,但所有其他命令都是 shell 实用程序。这些 shell 实用程序共同构成了 Raspbian 的重要组成部分(它们至关重要,因为没有这些实用程序,系统将崩溃)。它们提供了许多功能,从复制文件、创建目录,到高级打包工具(APT)——一个包管理应用程序,允许你在 Raspberry Pi 上安装和卸载软件。
你将在本书的后续部分深入了解 APT。
X.Org 图形服务器
在 shell 和守护进程加载之后,默认情况下,X.Org 图形服务器会自动启动。X.Org 的作用是为你提供一个通用平台,用以构建图形用户界面。X.Org 处理从移动鼠标指针、监听并响应按键操作,到将你正在运行的应用程序绘制到屏幕上的所有任务。
桌面环境
如果没有桌面环境,使用任何计算机都会变得困难。桌面环境让你不仅仅使用键盘与计算机互动,还可以上网、查看图片和电影,以及执行许多其他操作。图形用户界面通常使用窗口、菜单和鼠标来完成这些操作。
Raspbian 包含一个图形用户界面,称为轻量级 X11 桌面环境(Lightweight X11 Desktop Environment,简称 LXDE)。LXDE 在 Raspbian 中的使用是因为它是专门为像 Raspberry Pi 这样的设备设计的,这些设备的资源有限。
在本书的后面部分,你将学习如何定制和使用 LXDE,以最大化利用你的 Raspberry Pi。

LXDE 桌面环境的截图
总结
在本章中,你学习了什么是 Raspberry Pi,了解了 Raspberry Pi 基金会及其历史。你还学习了操作系统的基本构建块,尤其是 Raspbian。在下一章,我们将学习如何让你的崭新的 Raspberry Pi 启动并运行!
第二章:Raspbian 入门
现在你已经对 Raspbian 有了更多的了解,是时候开始了。你需要做的第一件事是将你的 Raspberry Pi 插入电源,然后将 Raspbian 安装到 SD 卡上。这个过程与在 Windows PC 或 Mac 上安装软件有所不同。
在这一章中,我们将覆盖以下主题:
-
SD 卡规格
-
下载 Raspbian
-
将 Raspbian 刻录到 SD 卡上
SD 卡规格
建议你的 SD 卡具备以下规格:
| 容量 | 至少 8 GB |
|---|---|
| 类别 | 最低为 Class 4,但推荐使用 Class 10 |
注意
确保你选择了正确的 SD 卡。Raspberry Pi A 和 Raspberry Pi B 都使用标准尺寸的 SD 卡,而 Raspberry Pi B+ 使用迷你 SD 卡。
强烈建议你不要在没有 SD 卡的情况下运行 Raspberry Pi。这是因为没有 SD 卡,Raspberry Pi 上的所有硬件将无法正确设置,这可能会导致硬件损坏。
下载 Raspbian
现在你已经准备好所有硬件,接下来是让你的 Raspberry Pi 启动。是时候获取 Raspbian 镜像了。你可以从多个地方下载 Raspbian 镜像,最简单的方式是直接从 Raspberry Pi 基金会的网站下载:www.raspberrypi.org/downloads/。

官方 Raspbian 下载页面
在此页面上,你会看到基金会支持的所有官方操作系统的链接。我们需要关注的是 Raspbian 镜像。如果你能够通过 BitTorrent 客户端下载镜像,你可以帮助基金会节省带宽。如果不能,你可以直接下载压缩文件。
在编写本书时,最新版本的 Raspbian 基于 Debian Wheezy,于 2015 年 1 月发布。下载文件的大小约为 800 MB。当你下载完文件后,你需要从压缩文件中提取镜像。具体如何操作取决于你使用的操作系统。
现在,你已经准备好将 Raspbian 刻录到 SD 卡上。
将 Raspbian 刻录到 SD 卡上
你刚刚下载的文件是 SD 卡所有内容的完整副本。因此,你不能仅仅将文件复制到 SD 卡上就能开始使用。要将 Raspbian 刻录到 SD 卡上,你需要将镜像文件直接写入 SD 卡。这个过程会根据你使用的操作系统有所不同。
使用 Windows 写入镜像
要在 Windows 上将 Raspbian 镜像写入 SD 卡,您需要一个能够执行此任务的软件程序。有几种程序可用,但我们将使用一个名为 Win32 Disk Imager 的程序。Win32 Disk Imager 是一个开源工具,旨在将镜像文件写入可移动存储设备,如 SD 卡或 USB 驱动器。您可以从sourceforge.net/projects/win32diskimager/下载 Win32 Disk Imager。其图标如下所示:

使用 Windows 编写镜像的步骤如下:
-
第一步是将 SD 卡插入计算机。
-
接下来,您需要下载并安装 Win32 Disk Imager。
-
完成此操作后,您需要运行刚刚下载的文件并安装 Win32 Disk Imager。
-
您需要以管理员身份运行 Win32 Disk Imager。为此,请右键点击Win32DiskImager快捷方式,然后选择以管理员身份运行。
-
启动 Win32 Disk Imager 后,您应该看到如下界面:
![使用 Windows 编写镜像]()
-
现在,您需要点击文件夹按钮并浏览到之前下载的 Raspbian 镜像文件。撰写本书时,镜像文件名为
2015-01-31-wheezy-raspbian.img。该文件可能被压缩在 zip 文件中。如果是这种情况,您需要先解压缩该.img文件。 -
下一步是确保在设备下拉菜单中选择正确的 SD 卡驱动器。
注意
确保选择了正确的设备非常重要,因为这将清除该驱动器上的所有文件。您可以通过进入 Windows 资源管理器,注意与您刚插入的 SD 卡匹配的驱动器大小和标签,来确认您选择的是正确的磁盘。
在进行此操作时,最好移除其他可移动存储设备,这样可以确保它们不会被误选。
-
确认已选择正确的设备后,点击写入。写入过程将根据机器的不同而持续几分钟,可能是个好机会去泡一杯咖啡!完成后,您就可以开始使用您的树莓派了。

使用 Mac 编写镜像
您可以使用 Mac OS X 编写从树莓派基金会下载的镜像文件,甚至不需要在 Mac 上安装任何额外的软件。
这些指令适用于 OS X 10.10(Yosemite),但也适用于旧版本的 OS X。
使用 Mac 编写镜像的步骤如下:
-
首先,您需要将 SD 卡插入 Mac 并确保所有其他可移动存储设备已拔出,以防止它们被误删。
-
现在 SD 卡已插入,我们需要找出操作系统分配给 SD 卡的内部设备名称。设备名称将以
/dev/diskX形式出现。我们可以通过点击左上角的苹果符号,选择 关于本机 来查看,如下所示:![使用 Mac 写入映像]()
-
现在,你需要选择 系统报告…,如下截图所示:
![使用 Mac 写入映像]()
-
然后你将在屏幕上看到系统报告。如果你的 Mac 有内部 SD 卡读卡器,你需要在屏幕左侧选择 卡片读卡器。
-
如果你使用的是 USB 转 SD 卡读卡器,你需要选择 USB,然后在列表中找到你的 SD 卡读卡器。
-
选择了 SD 卡后,请查看页面底部的 BSD 名称。它将类似于 disk2(在此案例中为 disk2s1)。这个名称是操作系统内核分配给 SD 卡的内部名称。
如果卡中有其他分区,它们将被列为 diskXs1、diskXs2 等。我们只需要 diskX 部分。

现在我们已经有了 SD 卡的 BSD 名称,我们需要确保 SD 卡上的分区没有被挂载,但也不想弹出 SD 卡。通过使用磁盘工具,我们可以按以下步骤操作:
-
首先,我们需要打开磁盘工具。你可以通过导航到 应用程序 | 实用工具 来找到磁盘工具。
![使用 Mac 写入映像]()
-
打开磁盘工具后,你将在设备列表的左侧找到 SD 卡。你需要右击列表中的每个分区并选择 卸载。这将阻止操作系统使用该分区。如果不这样做,当你实际将映像写入 SD 卡时,会收到 设备正在使用 的消息。
-
现在,你终于准备好将 Raspbian 映像写入 SD 卡了。为此,打开终端。你可以在 应用程序 下的 实用工具 标签中找到它。
![使用 Mac 写入映像]()
由于 OS X 基于 BSD 操作系统,我们可以访问其所有工具。我们将使用名为 Disk Dump(dd)的工具,实际将映像文件写入我们的 SD 卡。dd 工具设计用于读取和写入设备的原始数据,可以用于从复制硬盘到将映像写入 SD 卡等任何操作。
-
打开终端后,你需要切换到包含映像文件的目录。在这个案例中,它位于 桌面 文件夹中,
cd桌面。 -
然后我们运行实际的命令,将映像写入 SD 卡,将
2015-01-31-wheezy-raspbian.img替换为你的 Raspbian 映像文件名称,将 diskX 替换为你在前面步骤中找到的 BSD 名称:sudo dd bs=1m if=2015-01-31-wheezy-raspbian.img of=/dev/diskX该命令以超级用户身份运行
dd命令。dd命令读取映像文件2015-10-31-wheezy-raspbian.img并将其写入 SD 卡。它以每次一兆字节的块写入数据。 -
运行此命令时,系统会要求你输入管理员密码。根据 SD 卡的速度,执行该命令写入映像到 SD 卡可能需要最多半小时。
完成后,将卡插入 Raspberry Pi,你就准备好开始了。
使用 Linux 写入映像
使用 Linux 写入你刚刚下载的 Raspbian 映像的过程非常简单。如前所述,Linux 有许多不同的发行版。接下来的步骤是在 Ubuntu 上测试过的,Ubuntu 是一个基于 Debian 的 Linux 发行版,像 Raspbian 一样。正如之前所提到的,请确保所有可移动存储设备都已拔出,以防止它们被意外擦除。
我们需要做的第一件事是启动一个终端。所有不同的 Linux 环境中都可以使用终端。在 Ubuntu 中,它叫做 Terminal。下面的截图展示了如何在最新版本的 Ubuntu 中找到终端应用程序:
使用 Linux 写入映像
现在你已经启动了终端,接下来需要获得 root 权限,方法如下:
-
最简单的做法是运行以下命令:
sudo –i -
sudo为你在终端中运行的任何程序提供管理员权限。这样做是必要的,因为将映像写入 SD 卡是一个可能影响所有用户的操作。sudo在本书后面会进一步讨论。你将看到一个与下方截图类似的终端:使用 Linux 写入映像 -
现在你已经准备好查找 SD 卡的设备名称。为此,运行
df命令。df命令可以帮助你查看每个存储设备上可用的存储空间。我们需要运行以下命令:df –h -
以下截图显示了输出:使用 Linux 写入映像
运行 df -h 命令得到的结果如前面的截图所示。我们可以看到,在这种情况下,我们使用的 SD 卡是 /dev/sdb1。如果你的机器有内建的 SD 卡读卡器,这个设备名可能是 /dev/mmcblk0p1。无论设备名如何,我们只需要设备名的前半部分。在前面的示例中,我们会使用 /dev/sdb,如果是 /dev/mmcblk0p1,我们则会使用 /dev/mmcblk0。验证你选择的设备是否正确的一个简单方法是检查其大小。
现在你已经知道了设备的名称,接下来需要卸载 SD 卡。为此,我们将使用 unmount 命令。我们只需要在终端中运行以下命令,针对我们刚刚找到的设备名称:
umount /dev/sdb1
现在我们终于准备好将镜像写入 SD 卡了。为此,我们需要进入你下载了 Raspbian 镜像的目录。然后运行 dd 应用程序。如前所述,dd 工具被设计用来读取和写入设备上的原始数据,可以用于从复制硬盘到写入镜像到 SD 卡等多种操作。以下命令作为超级用户运行 dd 命令:
cd Desktop
dd bs=1m if=2014-06-20-wheezy-raspbian.img of=/dev/sdb1
dd 命令读取镜像文件 2015-01-31-wheezy-raspbian.img 并将其写入 SD 卡。它以每次一兆字节的块大小写入数据。
这个命令可能需要几分钟到半小时不等,具体取决于你的 SD 卡大小。完成后,将 SD 卡插入 Raspberry Pi,你就可以开始使用了。
总结
在本章中,你学习了从哪里下载 Raspbian 镜像。你还通过不同的操作系统,逐步了解了如何将 Raspbian 镜像写入 SD 卡。下一章将向你展示如何设置你的 Raspberry Pi 并配置 Raspbian。
第三章:启动 Raspbian
本章将指导你如何设置树莓派,第一次启动 Raspbian,并配置你的摄像头(如果你有的话)。
在本章中,我们将介绍以下内容:
-
不同类型的树莓派
-
插入树莓派
-
第一次启动树莓派
-
树莓派软件配置工具
-
完成设置
-
排查常见问题
到了本章的最后,你应该已经将树莓派启动并运行了。
树莓派 A 型号和树莓派 B 型号
树莓派 A 型号和树莓派 B 型号是树莓派的原始版本:

树莓派 A+
树莓派 A+ 是树莓派的最新版本。树莓派 A+ 与之前的 Model A 有一些不同,以下是主要的区别:
-
树莓派 A+ 使用 micro SD 卡
-
它有一个更大的 40 针 I/O 接口
-
如果你想使用 AV 输出将树莓派 A+ 连接到电视,你现在需要一个适配器线。
以下是树莓派 A+:

树莓派 B+
树莓派 B+ 是树莓派的另一款最新更新版本。树莓派 B+ 与之前的版本有一些不同,以下是主要的区别:
-
树莓派 B+ 使用 micro SD 卡
-
它有一个更大的 40 针 I/O 接口
-
如果你想使用 AV 输出将树莓派 B+ 连接到电视,你现在需要一个适配器线。
-
树莓派 B+ 总共有四个 USB 端口,而不是两个
以下是树莓派 B+:

插入树莓派
插入树莓派并让它启动非常简单。你只需要准备一些东西,具体如下:
-
电源
-
显示器
-
键盘和鼠标
-
SD 卡
-
网络连接
让我们详细地了解一下这些内容。
电源
树莓派的电源非常简单。它使用标准的 5V 微型 USB 电源。如果你有一个带微型 USB 的手机充电器,那么你应该可以用它来为树莓派供电。你也可以使用插入 USB 手机充电器的微型 USB 数据线。
我们建议你使用专用的微型 USB 电源,而不是 USB 数据线,这样更可靠。这些电源可以从你购买树莓派的零售商处获得。
电源供应能力至少要达到 1 安培,这是很重要的。低于这个值,你可能会遇到间歇性重启和其他问题。
显示器
为了充分利用你的树莓派,你需要一个显示器。树莓派支持两种不同类型的显示器:
-
HDMI:这是一种现代接口,支持通过一根电缆传输高清视频和音频。所有现代电视和越来越多的计算机显示器都支持 HDMI。
-
AV:这是一种较旧的标准,可以让你将树莓派连接到旧款电视。树莓派 A 和 B 两款都有一个标准的 AV 接口。如果你使用的是树莓派 A+ 或 B+,你会发现 AV 接口现在已经集成到耳机接口中,你需要购买一个适配器才能将其连接到电视上。
当你将树莓派连接到显示器时,确保在显示器上选择了你正在使用的输入源。
需要记住的是,一旦树莓派启动并运行,你就不需要显示器来操作它了。然而,最初配置树莓派时没有显示器会相对困难。
键盘和鼠标
树莓派几乎支持所有 USB 键盘和鼠标。如果你使用的是树莓派 A 或 B,这两个端口都会被占用。除非你使用的是带有四个 USB 端口的树莓派 B+,否则我们强烈建议你将一个 USB 集线器插入树莓派,这样你就能有一些额外的 USB 端口可供使用。你可以通过访问elinux.org/RPi_USB_Keyboards来检查你的键盘和鼠标是否被支持。
SD 卡
你已经在上一章中准备好了一个带有 Raspbian 系统的 SD 卡。你需要将这个 SD 卡插入树莓派。确保在树莓派运行时不要拔出 SD 卡。
网络连接
为了充分利用你的树莓派,你需要连接互联网。树莓派 B 和 B+ 都配有一个以太网接口,你可以将树莓派连接到你的路由器。要通过 Wi-Fi 将树莓派连接到互联网,你需要一个 USB 到 Wi-Fi 适配器。如果你想通过 Wi-Fi 将树莓派 A 或 A+ 连接到互联网,你需要使用一个有电源的 USB 集线器。

插入树莓派
首次启动树莓派
现在你已经准备好了一切,是时候启动你的树莓派了。你需要做的第一件事是确保你的显示器设置为正确的输入源。如果你想使用 HDMI,这一点非常重要,因为如果树莓派在启动过程中没有检测到 HDMI 显示器,它会自动使用默认的 AV 输出。
启动加载程序
当你打开树莓派时,你将看到树莓派的启动屏幕。

树莓派启动加载程序
如果你看到这个,说明 SD 卡上的所有启动加载程序文件已被找到,并且正确的显示器已经成功检测到。如果你没有看到这个,确保所有电缆都插好,显示器或电视已设置为正确的输入源,并且你的 SD 卡已正确烧录。
Linux 内核
启动过程的下一步是初始化 Linux 内核。Linux 内核包含在你 SD 卡上的 kernel.img 文件中。

启动 Raspbian
当您的树莓派启动时,您将看到类似于前面截图的屏幕。第一次启动过程将比后续启动时间稍长。由于这是您的树莓派首次启动,它将自动加载树莓派软件配置工具。
您可以使用此工具配置树莓派的不同部分。
树莓派软件配置工具
树莓派软件配置工具旨在成为设置您的树莓派的简单直观的方式。当您的树莓派首次上电时,它将自动启动。

树莓派软件配置工具
树莓派软件配置工具非常易于使用。要在菜单之间移动,请使用箭头键和Tab键。要选择菜单,只需按Enter键。
您可以通过运行以下命令随时使用树莓派软件配置工具:
raspi-config
设置树莓派
现在您的树莓派已经启动了树莓派软件配置工具,是时候使用它来让您的树莓派运行起来。
调整树莓派的根文件系统大小
您需要做的第一件事是扩展树莓派的文件系统,使其占据 SD 卡的全部空间。如果不这样做,您将无法使用 SD 卡上剩余的存储空间。
要做到这一点,请确保选择扩展文件系统选项。现在,只需按下Enter键即可。存储 Raspbian 操作系统的根分区现在将被扩展到 SD 卡的大小。然后,您将看到以下菜单:

此消息表示您已成功调整根分区的大小
更改树莓派的默认密码
Raspbian 的默认用户密码是 pi。这不是很安全,您可能希望将其更改为其他密码。树莓派软件配置工具使这变得非常简单。
-
选择更改用户密码选项,然后按下Enter键。
-
现在,您将看到更改密码的第一步。准备好后,按下
: ![更改树莓派的默认密码]()
更改密码的第一步
-
然后会提示您输入密码。您在输入时看不到任何内容。
-
当您完成输入密码后,按Enter键;再次输入并按Enter键。确保不要忘记密码,因为您需要它来安装任何新软件到您的树莓派。

更改密码
启用启动到桌面/Scratch
Raspbian 有几种不同的界面,你可以在你的 Raspberry Pi 中使用,如图形桌面环境、命令提示符和编程语言 Scratch。
我们建议你选择桌面登录选项,这样你就可以使用 Raspbian 中包含的图形界面。你可以从图形界面使用命令提示符和 Scratch 语言。默认选项是当 Raspberry Pi 启动时使用命令提示符。

国际化选项
默认情况下,Raspbian 配置为适用于英国。如果你不在英国,你需要配置 Raspbian 以使用正确的时区、键盘布局和地区设置。

Raspberry Pi 软件配置工具中的国际化选项
添加你的地区设置
地区设置用于定义 Raspbian 用来显示日期、数字、货币等内容的语言。默认情况下,你的 Raspberry Pi 地区设置为英国。
将地区设置更改为你所在国家非常简单。为此,选择更改地区选项。

选择你的地区设置
你可以为你的 Raspberry Pi 选择多个地区设置。在澳大利亚,我们会选择en_AU地区设置。如果你在美国,你会选择en_US。
选择时区
Raspberry Pi 软件配置工具还可以轻松选择你的时区。默认情况下,这个设置为 UTC。如果你希望在你的 Raspberry Pi 上显示正确的时间,你需要更改时区。

选择时区
选择你的时区,选择你所在的地区并按Enter。然后你可以选择离你最近的城市并按Enter。
更改你的键盘
默认情况下,Raspbian 预期你使用为英国设计的键盘。如果你不使用英国键盘,许多键盘上的按键将无法按预期工作。
为了告诉 Raspbian 使用正确的键盘,选择更改键盘布局。

选择键盘
如果你的键盘没有列出,去选择通用 101 键 PC键盘选项并按Enter。根据你的所在位置,你应该能找到适合你国家的通用键盘。例如,在美国或澳大利亚,我们会选择英语(美国)键盘。

选择默认的键盘布局
选择键盘后,系统会询问你希望将哪个键设置为AltGr键。AltGr键用于某些语言,以提供键盘上没有的附加字符。
选择键盘布局的默认设置选项通常是安全的。

选择 AltGr 键
配置键盘的最后一步是选择你想用作组合键的键。
组合键允许 Raspberry Pi 将多个按键的组合解释为单次按键操作。通常情况下,这个功能不需要使用,选择默认选项无组合键是安全的。

选择默认组合键
启用 Raspberry Pi 摄像头
Raspberry Pi 可以配备摄像头。默认情况下,除非你已经连接了摄像头并且希望使用它,否则它是禁用的。要启用 Raspberry Pi 摄像头,在 Raspberry Pi 软件配置工具中选择<启用>选项。

启用你的 Raspberry Pi 摄像头
添加到 Rastrack
Rastrack 是一个非营利性网站,映射了全球许多 Raspberry Pi 的位置。如果你想将你的 Raspberry Pi 添加到地图上,选择添加到 Rastrack并输入你的电子邮件地址。
注意
你可以通过访问 rastrack.co.uk/ 来查看其他一些 Raspberry Pi 板卡在全球的位置。
启用 SSH
在Raspberry Pi 软件配置工具中,你还可以做一个有用的自定义设置,即启用 SSH 服务器。SSH 是一种安全协议,除了其他功能外,它还允许你远程访问 Raspberry Pi 的命令提示符。
你可以通过在Raspberry Pi 软件配置工具中选择高级选项来启用 SSH。进入后,选择A4(SSH)并按回车键。选择启用 SSH,然后完成。这使你可以使用 SSH 客户端(如 PuTTY)远程访问你的 Raspberry Pi,并将文件复制到 Raspberry Pi 上。
完成设置
现在你已经定制好了 Raspberry Pi,是时候开始使用它了。为此,你需要通过选择完成退出Raspberry Pi 软件配置工具。系统会提示你重新启动 Raspberry Pi。选择是,然后 Raspberry Pi 会重新启动并加载图形界面,准备就绪。记住,你始终可以通过运行以下命令重新运行Raspberry Pi 软件配置工具:
sudo raspi-config
常见问题
人们在使用 Raspberry Pi 时遇到的最常见问题通常与他们使用的电源有关。如果你的 Raspberry Pi 表现异常,我们建议你尝试更换电源。推荐使用优质电源,因为 Raspberry Pi 对电噪声非常敏感。
另外,检查是否正确地写入了 SD 卡也是一个好主意。如果需要,你可以重新写入 SD 卡。
另一个常见问题是,当人们第一次设置树莓派时,往往会选择错误的显示器输入。树莓派启动时,如果无法找到连接的 HDMI 显示器,它将自动使用组件输出。防止这种情况发生的最简单方法是,在打开树莓派之前,确保你的显示器或电视的输入设置为正确的输入。
总结
本章讲解了如何设置你的树莓派并为你的地区和键盘配置 Raspbian。你还了解了一些在设置树莓派时可能遇到的潜在问题。
在下一章中,我们将介绍 Raspbian 桌面环境。
第四章:Raspbian 桌面简介
现在,你已经设置好树莓派并配置好 Raspbian,是时候开始使用 Raspbian 了!Raspbian 桌面是一个简单、可定制且易于使用的桌面环境。本章将带你了解如何自定义桌面以及其中的一些应用程序。
本章将涵盖以下主题:
-
Raspbian 桌面
-
Linux 文件系统简介
-
Raspbian 桌面之旅
-
虚拟桌面
-
Raspbian 的网络管理
-
自定义你的 Raspbian 桌面
-
预安装软件
-
Xfce 中的文件管理
Raspbian 桌面
Raspbian 桌面与许多其他桌面环境非常相似,例如 Windows 桌面。Raspbian 内置了大量的教育和编程工具。

Raspbian 桌面
为了充分利用桌面环境,你需要将计算机鼠标连接到你的树莓派。
Raspbian 文件系统
在进一步讨论之前,理解 Linux 系统(如 Raspbian)中文件和存储的组织方式非常重要。
如果你习惯了使用 Windows,你很快就会意识到所有文件的组织方式是不同的。曾经用来访问计算机上所有不同存储的驱动器字母不复存在。Linux,像它的“亲戚”Unix 和伯克利软件发行版(BSD,Mac OS X 的来源)一样,将一切组织在一个文件系统层次结构中。
这个文件系统层次结构从一个地方开始,即根目录:/。Linux 中的每个文件和设备都包含在这个单一的层次结构中。
这个工作方式的一个示例是/media文件夹。默认情况下,如果你将 USB 驱动器插入树莓派,Raspbian 会在/media内自动创建一个文件夹。这个文件夹将代表你 USB 驱动器的内容。如果你连接了多个存储设备,它们都会出现在/media中。
一种简单的方式来理解这一点,在 Linux 文档项目中有描述(www.tldp.org/):
“在 UNIX 系统中,一切皆文件;如果某个东西不是文件,它就是一个进程。”
现代 Linux 发行版(如 Raspbian)中有许多不同的目录,这些目录对操作系统的运行至关重要。它们在下表中有详细说明:
| 目录 | 描述 |
|---|---|
/ |
Linux 文件系统的根目录。 |
/bin |
这个目录包含启动和使用 Raspbian 所需的程序。 |
/dev |
我们的树莓派上所有连接的设备都可以在这里找到。设备以特殊文件的形式表示,例如 sda1 和 null。 |
/etc |
这个目录包含所有不同软件包的配置文件。 |
/home |
系统中的每个用户在/home中都有一个文件夹。这有助于将每个用户的文件夹集中在一起。 |
/lib |
软件库包含多个应用程序共享的共享代码。这些文件以.so结尾,并存储在此文件夹中。 |
/mnt and /media |
连接到树莓派的任何其他文件系统都可以在这些文件夹中使用。 |
/opt |
默认情况下未安装在 Raspbian 中的软件通常安装在此文件夹中。 |
/proc |
/proc 文件夹中的所有文件都是特殊文件,允许访问 Linux 内核中的各种统计数据和配置。 |
/sbin |
系统管理员用于管理系统的任何软件应用程序存储在此文件夹中。 |
/tmp |
运行 Raspbian 时使用的任何临时文件通常存储在 /tmp 中。这些文件通常在重新启动时被删除。 |
/usr |
任何普通用户安装或使用的应用程序及其库和文档都安装在此文件夹中。 |
/var |
/var 包含树莓派上不断变化的所有日志和其他文件。 |
/root |
此文件夹类似于 /home,但仅包含 root 用户的文件。 |
/boot |
此文件夹包含树莓派用于引导的配置文件。 |
Raspbian 桌面导览
Raspbian 桌面由几个部分组成。这些是桌面、底部面板、主菜单和面板项目。
桌面
桌面是您不运行任何程序时看到的主要部分。默认情况下,背景图像是树莓派标志,但您可以将其更改为任何您想要的图像。
桌面还包含所有桌面图标。这些图标可以选择并拖动到桌面上。双击这些图标会启动各种程序,并且可以移动这些图标。

Raspbian 桌面
底部面板
Xfce 桌面底部有任务栏。任务栏显示所有正在运行的打开程序。它还包含主菜单和许多面板项目。

底部面板
底部面板的左侧和右侧有几个不同的面板项目。这些面板项目执行各种功能,例如打开网页浏览器或最小化所有窗口。

几个面板项目
默认面板项目执行以下任务:
| 图标 | 任务 |
|---|---|
![]() |
这打开文件管理器 |
![]() |
这打开默认的网页浏览器 |
![]() |
这最小化屏幕上的所有窗口 |
![]() |
这帮助您在虚拟桌面之间切换 |
主菜单
屏幕的左下角是主菜单。此菜单包含了许多预安装在 Raspbian 中的不同程序。这些程序被分为不同的类别,如下图所示。主菜单非常类似于 Microsoft Windows 中的开始菜单。

主菜单
面板项
面板项是小型交互式显示和按钮,可以在无需打开程序的情况下显示重要信息。
默认情况下,Raspbian 在屏幕的右下角包括四个面板项。它们如下所示:
-
CPU 使用率指示器
-
时钟
-
屏幕锁定按钮
-
电源按钮
我们可以在以下截图中看到一些默认的面板项:

虚拟桌面
虚拟桌面是 Xfce 的一个非常有趣的功能,Windows 或 Mac OS X 默认没有。
注意
Mac OS X 包括 Spaces(多个桌面),但默认情况下是禁用的。您可以通过第三方软件(如 VirtualWin)在 Windows 中获得虚拟桌面功能。
虚拟桌面基本上就像其他虚拟屏幕,您可以在已打开的程序之间来回切换。您可以将所有打开的程序布局在不同的虚拟桌面上,然后通过点击虚拟桌面面板项来在这些虚拟桌面之间来回切换。每个桌面可以有不同的背景和面板。您可以使用键盘上的 ALT + TAB 键在窗口之间切换。

两个 Raspbian 桌面
您可以使用 Openbox 配置管理器 创建任意数量的虚拟桌面。这些桌面可以命名,便于您跟踪所有应用程序的位置。
使用 Raspbian 进行网络管理
为了最大限度地利用您的树莓派,它需要连接到互联网。您可以通过两种方式实现:使用以太网电缆或 Wi-Fi。Raspbian 在自动配置网络设置方面做得很好,但有时您需要帮助它。
不幸的是,Raspbian 不包括一个图形界面来配置您的网络连接。您可以使用文本编辑器手动配置网络接口,或者安装一个图形界面来执行此操作。
连接您的树莓派到以太网网络
树莓派 Model B 和 Model B+ 配备了板载以太网端口。默认情况下,Raspbian 配置为自动从网络上的 DHCP 服务器获取 IP 地址。
有时,您可能希望手动为您的树莓派分配一个 IP 地址。这可以通过编辑名为 interfaces 的文件来完成。要编辑此文件,您需要打开一个控制台。执行此操作的具体步骤可以在第六章中找到,控制台。您需要运行的命令如下:
sudo nano /etc/network/interfaces
这将启动 nano 文本编辑器。interfaces 文件默认包含以下内容:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
在 Linux 中,以eth为前缀标识以太网端口。树莓派中的以太网端口称为eth0。interfaces文件包含一个配置 IP 地址的部分。您会看到它默认设置为 DHCP。您可以在这里分配您的 IP 地址。为此,请将iface行更改为以下行:
auto eth0
iface eth0 inet static
address 192.168.2.6
netmask 255.255.255.0
gateway 192.168.2.1
您可以看到您可以输入自己网络配置的位置。修改完成后,按CTRL + x退出 nano,然后按y保存您的更改。
要应用您所做的更改,请运行以下命令:
sudo service networking restart
如果您的配置有任何问题,系统会提醒您进行修正。
将您的树莓派连接到 Wi-Fi 网络
Raspbian 原生支持许多无线适配器,这使得从树莓派无线接入互联网变得非常简单。
您可以在elinux.org/RPi_VerifiedPeripherals找到已测试并且能够与您的树莓派兼容的 Wi-Fi 适配器列表。
将您的 Wi-Fi 适配器连接到树莓派
最好在树莓派关闭时插入 Wi-Fi 适配器。这样做的原因是,当 USB 设备插入时,树莓派的电源可能会出现问题。

配有 USB Wi-Fi 适配器的树莓派 B
连接到无线网络
插入支持的 Wi-Fi 适配器后,它会自动被检测并准备好使用。在继续之前,您需要打开WiFi 配置工具。该工具可以在树莓派桌面上找到。打开工具后,您将看到以下窗口:

WiFi 配置工具
WiFi 配置工具是一个易于使用的程序,用于将树莓派连接到您的无线网络。
要连接到您的无线网络,请执行以下步骤:
-
点击扫描,如下面的截图所示。这将列出所有树莓派范围内的无线网络。只需双击列表中的您的网络。
![连接到无线网络]()
WiFi 配置工具中的扫描结果
-
如果您的 Wi-Fi 网络启用了安全性(强烈建议启用),系统会要求您输入无线密钥。
![连接到无线网络]()
无线网络配置设置
-
输入密钥后,点击添加。您将返回到主无线配置窗口。只需点击您的 Wi-Fi 网络,然后选择连接。
提示
您知道吗,WEP Wi-Fi 加密在 2001 年就被破解,现在任何拥有树莓派的人可以在几分钟内发现 WEP 密钥?
自定义您的 Raspbian 桌面
Xfce 可以通过多种方式进行自定义。这使得你可以个性化桌面环境,按你想要的样子来设置它。
更改显示分辨率
当 Raspbian 启动到桌面时,你首先需要检查 Raspberry Pi 使用的分辨率是否适合你的显示器。Raspbian 会尝试自动选择合适的分辨率,以确保显示的内容看起来正常,但有时它无法正确完成这项任务。如果屏幕上的图像模糊或不合适,你就能发现分辨率设置有问题。
你可以使用显示器设置应用程序在偏好设置中更改分辨率,以适应你的显示器。

显示器设置
可能需要几次尝试才能找到适合你显示器或电视的最佳分辨率,但绝对是值得的!如果你仍然无法调整好显示效果,你也可以自定义显示器的刷新率。
自定义桌面外观
Raspbian 桌面几乎每个部分都可以自定义,从创建额外的面板到更改默认颜色和字体。
要开始操作,点击主菜单,在偏好设置子菜单中你会看到自定义外观和感觉。在这个窗口中,你可以更改几乎所有的内容,从默认样式、颜色、图标、字体到其他许多设置。

自定义外观和感觉对话框
最容易自定义的事情之一就是不同 UI 元素的样式。你可以从多种不同的样式中进行选择:

Openbox 配置管理器
Openbox 是与 Raspbian 一起捆绑的默认窗口管理器。窗口管理器负责桌面环境中窗口的布局和外观。
你还可以通过Openbox 配置管理器自定义桌面,它位于偏好设置中。

Openbox 配置管理器
你可以在 Raspberry Pi 上安装任何为 Openbox 设计的主题。系统预装了许多不同的主题供你选择,或者你可以从互联网上下载许多主题。你可以下载主题的网站之一是 box-look.org/。

不同 Openbox 主题的示例
使用Openbox 配置管理器,你还可以自定义 Raspberry Pi 桌面的许多其他部分,从窗口标题的显示方式到窗口大小调整方式。
查看你可以自定义桌面的所有方式的最佳方法就是试试看!
更改默认背景图片
你的 Raspberry Pi 桌面背景可以轻松自定义。要做到这一点,只需右键单击桌面上的空白区域以弹出菜单:

桌面上下文菜单
从菜单中选择桌面偏好设置;这将打开桌面偏好设置菜单。

桌面偏好设置对话框
桌面偏好设置菜单让你可以自定义桌面上的各种内容。要更改背景图像,只需点击标有壁纸的选择框,然后选择你想要的图片。Raspbian 自带了几张图片供你选择,你也可以从互联网其他地方获取更多图片。
你可以更改桌面的背景颜色,并且通过更改壁纸模式和背景颜色来查看背景图片的显示效果。
自定义你的面板
面板是 Xfce 的一个非常棒的功能。面板可以添加到屏幕的任何部分,并且可以包含任意数量的面板项,面板项可以是从按钮到图表的任何东西。

一个自定义的面板
添加新面板
默认情况下,屏幕底部有一个面板。你可以在任何位置添加任意数量的面板。但在添加过多面板之前要小心,因为过多的面板可能会导致 Raspberry Pi 变慢!
要添加一个面板,右键单击已经存在的面板上的空白区域,然后选择创建新面板。相应的对话框将会出现。

创建面板对话框
在这里,你可以配置新面板的几乎所有方面,包括位置、宽度和外观。你还可以添加面板项。当你点击关闭时,新的面板将出现,准备好让你添加面板项。
你可以通过右键单击你想要调整大小的面板,并选择面板设置来定制现有面板的大小和形状。这将弹出与之前相同的对话框。
添加和删除面板项
默认情况下,主面板上只有几个面板项。在 Xfce 中,默认提供了近二十种其他类型的面板项。将这些面板项添加到你的面板上非常简单。
要做到这一点,右键单击你想要添加面板项的面板,然后选择添加/删除面板项。

添加面板项
你可以添加的一些小部件包括音量控制、自定义菜单和一个空格器,帮助你布置面板上的所有项。
预安装的软件
Raspbian 默认安装了数百款免费的软件。这些软件包括计算器、网页浏览器、编程工具以及一些专业的科学应用程序。
你可以在桌面或主菜单中找到所有应用程序。
网页浏览器
在 Raspbian 默认安装了三款网页浏览器。它们分别是 Epiphany、Dillo 和 Netsurf。每款浏览器都针对不同的用途设计。此外,还可以在树莓派上安装一个称为 Ice Weasel 的 Firefox 版本,这将在《第六章》 The Console 中讨论。
Epiphany
Epiphany(现在称为 Web)是一个免费、易于使用的网页浏览器,具有干净简约的用户界面。它使用 WebkitGTK+ 渲染引擎,类似于 Safari 和 Google Chrome 中使用的引擎。
它是一款快速、功能齐全的网页浏览器,支持 JavaScript 和所有现代网页标准。强烈建议将其作为您在树莓派上的首选网页浏览器。

Epiphany 网页浏览器
Dillo
Dillo 是一款小巧、快速、极简主义的网页浏览器,专为旧的、速度较慢的计算机或者像树莓派这样具有有限内存和处理能力的嵌入式设备设计。
Dillo 不支持 JavaScript 或任何其他类型的脚本。因此,它在浏览大多数现代网站时会遇到问题。不过,它是树莓派上速度最快的网页浏览器,强烈推荐用于浏览老旧网站。

The Dillo web browser
Netsurf
Netsurf 是另一个在 Raspbian 中包含的有趣的网页浏览器。Netsurf 独特之处在于它使用自己的渲染引擎称为 bespoke。
Netsurf 最初是为 RiscOS 开发的,但后来被移植到了许多其他老旧平台,如 AmigaOS 和 Haiku。Netsurf 还有另一个有趣的特点:它可以在没有任何其他图形支持软件(如 X11)的情况下运行。这使它非常适合用作极其安全的网页信息亭。
不幸的是,Netsurf 不支持 JavaScript,因此不适合浏览现代网站。已经计划在版本 4 中解决这个问题。

Netsurf 网页浏览器
LXTerminal
LXTerminal 是 Xfce 默认附带的终端仿真器。LXTerminal 允许您在 Xfce 图形环境中运行控制台应用程序,并充当您与树莓派之间的桥梁,类似于 Xfce 的作用。我们将在接下来的章节中详细讨论如何使用 LXTerminal。
可以同时运行多个 LXTerminal 实例,这使您可以同时运行多个终端应用程序。这些实例可以在它们自己的窗口或选项卡中运行。

LXTerminal
Sonic Pi
Sonic Pi 是包含在 Raspbian 中最令人兴奋的软件包之一。它是一款免费的音频合成器,允许用户使用编程语言创建音效。Sonic Pi 已经被用来创建许多惊人的音效。您未来可以期待听到更多关于它的消息!
它是为教师设计的,经过广泛的课堂试验,使其易于教学和使用。你可以通过访问sonic-pi.net/来听到 Sonic Pi 的实际演示。

Sonic Pi 的实际演示
Debian 参考
如前所述,Raspbian 基于 Debian 操作系统。预装在树莓派上的 Debian 参考应用程序是几乎涵盖操作系统每个部分的极佳参考指南。Debian Reference在网页浏览器中打开,内容长达数百页。它是免费分发的,非常值得阅读。

Debian 参考
集成开发环境
IDLE(集成开发环境)是一个简单的 Python 开发工具,专为 Python 编程设计。Python 是一种易学、高度可读、通用的编程语言。Raspbian 还包括 IDLE 3,这是一个支持更新版 Python 3 编程语言的 IDLE 版本。
IDLE 集成了编辑器、调试器和 Python shell,所有功能都在一个易于使用的应用程序中。IDLE 编辑器具有内置的语法高亮、自动补全和智能缩进功能。它与 Python 调试器集成,允许快速且简便的调试。

IDLE shell
一个不错的附加功能是,Raspbian 包括许多用 Python 编写的优秀游戏;你可以在/home/pi/python_games找到它们。只需在 IDLE 中打开它们并点击运行即可。

Python 游戏《松鼠吃松鼠》
Scratch
继续关注树莓派基金会的教育重点,Scratch 是 Raspbian 中另一个令人兴奋的应用程序。Scratch 由 MIT 终身幼儿园小组于 2006 年创建。
Scratch 是一个易于使用的程序,具有图形化编程语言,允许你创建动画和游戏。它是一个事件驱动的编程语言,围绕精灵(精灵是一个图像)展开。精灵可以移动并响应事件。
精灵可以使用内置的绘图程序绘制,或者从任何图像导入到 Scratch 中。
在 Scratch 中编程非常直观。所有控制精灵的命令都被拖动到脚本中,并按需要的顺序排列。然后运行脚本,结果会立即显示出来。

Scratch 主窗口
Raspbian 包括许多示例项目,作为创建你第一个动画的起点。超过 700 万个项目已在 Scratch 中创建,并上传到 Scratch 网站,与其他 Scratch 用户共享!
你可以通过访问scratch.mit.edu/获取更多关于 Scratch 的信息。
Minecraft Pi
Minecraft 是由瑞典公司 Mojang 于 2006 年创建的,是有史以来最畅销的游戏之一。
Minecraft 是一款沙盒独立视频游戏,最初由瑞典程序员 Markus Persson 创建,后来由瑞典公司 Mojang 发布。2014 年,微软以 25 亿美元收购了 Mojang。
Minecraft 的目标是打破和移动方块。这些方块可以排列成许多不同的形状。有一位用户甚至创造了星际迷航飞船的精确复制品。

Minecraft Raspberry Pi 标志
Minecraft 几乎可以在所有平台上运行,包括 Xbox、PlayStation、iOS、Android、Raspberry Pi 等。它在 Raspbian 上是默认安装的。

Minecraft 演示
Pi Store
随着 Raspberry Pi 的成功,Raspberry Pi 基金会希望为由 Raspberry Pi 创造的应用、游戏、教程和工具提供一个中央平台。2012 年 12 月,Raspberry Pi 基金会创建了 Raspberry Pi 商店。

使用 Raspberry Pi 商店,你可以访问一个庞大的 Raspberry Pi 免费和商业软件集合。这些应用程序包括商店中提供的各种应用,从游戏、开发工具到教程等。
Mathematica
Mathematica 是一款为科学、工程和数学计算设计的软件平台,并包括其编程语言 Wolfram。Mathematica 在教育领域得到了广泛使用。Mathematica 是一款商业产品,但 Raspberry Pi 基金会与开发 Mathematica 的公司 Wolfram Research 合作,将其与 Raspbian 一起捆绑发布。这是它第二次捆绑;第一次是在 1988 年,当时它与由 Steve Jobs 开发的 NeXT 计算机一起捆绑。

Mathematica
Mathematica 包括许多不同的功能,包括实现各种不同的算法、不同的数据可视化和数值运算。几乎所有的财富 500 强公司和主要大学都在使用它。它是科学、技术和商业发展的重要工具,也是许多诺贝尔奖得主科学家的重要工具。
Raspbian 附带的其他软件
Raspbian 附带了许多其他软件,我们在这里没有讨论到。这些软件包括从计算器到简单的文本编辑器和图片查看器等。以下是内置计算器的示例:

以下是 Leafpad 的示例——Raspbian 的文本编辑器之一:

Xfce 中的文件管理
Xfce 自带文件管理器。你可以用它浏览所有连接到 Raspberry Pi 的存储设备。你还可以执行各种文件管理操作,如复制和移动文件。
你可以通过文件管理器面板项启动文件管理器,也可以在主菜单中找到它。

Xfce 文件管理器
任何附加到设备的存储设备都会出现在左侧的位置菜单中,便于访问。你还可以使用文件管理器访问存储在其他服务器上的文件。这是通过前往部分中的网络驱动器菜单实现的。
你的树莓派桌面实际上只是树莓派上的另一个文件夹。因此,你可以通过删除或移除图标来进行自定义。你还可以创建新的文件夹和文件,这些文件会保存在桌面上,方便查找。
总结
Raspbian 桌面是一个简单、易用的桌面环境。它与典型的 Windows 和 Mac OS X 桌面环境有很大的不同,但正如你所发现的,它既强大又易于使用。
了解 Raspbian 桌面最好的方式就是开始探索。记住,如果你弄坏了什么,所需要做的就是重新写入镜像到卡上,然后你就可以重新开始了!
第五章:在 Raspbian 上安装软件
操作系统的主要功能是提供一致的软件平台,无论底层硬件如何。一旦操作系统安装完成,就可以通过许多其他软件包来扩展它。
Raspbian 是一个基于 Linux 的操作系统的良好示例。由于 Raspbian 基于 Debian,它可以访问其庞大的软件仓库。Raspbian 最初可以访问 Debian 仓库中的超过 35,000 个不同软件包,但这个数字还在不断增长。
基于 Debian Wheezy 的 Raspbian 并不正式支持 Raspberry Pi 上的旧版 ARMV6 CPU。在 2012 年 Raspbian 初期开发过程中,开发人员花费大量时间将 Debian 仓库中的庞大软件集合重新编译为 ARMv6K 架构,以最大化 Raspberry Pi 的性能。
本章将介绍几种在 Raspberry Pi 上安装软件的方法。
Linux 中的软件包管理
有许多不同的工具可用于管理 Linux 发行版上的软件,其中一些包括 APT 和 RPM 包管理器。
Raspbian 使用高级包装工具,也称为 APT。APT 处理任何软件包的依赖关系。软件包的安装和卸载由一个名为 dpkg 的应用程序处理。这是安装任何软件到你的 Raspberry Pi 上的推荐方式。Raspbian 的每个部分都打包成一个软件包。
APT 可以自动从预配置的仓库中下载你想要安装的软件。仓库是一个包含已编译软件的集合,可以进行安装。这些仓库会根据你的地理位置自动选择,以最大化下载速度。它还会自动处理 Raspberry Pi 上所有已安装软件包的更新。APT 于 1998 年首次发布,通常被誉为 Debian 最佳特性之一。
安装软件的方法
有几种不同的方法可以在 Raspberry Pi 上安装软件,包括:
-
apt-get
-
图形用户界面包管理器
-
Aptitude
-
Raspberry Pi 商店
-
源代码
所有这些方法,除了从源代码安装之外,都使用 APT 和 dpkg 来安装软件包。
dpkg
dpkg 是 Raspbian 软件包管理系统的核心软件应用程序。它是一个工具,实际上是从 .deb 文件中安装软件包。
一个 .deb 文件包含三部分内容:
-
一个包含安装软件包所需版本的 dpkg 的 Debian 二进制文件
-
一个控制档案,包含安装该软件包所需的所有信息
-
一个包含实际软件本身的数据档案
dpkg 会读取 .deb 文件并确定是否已安装所有必需的软件。如果所需的软件尚未安装,它会告诉你所需的软件。
APT
APT 是一个前端工具,使得使用 dpkg 更加简便。它预先配置了多个软件源,其中包含了 Raspberry Pi 上所有可以安装的官方软件包。
这些软件源根据每个软件包包含的软件类别被分为多个不同的存档或组。添加其他第三方软件源也非常简单。
main 存档
main 存档包含了构成 Raspbian 发行版的所有软件。如果包不在这个存档中,就不被视为 Raspbian 发行版的一部分。这个存档中的所有包都不依赖于任何外部软件。Debian 项目要求该存档中的所有包必须是自由的,且可以自由分发、修改和共享。这个存档中的软件得到 Debian 项目的支持。
contrib 存档
任何依赖于 main 存档中没有的其他软件包的包都包含在 contrib 存档中。contrib 存档中可能还包含包装器包和与非自由软件一起工作的其他自由软件。
non-free 存档
任何不符合 Debian 项目自由软件指南的软件都包含在 non-free 存档中。其他有可能影响其自由分发的软件也包含在此存档中。
包验证
官方的 Raspbian 软件源通过数字签名进行签名,以确保在下载时软件包不会损坏。这是通过使用公钥加密和数字证书来证明软件包来自它所声称的来源。
使用终端
在 Raspberry Pi 上安装软件的最常用方法是使用 apt-get。它是一个非常强大的命令行工具。
要运行 apt-get,你需要使用命令行工具。该命令行工具通过一个默认安装在 Raspbian 中的应用程序提供。这个应用程序叫做 LXTerminal。
你可以通过双击桌面上的图标来启动 LXTerminal。

LXTerminal
LXTerminal 允许你使用 bash 命令行(以及其他命令行,如果需要)运行命令。你将在第六章中了解更多关于 bash 命令行的内容,终端。
通常,每个命令都在一行内运行。当你输入完命令后,只需按下 Enter 键来执行它。程序的输出将显示在接下来的几行中。如果你想重新运行或修改刚输入的命令,只需按键盘上的上箭头键,你将看到之前的命令再次显示。然后你可以通过再次按 Enter 键来编辑并运行它。
提示
别忘了,Linux 是区分大小写的,因此 Apt-get 命令不起作用,但 apt-get 命令有效!
Linux 是一个本质上安全的操作系统。本章的大多数命令需要管理员权限。判断是否需要 root 权限非常简单。如果需要,你会看到如下信息:
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
要以系统管理员身份运行命令,只需将其添加到任何需要运行的命令的开头:
sudo
根据你是否设置了密码,你可能会被要求输入密码。运行apt-get非常简单,只需键入apt-get并按Enter键:
apt-get
apt-get命令将返回有关不同选项的大量信息。我们感兴趣的选项有:
-
apt-get update -
apt-get install -
apt-get remove
apt-get update
我们首先要做的是确保 Raspbian 知道软件的最新版本是什么。apt-get update命令会自动连接到 Raspbian 仓库,并下载最新的软件包列表。
如果你最近没有运行过,建议在安装任何软件之前先运行apt-get update命令。
apt-get install
当你运行install命令时,apt 包管理系统的真正威力显现出来。为了在你的 Raspberry Pi 上实际安装软件包,你需要运行apt-get install,后面跟上软件包的名称。
考虑以下命令:
sudo apt-get install apache2
该命令将安装 Apache2 网络服务器。这是世界上最流行的网络服务器之一,在编写本书时,其市场份额为 59%。Apache2 非常强大,但根据其配置,可能会相当占用资源。
你在控制台中会看到类似于下图所示的内容:

使用 apt-get install 安装 Apache2
apt-get命令会自动连接到互联网并下载Apache2包以及 Apache2 操作所需的所有包。你可能会被要求确认是否继续安装软件。只需按Y键,然后按Enter键。软件包安装并配置完成后,你的新软件就准备好使用了!
有许多可用的包来扩展 Apache2 的功能。这些包默认并不会安装。如果你需要安装这些附加包,你需要手动安装它们。
有一些可以安装的包,称为元包。这些包代表了一组功能特定的包,可以为你的 Raspberry Pi 添加特定功能。例如,如果你使用的是一个基于 Raspbian 的发行版,并且没有包含图形用户界面,你可以通过安装一个元包一次性安装这个界面。这些包的行为与普通包相同,但实际上它们是多个不同包的集合。你还可以使用*通配符来表示多个字符。要安装所有可用的 PHP 包,你可以运行以下命令:
sudo apt-get install php-*
apt-get remove
有时候,你可能会想卸载一些已经安装但不再需要的软件包。卸载软件包和安装一样简单。你只需使用apt-get remove命令。
运行以下命令:
sudo apt-get remove apache2
你应该会得到类似这样的输出:

使用 apt-get remove 卸载 Apache2
提示
如果你想玩得开心,可以试试运行apt-get moo!
搜索软件包
使用apt-get可以安装的包种类繁多,可能很难找到你想要安装的软件包。幸运的是,查找可以安装的软件包非常简单。你只需使用apt-cache search工具进行搜索。
以我们使用Apache2软件包的示例为例,你可以通过运行以下命令查看Apache2软件包的其他扩展:
sudo apt-cache search apache2
apt-cache search工具将列出所有描述中提到Apache2或依赖Apache2的软件包。
Synaptic 图形界面软件包管理器
在树莓派上安装软件有多种方式。使用apt-get是一种方法。另一种方法是使用图形界面工具,比如Synaptic 软件包管理器。不幸的是,它并没有默认安装在 Raspbian 中,但可以通过apt-get轻松安装。
要安装 Synaptic,可以在 LXTerminal 中运行以下命令:
sudo apt-get install synaptic
Synaptic 的安装在树莓派上需要几分钟,因为它是一个相对较大的应用程序。你可以在主菜单的其他子菜单中找到Synaptic 软件包管理器。

Synaptic 软件包管理器
在 Synaptic 中搜索和安装软件包
你可以通过搜索按钮在 Synaptic 中查找软件包:
-
只需点击搜索按钮并输入你要查找的软件包名称。
![在 Synaptic 中搜索和安装软件包]()
搜索软件包
-
点击搜索后,系统将显示所有符合搜索条件的软件包。只需勾选你想要安装的软件包并选择标记为安装。你可以选择任意多个软件包。
软件包也会按类别在左侧进行组织。这是查找你所需软件包的一种非常简单的方式。
![在 Synaptic 中搜索和安装软件包]()
选择软件包
-
当你点击应用时,Synaptic 会要求你确认是否要安装已选择的软件包。点击应用后,软件包将开始安装。
![在 Synaptic 中搜索和安装软件包]()
-
包安装可能需要几分钟时间,具体取决于你安装的包。可以通过选择详细信息来跟踪安装进度。
![在 Synaptic 中搜索和安装软件包]()
Synaptic 安装 Apache2 网页服务器
使用 Synaptic 卸载软件包
使用 Synaptic 卸载包与安装包非常相似:
-
如果你想卸载一个之前安装的软件包,你需要搜索它。你还可以通过选择左侧的状态过滤器来查看已安装的所有软件包。这会让你看到一个已安装软件包的列表。默认的 Raspbian 配置中安装了超过 850 个软件包,所以搜索会更快捷。
-
一旦你找到了想要卸载的包,简单地点击复选框并选择
标记为删除。 -
当你完成选择要删除的包后,点击应用。

使用 Synaptic 移除包
Pi Store
Pi Store 是另一个可以用来在树莓派上安装软件的工具。Raspbian 默认安装了树莓派商店,可以通过桌面上的Pi Store图标打开。Pi Store 将大多数可安装在树莓派上的最佳软件聚集在一个地方。

Pi Store
Pi Store 是你树莓派上唯一一款实际销售商业软件和其他内容的软件。为了能够从 Pi Store 购买非免费软件,你需要注册并提供支付方式,比如信用卡。
Pi Store 非常易于使用:
-
只需找到你想安装的软件,点击立即购买。
-
使用你的账户登录,然后开始吧!
Pi Store 会自动处理所有已购买软件的更新。
从源代码安装软件
所有的软件程序都是由不同的文件构建的。这些文件称为源代码,并且是用编程语言编写的。在 Linux 上最常用的编程语言是 C 和 C++。
你可能有很多理由想要下载并安装作为源代码分发的软件。以下是其中的一些原因:
-
软件在 Raspbian 仓库中不可用。
-
软件的最新版本不在 Raspbian 仓库中。
-
软件中的功能在 Raspbian 仓库中的包中不可用。
从源代码安装软件有一些缺点,以下是几个例子:
-
对于从源代码安装的任何软件包,更新不会自动安装。
-
安装软件需要额外的软件来进行编译和安装。通常,这个软件是
build-essential元包。 -
根据软件的复杂性,编译和安装软件可能需要很长时间。
如果你找到了一个你想在树莓派上下载并安装的软件包,首先需要确保你已经安装了构建该应用所需的所有工具:
-
安装
build-essential包后,你可以安装最常用的工具:sudo apt-get install build-essential这将安装你需要的所有软件工具,用于编译大多数 C 和 C++应用程序,包括 make 应用程序以及 gcc 和 g++编译器。
-
现在你需要下载你想要安装的应用程序。在这个示例中,我们将使用 Apache2 Web 服务器。你可以从
apache.mirror.serversaustralia.com.au//httpd/httpd-2.4.10.tar.bz2下载 Apache2。 -
你可以使用网页浏览器下载源代码。另一种下载代码的简便方法是使用 wget 应用程序。它会自动下载文件并将其存储在你的树莓派中:
wget http://apache.mirror.serversaustralia.com.au//httpd/httpd-2.4.10.tar.bz2一旦你在树莓派上下载了源代码,就需要从归档中提取软件。归档文件只是一个包含许多其他已压缩文件的文件,以便于分发。
-
要提取
.tar.bz2归档(例如 Apache2 应用程序),运行以下命令:tarxvfhttpd-2.4.10.tar.gz具体命令会根据你要安装的软件有所不同,但通常与你刚才使用的命令非常相似。
这些命令将解压Apache2归档中的所有文件,并将它们放入一个包含整个Apache2源代码的文件夹中。
几乎所有你下载的软件包都会包含一个文件,叫做README.md。这个文件通常包含你需要遵循的安装和构建软件的说明。
以下是你需要遵循的正常软件包构建过程:
-
./configure -
make -
make install
这些命令执行了很多过程。我们从./configure开始。./configure命令是一个脚本,它生成一个MakeFile文件,用于make编译软件。这个MakeFile文件是根据你的树莓派进行定制的。它还会告诉你是否需要安装其他依赖项,以便能够构建软件。
make命令是将软件从源代码编译成你可以在树莓派上运行的应用程序的命令。这个编译过程会显示很多信息,进度可能需要相当长的时间。Linux 内核的编译可能需要超过半小时,所以最好去泡杯咖啡!
应用程序编译完成后,你需要安装它们。幸运的是,大多数应用程序都包含一个安装脚本,能够为你完成这一步。只需运行make install!
提示
只需记住,这些说明是通用的,某些软件包可能需要不同的安装方式。
安装更新
Raspbian 持续开发中,不断发布包含修复、新特性和安全改进的更新。强烈建议你安装所有可用的更新。你可以通过多种方式做到这一点,包括使用apt get和 Synaptic。
使用 apt-get 安装更新
apt-get 命令可以用来更新 Raspberry Pi 上的软件。你需要做的第一件事是让 apt-get 获取所有可以安装的软件包列表:
sudo apt-get update
这个命令可能需要几分钟,具体取决于你的网络连接。要执行软件包升级,你需要运行以下命令:
sudo apt-get upgrade
此命令将从 Raspbian 软件库下载并安装你 Raspberry Pi 上的所有最新软件包。这样,你的设备就完全更新了!
使用 Synaptic 安装更新
更新也可以通过Synaptic 软件包管理器安装:
-
这可以通过选择刷新按钮来完成。
![使用 Synaptic 安装更新]()
使用 Synaptic 刷新可用的软件包
-
一旦软件包列表刷新完成,点击标记所有升级。
-
系统会要求你确认要升级的软件包。只需选择标记,然后点击应用,所有软件都会更新到最新版本。
![使用 Synaptic 安装更新]()
选择要升级的软件包
你可以安装的其他软件
默认的 Raspbian 安装中只能安装这些软件。Raspbian 中包含的大多数软件面向教育市场。因此,你的 Raspberry Pi 上没有预装很多生产力软件。幸运的是,这很容易解决!
LibreOffice
LibreOffice 是一个免费的完整办公套件,包含许多与 Microsoft Office 类似的功能。它由多个应用程序组成,并可通过 Raspberry Pi Store 安装。

以下是其中一些应用程序:
| 图标 | 名称 | 描述 |
|---|---|---|
![]() |
Writer | Writer 是一个完整的文字处理器,功能类似于 Microsoft Word。 |
![]() |
Calc | Calc 是一个电子表格应用程序,具有许多功能,包括图表。 |
![]() |
Impress | Impress 是一个设计用于创建演示文稿的应用程序。 |
![]() |
Base | Base 是一个类似于 Microsoft Access 的数据库应用程序,允许你创建简单的数据库应用。 |
LibreOffice 中还有许多其他未提及的应用程序。查看所有功能的最佳方法是下载 LibreOffice 并试一试!你可以在 www.libreoffice.org 找到更多信息。
IceDove 电子邮件客户端
另一个重要的生产力工具是 Raspberry Pi 的 IceDove 电子邮件客户端。IceDove 是流行的 Thunderbird 电子邮件客户端,由于与 Thunderbird 和 Firefox 徽标的版权问题,Debian 对其进行了品牌重塑。

IceDove
IceDove 是一个优秀的电子邮件客户端,强烈推荐使用。您可以通过运行以下命令安装 IceDove:
sudo apt-get install icedove
IceWeasel
另一个优秀的应用程序是 IceWeasel 网络浏览器。

IceWeasel
IceWeasel 是 Firefox 的重新品牌化版本,支持您从现代网络浏览器中期待的所有功能。
您可以通过运行以下命令安装 IceWeasel:
sudo apt-get install iceweasel
总结
在本章中,您学习了几种在树莓派上安装软件包的方法,以及您可以使用的一些工具。由于庞大的 Debian 仓库和基于 Linux 的操作系统(如 Raspbian)的开源特性,树莓派上有非常多样化的软件可供选择。现在您已经知道如何在这台设备上安装软件,接下来只需开始寻找您所需要的内容。
第六章:控制台
在基于 Linux 的操作系统(如 Raspbian)的漂亮图形界面背后,是控制台。
控制台是与 Raspbian 操作系统内部进行通信的最基本方式。控制台的历史可以追溯到计算机的起源,那时与计算机的接口是键盘和打字机。那时,操作员会输入一个命令,结果会显示在他们面前。

打字机
幸运的是,随着计算机显示器的发展,我们不再需要打字机与计算机进行通信,且现在有许多不同的方式可以做到这一点。你已经学会了如何使用 Raspberry Pi 的图形用户界面 Xfce,本章将向你介绍如何使用内置的控制台终端应用程序 bash。
Bash
Bourne again shell(bash)是一个由 GNU 项目开发的控制台 shell,于 1989 年发布。最初由 Brian Fox 编写,它已经成为事实上的标准,并在几乎所有 Linux 操作系统、OS X、Novell NetWare、Android 以及 Windows 中默认使用。bash 的灵感来源于 sh shell,在 bash 创建时,sh shell 非常流行。
bash shell 是作为 Bourne shell 的开源替代品编写的,而 Bourne shell 是 Unix 的默认命令行解释器。bash 支持许多功能,包括命令和文件名通配符的自动补全。
启动 bash 命令解释器
bash 命令解释器在 Xfce 环境中通过 LXTerminal 应用程序提供给我们。其他终端客户端如 Yakuake 可以通过 apt-get 安装。如果你已将 Raspbian 配置为不启动 Xfce 桌面环境,bash 会在你登录后自动启动。
你可以通过双击桌面上的图标来启动 LXTerminal。

LXTerminal
你可以根据需要启动并运行任意数量的 LXTerminal 实例,但别忘了你的 Raspberry Pi 并没有无限的资源。
注意
如果你没有使用 Xfce 桌面环境,当你登录时会启动 bash。
你首先会注意到你有一个命令提示符。默认情况下,这个命令提示符会显示你正在工作的当前目录、你的 Raspberry Pi 主机名(默认为 raspberrypi)和你的用户名(默认为 pi)。
当你在文件系统中移动时,你会看到你所在目录的名称。
要使用 bash 命令解释器运行命令,只需输入命令并按下 Enter 键。命令会运行并显示结果。在命令运行时,直到它完成,你无法运行其他命令。
提示
如果你希望让某个命令在后台运行,只需在命令的末尾添加&运算符。这将使命令在后台运行。
Linux 是一个完整的多处理系统,你可以运行任意数量的 LXTerminal 实例。要查看树莓派后台正在运行的处理命令,只需运行ps –a。
基本的 bash 命令
学习 bash 的最佳方法就是开始使用它。记住,如果你真的弄砸了事情,所需做的只是重新镜像你的 SD 卡,然后就能继续使用了!
获取本章中提到的任何命令的更多信息是很容易的。你可以通过使用man命令来做到这一点。
man命令启动 Linux 内置的文档系统。几乎每个可用的命令都有相应的文档在 man 系统中。
例如,要获取关于ls命令的更多信息,只需运行以下命令:
man ls
这将启动man程序并显示你需要了解的关于ls程序的所有信息。

man ls 命令
要在man程序中浏览,你可以使用键盘上的箭头键。如果你希望跳过整页内容,可以按空格键。当你读完信息后,可以按q键退出。
提示
别忘了,Linux 是区分大小写的操作系统,在运行命令时使用正确的大小写非常重要。
命令的自动补全
bash 的一个最有用的功能是它能够自动完成你正在输入的命令名称。这就像按下Tab键一样简单。
例如,如果你想运行命令nano以启动 nano 文本编辑器,只需键入以下命令:
nan
现在按下Tab键。bash 将自动完成命令并显示如下内容:
nano
这可以节省大量时间。如果有多个自动补全的组合,你需要按下Tab键两次。这将导致 bash 列出所有不同的可能性。

bash 的自动补全系统
以 root 身份运行命令
Linux 本身是一个安全的操作系统。操作系统的每一部分都默认配置为安全。每个文件都由特定用户拥有,该用户可以为该文件分配权限,以限制其他用户和组访问该文件。
默认情况下,在 bash 中运行的所有命令都是作为当前用户运行的。当前用户通常是 Pi 用户。此用户是标准用户,这意味着你无法运行可能影响其他用户的命令,例如安装软件或更改你的树莓派的网络配置。
幸运的是,作为 root 或超级用户运行命令很容易。这个用户可以无限访问操作系统的所有部分,但必须小心使用。
要以超级用户身份运行命令,你可以使用sudo工具。sudo工具让你可以以不同于当前登录用户的身份运行命令。
为了使用sudo工具以 root 身份运行命令,你只需要在想要运行的命令前加上sudo。
以下是一个命令的例子:
sudo apt-get moo
它将以 root 身份运行apt-get应用程序。这个特定的命令会触发apt-get 复活节彩蛋,证明计算机程序员有时也有幽默感!

作为 root 用户运行命令,甚至能让你的树莓派发出“哞”声!
使用 bash 在文件系统中移动
使用命令解释器(如 bash)的最基本部分是能够在 Linux 文件系统中移动。理解 bash 如何表示目录是很重要的。bash 有两种不同的方式来表示目录:使用绝对路径和相对路径。
绝对路径
绝对路径是从/(根目录)开始描述文件或文件夹位置的路径。它容易识别,因为它总是以/开头。
绝对路径的一个例子是/home/pi/Desktop。这个路径是包含你桌面上所有项目的文件夹。
相对路径
相对路径是基于你在文件系统中的位置描述文件或文件夹的路径。
相对路径的一个例子是../Desktop。这意味着一个名为Desktop的文件夹存储在上一级目录中。
在 bash 中有几个你应该了解的特殊路径,如下所示:
| 路径 | 描述 |
|---|---|
/ |
这是 Linux 文件系统的根目录,是你能拥有的最高路径。 |
./ |
代表你当前所在的目录。 |
../ |
这是你所在目录的上一级目录。 |
~ |
代表你的主目录。当你以 Pi 用户身份登录时,这将是/home/pi。如果你以 root 身份运行命令,这将是/root。 |
提示
如果你没有带有~键的键盘,你可以按F12键代替。
操作文件
现在你已经了解了路径在 bash 中的表示方式,是时候学习如何操作它们了。
有许多命令可以用来操作 bash 中的文件,包括以下表格中的命令:
ls |
cd |
pwd |
cat |
head 和 tail |
|---|---|---|---|---|
cp |
mv |
rm |
mkdir |
touch |
adduser |
addgroup |
passwd |
chmod |
chown |
ls
ls 可能是最常用的基础功能,经常用来查看当前目录下存在哪些文件。你可以使用列表命令(ls)来完成此操作。默认情况下,显示的是你当前所在的文件夹。如果你想查看其他文件夹的内容,只需在ls命令后加上路径。

主目录的内容
提示
ls 不会显示以(.)开头的文件或文件夹。这是因为任何以(.)开头的文件或文件夹都是隐藏的。
ls命令有很多不同的选项,这些选项会改变屏幕上的输出。一些常用的ls参数如下:
| 选项 | 描述 |
|---|---|
-a |
显示隐藏的文件和文件夹 |
-l |
使用长列表格式。这将显示文件大小、文件权限和文件的所有者 |
-h |
以人类可读的格式显示所有文件的大小 |
cd
Linux 文件系统由许多不同的文件和文件夹组成。在使用 bash 时,能够在文件系统中移动非常重要。这是通过使用cd(更改目录)命令来完成的。
cd命令使用起来很简单。只需要运行cd命令并加上你想要切换到的文件夹路径,无论是绝对路径还是相对路径,都能改变当前目录。

在目录之间切换
运行cd后,你所在的目录称为当前工作目录。除非你特别指定,否则 bash 会在当前工作目录中查找你运行的任何命令和使用的任何文件。如果命令不在当前文件夹中,bash 将会在其他几个预定义的文件夹中查找命令。这些文件夹在 bash 的PATH环境变量中指定。
pwd
有时候,在浏览 Linux 文件系统时,你可能需要知道自己当前所在的目录。你可以使用pwd(打印工作目录)命令来查看。

pwd 命令
cat
当你需要快速查看文件内容时,cat命令非常方便。运行cat命令并加上文件名后,它会在屏幕上显示该文件的内容。

cat 命令
cat命令有几个选项,可以用来定制文件在屏幕上的显示格式。以下是一些cat命令的参数:
| 选项 | 描述 |
|---|---|
-n |
显示文件中的行号 |
-E |
在每行的末尾添加$,这样你可以看到行的结束位置 |
提示
记住,Linux 中的一切都是文件。你可以使用cat命令读取来自树莓派设备的数据,包括它的串口和摄像头。通过运行cat /dev/video0 > video.record,你可以录制摄像头输入的视频。
head 和 tail
另一个实用的命令是 head 和 tail,它们可以用来查看文件的内容。head 和 tail 是一对命令,分别显示文件的开头和结尾。head 命令非常有用,如果你想查看一个大文件是否是你要找的文件,而且文件太大,无法使用 cat 显示时。tail 命令在查看日志文件中的最后几条记录时非常方便。

head 和 tail 命令
head 和 tail 命令有许多不同的选项,你可以用它们来定制文件在屏幕上的输出格式。最重要的是 –n 选项。–n 选项后面跟一个数字,将显示文件的 n 行。你可以通过运行 man head 或 man tail 来查看其他选项。
cp
cp 是 bash 中另一个重要的命令。cp 用于将文件或文件夹从一个文件夹复制到另一个文件夹。默认情况下,cp 会覆盖目标文件夹中已经存在的文件,所以要小心!
使用 cp 时,你需要首先指定你想复制的文件或文件夹,然后指定目标文件夹。如果你选择一个目录,它只会复制这个目录。如果你想复制目录的精确副本,则需要使用 –r 命令。–r 命令会递归地复制文件夹。
基本上,这个命令的作用是创建你正在复制的文件夹的精确副本,因此每当你复制目录时,你很可能会使用这个选项。

复制文件和文件夹
cp 命令有许多不同的选项,可以改变它复制文件或目录的方式,如下表所示:
| 选项 | 描述 |
|---|---|
-r |
递归地复制文件或目录 |
-f |
如果目标目录中的现有文件无法打开,则删除该文件并重新复制 |
-p |
保留正在复制的文件的所有者和时间戳 |
-v |
启用详细模式,显示正在复制的文件名 |
mv
有时候,你并不想复制文件或目录,而是想要移动它们。mv 命令正是用来做这件事的。它的语法与 cp 的语法完全相同。要移动文件或文件夹,只需按照以下截图操作:

移动文件
与 cp 不同,mv 会自动移动整个文件或文件夹,并且没有 –r 选项。mv 有若干其他选项,如下所示:
| 选项 | 描述 |
|---|---|
-f |
覆盖目标位置的所有文件和文件夹 |
-u |
只有在目标文件夹中的文件较旧时才会移动文件 |
rm
有时候,文件或目录不再需要,需要被删除。为此,可以使用 rm 命令。
要删除文件或文件夹,只需运行rm命令,后跟你想要删除的文件或目录。Raspbian 和大多数 Linux 发行版并不提供回收站功能。这意味着一旦删除某个文件,它将被永久删除。

删除文件
提示
很少有命令可以破坏 Linux 发行版。sudo rm –rf /就是其中之一。这个命令会从根目录开始,删除你设备上的每个文件,包括任何附加到你的 Raspberry Pi 的可移动和网络驱动器上的文件。无需多言,使用–r和–f标志时要格外小心。
默认情况下,当删除一个目录时,如果目录中有文件,rm命令会停止操作。要删除该目录,你需要使用–f标志来强制删除文件夹。以下是rm命令的一些参数:
| 选项 | 描述 |
|---|---|
-f |
删除文件时不会提示确认 |
-i |
删除每个文件之前会提示确认 |
-r |
递归删除文件和文件夹 |
mkdir
你将经常需要创建一个新文件夹以便将文件进行组织。使用mkdir(创建目录)的目的正是如此。要使用mkdir,你只需要输入mkdir,然后跟上你想要创建的目录名称。

使用 mkdir
一旦你创建了目录,它将立即可以使用。你可以用它来组织你的文件。以下是一些mkdir的参数:
| 选项 | 描述 |
|---|---|
-p |
如果需要,它会创建任何父目录——例如,mkdir new/directory/with/parents –p |
-v |
每创建一个目录时都会显示一条信息 |
touch
touch是一个简单的命令,用于创建一个空文件(如果文件不存在的话)。如果文件已经存在,它会更新文件的访问时间为命令执行时的时间。
touch通常在需要某个文件存在时使用。例如,创建空的日志文件。使用touch时,只需运行touch,后跟你想要创建或更新访问时间的文件名。

使用触摸
adduser
在 Linux 中,每个文件都有一个所有者。这样有助于保持系统的安全。默认情况下,/home/pi目录中的所有文件都由 Pi 用户拥有。所有用户也都属于一个组。你可以根据文件所有者的用户和组来分配权限。
你可以通过adduser命令将用户添加到 Raspbian 系统中。为此,运行adduser,后跟你想要创建的用户名。由于adduser是一个系统命令,你需要在前面加上sudo。

创建用户
adduser 命令会问你几个问题,包括用户名和密码。如果你不想提供姓名或电话号码,直接按 Enter 键即可。adduser 命令还会创建一个与新用户同名的组。
你可以通过运行以下命令轻松查看 Raspbian 系统中的用户:
cat /etc/passwd
/etc/passwd 文件包含了 Raspbian 中所有的用户。
addgroup
有时,你需要创建一个新组来按要求组织文件权限。为此,可以使用 addgroup 命令。

创建新组
addgroup 命令使用起来很简单。你只需要在 addgroup 命令后添加组的名称。
新的组将被创建,并带有一个新的 ID。要查看 Raspbian 中已有的组,可以运行以下命令:
cat /etc/group
passwd
作为你自己 Linux 系统的系统管理员,你拥有很大的权限。你可以使用这个权限通过 passwd 命令更改用户的密码。你可以使用 passwd 的几种不同方式。一个是更改你自己的密码。另一种方法是更改系统中另一个用户的密码。
更改你的密码
要更改自己的密码,请运行如下截图所示的 passwd 命令:

更改你的密码
系统会要求你输入当前密码。输入后,你需要输入新密码两次。
更改其他用户的密码
更改其他用户的密码和更改自己密码一样简单。为此,只需在 passwd 命令后添加用户名。此命令需要以 root 用户身份运行,因此需要在前面加上 sudo。

更改其他用户的密码
如果你需要更改其他人的密码,这非常有用。默认情况下,Raspbian 中没有设置 root 密码。要设置它,可以运行 sudo passwd。
chown
如前所述,Linux 是一个多用户系统,所有文件都有所有者。有时,需要更改所有者。要做到这一点,可以使用 chown 命令。chown 可以更改文件或目录的用户。
使用权限的一个好例子是 Apache 网页服务器。/etc/apache2 目录中的所有配置文件由 Apache2 用户拥有,此外,位于 /var/www 目录中的文件也由 Apache2 用户拥有,该目录是 Apache2 服务的网站所在位置。
有时,当你向该目录中添加一个文件时,需要将文件的所有者更改为 Apache2 网页服务器。如果你不这样做,Apache2 将无法将文件提供给任何想要查看它的人。
chown 需要多个参数。它们是你要更改所有者的文件或目录的新所有者和组。

更改 Apache2 网站根目录中所有文件的所有者
所有者和组需要用 (:) 分隔。在前面的例子中,用户和组都是 Apache2。
你可以为 chown 命令添加几种不同的选项,具体如下:
| 选项 | 描述 |
|---|---|
-R |
这将递归地更改文件夹中所有文件和文件夹的所有者 |
-v |
这会显示每个处理文件的消息 |
一些 chown 命令的参数
chmod
文件的另一个属性是其权限。这些权限描述了谁可以对文件和目录执行什么操作。以下是可用的权限:
| 所有者 (o) | 读取 | 写入 | 执行 |
|---|---|---|---|
| 组 (g) | 读取 | 写入 | 执行 |
| 所有用户 (a) | 读取 | 写入 | 执行 |
Linux 文件权限
每个权限由一个字母表示,如下表所示:
| 读取 | r |
|---|---|
| 写入 | w |
| 执行 | x |
如果运行 ls –ll 命令,你将能够查看当前所在文件和目录的权限:

/home/pi 目录的默认权限
权限被分为三组。前三个描述用户对文件的权限,接下来的三个描述组的权限,最后三个描述所有用户的权限。
ocr_pi.png 文件的 rw-r—r— 权限如下:
| 权限 | |
|---|---|
| 所有者 | 读取和写入 |
| 组 | 读取 |
| 所有用户 | 读取 |
ocr_pi.png 的权限
权限的八进制表示
权限也可以使用八进制表示法进行描述。这种方式稍微复杂一些,但非常灵活。
| 八进制表示法 | 权限 |
|---|---|
| 0 | 无权限 |
| 1 | 执行 |
| 2 | 写入 |
| 3 | 写入和执行 |
| 4 | 读取 |
| 5 | 读取和执行 |
| 6 | 读取和写入 |
| 7 | 读取、写入和执行 |
要描述文件的权限,只需计算你想授予的权限。在以下示例中,我们希望 demo.txt 文件具有以下权限:
| 权限 | |
|---|---|
| 所有者 | 读取和写入 |
| 组 | 仅读取 |
| 所有用户 | 无权限 |
权限示例
要计算权限,我们从所有者开始,查找读取和写入权限。然后我们对组和所有用户的权限做同样的操作。权限如下:
| 权限 | |
|---|---|
| 所有者 | 6 |
| 组 | 4 |
| 所有用户 | 0 |
文件的八进制权限
这些权限组合成 640。chmod 命令使用此表示法来设置文件或文件夹的权限。

修改 demo.txt 文件的权限
也可以单独添加和删除文件或文件夹的权限。为此,用户可以使用前两张表中描述的表示法。
我们有一个 demo.txt 文件,其权限如前面章节所示的截图所示(默认的 /home/pi 目录权限)。权限如下:
| 权限 | |
|---|---|
| 所有者 | 读取和写入 |
| 组 | 读取 |
| 所有用户 | 无权限 |
如果我们想要为同组成员添加写入权限,可以按照以下截图所示操作:

更改 demo.txt 文件的权限
+ 符号添加权限,– 符号则移除文件权限。
我们可以看到,现在该文件拥有组读取和写入权限。使用这种方法的缺点是,你需要分别设置文件的所有者、组和所有用户的权限。
chmod 命令有几个其他的命令行参数,如下所示:
| 参数 | 描述 |
|---|---|
-R |
这会更改所有目录和文件的权限 |
-v |
为每个被处理的文件显示一条消息 |
-c |
仅显示那些权限被更改的文件 |
chmod 命令的命令行参数
bash 中的重定向
bash 中的一个高级特性是重定向运算符。这些运算符允许你将命令的输入或输出重定向到另一个命令或文件。虽然这听起来很简单,但它是一个非常强大的功能。bash 内置了多个重定向运算符,如下所示:
| 运算符 | 描述 |
|---|---|
| | | 这是一个通用命令,类似于 > 运算符进行链式操作 |
> |
该运算符将命令的输出重定向到文件 |
< |
该运算符读取文件并将其传递给命令 |
>> |
该运算符将命令的输出追加到文件中 |
重定向运算符
| 运算符是一个通用的命令更改工具。一个简单的例子是将它与cat命令和more程序一起使用。more程序是一个简单的程序,可以让你在屏幕上前后翻阅文件内容以进行阅读。more命令从cat命令获取你要读取的数据。|运算符将两个程序连接在一起。

使用 | 运算符连接的 more 和 cat 命令
> 和 >>
> 和 >> 运算符是非常强大的运算符,它们将程序输出的数据写入文件。> 运算符会替换文件,而 >> 运算符则是将内容追加到文件中。
记住,Linux 中的每样东西都是文件,因此你可以使用 > 和 >> 运算符将输出重定向到串行端口或打印机。

> 运算符将 ls 命令的结果写入文件
<
< 运算符类似于 > 运算符,只是它读取文件的内容并将其传递给程序。这可以以多种方式使用,在某些方面类似于使用 >。

使用 < 操作符将 dir.txt 的内容传递给 more 应用程序
环境变量
bash 的另一个强大功能是使用环境变量。环境变量是存储在内存中的值,可以用来临时存储信息和设置。一个例子是 PATH 变量。PATH 变量告诉 bash 如果程序不在当前目录中,它应该去哪里寻找这些程序。
所有当前设置的环境变量可以通过 printenv 命令显示出来。它们会在 Raspberry Pi 启动时自动加载到内存中。

在 Raspbian 中默认设置的一些环境变量
你可以在 bash 中轻松定义自己的环境变量。按照惯例,在 bash 中,所有环境变量都使用大写字母定义。
要定义一个环境变量,你可以按以下截图中的方式操作:

定义 MY_VARIABLE 环境变量值
使用环境变量也非常简单。只需在环境变量前加上 $ 即可。

使用 MY_VARIABLE 环境变量
环境变量通常在 Shell 脚本中用于存储信息和结果。
注意
你知道吗?2014 年在 bash 处理环境变量时发现了一个叫做 Shellshock 的漏洞?这个漏洞允许执行任意命令,并且对互联网上运行的许多 Web 服务器构成了巨大风险。
添加环境变量很容易。你只需要使用 export 命令,如下所示:
export VARIABLE=value
环境变量的名称不能包含空格,且必须包含大写字母。
基础脚本编写
你到目前为止看到的所有命令只是单个命令。bash 具有一次执行多个命令的能力。命令可以存储在一个叫做 Shell 脚本的文件中。
一个 Shell 脚本被设置了执行权限。然后,你只需进入脚本所在的目录并输入脚本名称,就可以运行它。
这些 Shell 脚本可以像普通程序一样在你的 Raspberry Pi 上运行。
重启和关闭你的 Raspberry Pi
你可以使用内置命令重启和关闭你的 Raspberry Pi。要重启你的 Raspberry Pi,只需运行 reboot 命令即可。

重启你的 Raspberry Pi
有时你可能想完全关闭 Raspberry Pi。为此,你可以使用 shutdown 命令。
shutdown 命令有两个不同的参数:第一个参数是你想进行的关机类型,第二个参数是你希望执行关机的时间。
| 参数 | 描述 |
|---|---|
-r |
这个命令会重启你的 Raspberry Pi。 |
-h |
这个命令会在关闭系统后关机。关闭完成后,你仍然需要断开树莓派的电源。 |
-k |
这个命令并不会真正关闭系统,它只是发送一个警告信息。 |
第二个参数通常是 now,它告诉树莓派我们希望立即关机。

关闭你的树莓派!
halt 命令也可以用来关闭你的树莓派。只需运行以下命令:
halt
你的树莓派将立即关闭。
文本编辑器
有时,你可能需要在树莓派上编辑一个文件:比如编辑 /etc/network/interfaces 文件以重新配置树莓派的网络接口,或者你可能需要一个文本编辑器来写文档。
幸运的是,Raspbian 系统中预装了几款文本编辑器。最常用的文本编辑器包括:
-
nano
-
vim
nano
nano 最初由 Chris Allegretta 于 1999 年创建,是树莓派上最容易使用的文本编辑器。

nano 文本编辑器
在 nano 中编辑文件时,你只需开始输入。更改完成后,你需要保存并退出。屏幕底部显示的命令可以通过按下键盘上的 Ctrl 键,然后按相应字母来访问。
-
例如,在你完成更改后,按 Ctrl + x 退出。
-
接下来,系统会询问你是否要保存这些更改。若要保存,请按 y。
![nano]()
在 nano 中保存更改
-
现在,你需要输入一个文件名以保存文件。输入完成后,按 Enter 键,你的文件就会被保存。
![nano]()
确认你正在保存的文件名
-
要加载你刚刚保存的文件,只需运行
nano命令,如下图所示:![nano]()
选择你想要保存的文件名
vim
另一款在树莓派上预装的文本编辑器是 vi 编辑器。vi 编辑器最初由 Bill Joy 于 1976 年为 Unix 系统创建。
vi 这个名字来源于单词 "visual" 的缩写。vi 编辑器是 Linux 中最广泛使用的文本编辑器之一。

vi 文本编辑器
vim(改进版的 vi)编辑器的使用要比 nano 稍微复杂一些。vi 编辑器的设计目的是不干扰用户,因此你不会看到任何菜单或屏幕上不必要的信息。
vim 编辑器有几种不同的模式,你可以通过这些模式来操作它。一个模式是插入模式。当你处于插入模式时,你可以像使用 nano 编辑器一样使用 vi,不过你只需要输入文本并用箭头键来浏览文件。要进入插入模式,按下 Insert 键或输入大写的 I。

vi 文本编辑器的插入模式
为了保存文件,我们需要进入命令模式。为此,请按下Esc键,然后按下:键。这将会在 vim 窗口的底部弹出一个命令提示符。

vi 文本编辑器的命令模式
在 vim 中有许多不同的命令,如下所示:
| 命令 | 描述 |
|---|---|
w |
将文件写入磁盘 |
q |
用于退出 vim |
dd |
删除当前行的文本 |
x |
删除光标所在位置的字符 |
这些命令可以在命令提示符中输入,或者当你在浏览文本并且不处于插入模式时输入。
这些命令中的一个例子是wq命令。这个命令会在你按下Enter键时保存并退出 vim。vim 不会询问你是否要保存更改,因为它会根据你给出的命令知道你想要做什么!
如果你不想保存更改,只需输入q!命令。
还有许多其他文本编辑器可以安装到你的 Raspberry Pi 上,比如 geany。
总结
在本章中,你了解了 bash shell、文件权限以及许多 bash 的内建命令。记住,如果你需要了解更多信息,只需在你想要了解的命令前加上man命令。你将能够找到你需要的所有信息!
记住,不要害怕尝试 Raspbian 内置的不同命令。最糟糕的情况是你可能需要重新制作 SD 卡镜像。
第七章:其他基于 Raspbian 的 Linux 发行版
树莓派是一款功能强大的设备,现已触及到比以往更多的人群。它的价格足够亲民,让人们能够用于各种不同的项目,许多项目之前是无法实现的。这些项目从为电视创建一个媒体中心到在无人机上实现自动驾驶功能不等。
这些项目中的许多基于 Raspbian,且已经发展成了独立的发行版。它们本质上仍然是 Raspbian,但为了特定用途进行了定制,你可以运用本书中学到的技能来使用这些发行版。本章将介绍一些不同的发行版。
Raspbmc
Raspbmc (www.raspbmc.com/) 是一个基于 Raspbian 的 Linux 发行版,让你在树莓派上运行 XBMC(现在称为 Kodi)。Kodi 是一款屡获殊荣的媒体播放器和娱乐中心,旨在尽可能多地支持不同设备的运行,包括树莓派。
得益于 Broadcom CPU 和 VideoCore IV 图形引擎,树莓派有足够的性能来处理媒体播放。这使得你能够将树莓派变成一个强大、极低成本的媒体中心,且功耗低。
通过在树莓派上安装 Raspbmc,你可以将树莓派变成一个功能齐全的媒体中心,在电视上播放电影和音乐。Kodi 让你可以使用任何带有 Wi-Fi 的智能手机或平板电脑作为遥控器。

Volumio
Volumio (volumio.org/) 是一个基于 Raspbian 的免费开源 Linux 发行版,旨在将树莓派转变为一款音响发烧友级别的音乐播放器。Volumio 的设计理念是易于使用。引用 Volumio 官网的话,Volumio 可以这样定义:
“Volumio 的设计理念是简洁、音质出色、让你的音乐获得应有的表现。”
在将 Volumio 安装到树莓派后,你可以通过任何具有 Wi-Fi 功能的智能手机或平板电脑来控制正在播放的音乐。
Volumio 的有趣之处在于,它专为音响发烧友(喜欢高质量音频的人)设计,支持使用外部数模转换器(D/A)来提升播放音质。这些 D/A 转换器可以插入树莓派,作为一张高品质的声卡工作。以下图片展示了 Volumio 的网页界面:

ThinBox
ThinBox (www.jontylovell.net/index.php?page=30) 是一个基于 Raspbian 的免费开源 Linux 发行版,旨在将树莓派转变为远程终端客户端。ThinBox 使得你可以快速且轻松地将树莓派连接到基于 Microsoft Windows 的服务器或桌面。
连接可以通过内置的连接管理器轻松设置。ThinBox 启动时间不到 30 秒即可进入桌面,并且具有一个简单、易于使用的图形用户界面(GUI)应用程序来设置连接。这是使用你的 Raspberry Pi 从任何地方远程访问系统的最简单方法之一。

ThinBox 的桌面界面
PiPlay
PiPlay (pimame.org/) 是另一个基于 Raspbian 的 Linux 发行版,专为在 Raspberry Pi 上进行游戏和模拟旧版游戏系统而设计。
它是为从未使用过 Linux 或 Raspberry Pi 的用户设计的,设置和使用都非常简单。
PiPlay 模拟以下游戏系统:
-
MAME—AdvanceMAME 和 MAME4ALL
-
CPS I / CPS II—Final Burn Alpha
-
NeoGeo—GnGeo
-
Playstation—PCSX-ReARMed
-
Genesis—DGen
-
SNES—Snes9x
-
NES—AdvMESS
-
Gameboy—Gearboy
-
Gameboy Advance—GPSP
-
ScummVM
-
Atari 2600—Stella
-
Cave story—NXEngine
-
Commodore 64—VICE
通过在你的 Raspberry Pi 上安装 PiPlay,你可以玩许多其他方式无法玩的老游戏。

PiPlay 标志
Torberry
Torberry (code.google.com/p/torberry/) 是一个基于 Raspbian 的 Raspberry Pi Linux 发行版,旨在通过 Tor 网络将你所有的互联网流量路由到 Tor 上。
根据 Tor 网站的描述,Tor 可以定义如下:
“Tor 是一款自由软件和一个开放的网络,帮助你防御流量分析,这是一种威胁个人自由和隐私、机密商业活动和关系以及国家安全的网络监控形式。”
Torberry 旨在安装在你的 Raspberry Pi 上,并作为一个 Tor 透明代理,所有的 TCP 和 DNS 流量都会通过 Tor 网络。这意味着别人更难找到你的真实位置。

Tor 标志
Kali
Kali (www.kali.org/) 是一个衍生自 Debian(和 Raspbian 相同)的 Linux 发行版,专为数字取证和渗透测试而设计。
Kali 预装了几个用于测试计算机网络安全的软件包。这些工具允许用户破解密码、突破无线网络、并执行某人的计算机的端口扫描。以下是 Kali 中包含的一些工具:

总结
在这一章中,你了解了几种基于 Raspbian 的不同操作系统。这些操作系统基于 Raspbian,使你的 Raspberry Pi 能够执行专门的任务。这些仅仅是 Raspberry Pi 可用发行版中的一小部分,随着 Raspberry Pi 的流行,越来越多的这些发行版将变得可用。
本书所教给你的技能将帮助你使用这些发行版,并让你充分利用它们。祝你好运!
附录 A. 参考资料
第一章,树莓派与 Raspbian
-
www.operating-system.org/betriebssystem/_english/bs-debian.htm -
www.howtogeek.com/177213/linux-isnt-just-linux-8-pieces-of-software-that-make-up-linux-systems/
第二章,Raspbian 入门
第四章,Raspbian 桌面介绍
第五章,在 Raspbian 上安装软件
第六章,控制台
第七章,基于 Raspbian 的其他 Linux 发行版






























浙公网安备 33010602011771号