鱼C论坛

 找回密码
 立即注册
查看: 3766|回复: 2

终极shell---zsh

[复制链接]
发表于 2011-10-22 00:41:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
转载的,但zsh确实强大,很好用+++++++

===================from linuxtoy.org

大多数的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 -- 是补全类型提示
/etc/x11 [tab] 后被修正为 /etc/X11

                               
登录/注册后可看大图
补全类型提示变成了 -- corrections --

请注意,这个功能不是单纯的修正大小写,而是各种拼写错误 比如说上面的例子,如果输入的是11或者s11,它一样会修正为X11
有一个前提,就是每次修正,只允许有一处字符错误 两个以上的错误,除非可以匹配其它的选项,否则就不能修正 12 就不能修正为X11 ,除非候选里有 X12、Y12、Z12……
在配置文件里找到这一行,修改容错字数
        zstyle ':completion::approximate:' max-errors 1 numeric
当然可以把容错字数改大一些,不过太大了也没有意义了 随便输点什么,就可以匹配所有的,和没有一样
强大的重定向功能
同时重定向stdout和stderr到file: command |& >file 同时重定向到多个文件: command >file.1 >file.2
比如装系统的时候,可以用这个命令
blkid >> /boot/grub/menu.lst >> /etc/fstab

补全类型控制
例如: compctl -g '.tar.gz *.gz.tgz' + -g '*(-/)' tar zxvf 过滤候选项
tar zxvf [tab] 候选菜单中只出现扩展名为 .tar.gz .gz .tgz 的文件
不过这个功能比较复杂,容易引起混乱,通常需要脚本配合
代码:
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 }
考虑到使用的不多,配置又麻烦,我没有配置这个功能 不过我想肯定有人愿意在这上面花点时间

将Zsh设置为默认Shell(不建议更改root用户的默认shell)
usermod -s /usr/local/bin/zsh


=======================================PS:google之,有很多写的不错的配置




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-22 06:30:28 | 显示全部楼层
不是太明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-10-22 08:48:40 | 显示全部楼层
hack521083 发表于 2011-10-22 06:30
不是太明白

bash知道吧,zsh配置好后功能和易用性上比bash好太多,个人感受
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 20:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表