Jeśli wykonałeś nową lub czystą instalację systemu OS X w wersji 10.3 lub nowszej, domyślną powłoką terminala użytkownika jest bash.
Bash jest zasadniczo ulepszoną i darmową wersją GNU oryginalnej powłoki Bourne'a, sh. Jeśli masz wcześniejsze doświadczenie z bash (często domyślne w instalacjach GNU / Linux), sprawia to, że obsługa wiersza poleceń OS X jest znajoma, w przeciwnym razie rozważ zmianę powłoki na tcsh lub zsh, ponieważ niektórzy uważają je za bardziej przyjazne dla użytkownika.
Jeśli dokonałeś aktualizacji lub używasz OS X w wersji 10.2.x, 10.1.x lub 10.0.x, domyślną powłoką użytkownika jest tcsh, ulepszona wersja csh („c-shell”). Wczesne implementacje były trochę błędne, a składnia programowania nieco dziwna, więc rozwinęła się kiepski rap.
Nadal istnieją pewne fundamentalne różnice między mac i linuxem, które Gordon Davisson tak trafnie wymienia, na przykład nie useradd
na Macu i ifconfig
działa inaczej.
Poniższa tabela jest przydatna do poznania różnych powłok uniksowych.
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
Przydatne mogą być również te przewodniki:
http://homepage.mac.com/rgriff/files/TerminalBasics.pdf
http://guides.macrumors.com/Terminal
http://www.ofb.biz/safari/article/476.html
Na koniec używam Linuksa (Ubuntu 11) i Mac OSX, więc używam basha i najbardziej lubię dostosowywanie .bash_profile
pliku .bashrc (źródło z OSX) z aliasami, kilka przykładów poniżej. Teraz umieściłem wszystkie moje aliasy w oddzielnym pliku .bash_aliases i dołączam go do:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
w pliku .bashrc lub .bash_profile.
Zauważ, że jest to przykład różnicy między systemem Mac a--color=auto
linux, ponieważ na komputerze Mac nie możesz mieć rozszerzenia . Za pierwszym razem, gdy to zrobiłem (nie wiedząc), przedefiniowałem ls
to jako nieważne, co było trochę niepokojące, dopóki nie usunąłem --auto-color
!
Przydatne może być również https://unix.stackexchange.com/q/127799/10043
alias la='ls -A'
alias l='ls -alFtr'
alias lsd='ls -d .*'
alias h='history | tail'
alias hg='history | grep'
alias mv='mv -i'
alias zap='rm -i'
alias p='pwd'
alias x='exit'
alias {ack,ak}='ack-grep'
alias s='cd ..'
alias play='cd ~/play/'
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 '
WORKBASE="~/Dropbox/97_2012/work"
alias work="cd $WORKBASE"
alias code="cd $WORKBASE/ror/code"
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"
alias {gsta,gst}='git status'
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 '
alias v='vim'
alias {ton,tn}='tmux set -g mode-mouse on'
alias {tof,tf}='tmux set -g mode-mouse off'
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'