相信很多同学都不陌生这个脚本,尤其是运维的同学,少不了吧。公司的运维系统就靠你了。shell是一种解释型的语言,我们写好了代码后,不需要编译,直接运行即可。平时我们会用它来写一些脚本,比如备份,或者启动脚本,切割日志等。当然shell也是linux的解释器,本篇我们先来了解下这个解释器。
shell也叫壳,区别与操作系统内核。比如一个不同国家的人交流需要一个翻译官,那么shell就是这个翻译官。shell是负责用户,负责接受用户的指令,解释并运行,将需要执行的操作给操作内核。
sh
由 Bourne shell 开发,为了纪念大佬,就用了他的名字命名了。sh也是第一个流行的shell。
csh
C shell 语法和C语言比较类似。
ksh
集合了 csh 和 sh 的优点,并且和sh兼容。
bash
与sh完全兼容,sh的的扩展版本,在sh上增加了新特性,补全命令,命令编辑器和历史命令等功能也是linux默认的shell。
zsh
集成了bash,ksh等优点,使得交互式的操作更加方便。小编用的也是zsh。
linux 默认的 shell 解释器是bash,在/bin目录下。
➜ ~ ll /bin/bash -rwxr-xr-x 1 root root 939K 9月 7 2017 /bin/bash
一般来说,shell脚本的程序一般用.sh结尾。编写一个hello.sh
#!/bin/bash
echo "hello world!"
~
#!/bin/bash : 指定脚本使用的命令解释器。
echo "hello world!" 内容打印一个hello world! 。
➜ test ls
hello.sh
执行脚本:
➜ test chmod +x hello.sh
➜ test ./hello.sh
hello world!
chmod +x hello.sh 给脚本加可执行权限
./hello.sh 执行hello.sh
另外也可以用以下几种方式执行(可以没有可执行权限) 编写一个新的脚本,不添加可执行权限。
➜ test bash t.sh
bash!
➜ test sh t.sh
bash!
➜ test source t.sh
bash!
从上到下, 从左到右 。