こんにちは。ナミレリです。この記事ではおすすめのRust製コマンドを紹介します。MacやLinuxなどの伝統的で一般的なコマンドラインツールに替わるコマンドとして、Rust製の各コマンドはおすすめです。高速で安全で今風である!ということがおすすめのポイントです。
というわけで、おすすめするRust製のコマンドラインツールを紹介し、MacとUbuntuで利用する魅力をお届けしたいと思います。
以前に、別の記事でテンションが上がるコマンドを紹介しています。こちらの記事も参考にしてください。

この記事はこんな人にオススメ
- Rust製のコマンドって何?
- いつもと違うコマンドを知りたい方
- より便利なコマンドを知りたい方
- いつものコマンドをより高速にしたい方
- とにかくCLIが好きな方
- M2 MacBook Air 13.6 インチ
- M1 Max MacBook Pro 14インチ
- macOS Ventura 13.4.1

目次
はじめに
この記事ではRustで書かれたコマンドラインツールを紹介し、MacとUbuntuで利用する魅力をお伝えします。これらのツールは、ファイル操作やシステム管理、開発など様々なタスクを効率化し、モチベーション向上にも寄与します。
それぞれのコマンドが提供する機能や使い方に加えて、MacとUbuntuの両プラットフォームでのインストール方法も紹介します。
また、おすすめの使い方やツール同士の組み合わせも紹介してより実践的な使い方も紹介できればと思います。
この記事で紹介するRust製コマンド
Rust製コマンド | 概要 |
---|---|
bat | Rustで作られたcatの強化版のようなコマンド。catの代替。 |
exa | Rustで作られたlsの強化版のようなコマンド。lsの代替。 |
rg | Rustで作られたgrepの強化版のようなコマンド。grepの代替。 |
fd | Rustで作られたfindの強化版のようなコマンド。findの代替。 |
Rust製コマンドのインストール方法
Rust製コマンドは、MacとUbuntuの両プラットフォームで簡単にインストールできます。それぞれのプラットフォームでのインストール方法は下の通りです。(いつも通りです)
Macの場合
MacではRust製コマンドをbrewでインストールする方法が一般的です。
Macの場合
brew install コマンド名
Ubuntuの場合
UbuntuではRust製コマンドをaptでインストールする方法が一般的です。
Ubuntuの場合
sudo apt install コマンド名
cargoを使ったインストール
また、Rustの開発環境をインストールすればRustのパッケージマネージャであるcargoを利用して、インストールすることもできます。
cargoを使ったインストール
cargo install コマンド名
それでは早速、おすすめするRust製コマンドを紹介していきます。
bat:catコマンドの代替
まずはcatコマンドの代替のbatコマンドから。
概要と主な用途
batはRustで作られたcatの強化版のようなコマンドで、シンタックスハイライトやgit統合などの機能が追加されています。コードやテキストファイルの内容を見やすく表示するためにcatの代替として利用します。
基本的な使い方
テキストファイルを表示する際に、bat ファイル名と入力します。下のキャプチャのようにシンタックスハイライト付きでファイルの内容が表示されます。ほぼcatと同じように使うことができます。
batを使ってtest.pyを表示してみます。見やすいシンタックスハイライトで表示されます。(下のカラーテーマはNord)
bat test.py
pythonファイルを表示

次に、gitで管理しているtest.luaをbatで見てみます。行番号の右列にgitの差分が表示されています。めっちゃいいですね。
bat test.lua
gitの差分も自動的に表示されます

シンタックスハイライトのテーマは下のコマンドで確認することができます。
bat --list-themes

テーマを指定してファイルを開く場合は、--theme=で指定します。
テーマを指定してファイルを見る
bat --theme=Nord ファイル名
下のように環境変数BAT_THEMEに設定することもできます。.zshrcなどに追加しておくと便利です。
環境変数BAT_THEMEの設定
export BAT_THEME="Nord"
batの便利なオプション
オプション | 省略オプション | 説明 |
---|---|---|
--show-all | -A | 空白、タブ、改行のような非表示文字を表示する。 |
--plain | -p | プレーンスタイルのみを表示し、装飾は行わない。 また-ppで自動ページングも無効になる。 |
--language | -l | シンタックスハイライトの言語を明示的に指定する。 また--list-languagesでサポートされる言語を表示する。 |
--highlight-line | -H | 異なる背景色で指定した行範囲をハイライトする 例: -H 30:40は30行目から40行目までをハイライトする |
--diff | -d | gitインデックスと比較して追加/削除/変更された行のみを表示 |
--chop-long-lines | -S | スクリーン幅より長い全ての行を切り詰めます。 (--wrap=neverのエイリアス) |
--number | -n | 行番号のみを表示し、他の装飾は表示しない (--style=numbersのエイリアス) |
これだけは覚えておきたいオプション
オプション | 省略オプション | 説明 |
---|---|---|
--style=plain | -p | 装飾せずに出力する(ページャー制御) |
--style=plain --paging=never | -pp | 装飾せずにページャー制御しない |
bat
コマンドは、様々なオプションを組み合わせて、最も見やすい表示スタイルにカスタマイズできます。他のコマンドとパイプで連携させることで、さらに便利な使い方ができます。
例:tail -fと組み合わせ
tail -f /var/log/system.log | bat -pp
batのテーマ
上でお伝えした通り、bat --list-themesでテーマ一覧を見ることができますが、参考までにluaファイルを開いた際のキャプチャを掲載します。テーマ選びの参考にしてください。モチベ面でも見た目は重要です。
Theme: 1337

