Amazon オーディブル2ヶ月無料キャンペーン中 5/9まで

【Mac】おすすめRust製コマンド(bat, exa, rg, fd)

8 min

こんにちは。ナミレリです。この記事ではおすすめのRust製コマンドを紹介します。MacやLinuxなどの伝統的で一般的なコマンドラインツールに替わるコマンドとして、Rust製の各コマンドはおすすめです。高速で安全で今風である!ということがおすすめのポイントです。

というわけで、おすすめするRust製のコマンドラインツールを紹介し、MacとUbuntuで利用する魅力をお届けしたいと思います。

以前に、別の記事でテンションが上がるコマンドを紹介しています。こちらの記事も参考にしてください。

この記事はこんな人にオススメ

  • Rust製のコマンドって何?
  • いつもと違うコマンドを知りたい方
  • より便利なコマンドを知りたい方
  • いつものコマンドをより高速にしたい方
  • とにかくCLIが好きな方
この記事のMac環境
  • M2 MacBook Air 13.6 インチ
  • M1 Max MacBook Pro 14インチ
  • macOS Ventura 13.4.1
Parallels 19 for Macの無料トライアル もありますので、ぜひダウンロードして試してみてください。M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。
NEW Parallels Desktop 19 for Mac

Parallels Desktop 19 for Macは、M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。

14日間の無料トライアルもありますので、ぜひダウンロードして試してみてください。

はじめに

この記事ではRustで書かれたコマンドラインツールを紹介し、MacとUbuntuで利用する魅力をお伝えします。これらのツールは、ファイル操作やシステム管理、開発など様々なタスクを効率化し、モチベーション向上にも寄与します。

それぞれのコマンドが提供する機能や使い方に加えて、MacとUbuntuの両プラットフォームでのインストール方法も紹介します。

また、おすすめの使い方やツール同士の組み合わせも紹介してより実践的な使い方も紹介できればと思います。

この記事で紹介するRust製コマンド

Rust製コマンド概要
batRustで作られたcatの強化版のようなコマンドcatの代替
exaRustで作られたlsの強化版のようなコマンド。lsの代替。
rgRustで作られたgrepの強化版のようなコマンド。grepの代替。
fdRustで作られたfindの強化版のようなコマンド。findの代替。
Amazonの読み放題・聴き放題

kindle unlimited 読み放題
200万冊以上が読み放題

Audible
12万以上の対象作品が聴き放題

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製コマンドを紹介していきます

batcatコマンドの代替

まずはcatコマンドの代替のbatコマンドから。

概要と主な用途

batはRustで作られたcatの強化版のようなコマンドで、シンタックスハイライトやgit統合などの機能が追加されています。コードやテキストファイルの内容を見やすく表示するためにcatの代替として利用します。

基本的な使い方

テキストファイルを表示する際に、bat ファイル名と入力します。下のキャプチャのようにシンタックスハイライト付きでファイルの内容が表示されます。ほぼcatと同じように使うことができます

macではbatですが、ubuntuではbatcatです。

batを使ってtest.pyを表示してみます。見やすいシンタックスハイライトで表示されます。(下のカラーテーマはNord)


bat test.py

pythonファイルを表示

bat ファイル名でシンタックスハイライト付きでファイルの内容を表示する

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


bat test.lua

gitの差分も自動的に表示されます

gitの差分も自動的に表示される
gitの差分も自動的に表示される

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


bat --list-themes

bat --list-themesでテーマ一覧を見ることができます
bat --list-themesでテーマ一覧を見ることができます

テーマを指定してファイルを開く場合は、--theme=で指定します。

テーマを指定してファイルを見る


bat --theme=Nord ファイル名

下のように環境変数BAT_THEMEに設定することもできます。.zshrcなどに追加しておくと便利です。

環境変数BAT_THEMEの設定


export BAT_THEME="Nord"

私のbatテーマはNordに設定しています。

batの便利なオプション

オプション省略オプション説明
--show-all-A空白、タブ、改行のような非表示文字を表示する。
--plain-pプレーンスタイルのみを表示し、装飾は行わない。
また-ppで自動ページングも無効になる。
--language-lシンタックスハイライトの言語を明示的に指定する。
また--list-languagesでサポートされる言語を表示する。
--highlight-line-H異なる背景色で指定した行範囲をハイライトする
例:
--highlight-line 30:40は30行目から40行目までを
ハイライトする
--diff-dgitインデックスと比較して追加/削除/変更された行のみを表示
--chop-long-lines-Sスクリーン幅より長い全ての行を切り詰めます。
(–wrap=neverのエイリアス)
--number-n行番号のみを表示し、他の装飾は表示しない
(–style=numbersのエイリアス)

batコマンドは、様々なオプションを組み合わせて、最も見やすい表示スタイルにカスタマイズできます。他のコマンドとパイプで連携させることで、さらに便利な使い方ができます。

例:tail -fと組み合わせ


tail -f /var/log/system.log | bat -pp

batのテーマ

