[Shell编程] 零基础入门 Shell 编程:从概念到第一个脚本

发布于:2025-08-05 ⋅ 阅读:(18) ⋅ 点赞:(0)

目录

一、什么是 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 脚本的常用后缀,方便识别)。可以用vimnano等文本编辑器创建:

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:执行脚本

现在,我们可以运行这个脚本了。有三种常见的执行方式:

  1. 通过./执行(推荐):

    bash

    ./HelloWorld.sh
    
     
    • 为什么要用./?因为 Linux 会在PATH环境变量指定的目录(如/bin/usr/bin)中查找可执行程序,而当前目录通常不在PATH中。./表示 "当前目录",告诉系统:就在这里找这个脚本。
  2. 通过bashsh执行:

    bash

    bash ./HelloWorld.sh  # 或 sh ./HelloWorld.sh
    

    这种方式不需要脚本有执行权限,因为是直接调用bash程序来解释脚本。
  3. 通过source.执行:

    bash

    source HelloWorld.sh  # 或 . HelloWorld.sh(注意.后面有空格)
    
     
    • 这种方式会在当前 Shell 环境中执行脚本(其他方式会启动一个 "子 Shell"),适合需要修改当前环境的脚本(比如设置环境变量)。

执行结果

无论用哪种方式,你都会看到类似以下的输出:

plaintext

/root  # pwd命令的结果(当前目录)
Hello World!  # echo命令的结果

六、Shell 编程规范:写出易读、易维护的脚本

好的脚本不仅能运行,还要让别人(包括未来的自己)看得懂。以下是初学者必须掌握的编程规范:

  1. 开头必须有脚本声明:第一行#!/bin/bash不能少,明确指定解释器。

  2. 添加注释:

    • 脚本开头用注释说明脚本的功能、作者、创建时间等。
    • 复杂逻辑处用注释解释思路(比如 "这里是判断文件是否存在的逻辑")。
    • 注释用#开头,单行注释即可(Shell 不支持多行注释)。
  3. 输出友好信息:多用echo命令输出关键步骤的提示(比如 "开始备份文件..."、"脚本执行完毕"),让执行过程更清晰。

  4. 示例:规范后的 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和注释是基础规范;
  • 执行脚本的三种方式及区别需要牢记。

网站公告

今日签到

点亮在社区的每一天
去签到