树莓派 - Linux Shell



Shell(在树莓派中称为 Bash)是向树莓派发出指令的文本方式。本章,我们将学习树莓派中的 Linux shell。首先,我们将了解如何打开 shell 窗口。

打开 Shell 窗口

您可以通过以下两种方式之一打开 shell 窗口:

  • 屏幕顶部有一个终端图标,带有 >_ 提示符。单击它,您将获得一个 shell 窗口。

  • 另一种方法是使用应用程序菜单的“附件”部分。您可以在那里找到“终端”。

以上两种方法都将在桌面上打开一个 shell 窗口。

理解提示符

提示符如下所示:

pi@raspberrypi ~ $

它包含大量信息。让我们看看各个部分:

pi

它表示登录用户的用户名。

raspberrypi

它表示机器的主机名,即其他计算机在连接到它时用于识别的名称。

波浪号 (~)

波浪号告诉用户他们正在查看哪个目录。这个水平的波浪线表示主目录,这个符号的存在表明我们正在该目录中工作。

美元符号 ($)

它表示普通用户,而不是全能的超级用户。# 符号表示超级用户。

列出文件和目录

当您启动 shell 窗口时,您将从主目录开始。

要查看主目录中的文件夹和文件,您需要发出以下命令:

pi@raspberrypi ~ $ ls

输出

输出如下:

Desktop Downloads Pictures python_games Videos
Documents Music Public Templates

发出 **ls 命令** 后,您可以看到文件和文件夹。

众所周知,Linux 区分大小写,因此命令 LS、Ls、ls 和 lS 都是不同的。

更改目录

您可以看到上面的输出,它们都是蓝色的,这意味着它们都是目录。我们可以进入这些目录并检查它们包含哪些文件。更改目录的命令是 **cd**。您需要将 cd 命令与要查看的目录的名称一起使用。

树莓派中更改目录的示例如下:

pi@raspberrypi ~ $ cd Pictures

查找有关文件的信息

查找有关特定文件信息的命令是 **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

父目录

前面,我们使用 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 密钥),它会自动被识别。所有详细信息都将存储在 media 目录中。

mnt

mnt 代表挂载,将存储我们自己挂载的可移动存储设备的所有详细信息。

root

它保留供 root 用户使用,作为普通用户,我们无权更改此目录。

相对路径和绝对路径

shell 使树莓派用户能够通过指定路径直接到达该位置。

我们有以下两种类型的路径:

相对路径

这有点像从用户现在所在位置向目录提供方向。

绝对路径

另一方面,绝对路径就像街道地址。无论用户在哪里,此路径都完全相同。这些路径是从根目录测量的。因此,它们以斜杠 (/) 开头。

例如,我们知道 pi 目录的绝对路径是 /home/pi。

现在,使用以下命令直接转到此目录:

cd /home/pi

如果要转到根目录,可以使用以下命令:

cd /

高级列出命令

我们可以使用列出命令 (ls) 查看当前工作目录之外的任何目录内部,如下所示:

pi@raspberrypi ~ $ ls /boot

有几个高级选项,我们可以与 ls 命令一起使用。

这些选项在以下表格中给出:

选项 说明
-1

此选项为 1 而不是 l,它以单列而不是以行为单位输出结果。

-a

使用此选项的 ls 命令将显示所有文件。所有文件还包括隐藏文件。

-F

此选项将在文件名旁边添加一个符号。它将这样做以指示文件类型。如果您使用此选项,您会在目录名称后面看到一个 /,在可执行文件后面看到一个 *。

-h

此选项是 human-readable 的缩写。它使用千字节、兆字节和千兆字节来表示文件大小。

-l

此选项将以长格式显示结果。它显示有关文件权限、上次修改日期、大小的信息。

-m

此选项将结果列为以逗号分隔的列表。

-R

此选项是递归选项。它还将列出当前工作目录中的文件和目录,打开子目录(如果有)并列出它们的结果。

-r 这是反向选项,将以反向顺序显示结果。
-S 此选项将按大小排序结果。
-t

此选项将根据上次修改的日期和时间排序结果。

-X

此选项将根据文件扩展名排序结果。

此外,我们将学习与树莓派中的 Linux Shell 相关的其他重要方面。

长列表格式

长格式是 **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 表示文件的大小。您可以看到一些文件和目录具有相同的大小。

此输出的其余部分显示权限,即谁被允许使用该文件以及用户被允许对该文件或目录执行的操作。

权限

文件的权限分为以下三类:

所有者

这是创建文件的人。此权限包括文件所有者可以执行的操作。

这些是属于有权使用该文件的组的人员。此权限包括组所有者可以执行的操作。

世界

这些被称为世界权限,即每个人都可以对该文件或目录执行的操作。

在树莓派中,我们有两种主要类型的文件。一种是具有 **连字符 (-)** 的普通文件,另一种是具有 **d** 的目录。