上でお伝えした通り、bat --list-themesでテーマ一覧を見ることができますが、参考までにluaファイルを開いた際のキャプチャを掲載します。テーマ選びの参考にしてください。モチベ面でも見た目は重要です。

iTerm2で暗い背景の場合です。

Theme: 1337

batのテーマ:1337
batのテーマ:1337

Theme: ansi

batのテーマ:ansi
batのテーマ:ansi

Theme: base16-256

batのテーマ:base16-256
batのテーマ:base16-256

Theme: base16

batのテーマ:base16
batのテーマ:base16

Theme: Coldark-Cold

batのテーマ:Coldark-Cold
batのテーマ:Coldark-Cold

Theme: Coldark-Dark

batのテーマ:Coldark-Dark
batのテーマ:Coldark-Dark

Theme: DarkNeon

batのテーマ:DarkNeon
batのテーマ:DarkNeon

Theme: Dracula

batのテーマ:Dracula

Theme: GitHub

batのテーマ:GitHub
batのテーマ:GitHub

Theme: gruvbox-dark

batのテーマ:gruvbox-dark
batのテーマ:gruvbox-dark

Theme: Monokai Extended Bright

batのテーマ:Monokai Extended Bright
batのテーマ:Monokai Extended Bright

Theme: Nord

batのテーマ:Nord
batのテーマ:Nord

Theme: OneHalfDark

batのテーマ:OneHalfDark
batのテーマ:OneHalf Dark

Theme: OneHalfLight

batのテーマ:OneHalf Light
batのテーマ:OneHalf Light

Theme: Solarized

batのテーマ:Solarized
batのテーマ:Solarized

Theme: Sublime Snazzy

batのテーマ:Sublime Snazzy
batのテーマ:Sublime Snazzy

Theme: Visual Studio Dark+

batのテーマ:Visual Studio Dark+
batのテーマ:Visual Studio Dark+

Theme: zenburn

batのテーマ:zenburn
batのテーマ:zenburn

.zshrccataliasとして設定しておくと便利です。alias cat='bat'

exalsコマンドの代替

続いて、lsコマンドの代替のexaです。

2023年9月以降は、ezaを使ってください。

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と同じように使うことができます。ディレクトリ内のファイル一覧を表示する際に、exaexa -lexa- laと入力します。


exa -l

exa -l

下のように見やすいカラーでかっこ良く表示されます。

exa -l
exa -l

exa -l --icons

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

exa -l --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に下のように設定しておくと便利です。

lsaliasとして、alias ls='exa --icons'
ls -aaliasとして、alias la='exa --icons -a -s name'
ls -laliasとして、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'
Amazonの読み放題・聴き放題

kindle unlimited 読み放題
200万冊以上が読み放題

Audible
12万以上の対象作品が聴き放題

rggrepコマンドの代替

続いて、grepコマンドの代替のrgripgrep)です。

ripgrepのコマンド名はrgです。

概要と主な用途

rg(ripgrep)はRustで作られたgrepのような高速な検索ツールです。rg(ripgrep)は速度と効率に重点を置いており、またデフォルトでは再帰的に検索を行い、.gitignoreの内容やバイナリを無視して検索してくれます。Unicodeも完全にサポートされています。

基本的な使い方

ripgrepのコマンド名はrgですが、MacやUbuntuではを下のようにインストールします。

Macの場合


brew install ripgrep

Ubuntuの場合


sudo apt install ripgrep

ripgrepの基本的な使用方法は非常にシンプルです。テキストパターンを検索する場合は以下のようにします。テキストパターンが含まれるファイル名とその行を表示してくれます。

デフォルトではカレントディレクトリを再帰的に検索し、gitignoreルールを尊重し、また隠しファイルとバイナリファイルをスキップします。

基本的な使い方


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-tTYPEに一致するファイルのみを検索する。
.shファイルを対象にbrewを検索)
例:rg -t sh brew
--unrestricted-u-uは、.gitignoreを検索対象にする。
-uuは、隠しファイルも検索対象にする。
-uuuは、バイナリファイルも検索対象にする。

fdfindコマンドの代替

続いて、findコマンドの代替のfdです。

概要と主な用途

fdはRustで書かれた高速なファイルおよびディレクトリ検索ツールです。名前はUnix系システムのfindコマンドに由来しておりより使いやすく、パフォーマンスに優れたfindの代替品として位置づけられています。

rgと同様に、デフォルトでは隠しファイル(ドットファイル)や.gitignoreで指定されたファイルは検索結果から除外されますので使いやすいですね。

基本的な使い方

fdはMacやUbuntuではを下のようにインストールします。

Macの場合


brew install fd

Ubuntuの場合


sudo apt install fd-find

macではfdですが、ubuntuではfdfindです。

rgと同じようにfdも、デフォルトではカレントディレクトリを再帰的に検索し、gitignoreルールを尊重し、また隠しファイルをスキップします

基本的な使い方


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製の高速プロンプト

カテゴリー:
関連記事