Linux Shell和Shell脚本的介绍

406 阅读5分钟

Linux Shell和Shell脚本介绍

如果你使用任何主要的操作系统,你都会间接地与shell互动。当你在Ubuntu、Linux Mint或其他一些Linux传播系统上利用终端时,你就是在与shell进行交互。

在这篇文章中,我将描述Linux的shell和shell脚本。然而,在我们理解shell脚本之前,我们必须首先学习以下术语。内核外壳终端

前提条件

你将需要以下物品来学习本教程。

  • 一个代码编辑器,例如:[Visual Studio Code]。
  • 一台运行任何Linux操作系统的计算机

在这篇文章中,我使用了Ubuntu 20.04版本的操作系统。

  • 一些关于使用Linux操作系统的知识

什么是内核

kernel 是计算机软件,它是计算机操作系统的核心,控制着其中的一切。它负责以下Linux系统的资源。

  • 文件管理
  • 进程的管理
  • I/O的管理
  • 设备管理,内存管理,等等。

Linus Torvalds有时被误认为是Linux操作系统的创造者,但他只负责创建Linux内核。

一个完整的Linux内核由以下部分组成

  • 内核
  • GNU系统实用程序和库
  • 额外的管理脚本
  • 安装脚本

什么是Shell

shell 是一个独特的用户程序,允许用户与操作系统功能进行交互。Shell接受用户可读的命令并将其转换为对内核友好的命令。它是一个命令的解释器,可以读取和运行键盘或文件上的命令。当用户登录或启动一个终端时,shell就被启动了。

壳可以分为两类。

  1. 命令行外壳
  2. 图形化外壳

命令行外壳

通过shell接口shell可以进行访问。一种叫做 "终端 "的工具被用来键入人类可读的命令,如Linux/MacOS中的catls ,或Windows中的 "命令提示符",随后执行任务。然后,用户会在终端上看到结果。这就是Ubuntu终端的模样。

output

在上面的截图中,ls 命令是与-l 选项一起使用的。对于一个长的列表,文件显示在当前工作目录中。

对于初学者来说,使用命令行shell是一种挑战,因为有很多命令需要记住。它非常强大,因为它允许用户将命令保存在一个文件中,然后一次性执行它们。任何重复性的任务都可以通过这种方式轻松实现自动化。Windows中的批处理记录和Linux/MacOS框架中的Shell Scripts是这些文件的正常名称。

图形化外壳

图形化的shells允许使用一个GUI 程序来打开、关闭、移动和调整窗口的大小,以及在窗口大小之间切换焦点。窗口操作系统或Ubuntu操作系统是提供图形用户界面(GUI)的操作系统的显著例子,用于与程序互动。对于每个活动,用户不需要输入命令。一个典型的Ubuntu用户界面如下图所示。

output

对于Linux系统来说,有各种可用的shell,如:。

  1. Bourne Again Shell(BASH):在Linux系统中,它是使用最广泛的shell。它是Linux和macOS计算机上的默认登录壳。该系统也与Windows兼容。

  2. C壳(CSH):C外壳与C编程语言的语法和使用非常相似。

  3. Korn Shell (KSH):Korn shell也是POSIX Shell标准要求的基础,除此之外。

每个shell都完成相同的任务,但它能识别各种命令,并有不同的内置功能。

Shell的脚本

Shell通常是交互式的,所以它们接受并执行用户的命令。然而,有时我们需要定期执行一系列的指令,而且每次都要在终端上输入所有的指令。

我们可以在shell中编写和执行这些指令,以避免这种重复性的工作,因为shell可以把文件中的指令作为输入。Shell脚本Shell程序是给这些文件的名字。MS-DOS的批处理文件与shell脚本相似。在每个shell脚本中都有一个扩展名.sh ,如myscript.sh

Shell脚本的语法与其他编程语言相同。如果你熟悉任何编程语言,如Python、C/C++或其他语言,它们将很容易创建。

下面这些部分组成了一个shell脚本。

  • 外壳关键字,如if, else, and break
  • 贝壳命令,如cd, ls, echo, PWD, and touch
  • 函数
  • 控制流程,如If...then...else, case and shell loops

为什么我们需要shell脚本?

Shell脚本有几个原因可以派上用场。

  1. 为了避免重复性的工作和自动化的使用
  2. Shell脚本被系统管理员用来做常规备份
  3. 对系统进行监控
  4. 将额外的功能纳入shell中

外壳脚本的优点

  1. 程序员不需要转用不同的语法,因为命令和语法与直接在命令行上输入的命令和语法是相同的
  2. 编写shell脚本要比编写Java脚本快得多
  3. 快速上手
  4. 实时调试

外壳脚本的缺点

  1. 容易出现代价高昂的失误,一个失误就可以改变指令,也许会造成伤害。
  2. 执行时间很慢。
  3. 语言的语法或实现上有设计缺陷
  4. 与其他脚本语言不同,它不太适合大型和复杂的任务,只提供有限的数据结构

Bash Shell脚本的简易演示

在这个演示中,我们将做一个用增量运算符将一个变量增量三次的bash脚本。

程序

  1. 打开终端,移动到桌面目录,运行下面的命令,创建一个文件并命名为firstscript.sh
$  touch "name of the file"
  1. 运行ls -l 命令,查看你所创建的文件的权限。

从上面的命令来看,读和写的权限已经启用,而文件的可执行权限没有启用。

  1. 要启用可执行的权限,请运行下面的命令。
$  chmod +x "name of the file"
  1. 打开你创建的文件,复制/粘贴下面的文字。
#!/bin/bash

VAR=1

echo "$VAR"


VAR=$((VAR+=1))
echo "$VAR"

VAR=$((VAR+=1))
echo "$VAR"

VAR=$((VAR+=1))
echo "$VAR"
  1. 运行下面的命令来打开你创建的文件。
$  ./"your file name"

它将显示递增的变量1至4,如下图所示。

output

总结

在这篇文章中,我们学习了shell脚本的基础知识,了解了shell脚本中的术语,shell脚本的优点和缺点,并做了一个Bash shell脚本的例子。我呼吁读者利用上面所学的知识来创建和学习更多的shell脚本,以了解更多的shell脚本。