大家好,我是宁一。
之前想要出一门新的课程,shell是投票最多的~~
使用 Shell 的熟练程度反映了用户对 Linux 的掌握程度,不管是程序员,还是运维工程师,shell都是必须掌握的技能。
Shell是一个命令行解释器,相当于系统内核外面的壳,是用户操作 Linux 系统的桥梁。
本节课给大家整理了实际工作中,shell的一些常用语法,都会结合实例讲解,大家一起打开终端,跟着我来一起操作吧~
1、打开终端
终端(terminal)就是这么一个小框,我们往里面输入命令,系统也会在这里面显示返回的命令。
大家可以尝试输入echo "Hello World”,看看系统会返回什么。echo是用来输出字符串的,下面我们会经常用到。
终端打开方式:
Linux:组合键ctrl+alt+T
Mac:启动台 搜索 终端
Windows:开始 搜索 cmd
当我们打开终端时,操作系统就会将终端和shell关联起来,我们在终端中输入命令,shell就负责解释命令。
2、Shell 变量
定义变量不加$美元符号,引用变量的时候要加$美元符号。下方示例中的代码直接在终端输入就可以。
注意:
定义变量时,等号两边不能有空格,这个一定要特别注意,非常容易写错。变量命名只能使用英文字母,数字和下划线。首个字符不能以数字开头。
# 定义变量name,定义成功后什么也不会返回。注意等号旁边不要有空格,否则会报错。
name="ningyi"
# 引用变量,前面加$美元符号。
echo "my name is ${name}" # 输出 my name is ningyi
# 在字符串中引用变量必须用双引号,单引号变量不会被解析的
echo 'my name is ${name}' # 输出 my name is ${name}
补充:如果行是以 # 开头的,那这行就是注释,会被解释器忽略的。
3、Shell 字符串
在Shell中,字符串有很多处理方法,比如截取、替换、长度等,来看看一些常用的方法。
# 定义变量string
string="abcdea"
# 取字符串长度,变量前面加#
echo ${#string} # 输出 6
# 截取字符串,从第4个字符开始截取,字符串索引由0开始编号
echo ${string:3} # 输出 dea
# 从第4个字符开始截取1个字符
echo ${string:3:1} # 输出 d
# 替换字符,替换第一个a为f
echo ${string/a/f} # 输出 fbcdea
# 替换所有a为f
echo ${string//a/f} # 输出 fbcdef
4、Shell 数组
Shell数组、字符串的定义和引用非常相似,区别是数组中可以存放多个值。
Shell 数组用括号来表示,元素用"空格"符号分割开。
# 定义数组array
array=(a b c d)
#引用数组,前面也要加$符号,元素的下标从 0 开始。
echo "第一个元素: ${array[0]}" # 输出 第一个元素:a
echo "第三个元素:${array[2]}" # 输出 第三个元素:c
echo "所有元素: ${array[*]}" # 输出 所有元素: a b c d
# 获取数组长度,数组前面加#
echo "${#array[*]}" # 输出 4
5、Shell 运算符
实际业务中经常会计算各种数据,下面是我们常用的运算符,注意“乘”的写法。
可以直接在expr关键词后面计算。
# 运算符前后要加空格,否则会被识别为字符串
expr 1 + 2 # 输出 3
# 运算符前后没有加空格,就会直接输出为字符串
expr 1+2 # 输出 1+2
# 计算(2+3)*4
expr `expr 2 + 3` * 4 # 输出 20
计算稍微复杂的表法式,用expr关键词就不太适用了,我们也可以这样写:变量=$[表达式]。
注意这种写法,一定要定义为变量。
还要注意定义变量时,等号前后不要有空格。表法式放在$[]中,对空格就没有要求了,可加可不加。
# 计算(2+3)*4
a=$[(2+3)*4]
# 输出结果
echo $a # 输出 20
6、Shell 脚本
Shell 脚本就是一个以.sh为后缀的文件。
以后我们将要学习if条件、for循环等流程控制语句,这种比较复杂的语法,我们通常会写在Shell 脚本中。
(1)创建脚本
我们用touch命令来创建文件。先来创建一个名为name.sh 的Shell 脚本文件,直接在终端输入下面代码。
touch name.sh
(2)编辑脚本
创建完成后,会在当前目录下看到一个名为name.sh的文件,我们再回到终端,用vi命令打开这个文件。
vi name.sh
打开文件后,输入i,进入编辑模式,再输入下面前两行内容,完成后,按esc键退出编辑模式,最后输入:wq退出文件。
(3)执行脚本
bash name.sh # 输出 my name is ningyi
点击关注,编程入门不迷路~
往期推荐
吐血整理!2022年SQL大厂高频实战面试题
程序员做饭指南,GitHub教程来了
30分钟开发并上线云开发小程序
在看不好意思,那就点个赞吧
发表评论