ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

macOSのログインシェルをzshに変えた

こんなページを見てmacOSのコマンドでzshを利用することができると知り、早速設定することにしました。

rcmdnk.github.io

まずはmacOS Sierraで使えるシェルですが、こんな感じになっています。デフォルトでzshが入っているようです。

ytooyamachome% cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

気になるバージョンですが、Sierraの場合はバージョン5.2でした。 現時点の最新版みたいです。

ytooyamachome% /bin/zsh --version
zsh 5.2 (x86_64-apple-darwin16.0)

システムのシェルの切り替えは「システム環境設定→ユーザートグループ」パネルを開き、左下のロックを外したあと、ログインシェルを変えたいユーザーを右クリックして「詳細なオプション」を開いて設定します。ログインシェル以外は変更しないほうがいいです。設定を変えて「OK」ボタンを押すだけで次に開くターミナルからzshが使われるようになります。

ちなみに私は次のサイトを参考にzshの設定をしてみました。

qiita.com d.hatena.ne.jp qiita.com

コマンドオプションまで補完されたりして作業がはかどります。 やばい、マジでzsh便利。今立ち上げているテスト環境全てをBashからzshに変えたい気分。特にtracerouteとかpingとかsshで最近接続したホスト名が選択候補に出てきたのには感動しました。ちなみに補完は「tab」キーで行います。これなら--helpを見なくてもオプションが見えて便利ですね。

f:id:ytooyama:20161214212455p:plain

最後に私の.zshrcと.zsh_aliasを貼り付けます。

.zshrc

autoload -U compinit
compinit
export HISTFILE=${HOME}/.zsh_history
export HISTSIZE=2000
export SAVEHIST=2000
setopt EXTENDED_HISTORY
setopt hist_ignore_space
setopt hist_ignore_all_dups
setopt hist_save_no_dups
setopt hist_no_store
setopt share_history

if [ -e ~/.zsh_alias ]; then
    source ~/.zsh_alias
else
    echo "~/.zsh_alias is not found."
fi

.zsh_alias

#alias
alias ls="ls -F"
alias lsusb="system_profiler SPUSBDataType"
alias delssh="ssh-keygen -R"
alias sha1sum="openssl sha1"
alias calc="bc"

system_profiler SPUSBDataTypemacOSでlsusbコマンドっぽいことを実現するコマンドです。

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。