Se è stata eseguita un'installazione nuova o pulita di OS X versione 10.3 o successiva, la shell del terminale utente predefinito è bash.
Bash è essenzialmente una versione freeware migliorata e GNU dell'originale shell Bourne, sh. Se hai precedenti esperienze con bash (spesso l'impostazione predefinita su installazioni GNU/Linux), questo rende familiare l'esperienza della riga di comando di OS X, altrimenti considera di cambiare la tua shell in tcsh o in zsh, in quanto alcuni trovano più user-friendly.
Se si è aggiornato o si utilizza OS X versione 10.2.x, 10.1.xo 10.0.x, la shell utente predefinita è tcsh, una versione avanzata di csh ('c-shell'). Le prime implementazioni erano un po 'buggate e la sintassi di programmazione un po' strana, quindi ha sviluppato un brutto colpo.
Ci sono ancora alcune differenze fondamentali tra Mac e Linux come Gordon Davisson elenca in modo appropriato, ad esempio no useradd
su Mac e ifconfig
funziona in modo diverso.
La seguente tabella è utile per conoscere le varie shell 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
È inoltre possibile trovare queste guide utili:
http://homepage.mac.com/rgriff/files/TerminalBasics.pdf
http://guides.macrumors.com/Terminal
http://www.ofb.biz/safari/article/476.html
In una nota finale, io sono su Linux (Ubuntu 11) e Mac OSX quindi uso bash e la cosa che mi piace di più è la personalizzazione di .bashrc (source'd from .bash_profile
su OSX) con alias, alcuni esempi sotto. ora messo tutti i miei alias in un file separato e includerlo .bash_aliases con:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
nel .bashrc o il file .bash_profile.
Si noti che questo è un esempio di una differenza mac-linux perché su un Mac non è possibile avere il --color=auto
. La prima volta che l'ho fatto (senza saperlo) ho ridefinito lo ls
che era un po 'allarmante finché non ho rimosso --auto-color
!
È inoltre possibile trovare https://unix.stackexchange.com/q/127799/10043 utile
# ~/.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'
Vorrei riaprire e passare allo scambio di programmatori. –
Esiste un elenco completo dei comandi del terminale mac vs linux in qualsiasi punto del web? – jasonleonhard