はじめに
こんにちは!ITスクールRareTECHにてCS(Customer Support)を担当している池村です。今回の記事は、ターミナルで使える便利ツールのご紹介です。
サードパーティ製のツールの中でも、これは良い(というか美しい)と思ったツールを紹介していきます。完全に私の趣味の領域ですが、ある程度シェルを使い慣れてきた方はぜひ一読ください。
btop
まずはPCのリソースをモニタリングできるbtop
コマンドの紹介です。
こちらはCPU・メモリ・ディスク・ネットワーク・プロセスの情報をリアルタイムで表示できるリソースモニタと呼ばれるものです。
Macユーザーであれば、以下のコマンドでインストール可能です。
brew install btop
Windowsの方は以下で使えると思われます。(Windowsユーザーではないので確かではありません)
scoop install btop
btop
の起動はそのままbtop
で実行可能です。
esc
キーをクリックすると、メニューが表示されるのでお試しください。
HELPでは、btop
のキー設定が確認できます。
btop
の前はhtop
というコマンドがありましたが、最近はこっちの方を使っている方が多い印象です。軽さで言えばhtop
の方が軽量ですが。
これはこれで、眺めているだけでご飯食べれるくらい綺麗ですけどね!
ctop
topシリーズ二つ目はctop
です。
こちらはc、つまりcontainerの略です。Dockerを使っているエンジニアの方は重宝するコマンドになります。
# Mac
brew install ctop
# Windows
scoop install ctop
# Ubuntu
sudo apt install ctop
使い方はbtop
同様、ctop
と叩けば実行されます。
何かしらのコンテナを立ち上げた状態でないと表示はされません。あと、そもそもDocker Engineが起動していないと動きません。ご注意ください。
このctop
では、起動しているコンテナの詳細、再起動やコンテナの中に入ることなど、簡単に行えるようになります。
とても便利ですが、Dockerの基本コマンドを押さえてから使うようにしてください。
oha
次に紹介するのはoha
コマンドです。
こちらは主にHTTPサーバーへの負荷テストなどで使われるコマンドですね。
# Mac
brew install oha
# Windows
winget install hatoo.oha
# Ubuntu
echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ stable main" | sudo tee /etc/apt/sources.list.d/azlux.list
sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg https://azlux.fr/repo.gpg
apt update
apt install oha
使い方はリクエストを送りたいURLに対して、oha
を実行する形です。
oha https://www.google.co.jp/
デフォルトですと、1秒間の間、HTTPリクエストを送り続けるようになっています。その後、リクエスト数・応答時間・スループットをサマリーとして表示してくれます。
負荷テストは、システムやWebサービスが高負荷の状態でも正常に動作するか?を確認するためのテストのことです。
こちらもかなりのオプションがあるのですが、いくつか代表的なものを紹介します。
oha -n 1000 https://example.com
上記コマンドを叩くことで、合計1000リクエストを送ることができます。
oha -c 50 https://example.com
上記の場合、『50人が同時にアクセスする』を再現することができます。
oha -H "Authorization: Bearer token123" https://example.com
トークンをHTTPヘッダーに含めて、APIにアクセスする認証テストで重宝します。
oha -m POST -d '{"key":"value"}' -H "Content-Type: application/json" https://example.com/api
これもよくあるパターンかと思いますので、負荷テストに最適です。
lazygit
こちらはGit関係のツールになります。
これもかなり使いやすく、Git コマンドを視覚的に操作できるのでおすすめです。
ある程度Gitのコマンドを扱えるようになってから利用することをおすすめしています。
インストール方法は以下になります。
# 最新版を早めに使いたい場合
brew install jesseduffield/lazygit/lazygit
# 安定版を使いたい場合
brew install lazygit
winget install -e --id=JesseDuffield.lazygit
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | \grep -Po '"tag_name": *"v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit -D -t /usr/local/bin/
詳しくは以下のリンク先を参照してください。👇
使い方は簡単です。ですが。
注意点として、Git管理下ではないディレクトリで実行すると、新しくgit initを行う使用になっています。もちろん確認画面は出ますが、ホームディレクトリなどでは実行しないことをおすすめします。
lazygit
lazygit
を開くと、様々なウィンドウが見えると思います。
キーバインドは、?
キーを叩くと表示されます。
様々なことがこちらのキーバインドでできるようになっています。
簡単に使い方を説明します。
まず、左側にあるウィンドウには番号が振られており、それぞれ1~5キーを押すことで移動が可能です。←,→キーでも移動は可能です。
[1] Statusウィンドウ
まず1のウィンドウには、リポジトリ名と、現在のブランチが表示されており、aキーを押すと右側のウィンドウに操作履歴やコミット履歴が表示されるようになります。
[2] ファイルウィンドウ
2のウィンドウには、変更されたファイルなどの差分が表示されます。
例として、test.txtを作成した状態の画像を残しておきます。
このtest.txtにカーソルが当たった状態で、spaceキーを押すとステージングされます。その後、cキーでコミットメッセージを作成するウィンドウが表示され、コミットが可能になります。
[3] ブランチウィンドウ
こちらはブランチ一覧が表示され、簡単に切り替え可能になっています。
ブランチにカーソルを合わせると、今までのログも確認することが可能です。
下部にキー操作の説明が書いてありますので、そちらの通りに操作も可能です。
[4] コミットウィンドウ
こちらはコミットの詳細や、操作の履歴を確認できます。git show
やgit reflog
などを扱っているウィンドウですね。
[5] Stashウィンドウ
こちらはその名の通り、変更差分を一時的に退避したものを一覧表示するウィンドウです。
Gitのコマンドに飽きてきたら、使ってみて欲しいツールです!
yazi
次に紹介するのはyazi
です。こちらはRust製のファイルマネージャーです。
とても高速で、ファイル内のプレビューや、画像などもCUI上で見ることができるようになります。
ドキュメントはGitHubとは別になっているので、以下を参照してください。
これを使うには追加で色々なものをインストールする必要があります。
brew install yazi ffmpeg sevenzip jq poppler fd ripgrep fzf zoxide imagemagick font-symbols-only-nerd-font
scoop install yazi
scoop install ffmpeg 7zip jq poppler fd ripgrep fzf zoxide imagemagick
apt install ffmpeg 7zip jq poppler-utils fd-find ripgrep fzf zoxide imagemagick
使い方は特に難しくありません。
yazi
キーバインド一覧
キーバインド | 代替キー | アクション |
---|---|---|
k |
↑ |
カーソルを上へ移動 |
j |
↓ |
カーソルを下へ移動 |
l |
→ |
選択中のディレクトリに入る |
h |
← |
現在のディレクトリを抜けて親ディレクトリへ移動 |
キーバインド | アクション |
---|---|
K |
プレビュー内を 5 ユニット上にスクロール |
J |
プレビュー内を 5 ユニット下にスクロール |
g ⇒ g |
カーソルをリストの先頭へ移動 |
G |
カーソルをリストの末尾へ移動 |
z |
zoxide を使用してディレクトリへ移動 |
Z |
fzf を使用してディレクトリへ移動またはファイルを開く |
残りはドキュメントを参考に色々いじってみてください🖐️
Vimを使っていると、少々使い所が減りますが、画像プレビューも含めて綺麗なツールです😄
ここからは無駄系コマンドをご紹介
lolcat
まずはlolcat
コマンドです。
これはターミナル画面上への出力結果を虹色にしてくれるものです。
特に意味のあるコマンドではありませんが、出力結果が綺麗なので気に入っています。
brew install lolcat
Windowsの方はWSLを入れていれば使えます。
ls | lolcat
cat ファイル名 | lolcat
基本的に|
(パイプ)で繋いで使う形になります。
cmatirix
cmatirixはターミナル画面上にマトリックスのような文字を降らせるコマンドです。
なんの意味もないコマンドですが、綺麗なので気に入っています。
brew install cmatrix
# 基本的な使い方
cmatrix
# lolcatとの連携
cmatrix | lolcat
termdown
次はtermdown
と呼ばれるコマンドです。
これはターミナル上でカウントダウンをしてくれるツールになっています。
これもlolcatと一緒に使うことが多いですね。
brew install termdown
# 基本的な使い方(10mは10分間、1hで1時間なども可能)
termdown 10m
# lolcatとの連携
termdown 10m | lolcat
オプションを使うことで、時間になったらボイスが流れるなども可能です。
--help
オプションで色々使ってみてください。
cowsay
cowsay
コマンドは、アスキーアートを表示することができるコマンドです。
特に意味はありません。
brew install cowsay
# 基本的な使い方(デフォルトは牛)
cowsay "Hello World"
# ドラゴンのアスキーアート
cowsay -f dragon "Hello World" | lolcat
私は仕事中に20~30分ほど仮眠を取ることがよくあり、その際にこのコマンドを使って『寝ています』を伝えている時があります!😴
下の画像を表示しておいて寝ています(笑)
gping
最後はgping
コマンドですね。
これも正直ping
コマンドで十分なのですが、視覚的にわかりやすくなりますし、綺麗なので気に入っています。
そもそもping
コマンドはサーバーなどに通信が可能なのか疎通確認をするコマンドです。ping
コマンドの実行結果は👇
これをグラフィカルに表現したのがgping
です。
brew install gping
gping 任意のURL
おわりに
サードパーティ製のものばかりなので、実際の業務の時に使って良いかは会社次第というところではありますが、便利なコマンド(無駄コマンドもあり)なので、ぜひ一度使ってみて欲しいです!シェルは美しいなあと日頃から感じており、仲間が増えると嬉しいなあ〜と思っています。
ぜひ美しいシェルライフをお送りください😃