最近读了一本书,作者深深地推荐了一款对我来说完全是新玩意儿的 shell——zsh。听说不光功能强大,还很文艺。无意之中看到同实验室的同学竟然也在用,给我很大触动。本着活到老折腾到老的精神,我也装一个玩玩看,当然,运行环境是 Ubuntu。
本文主要参考终极shell和定制你的zsh命令提示符。
安装
zsh据说是很难配置的,后来有人写了个方便上手的工具,叫做“oh my zsh”。所以除了安装 zsh 以外,还要安装这个工具。zsh 的安装非常简单:
$sudo apt-get install zsh
$chsh -s /bin/zsh #设置当前用户默认shell
安装“oh my zsh”步骤如下
$git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
$cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
配置
zsh 的配置文件是 ~/.zshrc,可以对 zsh 进行多种多样的设置,比如主题,命令提示符,alias 等。
oh-my-zsh 有默认主题 ZSH_THEME=”robbyrussell”,还有许多其他主题,在 ~/.oh-my-zsh/themes 目录下。
命令提示符定义在主题文件中,可以找到相关的主题文件进行修改。我的修改:
PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%} %# '
#PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
将 c(表示当前目录)改成 d(表示绝对路径),使当前目录看上去更加直观。在最后面加了“%#”,表示在普通用户时显示“%”,在超级用户时显示“#”。
zsh 的 alias 有个很有趣的功能,可以配置打开特定后缀名文件的默认程序。比如:
alias -s pdf=evince #pdf 文件默认 evince 打开。下同 alias -s txt=vim alias -s gz='tar xvzf' alias -s tgz='tar xvzf' alias -s zip='unzip' alias -s bz2='tar xjvf'
设置完成后,比如直接输入“progit.pdf”,就会用 evince 自动打开。把自己常用的文件类型都设置一个这样的别名,想想也很带劲儿。