你好,Bash!

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

本实验将指导你创建一个简单的 shell 脚本,用于打印经典的 "Hello, World!" 消息。你将学习使用 Bash shell 进行 shell 编程的基础知识,Bash shell 在类 Unix 操作系统(如 Linux)中广泛使用。本实验专为初学者设计,因此如果你是编程或使用命令行的新手,也不必担心。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/BasicSystemCommandsGroup(["`Basic System Commands`"]) shell(("`Shell`")) -.-> shell/BasicSyntaxandStructureGroup(["`Basic Syntax and Structure`"]) linux(("`Linux`")) -.-> linux/BasicFileOperationsGroup(["`Basic File Operations`"]) linux(("`Linux`")) -.-> linux/FileandDirectoryManagementGroup(["`File and Directory Management`"]) linux/BasicSystemCommandsGroup -.-> linux/echo("`Text Display`") shell/BasicSyntaxandStructureGroup -.-> shell/shebang("`Shebang`") shell/BasicSyntaxandStructureGroup -.-> shell/comments("`Comments`") shell/BasicSyntaxandStructureGroup -.-> shell/quoting("`Quoting Mechanisms`") linux/BasicFileOperationsGroup -.-> linux/ls("`Content Listing`") linux/BasicFileOperationsGroup -.-> linux/touch("`File Creating/Updating`") linux/BasicFileOperationsGroup -.-> linux/cat("`File Concatenating`") linux/BasicFileOperationsGroup -.-> linux/chmod("`Permission Modifying`") linux/FileandDirectoryManagementGroup -.-> linux/pwd("`Directory Displaying`") subgraph Lab Skills linux/echo -.-> lab-388809{{"`你好,Bash!`"}} shell/shebang -.-> lab-388809{{"`你好,Bash!`"}} shell/comments -.-> lab-388809{{"`你好,Bash!`"}} shell/quoting -.-> lab-388809{{"`你好,Bash!`"}} linux/ls -.-> lab-388809{{"`你好,Bash!`"}} linux/touch -.-> lab-388809{{"`你好,Bash!`"}} linux/cat -.-> lab-388809{{"`你好,Bash!`"}} linux/chmod -.-> lab-388809{{"`你好,Bash!`"}} linux/pwd -.-> lab-388809{{"`你好,Bash!`"}} end

WebIDE (VS Code) 介绍

在本 Shell 脚本课程中,我们将使用基于 Visual Studio Code (VS Code) 的 WebIDE。这个集成开发环境提供了一个便捷的方式,让你可以在一个地方编辑脚本并访问终端。

