Shell 脚本基础

学习 Shell 脚本基础知识。本模块涵盖创建第一个脚本、变量和用户输入、使用 If Else 的条件逻辑、使用 For 和 While 的循环、退出代码和错误处理、脚本调度和日志记录。您将通过实践实验室和真实世界的挑战来掌握这些基本的 Linux 技能。

DevOps 工程师LinuxDevOps

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

简介

这门中级课程帮助你把熟悉的 Shell 命令组合成可复用的 Bash 程序。通过 6 个引导式实验,你将创建可执行脚本,接收交互式和参数输入,根据系统条件分支,使用循环重复任务,响应命令状态,并保留带时间戳的执行历史。

最终挑战会把这些基础组合成 onboard.sh 工具:验证唯一用户名参数、避免重复账户、创建使用 Bash 的用户及其有正确所有权的工作目录,并把成功操作写入审计日志。

你将学到什么

  • 使用 Shebang 编写 Bash 脚本,赋予执行权限并通过 ./ 运行
  • 在变量中保存值,并使用 read 或位置参数 $1 接收输入
  • 使用 if 和 else 检查文件是否存在及数字用户身份
  • 使用 for 循环遍历数字范围和文件名通配符
  • 使用 while 循环在数字条件成立时重复执行
  • 在命令后立即检查 $?,并在操作失败时进入条件分支
  • 向绝对路径日志追加消息和时间戳,同时保留已有历史
  • 构建带参数验证、目录所有权和审计日志的账户配置脚本

本课程适合谁

本课程适合已经理解终端命令、文件、权限、变量和重定向,并希望把它们组合成小型 Bash 管理脚本的 Linux 用户。

前置要求: 熟悉终端导航、文件操作、Nano 或其他编辑器、Shell 变量、通配符、命令替换、重定向、权限和 sudo。

学习环境: LabEx 提供的 Ubuntu 环境终端,包含 Bash、可编辑项目脚本、准备好的测试文件,以及用于创建挑战专用本地账户的隔离管理权限。

常见问题

课程如何组织?

前 6 个实验提供引导式脚本练习。第 7 项是提示较少的挑战,你会逐步构建并测试一个可执行的 onboard.sh 程序。

Scheduling 实验会配置 Cron 或其他调度器吗?

不会。它通过向绝对路径日志追加消息和 date 输出,为无人值守运行准备脚本,再手工模拟多次运行。Cron 配置在其他课程中讲解。

最终脚本会对系统进行哪些修改?

在隔离实验中,它使用 sudo useradd -m -s /bin/bash 创建真实的本地测试账户,创建 /home/<username>/work 并把所有权交给该用户,然后追加 ~/project/onboard.log。

错误处理会深入到什么程度?

课程通过 $?、非零 exit、参数数量检查,以及命令失败或用户已存在时的条件处理介绍退出状态,但不涉及 Trap、set -euo pipefail、清理处理或事务回滚。

教师

labby
Labby
Labby is the LabEx teacher.