Linux 命令行入门

介绍

今天,我们中的许多人都熟悉具有图形用户界面(也称为 GUI)的计算机(台式机和笔记本电脑)、智能手机和平板电脑,它们允许我们浏览应用程序、网络和我们的文件(如文档和照片)通过视觉体验。Windows、macOS 和 Linux 操作系统各自提供各种桌面环境(例如,带有文件夹和文件的图像)和下拉菜单,所有这些都提供对计算机程序、应用程序和我们自己的媒体的访问。

尽管 GUI 可以是许多用户使用计算机的直观方式,但它们通常无法为我们提供对机器的最大控制权,并且它们可能会阻止我们对计算机进行完全管理访问,包括安装、修改或删除软件或文件。此外,由于 GUI 主要是可视化的,它们通常不像所有用户那样易于访问。

在没有 GUI 的情况下导航您自己的个人计算机和远程云服务器的一种方法是通过基于文本的终端或命令行界面 (CLI)。您可以通过单击Launch an Interactive Terminal!下面的蓝色按钮在浏览器中启动一个

启动互动终端!

终端界面几乎存在于每个计算机操作系统上,终端模拟器也可用作平板电脑和智能手机的应用程序。终端通过增加管理员访问权限、更强大的环境定制能力以及自动化流程的机会,为用户提供对他们机器的更大整体访问。它们还为用户提供访问远程计算机(例如云服务器)的能力。

本教程将为不熟悉终端环境的用户提供通过浏览器中的嵌入式 Web 终端使用命令行界面的基础知识,您可以在下面启动。如果您已经对终端有一定的了解,您可能更喜欢阅读我们的 Linux 终端简介教程。完成本教程后,您应该了解如何在 Linux(或 macOS)计算机或服务器上使用终端。

了解终端窗口

当您第一次使用新的计算机或智能手机时,您可能希望打开它并通过检查可用的应用程序来了解如何使用它,并了解设备的位置以便您可以自定义设备以适应您的需求。您可以通过类似的方式通过终端熟悉计算机。

您在此浏览器窗口中启动的交互式终端,通过单击Launch an Interactive Terminal!上面按钮,在您的浏览器窗口底部显示一个白色矩形:

交互式终端环境的屏幕截图

如果您尚未启动终端,请使用本教程开头的按钮启动。

在您的交互式浏览器终端中,应该有一个美元符号$和一个闪烁的光标。这是您将开始键入命令以告诉终端要做什么的地方。

您启动的终端是 Ubuntu 20.04 终端。Ubuntu 是 Linux 的流行发行版,它最初是基于 Unix 操作系统的。macOS 操作系统也是基于 Unix 的。如果您在 Linux 或 macOS 机器上阅读本教程,您的操作系统上应该有一个终端,其工作方式与我们将在本指南中使用的嵌入式终端类似。

在许多这些 Unix(或 *nix-based)操作系统中,提示符末尾的符号可能是一个$符号或一个#符号,其含义如下:

  • $ 或美元符号 – 您以普通用户身份登录
  • # 或井号/英镑符号 — 您以具有提升权限的用户身份登录

#环境中注明的用户也称为 root 用户,默认情况下将其视为超级用户或管理员。

为了我们在下面的浏览器终端中的目的,您以普通用户身份登录,但您也通过sudo命令拥有管理员权限由于这是一个临时终端,您无需担心在终端中输入的内容,因为一旦我们完成,我们将销毁所有内容。同样,对于云服务器,如果出现问题,可以销毁服务器并重新开始。

请注意,在本地计算机的终端上工作时最好多加小心,因为您可能会以管理员身份在终端上进行更改,从而对您正在使用的计算机进行永久性更改。

此时,在浏览器中启动您的终端后,您可以开始使用本地计算机进行输入。您的文本将出现在闪烁的光标处。我们将在接下来的部分中了解我们可以在此处键入的内容。

熟悉目录

我们将通过键入命令开始使用终端。一个命令是由用户给定的,沟通它是什么,用户希望电脑做的指令。您将在终端中输入您的命令,然后在您准备好让计算机执行给定命令时按下ENTERRETURN

让我们输入以下命令,后跟ENTER. 您还可以复制该命令,或通过将鼠标悬停在下面代码块中的相关链接,使其在启动的交互式终端中运行。

  • pwd

运行此命令后,您将收到以下输出:

Output
/home/sammy

