[1分でできる] zshで幸せになる方法
すぐに幸せになりたいひとは、[zshで最短で幸せになる方法] の章だけ読んでね。(° ꈊ °)✧˖°オホッ!
■ Catalinaさんに怒られる。
拙者、MacBookProをCatalinaにしたあの日から、ターミナルを起動すると、こんな風に怒られ続けておりやす。
Last login: Tue Feb 25 23:50:56 on ttys006
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
$
Catalina から、zshがデフォルトのシェルになってしまったんですなぁ。
この怒りを抑えるには、.bash_profileに一行加えればいぃわけなんだけれども。だがしかし。やっぱりApplesさんがデフォルトに採用したんですもの、時代はzshなんじゃないの?
$ echo "export BASH_SILENCE_DEPRECATION_WARNING=1" >> ~/.bash_profile
$ source ~/.bash_profile
そうゆうわけで、zshで幸せになる方法を探ってみましたよっと。
■ そもそもシェルって何者?
"シェル (英語: shell) はオペレーティングシステム (OS) のユーザーのためにインタフェースを提供するソフトウェアであり、カーネルのサービスへのアクセスを提供する。" by Wikipedia
ははーん。にんげんがCLI(コマンドラインインターフェース、いわゆる黒い画面) で入力した文字列を、コンピューターの頭脳であるカーネルおじさん(今の場合はMacOS)に伝えて動かしてくれる、伝書鳩的ポジのすごいやつってことですね、わかります。しかもいくつかの種類があるそうで。
■ 実はいろいろあった、シェルの種類
sh(Bourne shell、読み方はボーンシェル)
化石エンジニアなら誰もが経験したはずの、にんげんにやさしくないほうのシェル。いちばん古いシェル。 AT&Tのベル研究所で開発され、 開発者の1人であるスティーブン・ボーンさんにちなんで名付けられた。 ほとんど全ての UNIX で利用できる標準的なシェル。
csh (C shell、読み方はシーシェル)
コマンドヒストリーがみえたりする、にんげんにやさしいほうのシェル。カリフォルニア大学バークレイ校のビル・ジョイ氏が中心になって開発したシェルで、 C 言語に似た構文を持つことから、この名前が付けられている。
bash (Bourne Again shell、読み方はバッシュ)
Borne shellをにんげんにやさしく改良したシェル。MITのブライアン・フォックスさんが作成したシェル。現在のデフォ的存在。シェルといえばbash。紛うことなき圧倒的存在。だった。そう、Catalinaがzshをデフォに変えるまでは。
zsh (Z shell、読み方はズィーシェル)
Borne shellに改良を重ね、さらには他のシェルのいいところも取り入れちゃったよくばりなシェル。にんげんにやさしい。作成者のティーチングアシスタントだった、イェール大学教授Zhong Shaoさんにちなんで名付けられた。今後はデフォになっちゃうんじゃないの、これ、的な予感が止まらない。
■ で結局、zshって何がいいの?
代表的ないいこと3つ。
1) ディレクトリ移動が楽。cd するとき、ディレクトリだけタイプすればいい。たとえば、Workspaceっていうディレクトリに移動したいとき、bashだと、cd Workspace ってタイプする必要があったけど、zshでは、Workspace ってタイプするだけでディレクトリが移動できる。
➜ ~
ホームディレクトリで、
➜ ~ Workspace
だけタイプすると、Workspaceディレクトリに移れる
➜ Workspace
➜ Workspace pwd
/Users/w0o0ps/Workspace
2) パス補完が秀逸。たとえば、"/u/lo/b" ってタイプして、Tabキーを押すと、"/usr/local/bin" に自動補完してくれる。
➜ Workspace /u/lo/b
ここまでタイプして、Tabキーを押すと、
➜ Workspace /usr/local/bin/
になってる!すごい!
3) プラグインとかテーマのサポートが豊富!だから自分仕様にカスタムできるん!
■ zshで最短で幸せになる方法
その柔軟さゆえに太りがちになる設定ファイル。zshは便利な雰囲気ではありますが、拙者、緻密に設定ファイルをつくりこむほどのココロの余裕はありんせん。つーか、せっかくいろいろ便利になりそうなのに、その便利のために何時間も費やすなんて、いや。時短最高!コスパ命!
そこで探してみました。あったよ!みつけた!サイコーに便利なやつ!
コマンドひとつでいけてる設定ぜんぶ、ぶち込んでくれるすごいやつ!早速実行。
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
きたこれ。
$ ls -alh | grep "zsh"
drwxr-xr-x 19 maasa staff 608B Feb 25 23:19 .oh-my-zsh
-rw-r--r-- 1 maasa staff 10B Feb 25 23:20 .shell.pre-oh-my-zsh
-rw------- 1 maasa staff 1.8K Feb 26 01:15 .zsh_history
-rw-r--r-- 1 maasa staff 3.5K Feb 25 23:25 .zshrc
デフォだとgitしかプラグインが有効になってないので、自分に必要なプラグインを有効化。拙者はHerokuユーザーなので、herokuプラグインを追加。
$ vi ~/.zshrc
:
plugins=(git heroku)
:
有効にできるプラグインは、Githubに書かれておりますぞょ。
さっそく、新しいターミナルを立ち上げて、zsh環境で、gitのディレクトリに行ってみる。
➜ ~ ~/Workspace/personal/w0o0ps.com
➜ w0o0ps.com git:(develop) pwd
/Users/w0o0ps/Workspace/personal/w0o0ps.com
➜ w0o0ps.com git:(develop)
イイ!すごくイイ!gitのブランチまで表示してくれるなんて、イイ!
さらに、heroku ってタイプしたとにタブを押して、Herokuプラグインによるコマンドオプションの補完をチェケラ。
➜ Workspace heroku addons
addons -- lists your add-ons and attachments
addons:attach -- attach an existing add-on resource to an app
addons:create -- create a new add-on resource
addons:destroy -- permanently destroy an add-on resource
addons:detach -- detach an existing add-on resource from an app
addons:docs -- open an add-on's Dev Center documentation in your browser
addons:downgrade addons:upgrade -- change add-on plan
addons:info -- show detailed add-on resource and attachment information
addons:open -- open an add-on's dashboard in your browser
addons:plans -- list all available plans for an add-on services
addons:rename -- rename an add-on
addons:services -- list all available add-on services
addons:wait -- show provisioning status of the add-ons on the app
イイ!すごくイイ!タブ補完最高!
■ (番外編) zshテーマの変更
zshはテーマ(外観)も変えられるそうで。
https://github.com/ohmyzsh/ohmyzsh/wiki/Themes に使えるテーマが記載されてるので、やってみる。
➜ ~ vi ~/.zshrc
:
#ZSH_THEME="robbyrussell" # << この行をコメントアウトして、
ZSH_THEME="avit" # << この行を追加
:
➜ Workspace source ~/.zshrc
~/Workspace
▶
ほほーぅ。
ちなみに、Oh My Zsh 以外のテーマに変えたいときは、"~/.oh-my-zsh/custom/themes/" の下にテーマをダウンロードして、"~/.zshrc" の "ZSH_THEME" にテーマへのパスを書く感じで、できやす。
https://github.com/Powerlevel9k/powerlevel9k のテーマを使ってみる例。
➜ ~ git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
➜ ~ vi ~/.zshrc
:
#ZSH_THEME="robbyrussell" # << この行をコメントアウトして、
ZSH_THEME="powerlevel9k/powerlevel9k" # << この行を追加
:
➜ ~ source ~/.zshrc
■ それでもbashが忘れられない、そんなときは。
ああああ、やっぱりbashに戻したい、そんなときは、このコマンド。
~ chsh -s /bin/bash