Zshとは?
その数ある中でも最強のshellと言われているのがこのzshというshellみたいです。
sh、bash、csh、tcshの機能をほぼ網羅しているとの事。
Oh My Zshとは?
Oh My Zshは、Zsh構成を管理するためのオープンソースのコミュニティ主導のフレームワークです。 何千もの便利な機能、ヘルパー、プラグイン、テーマなどがバンドルされています。
Oh My Zshは、ターミナルで次のコマンドのいずれかを実行することでインストールされます。 これは、curlまたはwgetのいずれかを使用してコマンドラインからインストールできます。
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
それでインストール終了です!これからは楽しみですね!コンソールを再起動したらデフォルトの表示が出ます!
見てる通り、デフォルトでGitは入ってます!Gitのプラグインはどのブランチにいるかをコンソール場で見えます!毎回git branch
をしなくてもよい!色もはずっと真っ白のより目に優しい。
➜ フォルダー名 git:(ブランチ名):
これがデフォルトの設定です、これから色々説明します。
カスタマイズ
テーマ
テーマはコンソール場の文字色、バックグラウンド色、表示仕方などを変更出来る物です。
テーマの設定は~/.zshrc
ファイルにあります。
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="robbyrussell"
名前を変更して、ターミナルを再起動して、終わり!
全部を手動でテーマを作るは意外と大変です!デフォルトのテーマも悪くないけどもっとすごいになれる!ある特別の表示のテーマを紹介します。
テーマは本当に個人の意見なのでもっと見たいならこちらへ:https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
プラグイン
Oh My Zshには、利用できるプラグインがたくさん付属しています。 プラグインディレクトリやwikiを調べて、現在利用できるものを確認できます。
このリストはデフォルでインストールされてるプラグイン、設定すればそのままで使えます!設定の方はこちらで説明します。
インストールと設定
もうインストールされてるプラグインなら設定ファイルを変更すればそのままで使えます!もちろん、変更するファイルは~/.zshrc
です。
....
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git rails aws
)
....
- 注:zsh配列の要素は、空白(スペース、タブ、改行など)で区切られます。 カンマは使用しないでください。
インストールされてない場合は.oh-my-zsh/custom/plugins
にコピーしなきゃ、基本はgitで管理されてますので一発でいけます:
➜ ~ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-autosuggestions
フォルダを見ると
~/.oh-my-zsh/custom/plugins
➜ plugins git:(master) ll
total 8.0K
drwxr-xr-x 2 oukaria oukaria 4.0K Jul 31 2018 example
drwxrwxr-x 7 oukaria oukaria 4.0K May 13 09:25 zsh-autosuggestions
インストール出来たら、さっきと一緒で設定ファイルを書くだけで終わります!
plugins=(
git zsh-autosuggestions
)
再起動すると:
今回インストールしたプラグインが自動完成してます!zshのコマンド履歴からオススメされてます、意外と便利ですし、オススメです!
Functions
functionsはbashのコマンドです、Oh My Zshはデフォルトでいくつのフォンクションありますし、カスタムでも作れます!
デフォルト
デフォルトでいくつのものが準備されてます、Gitで確認したら見えます:https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/functions.zsh
例えばzsh_statsは打ったコマンドの率を出してます:
➜ ~ zsh_stats
1 1613 16.0354% cd
2 755 7.50572% ll
3 536 5.32856% aws
4 497 4.94085% git
5 402 3.99642% RAILS_ENV=production
6 325 3.23094% ssh
7 238 2.36604% tailf
8 235 2.33622% rm
9 232 2.30639% ei
10 219 2.17715% vim
11 184 1.82921% sudo
12 164 1.63038% cat
13 133 1.3222% mkdir
14 122 1.21284% bundle
15 102 1.01402% rails
16 79 0.785366% echo
17 76 0.755542% mv
18 69 0.685953% ps
19 65 0.646187% for
20 53 0.526891% ls
カスタム
カスタムを作るコマンドはわりと簡単です!.zshrc
のファイルの中でfunctionを作成することです。例えばAWS S3のファイルがあるかどうかを確認したい!ですが毎回aws s3 ls s3://my-bucket/file.txt
を打つがちょっと長いのでカスタムでやります。
function s3check(){
letter=$1 | tr "." "\."
aws s3 ls s3://my-bucket/ 2>/dev/null | grep -m1 "PRE $letter.*"
}
パラメータが$1
から始まって(\$2,\$3など)、aws s3のlsがワイルドカード使えませんのでgrep
で探して、一件見つかったらgrepの-m1
パラメータのおかげでプロセスを切りますが、aws s3 lsがそれをエラーに出してますのでエラーも消してます。
それでターミナル場を見たら:
➜ ~ s3check file
file.txt
もちろんこれは簡単のファンクションですが、わりと簡単です。