pwd命令表示“ p怨恨W¯¯工作会有d irectory”,它可以让你知道你在哪里当前的文件系统中。

在此示例中,您位于名为 的目录(或文件夹)中/home/sammy,它代表名为 的用户sammy如果您以root具有提升权限的用户身份登录,则该目录将被称为/root在个人计算机上,此目录可能称为拥有计算机的用户的名称。Sammy Shark 的计算机可能有/sammy/sammy-shark/home/sammy作为其主要用户目录。

现在,这个目录是空的。让我们创建一个目录来存储我们在学习本教程时将创建的文件files,例如,我们可以调用该目录

要做到这一点,我们将使用mkdir命令,主张“中号ķ ê DIR ectory。” 键入命令后,我们需要写入文件夹的名称,该名称会将值传递给命令,以便命令可以在创建此目录时执行。此值(文件夹的名称)称为参数,它是提供给命令的输入。如果您熟悉自然语言语法,则可以将参数视为命令动词所作用的对象。

为了创建一个名为的新目录,files我们将编写以下内容,mkdir作为命令和files参数:

  • mkdir files

运行此命令后,除了带有闪烁光标的新行之外,您将不会收到任何输出。通过终端上的这条新行,您已准备好执行下一个命令。

列出内容并了解权限

由于我们还没有收到任何关于我们新目录的具体反馈,我们将使用一个命令来了解更多关于我们当前工作目录中的内容。您可以通过列出目录中的文件来确认新目录确实存在,使用ls命令(表示“ l i s t”):

  • ls

您将收到确认files目录存在的输出

Output
files

这为我们提供了有关当前工作目录中内容的一般信息。如果我们想了解更多详细信息,我们可以ls使用所谓的标志来运行命令。在 Linux 命令中,标志用连字符-和字母书写,将附加选项(和更多参数)传递给命令。在我们的示例中,我们将添加-l标志,当与它配对时,它ls表示我们希望使用选项在我们的命令中使用长列表格式。

让我们输入这个命令和标志,像这样:

  • ls -l

按下 后ENTER,我们将在终端中收到以下输出:

Output
total 4 drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files

这里有两行输出。第一行是指分配给该目录的计算机内存块,第二行主要是指用户对该文件的权限。

为了获得更易读的输出,我们还可以传递-hor--human-readable标志,它将以人类可读的格式打印内存大小,如下所示。通常,一个连字符-表示单字母选项,两个连字符--表示用文字写出的选项。请注意,某些选项可以同时使用这两种格式。我们可以通过将标志链接在一起来将多个选项构建到一个命令中,如-lh.

例如,下面的两个命令即使写法不同,也会产生相同的结果:

  • ls -lh
  • ls -l --human-readable

这两个命令都将返回以下输出,类似于上面的输出,但具有更大的内存块上下文:

Output
total 4.0K drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

第一行输出让我们知道 4K 的计算机内存专用于该文件夹。第二行输出有更多细节,我们将更详细地介绍。下表显示了我们将涵盖的所有信息的一般高级参考。

文件类型 权限 链接数 所有者 团体 文件大小 最后修改日期 文件名
d rwxr-xr-x 2 萨米 萨米 4.0K 11 月 13 日 18:06 档案

您会注意到我们目录的名称files,位于输出第二行的末尾。此名称指示/home/sammy输出行正在描述用户目录中的哪个特定项目如果目录中有另一个文件,我们将有另一行输出,其中包含有关该文件的详细信息。

在该行的前面,有一个字符和破折号列表。让我们分解每个字符的含义:

