Si realizó una instalación nueva o limpia de OS X versión 10.3 o más reciente, el shell de terminal de usuario predeterminado es bash.
Bash es esencialmente una versión mejorada y gratuita GNU del shell Bourne original, sh. Si tiene experiencia previa con bash (a menudo el predeterminado en instalaciones GNU / Linux), esto hace que la experiencia de la línea de comandos de OS X sea familiar; de lo contrario, considere cambiar su shell a tcsh o zsh, ya que algunos los encuentran más fáciles de usar.
Si actualizó o usa OS X versión 10.2.x, 10.1.xo 10.0.x, el shell de usuario predeterminado es tcsh, una versión mejorada de csh ('c-shell'). Las primeras implementaciones tenían un poco de errores y la sintaxis de programación un poco extraña, por lo que desarrolló una mala reputación.
Todavía hay algunas diferencias fundamentales entre mac y linux, como bien indica Gordon Davisson, por ejemplo, no useradd
en Mac y ifconfig
funciona de manera diferente.
La siguiente tabla es útil para conocer los distintos shells de Unix.
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
También puede encontrar útiles estas guías:
http://homepage.mac.com/rgriff/files/TerminalBasics.pdf
http://guides.macrumors.com/Terminal
http://www.ofb.biz/safari/article/476.html
En una nota final, estoy en Linux (Ubuntu 11) y Mac osX, así que uso bash y lo que más me gusta es personalizar el archivo .bashrc (fuente de .bash_profile
OSX) con alias, algunos ejemplos a continuación. Ahora coloqué todos mis alias en un archivo .bash_aliases separado y lo incluí con:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
en el archivo .bashrc o .bash_profile.
Tenga en cuenta que este es un ejemplo de una diferencia mac-linux porque en una Mac no puede tener el--color=auto
. La primera vez que hice esto (sin saberlo), lo redefiní ls
como inválido, lo cual fue un poco alarmante hasta que lo eliminé --auto-color
.
También puede encontrar útil https://unix.stackexchange.com/q/127799/10043
# ~/.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'