需要注意的是,虽然 WebIDE 中的默认 shell 是 Zsh,但我们在本实验中编写的将是 Bash 脚本。Bash(Bourne Again SHell)是类 Unix 系统中最常见且广泛使用的 shell。Zsh(Z Shell)是 Bash 的扩展版本,具有一些改进和功能。在本实验中,这些差异不会影响我们的工作,因为我们的脚本将通过 shebang 行(#!/bin/bash)显式使用 Bash。

访问 WebIDE

当你启动实验时,你会在浏览器中看到 WebIDE 界面。它由以下几个关键部分组成:

  1. 文件资源管理器(左侧边栏):显示目录结构和文件。
  2. 编辑器(主区域):你将在其中编写和编辑脚本。
  3. 终端(底部面板):你将在其中运行命令和执行脚本。

打开终端

要在 WebIDE 中打开终端:

  1. 点击顶部菜单中的“Terminal”。
  2. 从下拉菜单中选择“New Terminal”。

这将在 WebIDE 底部打开一个新的终端面板。你会看到一个类似于以下的命令提示符:

labex:project/ $

这表示你以用户 labex 登录,当前目录是 ~/project(这是 /home/labex/project 的简写)。

使用终端

WebIDE 终端界面示例

你可以像在 Linux 系统上使用普通终端一样使用这个终端。例如,要查看当前目录的内容,你可以输入:

ls

然后按 Enter。这将列出当前位置的所有文件和目录。

创建 Shell 脚本文件

现在,让我们为我们的 shell 脚本创建一个新文件。我们将在终端中使用 touch 命令来完成此操作。touch 命令用于创建空文件或更新现有文件的访问和修改时间。

在终端中输入以下命令并按 Enter:

touch hello.sh

此命令将在当前目录中创建一个名为 hello.sh 的空文件。.sh 扩展名通常用于 shell 脚本,但它不是强制性的。

终端 touch 命令示例

运行此命令后,你不会看到任何输出。在类 Unix 系统中,没有输出通常意味着命令执行成功。

或者,你也可以使用 WebIDE 界面创建文件:

  1. 在文件资源管理器中,右键单击 /home/labex/project 目录。
  2. 从上下文菜单中选择“New File”。
  3. 输入文件名 hello.sh 并按 Enter。

这将创建一个名为 hello.sh 的新文件,并在编辑器中打开它。

编辑 Shell 脚本

现在我们已经创建了文件,接下来让我们为其添加一些内容。我们将使用 WebIDE 的内置编辑器来完成此任务。

如果文件尚未在编辑器中打开:

  1. 在文件资源管理器中,双击 hello.sh 以打开它。

在编辑器中,准确输入以下两行内容:

#!/bin/bash
echo 'Hello, World!'

让我们分解一下这些行的含义:

  1. #!/bin/bash - 这被称为“shebang”行。它告诉系统应该使用哪个解释器来运行此脚本。在这里,我们指定了 Bash shell。
  2. echo 'Hello, World!' - 这行使用 echo 命令将文本 "Hello, World!" 打印到屏幕上。

输入这些行后,按 Ctrl + S 或通过顶部菜单中的 File > Save 保存文件。

使脚本可执行

在运行脚本之前,我们需要使其可执行。在类 Unix 系统中,文件具有控制谁可以读取、写入或执行它们的权限。默认情况下,新文件是不可执行的。

为了使我们的脚本可执行,我们使用 chmod 命令(代表 "change mode")。在终端中输入以下命令并按 Enter:

chmod +x hello.sh

以下是该命令的作用:

  • chmod 是用于更改文件权限的命令
  • +x 表示“添加执行权限”
  • hello.sh 是我们的文件名

如果命令成功执行,你不会看到任何输出。

执行脚本

现在我们的脚本已经是可执行的了,我们可以运行它。要运行当前目录中的脚本,我们需要在脚本名称前加上 ./。这个 ./ 告诉系统在当前目录中查找脚本。

在终端中输入以下命令并按 Enter:

./hello.sh

如果一切操作正确,你应该会看到以下输出:

Hello, World!
终端脚本执行输出示例

恭喜!你已经成功运行了你的第一个 shell 脚本。

查看脚本内容

作为最后一步,让我们查看脚本文件的内容以确认一切正确。我们可以使用 cat 命令来完成此操作,它会在终端中显示文件的内容。

在终端中输入以下命令并按 Enter:

cat hello.sh

你应该会看到脚本的内容显示如下:

#!/bin/bash
echo 'Hello, World!'

这是一个在编写脚本时应养成的好习惯——始终仔细检查你的工作!

总结

在本实验中,你成功创建并执行了一个简单的 Bash shell 脚本。你学会了如何:

  1. 浏览 WebIDE 并使用其集成的终端
  2. 使用 touch 命令或 WebIDE 界面创建新的脚本文件
  3. 使用 WebIDE 的内置编辑器编辑文件
  4. 理解 shell 脚本中 shebang 行的作用
  5. 使用 echo 命令打印文本
  6. 使用 chmod 命令使脚本可执行
  7. 从命令行运行 shell 脚本
  8. 使用 cat 命令查看文件内容

这些基本技能为在类 Unix 环境中进行更高级的 shell 脚本编写和自动化任务奠定了基础。随着学习的深入,你会发现 shell 脚本在系统管理和任务自动化方面的强大和灵活性。

记住,练习是编程的关键。尝试修改脚本以打印不同的消息,或创建新的脚本来执行其他简单任务。不要害怕尝试——这正是你学习的方式!

您可能感兴趣的其他 Linux 教程