BLOG

ブログ

もっと便利に開発!初心者エンジニアのターミナル育成日記

はじめに

みなさんはターミナルを頻繁に使用しますか?
僕は環境構築やgitの管理など、業務に携わるようになってから本格的にターミナルに触れるようになりました。ずっとmacの標準ターミナルを使用していたのですが、全て手入力のためコマンドを打ち間違えたり、入力が遅く開発効率が悪いなと感じていました。

そんなある日先輩から、「標準のターミナル使いづらくないですか?」という一声を頂き、
「ターミナルって何個もあるんですか、、、?」
という疑問とカスタマイズすることでより効率的にターミナルを使用できることを知りました。
zshってなんだろ、、、という段階からのスタートでしたが、
調べていくうちにいくつかの簡単な設定をすることで、ターミナル初心者でも使いやすいターミナルへとカスタマイズすることができました!

今回の記事では、エンジニア初心者がターミナルをより効率的に使用するためにカスタマイズする工程をご紹介します!

この記事は以下のような方を対象にしています。

  • ターミナルをカスタマイズしたことがない人
  • macを使って開発作業をしている人

記事を読むとターミナルを以下の通りカスタマイズすることができます。

  • ターミナルの見た目をテーマごとに切り替えられる
  • ターミナルを画面分割して使用できる
  • コマンド入力に予測機能を追加する
  • ディレクトリの移動を効率化する
  • コマンドの履歴呼び出し機能を追加する

記事通りにコマンドを進めると、簡単にターミナルをカスタマイズできますので最後まで読んでいただけると嬉しいです!

iTerm2をダウンロード

macで使われるターミナルエミュレーター(以下ターミナル)アプリで最も有名なのがiTerm2です!「mac ターミナル」などで検索すると必ず上位検索に引っ掛かります。今回は標準のターミナルではなく、このiTerm2をダウンロードしてカスタマイズしていきたいと思います!

iTerm2にはmacのターミナルにない機能がたくさんあります!

  • パスやURLに command + クリックで飛べる
  • 画面を分割できる command + shift + D
  • 画像を表示可能
  • triggersで特定の文字列にハイライト

中でも特に僕が便利に感じたのは画面分割です。
ターミナルでサーバを起動した際ログを確認しながら別のコマンドを試したいというような状況や複数のディレクトリを同時に操作したい場合などにとても役立ちます!!分割の位置もタブをドラッグすることで自由に移動できるのが、初心者にとっては使いやすい点です!

余談ですが、どれくらい分割できるのか試したところ、僕のPCで40分割までできました!
ただし、画面はほぼ見えないので、40分割を使う機会はなさそうです。

iTerm2は公式のHPから簡単にダウンロードすることができます!
※ダウンロード押下→zipファイルを開く→アプリケーションに追加→起動

見た目を変更!

ダウンロード後iTerm2を起動し、早速見た目を変更します!
iTerm2は視覚的にわかりやすい設定画面のUIでターミナルの見た目を変更することができます。ここでは背景の透明度とぼかし具合の設定をします!
iTrem2→Preferenceをクリックします。

下記画面のようにProfilesからWindowタブをクリックすると、Transparency(透過度)とBlur(ぼかし具合)を設定できます。下記画面ではTransparencyを40、Blurを20に設定しターミナル起動時に背景が透過しつつぼやけるように設定しました!
他にもColorではターミナルで使用する文字色の設定ができますし、Textでは表示される文字サイズやフォントの設定ができますので、お好みの見た目にカスタマイズしましょう!

上記の設定はiTerm2独自のものでした。
以降の設定はiTerm2の画面ですが、macの標準ターミナルでも同じ設定ができます!

Oh My Zsh!

まず初めに、zshとはシェルの一種です。
シェルとは私たちのお願いをパソコン側に届けてくれる橋渡しのような役目をしてくれる機能です。このシェルにはいくつか種類があって、bashなどたくさん仲間がいますがいろいろと機能面で優れていて、最近macの標準ターミナルに搭載されたのがzshです。zshやbashなどに私たちがお願いをする際に、実際に文字を打ち込む画面がターミナルです。

