Z shell 简介根据 Matt Chapman 的观点,Z shell 可以提高 shell 的交互效率。现在正是将这个秘密公开的时候了!在本文中,不仅介绍了 Z shell,而且还探讨了比其它 shell(尤其是 Bash)优越的地方。 大多数 Linux 的开发人员和用户都或早或晚地接触过 UNIX shell。其中比较典型的是 Bash shell,有时也会是 C shell,或 Tcsh,Korn shell(IBM AIX 操作系统的缺省 shell)。但它们都很少能象 Z shell 一样可以提高 shell 交互效率并节省您的输入!对于那些不愿意学习“全新 shell”的人而言,值得注意的是 Zsh 是最接近所有其它 shell 的超集,所以您可以直接开始了。 Z shell ("Zsh") 命令通常在系统中的 /bin/zsh 中。如果在安装 Linux 时没有安装它,那么可以在大多数发行版的安装磁盘中找到它。当然也可以从 http://www.zsh.org 下载。顺便提一下,它并不只限于 Linux - 其源代码可以在大多数 UNIX 平台(包括 AIX)上成功地编译,并且还有许多二进制文件。 在本文中涉及的所有 shell 命令和设置选项都可以放在 ~/.zshrc 文件中,这样就可以在每次启动交互式 shell 时使用它们了。您也可以建立一个既可以在交互式 shell 中使用又可以在非交互式 shell 中使用的 ~/.zshenv 文件(例如 shell 脚本)。欲了解 Zsh 启动过程详情,请参阅 Zsh 文档。 可以缺省地使用光标和退格键来移动和编辑输入行,就象在 Bash shell 中一样。也可以使用命令 "bindkey -e" 来启用 Emacs 绑定。这些键顺序的示例包括 Control-A(跳至行首)和 Control-K(删除到行尾)。当然也可以使用 "bindkey -v" 命令来绑定 Vi。 Zsh 具有多行编辑模式,这特别适合于短小的 shell 脚本,如下例所示:
在这里将不再详述 shell 脚本,但值得一提的是,对于单行的 "for" 循环,事实上可以忽略 "do" 和 "done" 部分。 所键入的命令可以储存在历史记录中,而且有很多方法可以访问它,例如在上面示例中的 Cursor-Up,它就允许您滚动浏览以前输入的命令(当然用 Cursor-Down 也可以的)。另外一些有用的小窍门是 "!!",它可执行前一命令,和 "^old^new",它将前一个命令中的 "old" 替换成 "new" 之后再执行该命令。这尤其适用于当您输错时,或仅仅想稍微修改一下命令 -- 这要比回想此命令再直接编辑它快得多。 Zsh 甚至还有一个可以校正各种错误的拼写检查器。但如果它把您的命令 "纠正" 成您事实上并不想要的意思的话就会很危险,所以在它检测校正后总是会提示您。另外此功能缺省设置为关闭,您必须用 "setopt CORRECT" 启用它。以下是一个示例:
最能干的 shell 用户是一个“懒惰”的家伙!您应该用尽可能少的输入来完成您想要的东西。通过本文您会发现 Zsh 对此很擅长。 文件名的完成并不是一个新的概念;许多 shell 可提供基本的完成格式,例如 Bash shell 可使用 TAB 键,如下例所示:
按下 TAB 键,shell 会为您完成文件名。考虑一下您刚才所节省的所有输入!(或者对于用鼠标从以前列表目录中剪切和粘贴文件名 - 考虑一下将手挪向鼠标然后再放回键盘所节约的时间。) 当然,它一点也不神奇,只是减少一些烦琐的工作 - 您正在输入一个以 "th" 开头的文件名,在当前目录下仅有一个文件是以 "th" 开头的, 因而这有可能就是您要的那一个。所以,让 shell 为您做这件事吧! 以上的示例是用 Bash shell, 当然 Zsh 也可以做到这一点!而且还可以做到更多。让我们来看一下另外一个示例: 上一篇:动态iptables 防火墙 下一篇:使用Bash shell脚本进行功能测试 更多相关文章
|
推荐文章
精彩文章
|