Macのターミナル、シェル環境
iTerm2
ターミナルエミュレータソは定番のiTerm2を使用している。あまりiTermの機能は使用していない。 ログインシェルは前から使用しており、Catalinaからデフォルトになったzsh。
tmux
tmuxはウィンドウ分割(ペイン)やらタブ(ウィンドウ)切り替えも可能で、そのようなセットをセッションとして複数持つことができる。 作業セットを複数用意しておき行ったり来たりということが可能になる。
例をあげる。 とある開発プロジェクトAを現在メインで従事しているが運用保守でプロジェクトBも携わっているとする。
- プロジェクトA作業セット(セッション名:pja)
- ウィンドウ1:プロジェクトAのサービス1の開発作業を。
- ウィンドウ2:プロジェクトAのサービス2の開発作業を。
- ウィンドウ3:プロジェクトAの雑多な作業を。
- プロジェクトB作業セット(セッション名:pjb)
- ウィンドウ1:メインウィンドウ
- ウィンドウ2:いくつかペイン分割し、ログ監視
これらの作業をすぐに切り替えることができるといちいち違うディレクトリに移動して。。。ということがなくなりますよね。 プロジェクトA作業セットからプロジェクトBへの作業セットへの変更は、
<tmux prefix> + d
$ ta pjb
で可能になります。ta
は、tmux a -t
のaliasです。
また、複数台のサーバーにログインし同じログをtailしたい(ログ収集サーバー用意すれば・・・)時に、複数ペインにわけそれぞれのサーバーにログイン後に、
<tmux prefix> + : + "set sync<tab> on"
で各ペインに同時入力モードにし、tail -f /var/log/hoge
として一気に監視等を行います。
fish
ずっとzshを使用していたのだけど、移行しました。fishはFriendly interactive shellの略でわかり易さ、ユーザーフレンドリさに重きをおいているとのことです。ウィキペディアや、るびきちさんの全訳!fishシェル普及計画を参照していただくのが一番わかり易いでしょう。
普段の使い方
hammerspoonで[alt] + [enter]でiTermを起動し、alias登録しているtn <session-name>
でtmuxセッションを開始、tmux設定でシェルはfishになっているので、tmuxセッションが起動したら、[ctrl] + “r” でgitリポジトリに移動し作業することが日々のルーチンです。
hammersoonについては別途書こうと思います。
tmuxとfishの設定は自分のgithubリポジトリで管理しているため、仕事場やサーバー上にすぐに同じ環境を構築できるようにしています。