Theme: ansi

Theme: base16-256

Theme: base16

Theme: Coldark-Cold

Theme: Coldark-Dark

Theme: DarkNeon

Theme: Dracula

Theme: GitHub

Theme: gruvbox-dark

Theme: Monokai Extended Bright

Theme: Nord

Theme: OneHalfDark

Theme: OneHalfLight

Theme: Solarized

Theme: Sublime Snazzy

Theme: Visual Studio Dark+

Theme: zenburn

.zshrcにcatのaliasとして設定しておくと便利です。alias cat='bat'
.zshrcにcatのaliasとして設定しておくと便利です。alias cat='bat'
exa:lsコマンドの代替
続いて、lsコマンドの代替のexaです。
exaは2023年9月頃以降、メンテナンスされていません。exaからforkされたezaを使うようにしてください。
ezaは、exaからの改善点や追加機能が実装されています。exaの機能をさらに拡張されより多くのカスタマイズオプションが提供されています。使い方やオプションもほぼ同じです。
macの場合は下のようにbrewでインストールできます。
brew install eza
ezaのgithub:https://github.com/eza-community/eza
概要と主な用途
exaはRustで作られたlsコマンドの代替として使われるファイルリスト表示ツールで、アイコンフォントの表示や、色付きの出力、Git統合が特徴です。
基本的な使い方
lsと同じように使うことができます。ディレクトリ内のファイル一覧を表示する際に、exaやexa -l、exa- laと入力します。
exa -l
exa -l
下のように見やすいカラーでかっこ良く表示されます。

exa -l --icons
--iconsオプションは下のようにファイルやディレクトリにアイコンが表示されます。