权限类型

现在让我们了解所有者、组和世界分别拥有的不同类型的权限:

  • **读取权限** - 此权限允许用户打开并查看文件内容或列出目录。

  • **写入权限** - 此权限允许用户更改文件内容。它允许用户在目录中创建或删除文件。

  • **执行权限** - 此权限允许用户将文件视为程序并运行它。它还允许使用 **cd** 命令进入目录。

less 命令

ls 命令会淹没信息,有时您甚至无法注意到它,因为它比我们理解或看到的速度更快地掠过我们的眼睛。为了避免这种情况或解决这个问题,我们可以使用一个名为 **less** 的命令。

此命令将获取我们的列表并使我们能够一次一屏地浏览它。要使用此命令,我们需要在列表 (ls) 命令后使用 |(管道字符)。

树莓派中 less 命令的示例如下:

ls -RXF | less

less 命令也可以用于查看文本文件的内容。

为此,我们需要提供文件名作为参数,如下所示:

less /boot/config.txt

加快 Shell 的使用速度

在这里,我们将学习一些加快 shell 使用速度的技巧:

  • 如果您想重写命令,则可以避免重写,因为 shell **保留历史记录**,即您之前输入的命令。

  • 如果您想重用最后一个命令,只需使用 **两个感叹号** 并按 Enter 键即可。

  • 您也可以通过点击向上箭头按顺序调出之前的命令。

  • 类似地,您也可以通过点击向下箭头反向浏览命令历史记录。

  • Shell还会猜测用户想要输入的内容,并自动完成。

使用重定向创建文件

文件重定向意味着您可以将命令的结果发送到文件,而不是发送到屏幕。为此,我们需要使用>(大于)符号以及要将输出发送到的文件名。

下面是使用重定向在树莓派中创建文件的示例:

ls > ~/gaurav.txt

还有其他命令,我们可以用它们来在线显示内容。这些命令解释如下:

echo 命令

echo 命令顾名思义,会在屏幕上显示我们在它后面写入的任何内容。此命令最好的用途是解决数学问题。您需要将表达式放在两对括号之间,并在前面加上美元符号。

下面是 echo 命令的示例:

echo $((5*5))

date 命令

date 命令顾名思义,会在屏幕上显示当前日期和时间。

cal 命令

cal 命令(cal 代表计算器)将显示当前月份的日历,并突出显示今天。借助-y选项,您可以查看全年的日历。

创建和删除目录

在这里,我们将了解如何在树莓派中创建和删除目录。让我们从学习创建目录开始。

创建目录

在您的主目录下创建目录的命令是mkdir

在下面的示例中,我们将创建一个名为AI_Python的目录:

mkdir AI_Python

您也可以使用一个命令创建多个目录,如下所示:

pi@raspberrypi ~ $ mkdir AI_Python Machine_Learning Tutorialspoint
pi@raspberrypi ~ $ ls
Downloads AI_Python Machine_Learning Tutorialspoint Desktop Pictures Documents Public

删除目录

如果要删除空目录,可以使用rmdir命令,如下所示:

pi@raspberrypi ~ $ rmdir AI_Python

另一方面,如果要删除非空目录,则需要使用rm -R命令,如下所示:

pi@raspberrypi ~ $ rm -R Machine_Learning

删除文件

我们可以使用 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'

树莓派通配符

一个目录包含许多具有相似文件名的文件,如果您想删除一组这样的文件,则无需通过输入每个文件名来重复该命令。在 shell 中,通配符将为我们完成这项工作。

下表提供了我们可以用于树莓派的通配符的快速参考:

通配符 含义 示例 说明
? 表示任何单个字符。 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*

复制文件

复制文件是我们想要执行的基本操作之一。

此命令为 cp,其用法如下:

cp [options] copy_from copy_to

在这里,我们需要将copy_from替换为您要复制的文件,将copy_to替换为您要复制到的位置。

示例

让我们来看一个使用该命令复制相应文件的示例。

假设您想将leekha.txt文件从/desktop目录复制到home目录,您可以使用cp命令,如下所示:

cp /Desktop/leekha.txt ~

我们还可以指定现有文件夹的路径来发送文件,如下所示:

cp /Desktop/leekha.txt ~/doc/

移动文件

如果您想将文件从一个位置移动到另一个位置,而不是创建文件的副本,则可以使用 mv 命令,如下所示:

mv ~/Desktop/leekha.txt ~/Documents

以上命令将名为leekha.txt的文件从桌面目录移动到文档目录。这两个目录都在主目录中。

重启树莓派

借助以下命令,我们可以重新启动树莓派,而无需断开和重新连接电源:

sudo reboot

关机树莓派

借助以下命令,我们可以安全地关闭树莓派:

sudo halt
广告