文章目录
一、环境准备
我们在这里就在本地测试学习,因此我在这里先不建议大家这么着急去买服务器来学,这样比较费钱,等我们学好这些基础之后,再去上手服务器,那将是手到擒来。
本地学习工具:虚拟机
如果你没有该工具,请按照这个操作安装:虚拟机安装配置教程
当然,如果你有钱,阿里云,腾讯云自己租一个也可以。
二、hello Linux
创建shell脚本,命名test,格式统一为.sh
touch test.sh
编辑脚本:
vim test.sh
如果你不了解vim用法,或者你的虚拟机没有安装vim,看这一篇文章前面部分:cat详细教程顺便你也可以学一下cat命令。这里大概演示一下:
先输入如下命令回车
vim test.sh
按一下字母i键,即可编辑,我就输入hello Linux,你也可以写别的内容,不一定为英文
编辑好内容后,按一下ESC键,再输入:wq! (表示强制保存退出的意思),回车即可。
如上则是保存成功。
三、运行shell脚本
首先赋予权限:
chmod 777 test.sh
执行脚本:
./test.sh
演示:
四、shell变量
1)普通变量
变量就很简单,比如我我要给变量a赋值为“川川帅哥“,则是:
a="川川帅哥"
使用打印变量呢?
echo $a
你可以在这里把echo理解为python的print,c语言的printf之类。
现在我们还是新建一个sh来进行测试
touch test1.sh
编辑文件:
vim test1.sh
编辑内容如下:
操作界面如下:
你可以看到,我开始忘记给文件权限,所以执行的时候显示权限不够。所以不要忘记赋予权限。
2)只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。举个例子。
创建新的文件并编辑:
编辑内容如下:
执行则会报错:
实际上这样的变量,我们一般也不怎么用,个人认为了解一下就是。
3)删除变量
使用函数unset,跟上面操作一样,就不演示了,也是作为了解就行。
c="川川菜鸟" unset c echo $c
以上实例执行将没有任何输出。
五、Shell 字符串
1)单双引号
字符串可以用单引号,也可以用双引号,也可以不用引号。
创建内容为:
a='川川菜鳥' b="川川帥哥" echo $a echo $b
演示:
完整演示:
单引号特点:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
双引号特点:
- 双引号里可以有变量
- 双引号里可以出现转义字符
2)字符串拼接
a="chuan" b="chuan" c=" $a$b" echo $c
如下:
完整演示如下:
3)获取字符串长度
在上面的基础之上加上echo ${#c}即可:
a="chuan" b="chuan" c=" $a$b" echo $c echo ${#c}
完整演示:
4)字符串提取
我们在前面的基础之上加上一点即可,我们主要是用切片的方法来来获取,什么是切片?如果你跟我一起学过python那你不会不知道,就不讲解了。
编辑保存内容如下
a="chuan" b="chuan" c=" $a$b" echo $c echo ${#c} echo ${a:1:3}
即:
完整演示:
六、Shell 数组
1)读取索引数组
Shell 数组用括号来表示,元素用空格符号分割开。
sh文件内容为:
a=(A B "C" D) echo $a
即
完整演示为:
但是你是否在疑惑只输出的第一个,shell里我们不能像别的语言一样,直接输出全部,因此我们要修改一下。
改为这样:
a=(A B "C" D) echo ${a[0]} echo ${a[1]} echo ${a[2]} echo ${a[3]}
保存再次运行:
2)获取数组中的所有元素
如果想一次性全部输出,并不想通过索引来输出怎么办?使用@ 或 * 可以获取数组中的所有元素,在上面的基础上我再编辑加两行:
a=(A B "C" D) echo ${a[0]} echo ${a[1]} echo ${a[2]} echo ${a[3]} echo "數組元素依次如下:${a[@]}" echo "數組元素依次如下:${a[*]}"
完整演示:
3)获取数组的长度
在前面的基础之上加上:
echo "數組元素個數爲:${#a[@]}" echo "數組元素個數爲:${#a[*]}"
即
演示如下:
七、shell运算符
算术运算符
演示其中一部分,其它则类似
a=10 b=20 val=`expr $a + $b` echo "a + b : $val" val=`expr $a - $b` echo "a - b : $val" val=`expr $a \* $b` echo "a * b : $val" val=`expr $b / $a` echo "b / a : $val" val=`expr $b % $a` echo "b % a : $val" if [ $a == $b ] then echo "a 等于 b" fi if [ $a != $b ] then echo "a 不等于 b" fi
完整演示如下:
注意事项:
- 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
- 完整的表达式要被 两个反引号 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
- 乘号(*)前边必须加反斜杠()才能实现乘法运算;
- if…then…fi 是条件语句,后续将会补充讲解。
其它运算符就不讲了,主要掌握下算数运算符。