LoginSignup
1

More than 3 years have passed since last update.

【mac】BashからZshに変えてみた

Posted at

未来電子テクノロジー株式会社でインターンをしている文系大学一回生です。
macでBashからZshに変えてみてのでアウトプットします。

shellとは

BashとZshは、shellの一種です。
shellとは、人間の命令をコンピュータに伝えるプログラムのことです。
では、なぜshellが必要なのでしょうか。
コンピュータの中にはOSがあります。
OSとは、コンピュータの基本的なソフトのことです。
そのOSの中に、色々なソフトウェアが組み合わさっていることにより、OSは成立しています。
OSの中のソフトウェアで核となっているのが、カーネルです。
このカーネルは、人間の命令を聞いてくれません。
そのため、人間はshellに命令を仲介してもらう必要があるのです。

Bashとは

Bashは多くのUNIX/Linux系OSで標準的に利用されているshellです。
shellとしての基本的機能を備えており、標準としてどこでも使えるという強みがあります。
そのため、カスタマイズをあまりせず、標準で使うユーザーが多いです。

Zshとは

Zshは、Bash,ksh,tcshなどのシェル機能を取り込み、多数の改良が加えられたshellです。
bashの基本的機能に加え、軽量で強力な補完機能があるという強みがあります。
そのため、いろいろなカスタマイズをするユーザーが多いです。

Zshでやったこと

1.プロンプト等の変更

vimで.zshrcを編集しました。

$ vim ~/.zshrc
# 補完機能
autoload -U compinit
compinit

# 色設定
autoload -U colors; colors

# もしかして機能
setopt correct

# PCRE 互換の正規表現を使う
setopt re_match_pcre

# プロンプトが表示されるたびにプロンプト文字列を評価、置換する
setopt prompt_subst

# プロンプト指定
PROMPT=" %{${fg[yellow]}%}%~%{${reset_color}%}
%(?.%{$fg[green]%}.%{$fg[blue]%})%(?!(^)(^) <!(;%)(;%) <)%{${reset_color}%} "

# プロンプト指定(コマンドの続き)
PROMPT2='[%c]彡(^%)(^%)'

# もしかして時のプロンプト指定
SPROMPT="%{$fg[red]%}%{$suggest%}(●%)(●%) < もしかして %B%r%b %{$fg[red]%}かな? [そう!(y), 違う!(n)]:${reset_color} "

# コマンド履歴
HISTFILE=~/.zsh_history
HISTSIZE=6000000

# コマンド履歴検索
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end

# alias
alias diff="coloddiff"

export PATH="/usr/local/sbin:$PATH"
export PATH="/usr/local/sbin:$PATH"
export PATH=$HOME/.nodebrew/current/bin:$PATH
export PATH=$HOME/.nodebrew/current/bin:$PATH

alias python="python3"

export PATH="$HOME/.pyenv/shims:$PATH"

こうすると、

(^)(^) < cd web
 ~/web
(^)(^) < cd aaa
cd: no such file or directory: aaa
 ~/web
(;)(;) < fd -
(●)(●) < もしかして df かな? [そう!(y), 違う!(n)]: 

こんな感じになります。

2.tumxのインストール

tmuxとは、端末多重化ソフトウェアのことです。
1 つのターミナルで操作しているシェルから実行した tmux 上で複数の仮想端末を操作できます。
画面を分割できて、サーバのログを見ながらシェルを操作できるのが良い点です。

まとめ

プログラミング初心者なので、正直zshやtmuxのすごさがいまいち掴めていません。。。
まだまだ勉強不足なので間違いがあればどうぞご指摘ください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1