如果您执行了新的或干净的安装OS X 10.3或更高版本,则默认用户终端shell为bash。
Bash本质上是一个增强的和GNU免费版本的原始Bourne shell,sh。如果你以前有过bash的经验(通常是GNU / Linux安装的默认设置),这使得OS X命令行体验变得熟悉,否则可以考虑将shell切换到tcsh或zsh,因为有些人觉得这些更方便用户。
如果从版本10.2.x,10.1.x或10.0.x升级或使用OS X,则默认用户shell是tcsh,即csh(‘c-shell’)的增强版本。早期的实现有点儿bug,编程语法有点奇怪,所以它开发了一个坏的说唱。
mac和linux之间仍然有一些根本的区别,因为Gordon Davisson如此适当地列出,例如在Mac上没有useradd,ifconfig的工作方式不同。
下表对于了解各种unix shell非常有用。
sh The original Bourne shell Present on every unix system
ksh Original Korn shell Richer shell programming environment than sh
csh Original C-shell C-like syntax; early versions buggy
tcsh Enhanced C-shell User-friendly and less buggy csh implementation
bash GNU Bourne-again shell Enhanced and free sh implementation
zsh Z shell Enhanced, user-friendly ksh-like shell
您也可以找到这些指南有用的:
最后一点,我在Linux(Ubuntu 11)和Mac osX,所以我使用bash和我最喜欢的东西是定制.bashrc(源码从.bash_profile在OSX)文件与别名,下面的一些例子。
我现在把所有的别名放在一个单独的.bash_aliases文件中,并包含它:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
在.bashrc或.bash_profile文件中。
注意,这是一个mac-linux区别的例子,因为在Mac上你不能有–color = auto。我第一次这样做(不知道)我重新定义ls无效,这是有点令人担忧,直到我删除–auto-color!
# ~/.bash_aliases
# ls variants
#alias l='ls -CF'
alias la='ls -A'
alias l='ls -alFtr'
alias lsd='ls -d .*'
# Various
alias h='history | tail'
alias hg='history | grep'
alias mv='mv -i'
alias zap='rm -i'
# One letter quickies:
alias p='pwd'
alias x='exit'
alias {ack,ak}='ack-grep'
# Directories
alias s='cd ..'
alias play='cd ~/play/'
# Rails
alias src='script/rails console'
alias srs='script/rails server'
alias raked='rake db:drop db:create db:migrate db:seed'
alias rvm-restart='source '\''/home/durrantm/.rvm/scripts/rvm'\'''
alias rrg='rake routes | grep '
alias rspecd='rspec --drb '
#
# DropBox - syncd
WORKBASE="~/Dropbox/97_2012/work"
alias work="cd $WORKBASE"
alias code="cd $WORKBASE/ror/code"
#
# DropNot - NOT syncd !
WORKBASE_GIT="~/Dropnot"
alias {dropnot,not}="cd $WORKBASE_GIT"
alias {webs,ww}="cd $WORKBASE_GIT/webs"
alias {setups,docs}="cd $WORKBASE_GIT/setups_and_docs"
alias {linker,lnk}="cd $WORKBASE_GIT/webs/rails_v3/linker"
#
# git
alias {gsta,gst}='git status'
# Warning: gst conflicts with gnu-smalltalk (when used).
alias {gbra,gb}='git branch'
alias {gco,go}='git checkout'
alias {gcob,gob}='git checkout -b '
alias {gadd,ga}='git add '
alias {gcom,gc}='git commit'
alias {gpul,gl}='git pull '
alias {gpus,gh}='git push '
alias glom='git pull origin master'
alias ghom='git push origin master'
alias gg='git grep '
#
# vim
alias v='vim'
#
# tmux
alias {ton,tn}='tmux set -g mode-mouse on'
alias {tof,tf}='tmux set -g mode-mouse off'
#
# dmc
alias {dmc,dm}='cd ~/Dropnot/webs/rails_v3/dmc/'
alias wf='cd ~/Dropnot/webs/rails_v3/dmc/dmWorkflow'
alias ws='cd ~/Dropnot/webs/rails_v3/dmc/dmStaffing'