《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個) |