天天看点

linux之shell

相信很多同学都不陌生这个脚本,尤其是运维的同学,少不了吧。公司的运维系统就靠你了。shell是一种解释型的语言,我们写好了代码后,不需要编译,直接运行即可。平时我们会用它来写一些脚本,比如备份,或者启动脚本,切割日志等。当然shell也是linux的解释器,本篇我们先来了解下这个解释器。

shell解释器

shell也叫壳,区别与操作系统内核。比如一个不同国家的人交流需要一个翻译官,那么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解释器

linux 默认的 shell 解释器是bash,在/bin目录下。

➜ ~ ll /bin/bash

-rwxr-xr-x 1 root root 939K 9月 7 2017 /bin/bash

编写一个shell脚本

一般来说,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!           

复制

shell执行顺序

从上到下, 从左到右 。