学科:Shell/Zsh

来自维基学院

功能[编辑 | 编辑源代码]

路径别名[编辑 | 编辑源代码]

需要在配置文件(通常是 .zshrc)中先定义好规则,形如:

hash -d sortcut_name=path

配置应用后,直接使用 ~ sortcut_name (甚至直接输 sortcut_name 回车就行了)就可以跳转到相应目录

文件类型关联[编辑 | 编辑源代码]

zsh 可以指定某种类型的文件用何种命令打开,可以配置文件定义相应的规则,形如:

alias -s rb=mate   # 用 TextMate 打开 ruby 文件

技巧[编辑 | 编辑源代码]

一般性[编辑 | 编辑源代码]

  • Tab 补全显示的结果列表中可以使用方向键移动
  • -后接 Tab 可以补全参数
  • 命令修正提示中 nyae 的含义是:
    • no,不修正
    • yes,采纳修正意见执行
    • abort,终止,取消操作
    • edit,返回编辑命令

目录切换[编辑 | 编辑源代码]

  • 大多数情况 cd 都是可以省略的
  • d,可以列出最近访问的几个目录,0 是当前目录,直接输入数字 1~9 可以在这几个目录间切换
  • 直接输 .. 和 ... 可以快速切换到上层目录
  • cd 后接 n+1 个点,可以往上层跳转 n 层

最近命令[编辑 | 编辑源代码]

  • r,可以重复执行上一条命令
  • zsh_stats,历史命令排行

命令相关[编辑 | 编辑源代码]

  • kill,输入进程的命令中单词的开头可以匹配符合的命令,比如:
/Applications/Explorer/Google Chrome.app/Contents/Versions/22.0.1229
App,G,Chrome,Ver 都能匹配,区分大小写
chrome,22,oogle 不能匹配
  • ls
匹配模式得到了增强,如
  • ** 表示在子目录中匹配,例 ls **/*.pdf 匹配目录及子目录下所有PDF文件
  • @ 匹配符号链接,例 ls *(@)
  • r,w,x 匹配文件权限,例 ls *(x)
  • . 匹配文件,例 ls *(.)
  • 例 ls **/(*.md|LICE*),匹配目录下 md 文件 及 以 LICE 开头的文件

配置[编辑 | 编辑源代码]

命令提示符[编辑 | 编辑源代码]

安装[编辑 | 编辑源代码]

OS X 已内建了 zsh,你也可以用 brew 单独安装。

yum 的源是 4.3 的(10:18, 19 March 2014 (UTC)),需要从源码安装。

参考[编辑 | 编辑源代码]

配置样例[编辑 | 编辑源代码]