《MacTalk·人生元编程》介绍说zsh是终极Shell。反正Mac自带,不妨
chsh -s zsh
切换来看看。
alias -s c=vim
,关联.c文件到vim,在terminal直接输入test.c
,相当于vim test.c
. 节省了一个“vim”。d
,显示曾经访问的目录。3
直接切换到3对应的目录。- 配合autojump(
$ brew install autojump
),使路径跳转异常方便。看起来确实不错。
- zsh官网: zsh.org
- Web Pages: zsh.sourceforge.net
- 获取源码:
git clone git://git.code.sf.net/p/zsh/code zsh
zsh
是Mac自带的shell之一,执行$ cat /etc/shells
, 输出:
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
Mac默认使用bash,通过命令 $ chsh -s /bin/zsh
可以切换到zsh.
zsh的配置(包含插件、主题等)可以使用oh-my-zsh
oh-my-zsh安装和卸载
都非常简单,一行命令搞定
install:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
uninstall:uninstall_oh_my_zsh
配置文件在: ~/.zshrc
主题可自由更换,都在~/.oh-my-zsh/themes
. 看着默认的主题也还可以,就不折腾了。ZSH_THEME="robbyrussell"
概念
参数(变量)
普通参数
foo='This is a parameter'
- 注意:
- ”=前后没有空格
- ’ ‘内的所有字符都在foo变量内,包括换行符
- 单引号:
print $foo
This is a parameter
print '$foo'
$foo
print ''$foo''
This is a parameter
- 双引号:
print "$foo"
This is a parameter
print ""$foo""
This is a parameter
Array
foo=(This is a parameter)
print -- ${foo[4]}
parameter
- 取变量时,可以加上
{}
使条理清晰。
表达式
if… else…
-o: test an option
-o interactive
-o login
if [[ -o login ]]; then
print yes
else
print no
fi
函数
fn() {
print Hello world!
}
使用:fn
如果函数定义在.sh
文件中,可以用source file.sh
使其生效。
命令
- shell会将所有命令缓存在
hash table
中,这样每次取命令就非常快。 - 如果新加一个path到
PATH
, zsh会自动执行rehash
- 查看历史命令:
.zsh_history
command | meaning |
---|---|
env | 环境变量 |
type | 查看是否为shell内建命令 |
alias ls=’ls -G’ | 别名 |
d [number] | 显示(跳转到)历史目录(默认10个) |