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

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


第2章

轻松掌握Linux

树莓派标准的操作系统是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是世界上使用最广泛的操作系统。

2.1 开始使用树莓派的Linux

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

 

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

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

 

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

2.1.1 Linux文件和文件系统

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

 

 

是两个文件。

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

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

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

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

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

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

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

2.1.2 root用户与sudo

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

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