俺的ターミナルの環境の作り方2020


一部の人から要望があったので、ターミナルの環境の作り方をご紹介したいと思います。 (内部の環境は2020年度の大学推奨の環境になっているのですが、その構築方法は多分晒しちゃだめなので、動かしてるコマンドから大体推測してライブラリとか入れてきてください)

まずはbash化から (Catalinaのせいでデフォルトがzshなので)

chsh -s /bin/bash

再起動してbashになったら作業開始です。まず、iTerm 2をbrew caskで導入します。

brew cask install iterm2

そしたら、Powerline Shellを導入します。

pip install powerline-shell

と同時にPowerline Shell用フォントをインストールさせます。

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts

あとは、しばらくGUIでの設定です。

まず、iTermを開いて、左上のiTerm2→Preferencesで環境設定を開きます。

AppearanceタブのTheme (テーマ)をMinimalに設定します。

そしたら、次にProfilesタブへ。下の子タブ (?)のColorsへ行き、自分好みの色に変えましょう。

Background: #343434

Blue (Normal): #5f7bff

自分は確か上の2つだけ変更しました。

次にTextタブへ行き、フォントをMeslo LG L DZ for Powerlineに変更しました。

最後にWindowタブへ行き、Settings for New Windows内の設定を

Columns: 90

Rows: 40

に変更しました。


ここまで来ても、色以外の変化はあまりないと思います。

ここからはコマンドでの操作です。

nanoコマンド等で.bash_profileを開き、以下のコードを追加します。

# Powerline Shell用設定
function _update_ps1() {
    PS1=$(powerline-shell $?)
}

if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi

余談ですが、自分は以下の項目も設定しています。

# CatalinaのZSHがメインですよメッセージを非表示にする
export BASH_SILENCE_DEPRECATION_WARNING=1

# lsコマンドのエイリアス
alias ls="ls -G"
alias la="ls -laG"

# VS Codeのエイリアス
alias code="open -a /Applications/Visual\ Studio\ Code.app"

# Clearコマンドのエイリアス (clearを変なのでうち間違えるのはここだけの話...)
alias clean="clear"
alias wipe="clear"

そうしたら、source .bash_profileで適用させます。

次に、Powerline Shellの設定ファイルを生成します。

mkdir -p ~/.config/powerline-shell && \
powerline-shell --generate-config > ~/.config/powerline-shell/config.json

これで、~/.config/powerline-shell/config.jsonに設定ファイルが生成されました。

中身を見ると最初は以下のようになっているのではないでしょうか?

{
  "segments": [
    "virtual_env",
    "aws_profile",
    "ssh",
    "cwd",
    "git",
    "git_stash",
    "jobs",
    "set_term_title",
    "svn",
    "newline",
    "root"
  ]
  }

このセグメントで、コマンドの左側のパスが出たりする部分を調節しています。この中身を自由に変更することによって、きれいなコマンドの左側が出来上がります。

{
  "segments": [
    "virtual_env",
    "ssh",
    "cwd",
    "git",
    "hg",
    "jobs"
  ],
  "cwd": {
    "max_depth": 5
  }
}

自分の設定ファイルはとりあえず上のような感じになっています。

cwd部分のmax_depthはパスの最大表示階層数 (?)になっています。

5階層以上のパスに入るとルート直下のパス名を除き、一部省略されて5階層のみパスが表示されます。


結果的にこのようなデザインになりました。

見やすいと仕事もはかどりますね。