摘要:Shell是运行在终端中的文本互动程序,Bash(Bourne-Again Shell)是最常用的一种shell。是当前大多数Linux发行版的默认Shell。Shell相当于是一个翻译,把我们在计算机上的操作或我们的命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作。同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前。最开始在Unix系统中流行的是sh,而bash作为sh的改进版本,提供了更加丰富的功能。一般来说,都推荐使用bash作为默认的Shell。

一、Shell类别

1、登陆linux系统

linux怎么写bash(Linux系统Bash编程实践)(1)

2、查看默认的shell

linux怎么写bash(Linux系统Bash编程实践)(2)

3、Shell交互式环境介绍

linux怎么写bash(Linux系统Bash编程实践)(3)

# 表示当前登录的是超级用户root

root 表示当前登录的用户名

docker-redis 表示当前的主机名

~ 表示当前所在目录为家目录

4、Shell命令的分类

Shell命令可以分为两类,内嵌函数(built-in function)和可执行文件(executable file)。

内嵌函数(built-in function):shell自带的功能。比如pwd

linux怎么写bash(Linux系统Bash编程实践)(4)

可执行文件(executable file):保存在shell之外的脚本,提供了额外的功能。比如date

linux怎么写bash(Linux系统Bash编程实践)(5)

二、Bash Shell编程说明

1、代码大小写敏感

2、脚本文件多以.sh作为扩展名

3、首行注释需说明解释器的路径(如:#!/bin/bash)

4、指定脚本的返回值,一般脚本的返回值以exit命令指定,或以脚本最后一条命令的返回值为脚本返回值。

5、代码只能用行注释,以 '#' 开头。

三、Bash常用快捷键

1、Ctrl c:立即停止前台正在运行的程序

2、Ctrl d:退出,相当于exit命令。删除光标后的字符。

3、Ctrl l:清屏,相当于clear命令。

4、Ctrl a:光标移动到命令行的行首

5、Ctrl e:光标移动到命令行的行尾

6、Ctrl u:删除光标所在处至行首的字符

7、Ctrl k:删除光标所在处至行尾的字符

8、Ctrl r:利用关键字搜索命令历史

9、Shift PageUP/PageDown:如果某些命令的输出特别长,导致前面的内容以不在当前屏幕中,就可以使用这两个快捷键进行上下翻页。

四、Bash编程实践

1、在写bash脚本时,如何传参数?

执行#vim hello.sh编写如下程序

linux怎么写bash(Linux系统Bash编程实践)(6)

可以传0-6共七个参数,执行#./hello.sh接上参数。如下图

linux怎么写bash(Linux系统Bash编程实践)(7)

2、if语句。脚本执行的返回值,由脚本执行过程中,最后一条执行的命令的返回值来决定

执行#vim checkuser.sh编写如下程序

linux怎么写bash(Linux系统Bash编程实践)(8)

执行#./checkuser.sh接上用户名参数。如下图

linux怎么写bash(Linux系统Bash编程实践)(9)

3、case语句。专用于对字符串做判断

执行#vim checksystem.sh编写如下程序

linux怎么写bash(Linux系统Bash编程实践)(10)

执行#./checksystem.sh指令。如下图

linux怎么写bash(Linux系统Bash编程实践)(11)

4、while语句。循环语句

每隔3秒,打印一次系统负载。执行#vim while.sh编写如下程序

linux怎么写bash(Linux系统Bash编程实践)(12)

执行#./while.sh指令。如下图

linux怎么写bash(Linux系统Bash编程实践)(13)

5、for语句。循环语句

执行#vim for.sh编写如下程序

linux怎么写bash(Linux系统Bash编程实践)(14)

执行#./for.sh指令。如下图

linux怎么写bash(Linux系统Bash编程实践)(15)

6、Bash的数组操作

执行语句# declare -a array1 声明一个数组并定义4个数组,如下图

linux怎么写bash(Linux系统Bash编程实践)(16)

执行语句#echo ${array1[*]}显示所有数组或者某一个数组。如下图

linux怎么写bash(Linux系统Bash编程实践)(17)

参考数组实例。如下图

linux怎么写bash(Linux系统Bash编程实践)(18)

7、Bash的变量操作

执行#file=123abc.sh定义一个普通变量

linux怎么写bash(Linux系统Bash编程实践)(19)

打印一个普通变量的值打印一个普通变量的值

linux怎么写bash(Linux系统Bash编程实践)(20)

打印一个变量的值的字符个数

linux怎么写bash(Linux系统Bash编程实践)(21)

略去变量的前3个字符

linux怎么写bash(Linux系统Bash编程实践)(22)

取出变量的后3个字符

linux怎么写bash(Linux系统Bash编程实践)(23)

8、Bash的函数操作

执行#vim function.sh编写如下程序

linux怎么写bash(Linux系统Bash编程实践)(24)

执行#./function.sh指令。如下图

linux怎么写bash(Linux系统Bash编程实践)(25)

,