Zsh 的强大特性
重定向功能
示例:
重定向 stdout 和 stderr 到 file | command |& >file |
同时重定向到多个文件 | command >file.1 >file.2 |
补全类型控制
mpg123 [tab] , 候选菜单中只出现扩展名为 .mp3 .MP3 的文件:
zstyle ':completion:*:*:mpg123:*' file-patterns \
'*.(mp3|MP3):mp3\ files *(-/):directories'
zstyle ':completion:*:*:ogg123:*' file-patterns \
'*.(ogg|OGG):ogg\ files *(-/):directories'
计算器
zsh 可以当作计算器使用
- #载入数学函数模块 可以进行一些比较高级的运算
- #(也可以将此句写在配置文件中)
- $ zmodload zsh/mathfunc
- #
$((
数学表达式))
进行运算,使用 echo 显示结果- $ echo $(( sin(1/4.0)**2 + cos(1/4.0)**2 - 1 ))
- -1.1102230246251565e-16
- $ echo $(( pi = 4.0 * atan(1.0) ))
- 3.1415926535897931
- $ echo $(( f = sin(0.3) ))
- 0.29552020666133955
- $ print $((1e12 * rand48()))
- 847909677310.23413
- $ print $(( rand48(seed) ))
- 0.01043488334700271
命令替换
- # bash 中使用这种形式
- $ emacs
`
find . -name "*.html"`
- # zsh 同样支持,并可以使用以下形式
- $ emacs
$(
ls **/*.html)
- # zsh 还可以将命令结果生成临时文件,并返回文件名
- #支持更复杂的输出和过滤。例如,比较
new/
和old/
两个文件夹的内容- $ diff
=(
ls new/)
=(
ls old/)
- #查看生成的临时文件
- ls =()