Raspberry Pi 简明教程
Raspberry Pi - Linux Shell
外壳程序,在树莓派中称为 Bash,是向您的 Pi 板发出指令的基于文本的方式。在本章节中,让我们了解树莓派的 Linux 外壳程序。首先,我们将了解如何打开外壳窗口。
Open Shell Window
您可以使用以下两种方式之一打开外壳窗口 −
-
屏幕顶部有一个带有 >_ 提示符的终端图标。单击它,您将获得一个外壳窗口。
-
另一种方法是使用应用程序菜单的附件部分。您可以在那里找到终端。
上述两种方法都将在桌面上打开一个外壳窗口。
List Files and Directories
当你启动外壳窗口时,你便开始在你自己的主目录中。
要查看你的主目录中的文件夹和文件,你需要发布命令,如下所示−
pi@raspberrypi ~ $ ls
Output
输出如下 −
Desktop Downloads Pictures python_games Videos
Documents Music Public Templates
你可以看到发布了 ls command 后的文件和文件夹。
众所周知,Linux 区分大小写,因此命令 LS、Ls、ls 和 lS 是截然不同的。
Change the directory
你可以看到上述输出,它全是蓝色的,这意味着它们都是目录。我们可以进入这些目录并检查它们中包含哪些文件。更改目录的命令为 cd 。你需要使用 cd 命令以及你想要查看的目录的名称。
以下是用于更改树莓派中的目录的示例−
pi@raspberrypi ~ $ cd Pictures
Find information about files
用于找到特定文件的相关信息的命令为 file 。你需要在该命令后放上该文件的文件名,以检查相关文件的信息。
查看以下示例,了解如何找到树莓派中文件的相关信息−
pi@raspberrypi ~ /Pictures $ file leekha.png aarav.png
leekha.png: PNG image data, 50 x 85, 8-bit/color RGBA, noninterlaced
aarav.png: PNG image data, 100 x 150, 8-bit/color RGBA, noninterlaced
我们还可以对目录使用 file 命令。它将为我们提供一些有关目录的信息 −
pi@raspberrypi ~ $ file Pictures Desktop
Pictures: directory
Desktop: directory
Parent Directory
之前我们已经使用 cd 命令更改至当前工作目录内的目录。但有时我们需要进入父目录,即进入位于当前工作目录之上的目录。
此命令为 cd..
(cd 加两个点),如下所示 −
pi@raspberrypi ~ /Pictures $ cd..
pi@raspberrypi ~ $
波浪号表示你的主目录。
Directory Tree
下面的图表显示了你的树莓派电脑上的部分目录树 −
目录及其用法如下 −
bin
二进制文件(即 Bin)包含一些小型的程序,其行为与 shell 中的命令类似。例如,ls
和 mkdir
。
boot
这个目录包含操作系统的心脏,即 Linux 内核。它还包含技术设置文件,其中包含树莓派电脑的技术设置。
dev
这个目录包含设备列表。例如,磁盘和网络连接等设备。
etc
这个目录用于各种配置文件。这些配置文件适用于计算机上的所有用户。
home
这是用户默认存储或写入文件的位置。
lib
这个目录包含各种库,这些库由不同的操作系统程序使用。
lost+found
如果文件系统损坏并部分恢复,将使用此目录。
media
您连接了一个可移动存储设备(例如 USB 密钥),系统会自动识别它。所有详细信息均存储在媒体目录中。
mnt
mnt 代表挂载,它将存储我们自己挂载的可移动存储设备的所有详细信息。
root
它保留供 root 用户使用,没有权限以普通用户身份更改此目录。
Advanced Listing Commands
我们可以使用以下列出命令 (ls) 查看当前工作目录外任何目录的内容−
pi@raspberrypi ~ $ ls /boot
有几个高级选项可与 ls 命令一起使用。
这些选项在以下表格中列出−
Option |
Description |
-1 |
此选项为 1 而不是 l,其按单列而非按行输出结果。 |
-a |
带有此选项的 ls 命令将显示所有文件。所有文件也将包括隐藏文件。 |
-F |
此选项会在文件名旁边添加一个符号。它将执行此操作以指示文件类型。如果您使用此选项,您将在目录名称后看到 /,在可执行文件后看到 *。 |
-h |
此选项的简称是人类可读。它使用千字节、兆字节和千兆字节表示文件大小。 |
-l |
此选项将以长格式显示结果。它显示有关文件权限、其上次修改日期及其大小的信息。 |
-m |
此选项将以用逗号分隔的列表形式列出结果。 |
-R |
此选项是递归选项。它还将在当前工作目录中列出文件和目录,打开子目录(如果有),并在其子目录中列出结果。 |
-r |
该选项具有反向操作,它将按反向顺序显示结果。 |
-S |
此选项将按结果大小对结果进行排序。 |
-t |
此选项将按上次修改日期和时间对结果进行排序。 |
-X |
此选项将按文件扩展名对结果进行排序。 |
此外,我们还将了解与 Raspberry Pi 中的 Linux Shell 相关的其他重要方面。
Long Listing Format
长格式是 ls 命令最有用的格式之一,因为它为我们提供了有关文件的其他信息。
您可以使用如下所述带有长列表选项的 ls 命令 −
pi@raspberrypi ~ $ ls -l
total 65
-rw-r--r-- 1 pi pi 256 Feb 18 22:45 Leekha.txt
drwxr-xr-x 2 pi pi 4096 Jan 25 17:45 Desktop
drwxr-xr-x 5 pi pi 4096 Jan 25 17:50 Documents
drwxr-xr-x 2 pi pi 4096 Jan 25 17:52 Downloads
drwxr-xr-x 2 pi pi 4096 Jan 25 17:53 Music
drwxr-xr-x 2 pi pi 4096 Jan 25 17:45 Pictures
drwxr-xr-x 2 pi pi 4096 Jan 25 17:45 Public
drwxr-xr-x 2 pi pi 4096 Jan 25 17:54 Templates
drwxr-xr-x 2 pi pi 4096 Jan 25 17:54 Videos
从以上输出很容易理解,每行都与一个文件或目录相关,其名称在右侧,其上次修改的日期和时间紧随其后。
数字 256、4096 表示文件的大小。您可以看到,有些文件和目录具有相同的大小。
此输出的其余部分显示了权限,即谁有权使用该文件,以及用户有权对该文件或目录做什么。
Permissions
对文件授予的权限分为以下三类 −
Owner
该人创建文件。该权限包括文件所有者可以执行的操作。
Group
属于有权使用文件的组的人员。该权限包括组所有者可以执行的操作。
World
这些称为世界权限,即每个人都可以对该文件或目录进行的操作。
在 Raspberry Pi 中,我们有两种主要的文件类型。一种是具有 hyphen (-) 的常规文件,另一种是具有 d 的目录。
Less Command
ls 命令会带来淹没性的信息,有时您甚至无法注意到,因为它比我们理解或看到得更快。为避免或解决此问题,我们可以使用一个名为 less 的命令。
此命令将采用我们的列表并允许我们逐页浏览它,即一次显示一个屏幕。要使用此命令,我们需要在列表(ls)命令后面使用 |(管道字符)。
以下给出了 Raspberry Pi 中 less 命令的示例−
ls -RXF | less
less 命令也可用于查看文本文件的内容。
为此,我们需要提供文件名作为参数,如下所示−
less /boot/config.txt
Speed up the use of Shell
这里我们将学习一些技巧以加快 shell 的使用−
-
如果您想重新键入命令,则可以不必重新键入它,因为 shell keeps the record of history 了您先前输入的命令。
-
如果您想重新使用上一个命令,您只需使用 two exclamation marks 并按 Enter。
-
您还可以通过轻按 up arrow 按顺序恢复前一个命令。
-
类似地,您还可以通过轻按 down arrow 进入另一个方向的命令历史记录。
-
shell 还可以猜测用户想输入什么,并自动为我们完成。
Create File with Redirection
重定向文件意味着您可以将命令的结果发送到文件,而不是将结果发送到屏幕。为此,我们需要使用 >(大于)符号以及我们希望向其发送输出的文件名。
以下给出了在 Raspberry Pi 中通过重定向创建文件示例−
ls > ~/gaurav.txt
也有其他命令,在这些命令的帮助下,我们可以在线显示内容。这些命令的解释如下:
Create and Remove Directories
在这里,我们将了解如何在树莓派中创建和删除目录。让我们从了解如何创建目录开始。
Delete Files
我们可以使用 rm 命令来删除文件。
删除文件的语法如下所示:
rm options filename
在下面给出的示例中,我们将删除一个名为 leekha.txt 的文本文件:
pi@raspberrypi ~ $ rm leekha.txt
与 mkdir 类似,rm 命令不会告诉我们它正在做什么。
为了了解它的功能,我们需要使用冗长 (-v) 选项,如下所示:
pi@raspberrypi ~ $ rm -v leekha.txt
removed 'leekha.txt'
我们还可以一次删除多个文件,如下所示:
pi@raspberrypi ~ $ rm -v leekha.txt gaurav.txt aarav.txt
removed 'leekha.txt'
removed 'gaurav.txt'
removed 'aarav.txt'
Raspberry Pi Wildcards
一个目录包含许多具有类似文件名的文件,如果你想删除一群此类文件,则不必通过键入每个文件名来重复该命令。在 shell 中,通配符会为我们完成这项工作。
下表为我们提供了对通配符的快速参考,我们可以在树莓派中使用通配符:
Wildcard |
Meaning |
Example |
Description |
? |
这意味着任何单个字符。 |
pic?.jpg |
这个例子表示文件以 pic 开头,并且在扩展开始之前刚好有一个字符。 |
* |
这意味着任意多个字符。 |
pic |
这个例子表示任何在文件名中包含单词 pic 的文件。 |
[…] |
这个通配符将匹配括号中的任何一个字符。 |
[gla]* |
这个例子表示所有以字母 g、l 或 a 开头的文件。 |
[^…] |
这个通配符将匹配不在括号内的任何单个字符。 |
[^gla]* |
这个例子表示任何不以字母 g、l 或 a 开头的文件。 |
[a-z] |
这个通配符将匹配指定范围内的任何单个字符。 |
[x-z]*.png |
这个例子表示任何以字母 x、y 或 z 开头且以 .png 扩展结尾的文件。 |
[0-9] |
这个通配符将匹配指定范围内的任何单个字符。 |
Pic[1-5]*.png |
这个例子表示它将匹配 pic1.png、pic2.png、pic3.png、pic4.png 和 pic5.png。 |
下面给出的示例将删除所有以字母 lee 开头的文件,
rm –vi lee*