はじめに
開発者として働き始めてよく見るようになった黒い画面... コマンドライン...
使い方はなんとなくわかってきたけどもう少し便利に使いたいと思っている方も多いのではないでしょうか。
この記事では、コマンドラインでの作業効率を上げるCLIツールをたくさん紹介していきます。マスターすれば、作業効率が爆上がりすること間違いなしです。
弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。
また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。
そもそもCLIツールとは?
CLI(CUI)
コマンドラインインターフェース(キャラクターユーザーインターフェース)の略です。
文字列(コマンド)を入力してコンピュータと指令を送る方法です。Macであればターミナル、Windowsであればコマンドプロンプトを開いて操作をします。コマンドを覚える必要があり、知識も必要なため一般にはあまり使われませんが、大量のデータを処理したり、複雑な操作を行ったりできるため、開発を行う際などはよく使われます。
GUI
グラフィカルユーザーインターフェースの略です。
ウィンドウやアイコンなどをマウスで操作してコンピュータに指令を送る方法です。視覚的にわかりやすく簡単に操作ができるので、一般的にPCを操作する際にはGUIを使う機会が多いと思います。
ユーザーインターフェース
ユーザーインターフェース(UI)とは、コンピュータを使用する人(ユーザー)とコンピュータを結びつける接点のことです。
接点という言い方だとピンとこないかもしれませんが、簡単に言うとユーザーがコンピュータを操作する方法のことを指します。
いつもの操作をより便利にしてくれるツール
the fuck
コマンドを打ち間違えてエラーになった時やインストールしていないコマンドを使おうとした時などに自動修正をしてくれるコマンドです。
github:https://github.com/nvbn/thefuck
開発言語:Python
スター数:76.7k
f⚫︎⚫︎kとタイプするだけで修正してくれてめちゃくちゃ便利です
zoxide
cdの改良版です。よく使うディレクトリを登録しておくことによって、フルパスを覚えることなく使いたいディレクトリにダイレクトで移動できます。
github:https://github.com/ajeetdsouza/zoxide
開発言語:Rust
スター数:10.2k
代替コマンド:cd
bat
catコマンドの改良版です。catと同じようにファイルの中身を見たり、ファイルの内容を連結したりすることができます。
catと違い、シンタックスハイライトとgitの連携を備えています。
github:https://github.com/sharkdp/bat
開発言語:Rust
スター数:40.7k
代替コマンド:cat
bat
cat
見比べてみるとbatの方が圧倒的にわかりやすいですね
tldr
manページをよりわかりやすく表示してくれるツールです。使い方が曖昧なコマンドがある場合に重宝します。
github:https://github.com/tldr-pages/tldr
スター数:43.9k
代替コマンド:man
色付けされてるかつ簡潔に書いてあるので、manよりも格段にみやすいことがわかります
aria2
webサーバ等からファイルをダウンロードする際に使用するツールです。並列ダウンロードで高速なダウンロードを可能にしているので、同じ機能を備えているwgetより数倍速くダウンロードをすることができます。
github:https://github.com/aria2/aria2
開発言語:C
スター数:30k
代替コマンド:wget
exa
ファイルを一覧表示するためのコマンドで、lsの改良版です。カラフルな見た目でとても見やすく、アイコン表示も可能です。また、ツリーやグリッド、リストなど複数の出力形式に対応しています。
gitfub:https://github.com/ogham/exa
開発言語:Rust
スター数:21.4k
代替コマンド:ls
hyperfine
コマンドラインやスクリプトをベンチマークし、比較をすることができます。キャッシュのクリアや他プログラムからの干渉を防ぐことができ、正確な結果を得ることができます。
github:https://github.com/sharkdp/hyperfine
開発言語:Rust
スター数:15.5k
lsとexaを比べてみました
duf
ディスクの使用量や空き容量をカラフルな表形式で出力できるコマンドです。結果をソートしたり、JSON出力をしたりすることも可能です。
github:https://github.com/muesli/duf
開発言語:Go
スター数:10.9k
代替コマンド:df
カラフルで見やすいですね
fzf
コマンドライン上で曖昧検索を行うことができるコマンドです。gitやVimとの連携もでき、非常に便利です。
github:https://github.com/junegunn/fzf
開発言語:Go
スター数:51.6k
代替コマンド:fd
ripgrep
正規表現を用いて、ディレクトリを再帰的に検索できるツールです。grepよりも高速で結果も見やすく使いやすくなっています。
github:https://github.com/BurntSushi/ripgrep
開発言語:Rust
スター数:37.2k
代替コマンド:grep
jq
JSONからの値の抽出、集計、整形などができるツールです。
github:https://github.com/stedolan/jq
開発言語:C
スター数:24.7k
こちらのJSONデータを使ってjqでデータをいじってみます。
簡単に必要な情報を抽出したり、整形したりできます。
diff-so-fancy
diffの改良版です。ファイルの差分を強調して表示してくれるため、よりわかりやすくなっています。
github:https://github.com/so-fancy/diff-so-fancy
開発言語:C
スター数:16.4k
代替コマンド:diff
モニタリングとパフォーマンス評価ができるツール
bandwhich
ネットワーク帯域幅の使用状況をリアルタイムで監視できるツールです。プロセス、接続情報、発信ホストごとに見れるため便利です。
github:https://github.com/imsnif/bandwhich
開発言語:Rust
スター数:7.8k
glances
様々な情報を一目で見ることができるモニタリングツールです。CPU情報、CPU負荷、メモリ情報、ネットワーク、プロセスの総数などたくさんの情報を見ることができます。
github:https://github.com/nicolargo/glances
開発言語:Python
スター数:22.6k
代替コマンド:top
gping
複数のホストに対してPingテストを実行し、その結果をリアルタイムにグラフ表示することができます。
github:https://github.com/orf/gping
開発言語:Rust
スター数:7.3k
代替コマンド:ping
speedtest-cli
インターネットのスピードテストをターミナルから直接実行できます。
github:https://github.com/sivel/speedtest-cli
開発言語:Python
スター数:12.7k
開発の時に重宝するツール
httpie
HTTPクライアントツールです。HTTPやAPIサーバーへのリクエストをわかりやすく表示してくれます。curlと異なり、http/httpsに特化していますが、シンタックスされたわかりやすい色付きの出力を提供します。
github:https://github.com/httpie/httpie
開発言語;Python
スター数:27.3k
代替コマンド:curl
lazygit
コマンドライン上で操作できるgitクライアントです。すでに存在しているリポジトリに対して、コミットやブランチ操作をコマンドライン上で行うことができます。
github:https://github.com/jesseduffield/lazygit
開発言語:Go
スター数:34.1k
lagydocker
コマンドライン上で操作できるDocker管理ツールです。コンテナやイメージの操作、ログの表示、リソース使用状況の確認など多くのことをコマンドライン上で行うことができます。
github:https://github.com/jesseduffield/lazydocker
開発言語:Go
スター数:26.3k
ngroc
ローカルホストで動いているサーバーを、LANの外からアクセスできるようにできるツールです。
ローカル環境を簡単に一時的に外部に公開できるため、リモートで作業している人と簡単に作業内容を共有できます。
github:https://github.com/inconshreveable/ngrok
開発言語:Go
スター数:22.8k
ngrokを使用する際はこちらからngrokのサインアップが必要になります
おもしろ機能
figlet
文字やテキストのASCIIアートを出力することができます。フォントを変えることで様々なASCIIアートを生成できます。
github:https://github.com/cmatsuoka/figlet
開発言語:C
スター数:1.1k
フォントも変えることができます。
lolcat
テキストを虹色にします。
github:https://github.com/busyloop/lolcat
開発言語:Ruby
スター数:5.5k
色の変化の度合いを変えることもできます。
参考サイト
最後に
CLIツールをマスターして、より快適なコマンドライン生活を送りましょう!!