终极Shell——Zsh
[撰文/Kardinal]
子曾经曰过,zsh: The last shell you’ll ever need! Z是最后一个字母,所以它是终极Shell。我曾经搜索到一个比较各种Shell的文章,Zsh交互性是A+级别的,远高于其它Shell。在编程方面,Zsh是A级的吧,也是最高的。只是不知道出于什么原因,Zsh被严重的低估了。
大多数的Linux用户比较偏爱Bash,因为大多数的发行版默认的就是它。平心而论,Bash确实比Csh之流的好用多了。不过Bash也有很多地方不尽人意,像自动补全的功能不够强大,定位较长路径不够方便等。
后来我使用Zsh。如果不调整一些必要的配置的话,Zsh甚至还不如Bash好用。这也是很多人尝试过并放弃过的原因。
Zsh配置文件试用 (内附讲解)
不熟悉Zsh的人,对Zsh最深刻的印象应该就是它的命令提示符了。它支持右侧对齐的提示符,并且可以配置成这个样子的:
不过我还是喜欢比较简单的样式。
Zsh的自动补全功能十分的强大,如图所示:
它可以自动补全命令、参数、文件名、进程、用户名、变量、权限符等。
Zsh还有一个贴心的功能:路径别名。假设有一个很长的路径,例如/home/lighttpd/html,可以把这个路径命名为 ~WWW。
Zsh可以使用Emacs风格的键绑定,习惯Bash键绑定的朋友无需重新适应。Zsh兼容大多数主流Shell,像Bash、Csh等。
错误校正
-- directory -- 是补全类型提示
补全类型提示变成了 -- corrections --| blkid >> /boot/grub/menu.lst >> /etc/fstab |
不过这个功能比较复杂,容易引起混乱,通常需要脚本配合
| 代码: |
| compctl -g '.tar.bz2 *.tar.gz *.bz2 *.gz *.jar *.rar *.tar *.tbz2 *.tgz *.zip *.Z' + -g '(-/)' extractextract() { if [[ -z "$1" ]] ; then print -P "usage: \e[1;36mextract\e[1;0m < filename >" print -P " Extract the file specified based on the extension" elif [[ -f $1 ]] ; then case ${(L)1} in .tar.bz2) tar -jxvf $1 ;; .tar.gz) tar -zxvf $1 ;; .bz2) bunzip2 $1 ;; .gz) gunzip $1 ;; .jar) unzip $1 ;; .rar) unrar x $1 ;; .tar) tar -xvf $1 ;; .tbz2) tar -jxvf $1 ;; .tgz) tar -zxvf $1 ;; .zip) unzip $1 ;; .Z) uncompress $1 ;; ) echo "Unable to extract '$1' :: Unknown extension" esac else echo "File ('$1') does not exist!" fi } |
Read More:
- No related posts