デザイナーがfishとzshを使ってみた(^ω^)ペロペロ

f:id:gashoo:20171212013038p:plain

この記事はGASHOO Inc. Advent Calendar 2017 12月12日(火)の投稿です。

こんにちは、株式会社ガシューのCDO白石です🐶

今回は、PCを動かしているシェルと呼ばれるものにも色々な種類があるので、それぞれ使ってみて良かったところをシェアしようという試みです。(僕はMacを使うので、Macを使用する前提です)

シェルって何ぞ?

シェル (英語: shell) はオペレーティングシステム (OS) のユーザーのためにインタフェースを提供するソフトウェアであり、カーネルのサービスへのアクセスを提供する。

「シェル」フリー百科事典 ウィキペディア日本語版

いわゆる黒い画面です。普段、ファイルやフォルダの作成・削除などを行っているfinderなどの視覚ツールをGUIというのに対し、ターミナルなど、コマンドを打ち込んでファイルの操作などを行うものをCUIといいます。どちらにせよ、それらの操作はシェルというものを介して行われます。Macでは、お使いのマシンにログインするとbash🏀 と呼ばれるシェルが走ります。今回はこのbash🏀 をfish🐟 やzsh💻 に変更して、どういう恩恵があるか確認していきます。

黒い画面、怖い((((;゚Д゚))))ガクガクブルブル

f:id:gashoo:20171212013213p:plain

白くしてみました。これでもう怖くありませんね😊😊😊

🐟 fishを使ってみる

インストール

Homebrew🍺 が入っていれば、簡単にインストールできます。 Homebrewのインストールはこちら

// brewコマンドで、fishのインストール
$ brew install fish
// バージョンの確認。2017年12月時点では2.6.0
$ fish -v 

デフォルトのシェルに設定

// fishがどこにあるか調べる( /usr/local/bin/fish と出るはず)
$ which fish

// /etc/shellsを編集。パスワードを聞かれるのでログインパスワードを入力
$ sudo vi /etc/shells

// ログインシェルをfishにするためにフルパスで入力する。
// 開いたファイルの一番下の行に下記を入力
/usr/local/bin/fish
    
// デフォルトのシェルをfishに変更
$ chsh -s /usr/local/bin/fish

ここでexit ターミナルを再起動!💥

// 現在のログインシェルを表示する
// /usr/local/bin/fish となっていれば成功!
$ echo $SHELL

色々設定したいので、設定管理のフレームワークoh-my-fishをインストールしてみます。

fishermanというのもあって、こっちのほうがよさそうなんですが、色々あって今回はoh-my-fishを使います。fishermanもまた今度試してみます。

// curlを使ってoh-my-fishのインストール
$ curl -L https://github.com/bpinto/oh-my-fish/raw/master/tools/install.fish | fish

使ってみる😤

f:id:gashoo:20171212013646p:plain

インストール後、こんな感じになりました。カッコイイ!😂
現在のGitブランチをデフォルトで表示してくれているのも良いですね。

まだまだ全ての機能は使えてないんですが、コード補完が優秀な印象です。よく使うコマンドはfishが覚えてくれるので、上記のような長いGitのブランチを行き来する場合もめんどくさくありません。迷ったらTabキーを押せば候補を出してくれるのでとりあえず押しとけば次の行動を空気読んで出してくれます。💨💨

テーマを変更したい場合、コマンドライン

$ fish_config

と入力すれば、ブラウザで設定ファイルを変更することができます。このへんがデザイナーにも優しそうです。✨

💻 zshを使ってみる

Macの場合、はじめからzshは入ってるみたいなんですが、新しいのを使いたいんで、今回もhomebrew🍺でzshをインストールしてみます。

インストール

// homebrewでzsh, zsh-autosuggestions, zsh-completionsをインストール
$ brew install zsh zsh-autosuggestions zsh-completions
    
// インストールできているかバージョンを確認。2017年12月現在では5.4.2でした。
$ zsh --version
    
// zshの場所の確認(/usr/local/bin/zshと出るはず)
$ which zsh
    
// /etc/shellsを編集。パスワードを聞かれるのでログインパスワードを入力
// 一番下の行に/usr/local/bin/zshを入力
$ sudo vi /etc/shells
    
// シェルをzshに切り替え
$ chsh -s /usr/local/bin/zsh

そして再起動!💥

zshでもプラグインマネージャーをインストールします。
色々なプラグインマネージャーがあるみたいなんですが、zplug🌸がオススメらしいので使ってみます。

$ brew install zplug

で、~/.zshrcに以下を入力します。
3行目では、試しにzplugを使ってzsh-syntax-highlightingをインストールしています。

source ~/.zplug/init.zsh
     
zplug "zsh-users/zsh-syntax-highlighting", defer:2
     
if ! zplug check --verbose; then
    printf "インストールしますか?[y/N]: "
    if read -q; then
        echo; zplug install
    fi
fi
     
zplug load

その後、以下を実行します。

$ source ~/.zshrc

使ってみる😤

f:id:gashoo:20171212013826p:plain

fishに比べるとシンプルですね。(対して何もいれてないので)

時間の都合上、zshの超多機能な恩恵を受けられるほどカスタマイズはできませんでしたが、調べれば調べるほど沢山の情報が出て来るので、これがzshを使う理由になるんじゃないでしょうか😤

ただ、情報が多すぎてどれが自分に対しての最適解なのかという取捨選択が難しいので、そういう意味で玄人向けなのかなと思いました。

総括

それぞれを簡単に触ってみた感じ、それぞれのメリットはこんな感じです😊

🐟 fish

  • コード補完が強力
  • めんどくさい設定が要らない、インストール後すぐに実用的な設定を持っている
  • ビジュアルがかわいい

💻 zsh

  • 超多機能、調べれば便利なTipsが多く存在する
  • プラグインもめちゃくちゃ多い
  • 玄人感出る

デザイナーの皆さんにおすすめしたいのは、
個人的には🐟 fish 🐟ですね🎉

  1. 便利な機能をサクッと使えて、

  2. 設定をインブラウザで変更が可能、

  3. プラグインも視覚的におしゃれなものがある、

などデザイナーには嬉しい機能が多い印象でした。

今回はここまでです。最後まで読んでいただきありがとうございました。・゚・(ノ∀`)・゚・。
白石のアドベントカレンダー2017、次回は12月19日予定です。🐶

明日は弊社エンジニアしゅんちゃんの「見積もりは、あくまでも見積もり」です。乞うご期待!

余談

白石のTwitterアカウント
興味を持っていただけましたら、どうぞ。

twitter.com

過去の白石のアドベントカレンダー gashoo.hatenablog.com

過去のGASHOO Inc. アドベントカレンダーの記事はこちら adventar.org