TUIコマンド特集
はじめに
みなさんこんにちは、ALH開発事業部のREIYAです。
今回は個人的おすすめなTUIコマンドをまとめました。
ちなみに私のdotfilesはこのようになっているので、brew installしているものや関連の設定ファイルなど参考になるものがあるかもしれません。
TUIコマンドとは
GUIが画面、CLIがコマンドラインですがTUIはターミナルUIということで、ターミナル上でグラフィカルにいろいろ描画できるコマンドということ。
こういうのです
これは[lazygit](https://github.com/jesseduffield/lazygit)というコマンドで、Go言語で作成されたコマンドなのですがgitに関する操作をターミナル上でGUIのごとく操作できるコマンドになります
行ごとにステージングしたりdiffを見るなど、細かい操作ができるうえに
結局はgitコマンドのためなんでもできます。
毎回コマンド使いたいがやや楽をしたい、けどターミナルに引き篭もりたいという方には、こういったTUIコマンドがめちゃくちゃおすすめです。
基本的にこういったコマンドはGitHub上にOSSとして公開されていることが多く
こちらのサイトに言語ごと、役割ごとにまとまっているため、ここから好きなものを探してインストールして見ましょう。
おすすめ一覧
個人的によく使っているコマンドをピックアップしますが、似たような記事は多いため
本記事ではなるべくWebエンジニアとして業務中で実際に役に立っているものをメインにしていこうと思います。
lazygit
前述しましたが、lazygitはGit操作なんでもござれです。
vimライクな操作が基本になっているためvimmerにはより使いやすいコマンドになっています。
lazydocker
似たように、Dockerのイメージ一覧、コンテナ一覧、稼働状況やコンテナ内ログなどを管理できるlazydockerもあります。
Dockerを使用しているプロジェクトではDocker for Desktopを採用していることが多いかも知れませんが、CLIのみのdockerを入れてモニタはlazydockerという選択肢もあります。
zoxide + eza + fzf + bat
ディレクトリ移動を快適に爆速に正確にするものです。
zoxideは行ったことのあるディレクトリへのcdをめちゃくちゃ快適にやってくれるコマンドなのですが、移動した回数に応じて優先度が高く候補を並べてくれるもの、として扱います。
候補をlsのように並べるために、lsの強化版みたいなコマンドであるezaを使います。
ちなみにlsの代わりに以下のようなエイリアスを使っています
alias l='eza -abghHliS --icons --git'
この「移動したいディレクトリ先リスト」に対してfzfでのファジー検索を組み合わせ、移動先をあいまい検索して移動するということができます。
また、fzfコマンド中に指定ファイルをプレビューで切るのですが、README.mdをbatによる「cat」の強化でシンタックスハイライト付きで表示することで
移動がとても快適になります。
zoxideのコマンドはziで、ziコマンド実行時にfzfをだすような設定が_ZO_FZF_OPTSです。
これにezaとbatを使用するような設定がこちら。
# zoxide
eval "$(zoxide init zsh)"
export _ZO_FZF_OPTS='
--no-sort --height 75% --reverse --margin=0,1 --exit-0 --select-1
--bind ctrl-f:page-down,ctrl-b:page-up
--bind pgdn:preview-page-down,pgup:preview-page-up
--prompt="❯ "
--color bg+:#262626,fg+:#dadada,hl:#f09479,hl+:#f09479
--color border:#303030,info:#cfcfb0,header:#80a0ff,spinner:#36c692
--color prompt:#87afff,pointer:#ff5189,marker:#f09479
--preview "([[ -e '{2..}/README.md' ]] && bat --color=always --style=numbers --line-range=:50 '{2..}/README.md') || eza --color=always --group-directories-first --oneline {2..}"
'
私はこれに対して、移動後にvimを開くように
以下のようにエイリアスを設定しています
alias zv='zi && vim'
yazi
これはターミナル上でのエクスプローラというかfinderというかです。
ファイルのプレビューもターミナル上でできます。
対応しているターミナル( WezTermやiTerm2 )ならば、画像もそのまま表示できます。
デフォルトの設定ではファイルを選択するとvimで編集に入ります。
以下のように隠しファイルを表示するなど、もろもろ設定できます
[manager]
show_hidden = true
trippy
trippyはネットワーク診断ツールです。
レポジトリのREADMEが全てです。
sshs
sshsはSSH接続先情報を管理するツールです。
TeraTermなどでプロファイルを管理するのと同様のことをコマンド一つでやるためのもので、フィルタリングすることで複数の接続先情報を簡単に選択できます
termscp
termscpは、SCP操作を行うためのTUIコマンドです。
WindowsならWinSCP、Macなら[CyberDuck](https://cyberduck.io/)などSCPクライアントは複数ありますが、ただのscpコマンドでは使い勝手がやや悪いため
ターミナル上でもエクスプローラ表示がある状態でファイルの転送ができるうえにsshs同様に接続先情報も保存できるため、サーバに直接アクセスしての作業時は重宝しています。
gobang
gobangはDBのワークベンチです。
DBeaverやA5 Mk-2のようなものです。
が、これは流石にGUIのほうが良いと思います...ちょっとした確認程度にわざわざ立ち上げるのもな、というときに
ぱっとコマンドから開けるのが魅力という感じですので、これを本番環境で使用したりガッツリ開発するときに使うのはあまりおすすめしません
ターミナル操作を快適にするために
ターミナル上でのコマンドの補完や構文エラーを教えてくれるシンタックスハイライト、Gitブランチの表示やそもそものプロンプトを色つけて綺麗にすると世界が変わります。
まずは外観を色つけて華やかにしてくれるpowerlevel10kを入れると、勝手に設定を進めてくれるので
表示に従って好きに外観をカスタムします。
navi :コマンドの使い方を教えてくれるTUIコマンド
peco :zshのバックiサーチを快適にしてくれるTUIコマンド
zsh-git-prompt :Gitのブランチ表示
zsh-autosuggestions :コマンド履歴からサジェストを表示してくれて、右キーで補完
zsh-syntax-highlighting :コマンドのシンタックスハイライト
あたりを全部入れて
# zsh-syntax-highlighting
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# zsh-autosuggestions
source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh
# zsh-git-prompt
source /opt/homebrew/opt/zsh-git-prompt/zshrc.sh
# powerlevel10k
source $(brew --prefix)/opt/powerlevel10k/share/powerlevel10k/powerlevel10k.zsh-theme
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# pecoのバックiサーチ
function peco-select-history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
BUFFER=$(\history -n 1 | \
eval $tac | \
peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history
こんな感じで設定するとよいです。
おわりに
このようにターミナルに引き篭もると、デフォルトのターミナルよりもWezTermやiTerm2などのエミュレータを使いたくなり、さらにはいろんなコマンドを入れるため、環境が変わった時用にインストールコマンドまとめや設定ファイルまとめを自分のGitHubなどで管理するとよいです。
「.vimrc」「.zshrc」などのように往々にして設定ファイルは「.〇〇」とドットから始まるので、これらを管理したものどdotfileと呼びます。
新PCでこのコマンド叩いたら環境がいつでも再現できるように、installするshellを作っておくと良いでしょう。
私のものはこちらですが、GitHubでdotfileと検索すると
このようにたくさん出てくるので、参考にしてみてはいかがでしょうか。
https://github.com/search?q=dotfile&type=repositories
以上です。
ALHについて知る
↓ ↓ ↓ 採用サイトはこちら ↓ ↓ ↓
↓ ↓ ↓ コーポレートサイトはこちら ↓ ↓ ↓
↓ ↓ ↓ もっとALHについて知りたい? ↓ ↓ ↓