LoginSignup
20

More than 1 year has passed since last update.

Oh My ZSH!便利ツールがあれば開発しやすい!

Posted at

Zshとは?

その数ある中でも最強のshellと言われているのがこのzshというshellみたいです。
sh、bash、csh、tcshの機能をほぼ網羅しているとの事。

Oh My Zshとは?

Oh My Zshは、Zsh構成を管理するためのオープンソースのコミュニティ主導のフレームワークです。 何千もの便利な機能、ヘルパー、プラグイン、テーマなどがバンドルされています。

Oh My Zshは、ターミナルで次のコマンドのいずれかを実行することでインストールされます。 これは、curlまたはwgetのいずれかを使用してコマンドラインからインストールできます。

curl
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
wget
$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

それでインストール終了です!これからは楽しみですね!コンソールを再起動したらデフォルトの表示が出ます!
108254738-764b8700-716c-11eb-9a59-4deb8c8c6193.jpeg

見てる通り、デフォルトでGitは入ってます!Gitのプラグインはどのブランチにいるかをコンソール場で見えます!毎回git branchをしなくてもよい!色もはずっと真っ白のより目に優しい。

色を説明
➜ フォルダー名 git:(ブランチ名):

これがデフォルトの設定です、これから色々説明します。

カスタマイズ

テーマ

テーマはコンソール場の文字色、バックグラウンド色、表示仕方などを変更出来る物です。
テーマの設定は~/.zshrcファイルにあります。

~/.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"

名前を変更して、ターミナルを再起動して、終わり!

全部を手動でテーマを作るは意外と大変です!デフォルトのテーマも悪くないけどもっとすごいになれる!ある特別の表示のテーマを紹介します。

  • agnoster :
    108254745-777cb400-716c-11eb-800a-a8cfa612253f.jpeg
    もっと硬い表示。

  • candy
    108254770-7ba8d180-716c-11eb-965f-63b9ce0efe15.jpeg
    時間を表示して、下の行で書く!

  • eastwood
    108254800-81061c00-716c-11eb-858e-aa17d4c5e07e.jpeg
    rbenvの情報を出してくれてます!

  • jonathan
    108254860-8c594780-716c-11eb-8f8b-be04d4943216.jpeg
    デザインがすごい独特。

  • pygmalion
    108254921-98450980-716c-11eb-9d27-18562610887f.jpeg
    シンプルで優しい色です!

  • wedisagree
    108255779-bbbc8400-716d-11eb-98e9-3d0993efe2c3.jpeg
    シンプル、情報が右にありますのでフォルダ名だけは左です。

テーマは本当に個人の意見なのでもっと見たいならこちらへ:https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

プラグイン

Oh My Zshには、利用できるプラグインがたくさん付属しています。 プラグインディレクトリwikiを調べて、現在利用できるものを確認できます。
このリストはデフォルでインストールされてるプラグイン、設定すればそのままで使えます!設定の方はこちらで説明します。

インストールと設定

もうインストールされてるプラグインなら設定ファイルを変更すればそのままで使えます!もちろん、変更するファイルは~/.zshrcです。

~/.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

インストール出来たら、さっきと一緒で設定ファイルを書くだけで終わります!

~/.zshrc
plugins=(
  git zsh-autosuggestions
)

 再起動すると:

Screen Shot 2022-06-24 at 16.32.23.png

今回インストールしたプラグインが自動完成してます!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を打つがちょっと長いのでカスタムでやります。

~/.zshrcの下
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

もちろんこれは簡単のファンクションですが、わりと簡単です。

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
20