特点 描述
d d irectory(或文件夹) -一个类型的文件,可以保持其他文件,用于组织文件系统是有用的; 如果是这样-,这将引用非目录文件
r [R EAD -允许打开和读取文件或列出目录的内容
w ^仪式-允许修改一个文件的内容; 并在目录中添加、删除、重命名文件
X e x ecute — 运行作为程序的文件或进入和访问目录中的文件的权限

drwx字符串的第一个字符中,第一个字母d表示该项目files是一个目录。如果这是一个目录以外的文件,则该字符串将以连字符开头,如在 中-rwx,其中第一个连字符表示非目录文件。下面的三个字母,rwx代表的权限为所有者的目录files,并表示该目录files[R EAD,W¯¯雷农和e X由文件所有者执行。如果这些字符中的任何一个被连字符替换,则表示所有者不具有该字符所代表的权限类型。稍后我们将讨论如何识别文件的所有者。

输出中接下来的三个字符是r-x,代表目录权限files在这种情况下,该组具有读取和执行权限,但没有写入权限,因为w被替换为-. 我们稍后将讨论如何识别组。

第一个字符串的最后三个字符r-x代表有权访问该机器的任何其他组的权限。在这种情况下,这些用户组也可以读取和执行,但不能写入。

数字2输出指的是链接到本文件的数量。在 Linux 中,链接提供了一种创建快捷方式以帮助用户导航文件系统的方法。创建此文件时,Linux 做了一些后台工作来创建文件的绝对链接和文件的自引用链接,以允许用户沿相对路径导航。我们将在下一节讨论绝对路径和相对路径。

在数字之后2,这个词sammy会显示两次。这部分输出提供有关与files目录关联的所有者和组的信息sammy这一行中的第一个实例指的是目录的所有者,我们之前看到的权限是rwxsammy用户是所有者,我们创建的files目录作为sammy用户,且该文件的当前所有者。尽管sammy用户是我们当前环境中的唯一用户,但类 Unix 操作系统通常有多个用户,因此了解哪个用户拥有文件的所有权很有用。

的第二个实例是sammy指有权访问该files目录的组,我们之前看到的其权限是r-x在这种情况下,组名与所有者 username 相同sammy在实际环境中,操作系统上可能有其他组可以访问该目录,例如staff或 类似的用户名admin

此输出行的其余详细信息4.0K是机器上目录的内存分配,以及目录的最后修改日期(到目前为止,我们刚刚创建了它)。

有了对文件系统和权限的更深入了解,我们可以继续在 Linux 终端上导航文件系统。

到目前为止,我们已经学习了如何确定我们在文件系统中的位置、如何创建新目录、如何列出文件以及如何确定权限。

接下来让我们学习如何在文件系统中移动。我们已经创建了一个新目录,但我们仍然在主/home/sammy用户目录中。为了移动到/home/sammy/files我们创建目录中,我们将使用该cd命令并将我们想要移动到的目录的名称作为参数传递。该命令cd表示“ Ç焊割d irectory,”我们将构建它像这样:

  • cd files

同样,除了带有闪烁光标的新行之外,您不会收到任何输出,但是我们可以使用之前/home/sammy/files使用的pwd命令检查我们是否在目录中

  • pwd

您将获得以下输出,确认您所在的位置:

Output
/home/sammy/files

这验证了你在/home/sammy/files该目录/home/sammy用户目录。你觉得这个语法很熟悉吗?它可能会让您想起带有正斜杠的网站 URL,实际上,网站也是在目录中的服务器上构建的。

让我们移动到服务器的主目录。无论我们在文件系统中的哪个位置,我们始终可以使用该命令cd /移动到主目录:

  • cd /

为了确认我们已经移动并了解该目录中的内容,让我们运行我们的 list 命令:

  • ls

我们将收到以下输出:

Output
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var

里面有很多文件!/目录是 Linux 服务器的主目录,称为“根”目录。请注意,根目录与默认的“root”用户不同。您可以将/目录视为 Linux 机器的主要动脉,因为它包含运行计算机所需的所有文件夹。例如,该sys目录包含 Linux 内核和系统信息虚拟文件系统。如果您想了解有关每个目录的更多信息,可以访问Linux Foundation 文档

您还会注意到我们已经进入了一个目录,即/home用户文件夹。/目录中,我们可以将目录改回 ,/home然后再改回files,或者我们可以通过在那里键入绝对路径直接移回该文件夹cd

  • cd /home/sammy/files

现在,如果您运行,pwd您将收到/home/sammy/files作为输出。

一个文件路径是其中一个文件或目录位于您的计算机或服务器上的表示。您可以以相对或绝对方式调用文件或目录的路径。一个相对路径时,我们已经将我们移动到另一个位置相对于我们当前的工作目录,就像我们/home/sammy/再移入files/一个绝对路径是当我们调用直接线的位置,就像我们上面那样/home/sammy/files,显示出我们开始在/目录中,称为/home/sammy/用户目录,然后嵌套files/目录。

此外,Linux 利用点符号来帮助用户通过相对路径导航。单字.代表您当前所在的目录,双字..代表父目录。因此,从我们当前所在的位置 ( /home/sammy/files),我们可以使用两个点返回上级/home/sammy用户目录,如下所示:

  • cd ..

如果您运行pwd,您将收到/home/sammy您的输出,如果您运行ls,您将收到files您的输出。

另一个需要熟悉的重要符号是~它代表您机器的主目录。在这里,我们的主目录是/home/sammy为 sammy 用户调用的,但在本地机器上,它可能是您自己的名字,如sammy-shark/.

您可以从机器上的任何位置键入以下内容并返回到此主目录:

  • cd ~

在这一点上,您可以随意使用到目前为止所学的命令浏览您的文件系统。在下一节中,我们将开始处理文本文件。

创建和修改文本文件

现在我们对 Linux 文件系统有了一个基础以及如何绕过它,让我们开始创建新文件并学习如何在命令行上操作文本。

让我们首先确保我们位于用户文件夹files/目录中/home/sammy,我们可以通过验证pwd或通过更改绝对路径上的目录来做到这一点

  • cd /home/sammy/files

现在,我们将创建一个新的文本文件。我们将制作一个.txt文件,这是一个可以跨操作系统读取的标准文件。.doc文件不同.txt文件由未格式化的文本组成无格式文本,包括.txt文件中的文本,可以很容易地在命令行上使用,因此可以在以编程方式处理文本数据时使用(例如,自动化文本分析,从文本中提取信息等)。

我们将从使用touch命令开始,该命令可以创建新文件或修改现有文件。要使用它,您可以使用该命令touch并将要创建的文本文件的名称作为参数传递,如下所示。

  • touch ocean.txt

按 后ENTER,您将收到一行新的命令提示符,您可以列出 的当前内容files/以确保它已创建。

  • ls
Output
ocean.txt

到目前为止,我们已经创建了一个在创建时不ocean.txt包含文本文件。

如果我们想创建一个用文本初始化的文本文件,我们可以使用echo命令,该命令用于在Linux中显示文本字符串。

我们可以echo直接在命令行上使用,让界面在我们之后重复。传统的第一个程序 ,"Hello, World!"可以这样写echo

  • echo Hello, World!
Output
Hello, World!

命令以 Echo of Ovid’s Metamorphosis命名,echo返回我们请求的内容。在这种情况下,它回响了,“你好,世界!” 但是,就其本身而言,该echo命令不允许我们将文本值存储到文本文件中。为此,我们需要键入以下内容:

  • echo "Sammy the Shark" > sammy.txt

上面的命令使用echo, 然后是我们想用引号添加到文件中的文本,然后是重定向操作符>,最后是我们新文本文件的名称sammy.txt.

我们可以再次使用ls.

  • ls
Output
ocean.txt sammy.txt

现在我们的/home/sammy/files用户文件夹中有两个文本文件接下来,我们可以确认该文件sammy.txt确实包含我们要求终端回显的文本。我们可以用cat命令来做到这一点con cat enate 的缩写,该cat命令对于处理文件非常有用。它的功能之一是显示文件的内容。

  • cat sammy.txt

运行命令后,我们将收到以下输出:

Output
Sammy the Shark

如果我们cat在空文件上运行ocean.txt,我们将不会收到任何回报,因为该文件中没有文本。我们也可以向这个现有文件添加文本echo让我们将 Zora Neale Hurston 的引述添加到文件中。

  • echo "Some people could look at a mud puddle and see an ocean with ships." > ocean.txt

现在,如果我们运行cat该文件,我们将收到刚刚输入的文本的输出。

  • cat ocean.txt
Output
Some people could look at a mud puddle and see an ocean with ships.

到目前为止,我们已经创建了文本文件并向这些文件添加了文本,但是我们还没有修改这些文件。如果我们想这样做,我们可以使用命令行文本编辑器。存在几种流行的选择,包括 Vim 和 Emacs。出于我们的目的,我们将使用 nano,这是一个不太复杂的 CLI 文本编辑器程序,我们可以使用它来开始我们的探索。

可以使用nano命令调用 nano 文本编辑器如果我们想编辑我们现有的sammy.txt文件,我们可以通过将文件名作为参数传递来实现。

  • nano sammy.txt

该文件将在您的终端上打开:

萨米.txt
Sammy the Shark

使用键盘的箭头键,将光标移动到行尾,然后从 Sammy 的角度开始键入几行。

注意:在命令行上,您不能使用鼠标或其他指针在文件系统和文件内进行导航。您需要使用键盘,尤其是箭头键来移动文本文件。

完成文件后,它可能会显示如下内容:

萨米.txt
Sammy the Shark

Hello, I am Sammy.
I am studying computer science.
Nice to meet you!

现在您的文件包含您想要的文本,我们现在可以保存并关闭文件。您可能会注意到终端窗口底部有一些指导:

^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Text ^T To Spell

因为我们目前已经完成了对这个文件的处理,所以我们想要Exit这个文件。在这里,^符号指的是键盘上ControlCTRL键,上面的输出告诉我们,我们需要将该键与X(使用小写,不SHIFT按键)组合以离开文件。让我们一起按下这两个键:

CTRL x

以上内容通常作为技术文档CTRL + XCtrl+x在技​​术文档中内嵌

此时,您将收到以下提示:

Output
Save modified buffer? Y Yes N No ^C Cancel

为了保存它,我们将按是的字母y

y

您将收到如下反馈。

Output
File Name to Write: sammy.txt

还有其他选项,包括使用 取消CTRL + C,但如果您愿意关闭文件,此时您可以按ENTER保存文件并退出。

假设我们要为 DigitalOcean 大学的学生制作一些文件。让我们在files/调用中创建一个新目录students

  • mkdir students

接下来,让我们sammy.txt进入新students/目录。mv命令代表m o ve,将允许我们更改文件的位置。该命令是通过将我们要移动的文件作为第一个参数,并将新位置作为第二个参数来构造的。以下两个执行将产生相同的结果。

  • mv sammy.txt students
  • mv sammy.txt students/sammy.txt

如果我们想更改文件的名称,后一个选项将很有用,如mv sammy.txt students/sammy-the-shark.txt.

现在,如果我们运行该ls命令,我们将看到只有ocean.txtstudents/目录在我们的当前目录 ( files/) 中。让我们进入students/文件夹。

  • cd students

为了给其他学生有一个模板,我们可以复制sammy.txt文件来创建更多的文件。为此,我们可以使用该cp命令,它代表c o p y。该命令的工作方式与该mv命令类似,将原始文件作为第一个参数,将新文件作为第二个参数。我们将为绿叶海龙亚历克斯制作一个文件:

  • cp sammy.txt alex.txt

现在,我们可以打开alex.txt并检查它。

  • nano alex.txt

到目前为止,alex.txt看起来与sammy.txt. 通过替换一些单词,我们可以修改这个文件,如下所示。请注意,您可以使用CTRL + K删除整行。

亚历克斯.txt
Alex the Leafy Seadragon

Hello, I am Alex.
I am studying oceanography.
Nice to meet you!

您可以按CTRL + Xtheny然后保存并关闭文件ENTER

如果您想要更多地练习文本文件,请考虑为 Mantis Shrimp、Jesse the Octopus、Drew the Squid 或 Taylor the Yellowfin Tuna 创建文件。

一旦您对创建、编辑、复制和移动文本文件感到满意,我们就可以进入下一部分。

自动完成和历史

许多版本的命令行,包括本教程中嵌入的交互式终端,都允许您自动完成并随时重用命令。这可以帮助您更快地移动,因为它可以节省您的打字时间。

尝试输入cat您一直在处理的文本文件之一的前几个字母 – 例如,cat sa. 在键入 的整个文件名之前sammy.txt,请TAB改为键。这应该会自动完成完整的文件名,以便您的终端提示显示以下内容:

  • cat sammy.txt

现在,如果按ENTER,终端应该将文件内容返回到命令行。

另一个快捷方式是按UP箭头键,它可以让您循环浏览最近运行的命令。在带有闪烁光标的新行上,按UP几次箭头键可以快速访问以前的命令。

如果您需要复制您在终端中完成的所有命令,您还可以使用恰当命名的history命令调用此会话的整个历史记录

  • history

根据您练习的程度,您应该收到 30 行或更多行命令,从以下输出开始:

Output
1 pwd 2 mkdir files 3 ls 4 ls -l ...

熟悉这些快捷方式将为您提供更熟练的命令行界面。

处理来自 Web 的文件

在连接到 Internet 的命令行界面上工作最令人兴奋的方面之一是您可以访问 Web 上的所有资源,并且可以以自动方式对其进行操作。使用终端,您还可以直接访问您拥有凭据的云服务器、管理和编排云基础架构、构建您自己的 Web 应用程序等等。现在,由于我们已经学习了如何在终端上处理文本文件,我们将讨论如何从 Web 中提取文本文件,以便我们使用的机器可以使用该文本文件。

让我们回到files/目录:

  • cd /home/sammy/files

从这里开始,我们将使用该curl命令将数据从 Web 传输到浏览器上的个人交互终端。该命令curl表示Ç lient URL(网页地址)。

我们在云服务器上上传了儒勒·凡尔纳 (Jules Verne) 的《海底两万个联赛》中的一小段我们将该文件的 URL 传递给curl命令,如下所示。

  • curl https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

一旦我们按下ENTER,我们将收到文章的文本作为我们终端的输出(摘录如下)

Output
"You like the sea, Captain?" "Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe. ... "Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this is a library which would do honor to more than one of the continental palaces, and I am absolutely astounded when I consider that it can follow you to the bottom of the seas."

虽然在我们的终端窗口上显示文本很有趣,但我们没有可用的文件,我们只传输了数据但没有存储它。(您可以通过运行来验证该文件不存在ls)。

为了将文本保存到文件中,我们需要curl使用-O标志运行,这使我们能够将文本输出到文件中,为我们的本地副本采用与远程文件相同的名称。

  • curl -O https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

您将从终端收到您的文件已下载的反馈。

Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487

如果您想使用文件的特定和备用名称,您可以使用该-o标志并将新文件的名称作为参数传递(在本例中为jules.txt)。

  • curl -o jules.txt https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

我们现在可以像处理任何其他文本文件一样处理这个文件。尝试使用cat,或使用编辑它nano

在下一节中,我们将清理一些文件并退出终端。

删除文件和终止命令

与任何其他计算机一样,我们有时需要删除不再相关的文件和文件夹,并退出我们正在使用的程序。

假设我们认识的DigitalOcean大学的学生已经毕业,我们需要清理他们的文件和相关文件夹。确保您位于以下students/目录中:

  • cd /home/sammy/files/students

如果您运行ls,您的文件夹可能有几个文件,如下所示:

Output
alex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt

我们可以删除单个文件用rm命令,它代表– [R êOVE。我们需要将要删除的文件作为参数传递。

警告:请注意,一旦删除文件,就无法撤消。在按 之前,请确保您要删除该文件ENTER

  • rm sammy.txt

现在,如果我们运行ls,我们会注意到它sammy.txt不再在文件夹中:

Output
alex.txt drew.txt jamie.txt jesse.txt taylor.txt

虽然我们现在知道我们可以使用 删除单个文件rm,但如果我们想删除整个students/目录及其所有内容,时间效率并不高

是,用于删除目录调用该命令时rmdir,它代表– [R ËOVE DIR ectory。让我们移动到 的父文件夹,files以便我们可以students/从那里处理目录(我们将无法删除我们目前所在的文件夹)。

  • cd ..

/home/sammy/用户的目录,我们可以运行rmdirstudents

  • rmdir students

但是,这不起作用,因为我们收到以下反馈:

Output
rmdir: failed to remove 'students': Directory not empty

该命令不起作用,因为rmdir仅适用于空目录并且students目录中仍有文件。(在这里,您可以创建一个新的空文件夹,然后试一试rmdir。可以使用 删除空文件夹rmdir。)

要删除包含文件的目录,我们需要尝试不同的选项。在计算机科学中,递归通常用于迭代自引用;所以我们可以同时调用一个主项和它的所有依赖项。使用该rm命令,我们可以递归删除主students目录及其所有内容依赖项。我们将使用的-r标志,它代表– [R ecursive和文件夹传递students作为参数。

  • rm -r students

此时,如果我们运行ls,我们会注意到它students/不再在我们当前的目录中,并且它保存的文件也不可用,因为它们都已被删除。

完成终端会话后,尤其是在远程服务器上工作时,您可以使用exit命令退出终端一旦您对您在本次会话中取得的成就感到满意(因为您将无法恢复它),您可以键入以下内容,然后ENTER离开终端。

  • exit

在我们的交互式终端上,我们将收到以下输出,确认我们的会话已结束。

Output
Session ended

完成此会话后,您可以刷新此页面,然后启动新终端以尝试替代命令,或创建新文件系统进行探索。

结论

恭喜!您现在已经了解了终端界面的使用方式,并且可以很好地利用计算机和服务器做更多的事情。

要继续学习,您可以通过我们的云计算简介课程设置和管理远程服务器

觉得文章有用?

点个广告表达一下你的爱意吧 !😁