Shell提供了到Linux系统的接口。它收集来自输入并基于该输入执行程序。当程序执行完毕时,它会显示该程序的输出。 Shell是一个可以在其中运行命令、程序和Shell脚本的环境。有不同风格的shell,就像有不同风格的操作系统一样。每种shell都有自己的一组可识别的命令和函数。

1、shell提示符

提示符$被称为命令提示符,由shell发出。当提示符出现时,可以输入命令。

按下Enter键后,shell读取输入。它通过查看输入的第一个单词来确定要执行的命令。单词是一组不间断的字符。空格和制表符分隔单词。

使用date命令显示当前日期和时间,例如

$ date
Mon Sep 27 15:49:01 CST 2021

可以使用环境教程中解释的环境变量PS1自定义命令提示符。

2、shell类型

在Linux中,shell有两种主要类型

Bourne shell:如果使用Bourne类型的shell, $字符是默认提示符。

C shell:如果使用的是C类型shell, %字符是默认提示符。

Bourne shell有以下子类别:

Bourne shell (sh)
Korn shell (ksh)
Bourne Again shell (bash)
POSIX shell (sh)

下面是不同的C-type shell

C shell (csh)
TENEX/TOPS C shell (tcsh)

最初的Unix shell是由Stephen R. Bourne在20世纪70年代中期编写的,当时他在新泽西州的AT&T贝尔实验室工作。

Bourne shell是出现在Unix系统上的第一个shell,因此它被称为"shell"。

在大多数版本的Unix上,Bourne shell通常以/bin/sh的形式安装。由于这个原因,它是编写脚本的shell,这些脚本可以在不同版本的Unix上使用。

bash是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是Bourne Again shell的缩写,内部命令一共有40个。

3、shell脚本

shell脚本的基本概念是命令列表,这些命令按执行顺序列出。一个好的shell脚本会有注释,在#符号之前描述步骤。

shell脚本和函数都是解释的。所以不需要编译。

4、示例脚本

假设创建了一个demo.sh脚本。注意,所有脚本都有.sh扩展名。在向脚本添加其他内容之前,需要提醒系统有一个shell脚本正在启动。这是使用shebang构造完成的。例如,

#!/bin/sh

说明接下来的命令将由Bourne shell执行。它被称为shebang,因为#符号被称为hash,而!符号被称为bang

要创建包含这些命令的脚本,首先放置shebang行,然后添加命令,

例如,

#!/bin/bash
pwd
ls

4、Shell脚本注释

可以按照如下方式在脚本中添加注释,

#!/bin/bash
#--------------------------------------------
# 这是一个注释
# author:levi
# site:www.cjavapy.com
#--------------------------------------------
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
# 
#
##### 用户配置区 结束  #####
pwd
ls

保存上述内容并使脚本可执行

chmod +x demo.sh

执行shell脚本:

$./demo.sh

注意:执行当前目录下的程序,使用./program_name

推荐文档