1. ホーム
  2. macos

[解決済み] MacとLinuxでターミナルを使う場合の違いは何ですか?[クローズド]

2023-03-15 18:21:02

質問

私はこの4年間、Ubuntuを使い続けています。

シェルコマンドの基本的な知識があり、GUIを使うよりターミナルで作業するのが好きです。最近はMacを使うようになりました。

Macのターミナルで(Ubuntuで使っている)いくつかのターミナルコマンドを試しましたが、ほとんど同じように反応するようです。

私が使用するコマンド、それらが実行するタスク、またはシェル環境において、注意すべき重大な違いがありますか?

どのように解決するのですか?

OS X バージョン 10.3 以降を新規またはクリーン インストールした場合、デフォルトのユーザー ターミナル シェルは bash です。

Bash は本質的に、オリジナルの Bourne シェルである sh の拡張版および GNU フリーウェア版です。bash (多くの場合、GNU/Linux インストールのデフォルト) の経験がある場合、OS X のコマンドライン エクスペリエンスになじみますが、tcsh または zsh にシェルを変更することを検討してください。

OS X バージョン 10.2.x、10.1.x または 10.0.x からアップグレードした場合、デフォルトのユーザーシェルは csh ('c-shell') の拡張バージョンである tcsh です。初期の実装は少しバグが多く、プログラミング構文が少し奇妙だったため、評判が悪くなりました。

Gordon Davisson が適切にリストアップしているように、mac と linux にはまだいくつかの基本的な違いがあります。 useradd はありませんし ifconfig は異なる動作をします。

以下の表は、様々な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

また、以下のガイドも参考になるでしょう。

http://homepage.mac.com/rgriff/files/TerminalBasics.pdf

http://guides.macrumors.com/Terminal

http://www.ofb.biz/safari/article/476.html

最後に、私は 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 の違いの例であることに注意してください。 を持つことができないからです。 --color=auto . を(知らずに)再定義してしまいました。 ls を無効と再定義してしまい、少し心配になりました。 --auto-color !

また、次のようなものもあります。 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'