天天看点

《 Python树莓派编程》——第2章 轻松掌握Linux 2.1 开始使用树莓派的Linux

本节书摘来自华章出版社《python树莓派编程》一书中的第2章,第2.1节,作者:[美]沃尔弗拉姆·多纳特(wolfram donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

<b>第2章</b>

<b>轻松掌握linux</b>

树莓派标准的操作系统是linux操作系统,这就意味着如果你不了解这个系统的话,你就不得不恶补一下。但是不用担心,我会尽量让学习变得相对轻松。

无论你对linux有何听闻,你都可以忽略它们。自成立至今,linux一直被视作“极客们的操作系统”,并且与那些深居在某个地下室,身旁矗立着一排排硬件设备,磁带式计算机不停地转动,身穿纽扣式短袖衬衫的极客们对着满屏幕的文字,不停地敲击手中的键盘,口中骂个不停的这类形象紧密相关(见图2-1)。在此背景下,桌子上滚动着一个20面的骰子,一个温柔的声音低语着:“不,han先开枪。”

《 Python树莓派编程》——第2章 轻松掌握Linux 2.1 开始使用树莓派的Linux

(即便如此,也不必担心。尽管我们大多数人都真心接受了那段历史并明白它们的意义,但这并不意味着你也需要如此。自问世以来,linux经历了一段很艰难的岁月,但它现在不仅在操作系统中占有一席之地,而且用户界面也十分友好(至少大多数发行版本的界面如此)。如今最流行的两个linux版本是ubuntu和mint。它们看起来分别像windows和mac,因此用户使用起来并不困难。另一个十分流行的版本是debian,而树莓派的raspbian正是基于此版本的。最初,debian是linux发行版本中唯一一个真正做到“开源”的版本—它允许开发者和用户对其进行修改。而且至今它依然是最大的非商业化的linux发行版本。

好的,别的不多说了。为了更好地使用树莓派,你至少需要了解linux及其工作原理。现在让我们开始吧。

linux的历史

linux是个自由开源的类unix操作系统。该系统由linus

torvalds在1991年首次发布。整个系统由c语言编写而成。linux最初是作为intel x86架构计算机的一个操作系统,在此后的20多年内,它已经被移植到任何一个可设想到的设备上,从大型机、超级计算机,到平板电脑、电视和视频游戏控制台等,无处不在。android系统也是基于linux内核构建的—操作系统正是基于内核构建的。

同大多计算机软件一样,linux也不是凭空产生的。这要归功于如unix、bsd、gnu和minix这类操作系统或内核。实际上,torvalds曾说过,如果在20世纪90年代初期gnu内核已经完成或bsd开源的话,他很可能就不会自己写内核了。他根据minix构造linux的内核,并且添加了很多gnu的应用。他还在linux中使用了gnu gpl协议,这意味着只要遵循类似的协议发布,代码便可以改写并复用。

在接下来的几年内,无论是用户接受程度还是设备,linux都迅速普及了。正如先前提到采用linux系统的设备很多一样,现如今linux是世界上使用最广泛的操作系统。

<b>2.1 开始使用树莓派的linux</b>

在同树莓派交互的过程中,你要经常使用终端进行操作,终端也叫作命令行界面(command-line interface)。当你进入树莓派图形化界面后,双击终端图标便可开启。因为你已经登录,因此打开终端时不会再次要求你输入用户名和密码了。它显示的内容如下:

这便是命令行界面(cli)(见图2-2)。这表明了你已经在“raspberrypi”上以用户“pi”的身份登录,而且正处于主目录下。

如果处于不同的目录下,终端会这样显示:

《 Python树莓派编程》——第2章 轻松掌握Linux 2.1 开始使用树莓派的Linux

<b>2.1.1 linux文件和文件系统</b>

作为一个操作系统,linux完全是基于文件和文件系统建立的。任何信息都以文件的形式存储(文字、图像、视频或其他),这些都是通过文件名和地址定义的。地址,也称为路径(directory path),使得每个文件与其他文件不同,因为地址也是文件名的一部分。例如:

是两个文件。

文件名也是区分大小写的,这意味着/file.txt和/file.txt是不同的,同样二者与/file.txt也是不一样的。你将了解一共有5种文件类别:

用户数据文件:包含你创建的一些信息,如文档或者图片。

系统数据文件:包含系统使用的信息,如用户信息、密码等。

目录文件:也称为文件夹(folder),包含文件或其他目录,被包含的目录也称为子目录,子目录的深度没有限制,根据你的设置而定。

特殊文件:代表操作系统使用的一些硬件设备或占位符。

可执行文件:是一些包含操作系统识别命令的程序或shell脚本文件。

整个linux文件系统只包含一个根文件夹,用/表示。根目录之下有很多子目录如bin/、home/、proc/、var/和dev/。每一个目录又有自己的子目录。实际上,如果用三维视角看待整个文件系统,它看起来就像一棵倒置的巨大的树。/home/文件夹是默认的主文件夹,在linux(或unix)上每一个用户都有这样一个主文件夹。在该文件夹下,你可以随意创建、执行或删除文件。如果你需要对系统文件进行编辑或删除操作的话,需要以root身份登录,或者在待执行命令前加sudo命令。

<b>2.1.2 root用户与sudo</b>

在每个linux系统中,都有一个特定的root用户,该用户可以监管系统内所有的文件,当然也包括系统级别的文件。例如,大多数用户账户都无法编辑/var/目录下的文件,但root用户可以。由于root用户有这样强大的权力以及滥用的可能(即便是误用),因此,如果没有特殊情况,linux用户不会以root身份登录。当以root身份登录时,他们处理一些必须处理的事情,处理完之后再退出root身份。在linux极客中,有这样一句话“只有菜鸟登录系统时才会以root身份登录”,换言之,只有新手才会一直以root身份登录。

有一条使用root身份登录系统的快捷方式:sudo。sudo表示:“super user do”,这句话的作用就是简单告诉系统作为root用户执行命令。系统会要求输入root用户的密码并执行命令。因为系统不会二次确认你是否真的要以root身份执行,所以当你使用sudo时,在按下enter键之前一定要明确即将操作的命令的结果。