exaの便利なオプション
オプション | 省略オプション | 説明 |
---|---|---|
-help | -h? | ヘルプを表示する。 |
--version | -v | バージョンを表示する。 |
--recurse | -R | ディレクトリ配下を再帰的に表示する。 |
--tree | -T | ツリー形式で再帰的に表示する。 |
--classify | -F | ファイル名に対応する タイプインジケータを表示する。 |
--icons | アイコンを表示する。 | |
--all | -a | 隠しファイル(ドットファイル)を表示する。 |
--level | -L | 再帰の深度を制限する。 |
--reverse | -R | ソート順序を逆にする。 |
--sort SORT_FIELD | -s | ソートのフィールドを指定する。 |
--group-directories-first | ファイルの前にディレクトリを表示する。 | |
--only-dirs | -D | ディレクトリのみ表示する。 |
--ignore-glob | -i | 無視するファイルの グロブパターン(パイプで区切る)。 |
--git-ignore | .gitignoreに記載された ファイルを表示しない。 | |
--group | -g | ファイルのグループを覧表示する。 |
--header | -h | ヘッダー行を追加する。 |
--no-user | ユーザー名フィールドを表示しない。 | |
--no-filesize | ファイルサイズフィールドを表示しない。 | |
--no-time | タイムフィールドを表示しない。 |
ls -laの代替でexa --icons -lgFas modifiedのように使います。
.zshrcに下のように設定しておくと便利です。
lsのaliasとして、alias ls='exa --icons'
ls -aのaliasとして、alias la='exa --icons -a -s name'
ls -lのaliasとして、alias ll='exa --icons -l -s time'
私は、.zshrcに下のように設定しています。
alias ls='eza --icons'
alias la='eza --icons -a -s name'
alias ll='eza --icons -alh -s time --time-style iso --git'
alias llt='eza --icons -alh -s time -T --level=3 --time-style iso --git'
rg:grepコマンドの代替
続いて、grepコマンドの代替のrg(ripgrep)です。
概要と主な用途
rg(ripgrep)はRustで作られたgrepのような高速な検索ツールです。rg(ripgrep)は速度と効率に重点を置いており、またデフォルトでは再帰的に検索を行い、.gitignoreの内容やバイナリを無視して検索してくれます。Unicodeも完全にサポートされています。
基本的な使い方
ripgrepのコマンド名はrgですが、MacやUbuntuではを下のようにインストールします。
Macの場合
brew install ripgrep
Ubuntuの場合
sudo apt install ripgrep
ripgrep
の基本的な使用方法は非常にシンプルです。テキストパターンを検索する場合は以下のようにします。テキストパターンが含まれるファイル名とその行を表示してくれます。
基本的な使い方
rg pattern
ディレクトリを指定する場合は、下のようにします。
ディレクトリを指定して検索
rg pattern my_directory
rg(ripgrep)の便利なオプション
オプション | 省略オプション | 説明 |
---|---|---|
--help | -h | ヘルプを表示する。 |
--count | -c | パターンに一致した行の数をファイル名の後に表示する。 |
![]() | ||
--hidden | -. | 隠しファイル(ドットファイル)も検索する。 |
--ignore-case | -i | 大文字小文字を区別せずに検索する。 |
--invert-match | -v | マッチしない行を表示する。(反転) |
--line-regexp | -x | 行全体がマッチした行を表示する。 |
--regexp | -e | 検索パターンを複数指定しすることができ、 少なくとも1つに一致する行が表示される。 例:rg -e lua -e brew また、リテラルに数値や文字列を直接指定 することもできます。 例:rg -e -p(-pを検索) |
--replace | -r | 検索結果の指定したパターンを置き換える。 (-pを**--p**に置き換える) 例:rg -e -p -r '**-p**' |
--search-zip | -z | 圧縮ファイル内を検索する。サポートされる形式は gzip, bzip2, xz, LZ4, LZMA, Brotli, Zstd。 |
--type | -t | TYPEに一致するファイルのみを検索する。 (.shファイルを対象にbrewを検索) 例:rg -t sh brew |
--unrestricted | -u | -uは、.gitignoreを検索対象にする。 -uuは、隠しファイルも検索対象にする。 -uuuは、バイナリファイルも検索対象にする。 |
fd:findコマンドの代替
続いて、findコマンドの代替のfdです。
概要と主な用途
fd
はRustで書かれた高速なファイルおよびディレクトリ検索ツールです。名前はUnix系システムのfind
コマンドに由来しておりより使いやすく、パフォーマンスに優れたfind
の代替品として位置づけられています。
基本的な使い方
fdはMacやUbuntuではを下のようにインストールします。
Macの場合
brew install fd
Ubuntuの場合
sudo apt install fd-find
基本的な使い方
fd pattern
ディレクトリを指定する場合は、下のようにします。
ディレクトリを指定して検索
fd pattern my_directory
fdの便利なオプション
オプション | 省略オプション | 説明 |
---|---|---|
--hidden | -H | 隠しファイル(ドットファイル)を検索結果に含める。 |
--no-ignore | -I | .gitignore、.ignoreなどを除外せず検索結果に含める。 |
--unrestricted | -u | 隠しファイル(ドットファイル)も検索する。 |
--case-sensitive | -s | 大文字と小文字を区別した検索を行う。 |
--ignore-case | -i | 大文字小文字を区別しない検索を行う。 |
--fixed-strings | -F | パターンを正規表現ではなく、リテラル文字列として扱う。 |
--absolute-path | -a | 検索結果のファイルを絶対パスで表示する。 |
--list-details | -l | 検索結果をls -lのような詳細リスト形式で表示する。 |
--follow | -L | シンボリックリンク配下も検索する。 |
--type | -t | 検索するファイルタイプを指定する。 指定できるファイルタイプ: f or file: 通常のファイル d or directory: ディレクトリ l or symlink: シンボリックリンク s or socket: ソケット p or pipe: 名前付きパイプ x or executable: executables e or empty: 空のファイルと空のディレクトリ 例: fd --type file pattern fd -tf pattern |
--exclude | -E | 指定したパターンに一致するファイルやディレクトリを除外する。 |
--extension | -e | 検索結果を拡張子で絞り込む。 例: fd pattern -e py |
最後に
最後まで読んでいただきありがとうございます。【Mac】おすすめRust製コマンド(bat, exa, rg, fd)はいかがでしたでしょうか。MacでもUbuntuでも伝統的で一般的なコマンドラインツールに替わるコマンドとして、Rust製の各コマンドはおすすめです。ぜひお試しください。
他にも楽しいコマンド
Rust製の高速プロンプト