このzshはカスタマイズすることでどんどん便利に使用することができます!
今回紹介するのは最も簡単にカスタマイズに挑戦できる初心者必見のオープンソースフレームワーク、Oh My Zsh!です!名前がとっても素敵で使用する前からワクワクします!
インストール後.zshrcというzshの設定ファイルを書き換えることで簡単にターミナルの見た目を変えたり、便利な機能を追加できます。

それでは、以下の順番でカスタマイズを進めます!

  • Oh My Zsh!のインストール
  • テーマの変更
  • 内部プラグイン設定
  • 外部プラグイン設定
  • pecoの設定

※インストールの前に

Oh My Zsh!をインストールすると、.zshrcファイルの内容が上書きされてしまいます。あらかじめ中身を確認し、必要に応じてバックアップをとります。
僕の場合、パスを通す記述が.zshrcファイルにあったので、テキストファイルを作成し、内容を転記しました。下記コマンドで.zshrcファイルの有無と内容の確認ができます!

cat ~/.zshrc

Oh My Zsh! をインストール!

それでは準備ができたので、Oh My Zsh! をインストールします!
※コマンドはルートディレクトリで実行しています。
以下のコマンドを実行するとインストールが始まります!

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

下記のような賑やかな画面が表示されていればインストール成功です!

アスキーアートがターミナルに表示されると心が躍ります!
念の為、Oh My Zsh! が正しくインストールされているか、以下の2点で確認します。

  • .zshrcファイルの内容確認
  • .oh-my-zshがルートディレクトリに追加されているか確認

まずは先ほどインストール前の確認で使用した下記コマンドで.zshrcファイル内の記述が変更されているか確認します。

cat ~/.zshrc

中身が書きかわっていれば正常にインストールされています。
次に下記のコマンドで.oh-my-zshディレクトリを探します。

ls-la ~/

.oh-my-zshディレクトリがありました!これで確認は終了です!

それでは、さっそくテーマを変更してターミナルをさらに見やすくします!

テーマを変更!

Oh My Zsh! で設定できるテーマはたくさん種類がありこちらから確認できますが、僕が使いやすいと感じたのは“ys”というテーマです。シンプルな色分けと、現在使用しているgitのブランチが表示されるのが嬉しいポイントです!

テーマは.zshrcファイルの内容を編集することで設定できます。.zshrcファイルはvimコマンド かテキストエディタで編集します。この「.」がついているファイルは隠しファイルと呼ばれ、普段finderには姿を現さないファイルたちです。ユーザーが誤って削除してしまうとPCに大きな影響を与えてしまうため、誤操作を防ぐために隠れています。

まずはこのファイルたちを閲覧できる状態にします!
ターミナルで操作する場合は、“ls -a” コマンド、finderで操作する場合はルート階層でcommand + shift + “.” を入力すると隠しファイルを確認することができます。

今回はわかりやすくテキストエディタでエディタで内容を編集します。僕はVSCodeを使っているので、VSCodeを起動してfinderで表示した.zshrcをドラッグ&ドロップします。

下記画面のZSH_THEMEの記載がテーマを設定する箇所に該当します。”=”以降の部分にお好きなテーマを設定します。今回は“ys”を設定します!

編集を保存した後、ターミナルで以下のコマンドを入力し設定を反映させます。

source ~/.zshrc

テーマが変わりました!
プロンプトの表記が~から$に変わり時間が表示されています!
いろいろなテーマを試して一番使いやすいものを見つけましょう!

次はプラグインの設定です!

プラグインの設定

Oh My Zsh!では使用可能なプラグインが300以上あります!プラグインの一覧はこちらから確認できます!今回は汎用的で便利なプラグインを2つプラグインを紹介します。

一つ目はzsh-syntax-highlightingです!このプラグインをインストールするとコマンドにシンタックスハイライトが付くようになり、コマンド入力の際可読性が上がります。また、コマンド誤入力の際も警告色で教えてくれる便利な機能です。

二つ目はzsh-autosuggestionsです!このプラグインをインストールすると、ターミナルで入力した文字から過去に使用したコマンドを予測して候補を表示してくれるようになります。候補が出た状態で方向キーの右を押すと自動でコマンドを入力できます!それでは実際にインストールしてみます!

