Wenn Sie eine Neu- oder Neuinstallation von OS X Version 10.3 oder neuer durchgeführt haben, lautet die Standard-User-Terminal-Shell bash.
Bash ist im Wesentlichen eine verbesserte und GNU-Freeware-Version der ursprünglichen Bourne-Shell, sh. Wenn Sie bereits Erfahrung mit Bash haben (häufig die Standardeinstellung bei GNU / Linux-Installationen), wird die OS X-Befehlszeilenerfahrung dadurch vertraut. Andernfalls sollten Sie Ihre Shell entweder auf tcsh oder auf zsh umstellen, da einige diese benutzerfreundlicher finden.
Wenn Sie ein Upgrade von OS X Version 10.2.x, 10.1.x oder 10.0.x durchgeführt oder dieses verwendet haben, lautet die Standardbenutzer-Shell tcsh, eine erweiterte Version von csh ('c-shell'). Frühe Implementierungen waren etwas fehlerhaft und die Programmiersyntax etwas seltsam, so dass sich ein schlechter Rap entwickelte.
Es gibt immer noch einige grundlegende Unterschiede zwischen Mac und Linux, wie Gordon Davisson so treffend auflistet, zum Beispiel nein useradd
auf Mac und ifconfig
funktioniert anders.
Die folgende Tabelle ist nützlich, um die verschiedenen Unix-Shells zu kennen.
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
Möglicherweise finden Sie auch diese Anleitungen hilfreich:
http://homepage.mac.com/rgriff/files/TerminalBasics.pdf
http://guides.macrumors.com/Terminal
http://www.ofb.biz/safari/article/476.html
Abschließend möchte ich sagen, dass ich unter Linux (Ubuntu 11) und Mac OSX arbeite. Daher verwende ich Bash. Am besten gefällt mir, dass ich die .bashrc-Datei (Source'd from .bash_profile
OSX) mit Aliasnamen anpasse , einige Beispiele unten. Ich habe jetzt alle meine Aliase in einer separaten .bash_aliases-Datei abgelegt und in Folgendes eingefügt:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
in der Datei .bashrc oder .bash_profile.
Beachten Sie, dass dies ein Beispiel für einen Mac-Linux-Unterschied ist, da Sie auf einem Mac das nicht haben können--color=auto
. Das erste Mal, als ich dies tat (ohne es zu wissen), definierte ich neu ls
als ungültig, was ein bisschen alarmierend war, bis ich es entfernte --auto-color
!
Möglicherweise ist auch https://unix.stackexchange.com/q/127799/10043 hilfreich
# ~/.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'