[Shell编程] 零基础入门 Shell 编程:从概念到第一个脚本
目录
一、什么是 Shell?—— 连接用户与系统的 "桥梁"
二、常见的 Shell 类型 —— 不同系统的 "操作面板"
三、Shell 能做什么?—— 不止于 "输入命令"
1️⃣命令行操作:这是最基础的功能。通过ls(查看文件)、cd(切换目录)、rm(删除文件)等命令,直接控制电脑的文件、进程等资源。
2️⃣系统管理:系统管理员的 "利器"。比如通过 Shell 命令查看 CPU 使用率、配置网络参数、管理用户账号等,无需图形界面就能完成复杂的系统配置。
3️⃣脚本编程:将一系列命令写进文本文件(脚本),让系统按顺序执行。比如你每天需要备份文件、清理缓存,只需写一个脚本,一键就能完成所有操作。
4️⃣自动化任务:解放双手的关键。通过脚本实现重复性工作的自动化,比如批量重命名文件、定时运行程序(结合crontab工具)等,大幅提升工作效率。
四、Linux 中的 Shell—— 深入了解 "命令解释器"
五、第一个 Shell 脚本:Hello World!
步骤 1:创建脚本文件
步骤 2:编写脚本内容
步骤 3:添加可执行权限
步骤 4:执行脚本
执行结果
六、Shell 编程规范:写出易读、易维护的脚本
总结:从入门到实践
一、什么是 Shell?—— 连接用户与系统的 "桥梁"
简单来说,Shell 是一个命令解释器,它站在用户和操作系统内核之间,充当 "翻译官" 的角色:用户输入命令,Shell 负责解析并传递给内核执行,再将结果返回给用户。
- 形象点说,操作系统的核心(内核)就像一台精密的机器,普通用户无法直接操作;而 Shell 就是这台机器的 "操作面板",让我们能用简单的命令控制复杂的系统。
- 类比 Windows 系统:我们常用的
cmd.exe
(命令提示符)就是一种 Shell;更强大的 PowerShell 也是 Shell 的进阶版本。
二、常见的 Shell 类型 —— 不同系统的 "操作面板"
不同的操作系统有不同的 Shell,常见的主要有以下几种:
<1> Windows 系统
cmd.exe
:最基础的命令行 Shell,继承了早期 DOS 系统的功能,适合简单的文件操作、程序启动等。- PowerShell:微软推出的高级 Shell,不仅能执行命令,还支持脚本编程,适合系统管理和自动化任务(比如批量配置 Windows 服务器)。
<2> Linux 系统
- bash(/bin/bash):目前绝大多数 Linux 发行版(如 Ubuntu、CentOS)的默认 Shell,全称为 "Bourne Again Shell"。它功能强大、易用且免费,是 Linux 用户的首选,也是我们学习的重点
三、Shell 能做什么?—— 不止于 "输入命令"
Shell 的用途远不止 "输入命令" 这么简单,它是系统管理和自动化的核心工具:
1️⃣命令行操作:这是最基础的功能。通过ls
(查看文件)、cd
(切换目录)、rm
(删除文件)等命令,直接控制电脑的文件、进程等资源。
2️⃣系统管理:系统管理员的 "利器"。比如通过 Shell 命令查看 CPU 使用率、配置网络参数、管理用户账号等,无需图形界面就能完成复杂的系统配置。
3️⃣脚本编程:将一系列命令写进文本文件(脚本),让系统按顺序执行。比如你每天需要备份文件、清理缓存,只需写一个脚本,一键就能完成所有操作。
4️⃣自动化任务:解放双手的关键。通过脚本实现重复性工作的自动化,比如批量重命名文件、定时运行程序(结合crontab
工具)等,大幅提升工作效率。
四、Linux 中的 Shell—— 深入了解 "命令解释器"
在 Linux 系统中,Shell 是一个特殊的应用程序,它的核心作用是 "解释命令":
-
当你输入
ls -l
时,Shell 会解析这个命令的含义("查看当前目录下文件的详细信息"),然后告诉内核执行相应操作,最后将结果显示在屏幕上。 -
查看系统支持的 Shell:Linux 系统可以同时支持多种 Shell,通过
/etc/shells
文件可以查看所有可用的 Shell 类型。执行以下命令即可:bash
cat /etc/shells
通常会看到
/bin/bash
、/bin/sh
等,其中/bin/bash
是最常用的默认 Shell。
五、第一个 Shell 脚本:Hello World!
学习编程的第一步往往是 "Hello World",Shell 编程也不例外。下面我们一步步写出第一个 Shell 脚本,感受 Shell 编程的魅力。
步骤 1:创建脚本文件
首先,新建一个名为HelloWorld.sh
的文件(.sh
是 Shell 脚本的常用后缀,方便识别)。可以用vim
或nano
等文本编辑器创建:
bash
vim HelloWorld.sh
步骤 2:编写脚本内容
在文件中输入以下内容,然后保存退出:
bash
#!/bin/bash
# 这是我的第一个Shell脚本(注释行)
pwd # 显示当前目录
echo "Hello World!" # 输出Hello World
- 第一行
#!/bin/bash
是脚本声明,告诉系统:这个脚本需要用/bin/bash
程序来解释执行(必须放在脚本第一行)。 - 以
#
开头的行是注释(除了第一行的#!/bin/bash
),用于说明脚本功能,方便自己和他人理解(好习惯一定要养成!)。 pwd
命令:显示当前所在目录。echo
命令:输出后面的字符串(类似其他语言的 "打印" 功能)。
步骤 3:添加可执行权限
Shell 脚本默认没有 "执行权限",需要用chmod
命令添加。进入脚本所在目录,执行:
bash
chmod +x ./HelloWorld.sh
chmod +x
:给文件添加 "可执行" 权限(x
代表 execute)。- 执行后,用
ll
命令可以看到文件权限中多了x
(表示可执行)。
步骤 4:执行脚本
现在,我们可以运行这个脚本了。有三种常见的执行方式:
-
通过
./
执行(推荐):bash
./HelloWorld.sh
- 为什么要用
./
?因为 Linux 会在PATH
环境变量指定的目录(如/bin
、/usr/bin
)中查找可执行程序,而当前目录通常不在PATH
中。./
表示 "当前目录",告诉系统:就在这里找这个脚本。
- 为什么要用
-
通过
bash
或sh
执行:bash
bash ./HelloWorld.sh # 或 sh ./HelloWorld.sh
这种方式不需要脚本有执行权限,因为是直接调用bash
程序来解释脚本。 -
通过
source
或.
执行:bash
source HelloWorld.sh # 或 . HelloWorld.sh(注意.后面有空格)
- 这种方式会在当前 Shell 环境中执行脚本(其他方式会启动一个 "子 Shell"),适合需要修改当前环境的脚本(比如设置环境变量)。
执行结果
无论用哪种方式,你都会看到类似以下的输出:
plaintext
/root # pwd命令的结果(当前目录)
Hello World! # echo命令的结果
六、Shell 编程规范:写出易读、易维护的脚本
好的脚本不仅能运行,还要让别人(包括未来的自己)看得懂。以下是初学者必须掌握的编程规范:
-
开头必须有脚本声明:第一行
#!/bin/bash
不能少,明确指定解释器。 -
添加注释:
- 脚本开头用注释说明脚本的功能、作者、创建时间等。
- 复杂逻辑处用注释解释思路(比如 "这里是判断文件是否存在的逻辑")。
- 注释用
#
开头,单行注释即可(Shell 不支持多行注释)。
-
输出友好信息:多用
echo
命令输出关键步骤的提示(比如 "开始备份文件..."、"脚本执行完毕"),让执行过程更清晰。 -
示例:规范后的 HelloWorld 脚本
bash
#!/bin/bash # 脚本名称:HelloWorld.sh # 功能:输出当前目录和Hello World信息 # 作者:初学者echo "当前的目录位于:" # 提示信息 pwd # 显示当前目录 echo "Hello World!" # 输出问候语 echo "脚本执行完毕" # 结束提示
执行后输出更清晰:
plaintext
当前的目录位于: /root Hello World! 脚本执行完毕
总结:从入门到实践
Shell 编程是 Linux 系统操作和自动化的基础,它不难学,但能大幅提升工作效率。本文我们从 Shell 的概念讲到第一个脚本的编写,核心要点包括:
- Shell 是用户与内核之间的命令解释器;
- bash 是 Linux 中最常用的 Shell;
- 脚本的核心是 "按顺序执行命令",
#!/bin/bash
和注释是基础规范; - 执行脚本的三种方式及区别需要牢记。