git clone でプラグインのファイルをインストールした後に、.oh-my-zshディレクトリ内のpluginsディレクトリに、インストールしたファイルを移動します。
コマンドは以下の通りです。

$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git">https://github.com/zsh-users/zsh-syntax-highlighting.git
$ mv zsh-syntax-highlighting ~/.oh-my-zsh/plugins
$ git clone https://github.com/zsh-users/zsh-autosuggestions.git">https://github.com/zsh-users/zsh-autosuggestions.git
$ mv zsh-autosuggestions ~/.oh-my-zsh/plugins

インストールしたファイルを.oh-my-zsh/pluginsに移動した後は、.zshrcの中身を書き換えてプラグインを設定します。以下のように記述します!

編集を保存した後、ターミナルで以下のコマンドを入力し設定を反映させます。

source ~/.zshrc

下記画面のように、コマンドを入力した際に色がつき、予測候補がでていればプラグインが正常に反映できています!

外部プラグインの導入

次は外部のプラグインを使用し、ディレクトリ間の移動を楽にします!
ここではcd-boolmarkというプラグインを使用します。

このプラグインは、ディレクトリに任意の名前を付けて呼び出すことで、どのディレクトリからも指定のディレクトリにジャンプできるものです。名前の通りディレクトリのブックマーク機能です!

まずは下記コマンドでファイルをルート直下にgit cloneでインストールします。

git clone https://github.com/mollifier/cd-bookmark.git cd-bookmark

インストールした後、.zshrcに下記の記述を追記すると、“cd-bookmark”というコマンドが使用できるようになります。※Oh My Zsh! の記述の後に追記します。

fpath=($HOME/cd-bookmark(N-/) $fpath)
autoload -Uz cd-bookmark
alias cdb='cd-bookmark'

使い方を紹介します!
今回は~/Documents/testをブックマークしてみようと思います。
まずはブックマーク登録したいディレクトリまで移動します。
移動後、“cd-bookmark -a 任意の名称”という形でコマンド入力するとブックマークすることができます。

//ディレクトリ移動
cd Documents/test
//ブックマーク登録
cd-boolmark -a test

上記のコマンドでtestという名前のブックマークを作成しました。
別のディレクトリから移動できるのか試します。

//別のディレクトリへ移動
cd ~/Downloads/test2
//ブックマークへジャンプ
cd-bookmark test

以下のようにディレクトリの移動ができていれば成功です!

ブックマークしたディレクトリは“cd-bookmark” コマンドで確認できます。
また、ブックマーク名や移動先は“cd-bookmark -e”で編集し更新することができます! 
これでディレクトリ間の移動が楽になりました!

最後はコマンドを履歴から呼び出せるようにします!

pecoをインストール!

ここではpecoというツールを使って、コマンドを履歴から呼び出せるようにします!
まずはHomebrewでpecoをインストールします。

brew install peco

Homebrewのインストールをしていない場合は先に下記コマンドでインストールします。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストール後に下記の記述を.zshrcファイルに追記し履歴機能を使用できるようにします。

# peco function peco-select-history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi<br>BUFFER=$(\history -n 1 | \
eval $tac | \
peco —query "$LBUFFER")
CURSOR=$#BUFFER<br>zle clear-screen<br>}
zle -N peco-select-history
bindkey '^r' peco-select-history

編集を保存した後、ターミナルで以下のコマンドを入力し設定を反映させます。

source ~/.zshrc

ターミナルでcontrol + Rを押下し、以下の画面が表示されれば履歴機能を使用できています!上下の方向キーで使用したいコマンドを選択し、enterで確定できます!

デフォルトはcontrol + R ですが.zshrcの内容書き換えることで好きなキー操作を登録できます。
個人的にはこの機能が一番便利だと感じています!

まとめ

今回は色々調べながらターミナルをより使いやすくするためのカスタマイズをしてみました!!最初はターミナルって使いづらいものなのか、と思っていましたがこんなに便利になると日々の開発も楽しくなります!
自分の作業環境をアップデートしていくのもエンジニアの醍醐味かもしれません!
ターミナルに不慣れな僕でも簡単に導入できましたので、もしよろしければお試しください!
最後までお読みいただきありがとうございました!!