什么是shell
shell也是一种脚本语言,是服务器端使用的。和其他语言一样,都是连通终端和操作系统的桥梁。将终端输入的命令通过shell解析器进行解析,然后传输给系统进行操作,将系统的操作再传输到终端。同样也有交互式和非交互式。非交互式的称为shell编程。
shell的由来
在linux中内核叫kernel,外面的用户不能直接操作内核,一来比较危险,二来很多用户都不会。于是在kernel外加了一层壳,通过shell命令来控制内核,就叫shell(贝壳)。
shell类型(解析器类型)
sh,ash,csh,ksh,bash等。我用的是bash
查看当前系统使用的shell:echo $SHELL(和echo $PATH类似,查看时这些多用全大写。)
查看系统可以解析的shell:cat /etc/shells
shell脚本
将shell命令都写到同一个shell文件中保存起来,就形成了shell脚本。
指定shell解析器,可以执行shell脚本。
创建文件1.zz,bash 1.zz 即可执行。这种文件不需要可执行权限也可以执行。
shell中也可以自解析脚本文件(Python同理):
指定shell解析器:在脚本文件的开头加上#!/bin/bash
给该文件添加执行权限: chmod +x 文件名
执行:./+文件名。如果不在当前目录下,只要能找到该文件也可以执行。
示例:
maple@iZ2ze6btfwlkldmd9uwz2vZ:~$ vim 1.zz #在~下创建文件1.zz文件
#!/bin/bash #指定解析器
echo ‘God bless you’ #输入内容
maple@iZ2ze6btfwlkldmd9uwz2vZ:~$ chmod +x 1.zz #添加可执行权限
maple@iZ2ze6btfwlkldmd9uwz2vZ:~$ ./1.zz #在~下执行文件
God bless you
maple@iZ2ze6btfwlkldmd9uwz2vZ:/$ ~/1.zz #在/目录下执行文件
God bless you
因为1.zz文件不在/目录中,所以不能直接执行,需要先找到再执行。