一、zsh的简介
zsh shell是由Paul Falstad 开发的一个开源Unix shell。它汲取所有现在shell设计理念,目的是为程序员创建一个无所不能的高级shell。它由如下特点:
- 改进的shell选项处理
- shell兼容模式
- 可加载模块
因此zsh提供了添加额外命令模块的能力。
二、zsh的组成
1.选项
大多数情况下zsh使用选项来定制shell的行为,可以使用set命令设置shell选项。可用的选项如下:
-c :只执行指定的命令后退出
-i :启用交互式shell功能
-s :强制从标准输入中读取命令
-o :指定命令行选项
2.内置命令(部分)
命令 | 意义 |
---|---|
alias | 设置别名 |
autoload | 预加载shell函数到内存中 |
bg | 后台执行作业 |
builtin | 执行内置命令,而不是同名的外部命令 |
command | 执行外部命令,而不是内置的同名命令 |
emulate | 仿真其他shell |
eval | 当前shell执行指定的命令和参数 |
exec | 执行命令和参数来替换当前的shell进程 |
zmodload | 加载额外的模块操作 |
3.操作模块
- 查看当前已安装的模块
zmodload
- 添加新的模块
zmodload zsh/zftp <==命令上指定模块名称就可以
- 删除已安装的模块
zmodload -u zsh/zftp
这些命令都是临时生效的,要想永久生效通常把这些命令放在.zshrc启动文件中。
三、脚本编程
1.数学运算
zsh提供了两种方式:
- let命令
- 双圆括号
实例:
- let value1="2 * 3 / 3.2 " <==如果要加空格的话,使用双引号引起来。当然空格不是必须的。
- value1=$((2 * 3 *4))
- (( value1=2 * 3 * 4))
2.使用数学函数
安装zsh/mathfunc 模块才能使用数学函数,zmodload zsh/mathfunc。
value1=$(( sqrt(9) ))
3.结构化命令
- if-then-else
- for
- while
- until
- select
- case
- repeat 用于重复执行命令多少次
repeat param
do
commands
done
4.函数
zsh支持使用两种方式定义函数,如下:
- function命令方式
- 圆括号定义函数
实例:
function functest{
echo "This is a test function."
}
funchello() {
echo "This is another test function."
}