はじめに
ターミナルでファイルの中身をサッと確認したいとき、cat コマンドを使う方は多いと思います。シンプルで軽量、どの環境にもある安心感がありますよね。
ただ、コードを確認するときに「色がついていたら読みやすいのに」と思ったことはありませんか?
今回紹介する bat は、cat の使い勝手はそのままに、シンタックスハイライトや行番号表示などの機能を追加したツールです。
bat とは
bat は、Rust製の cat コマンド代替ツールです。
主な特徴
| 特徴 | 説明 |
|---|---|
| 🎨 シンタックスハイライト | 言語に応じた色付けで読みやすい |
| 🔢 行番号表示 | デフォルトで行番号を表示 |
| 📄 ファイル名表示 | どのファイルを見ているか一目で分かる |
| 🔀 Git連携 | 変更行にマークを表示 |
| 📖 ページャー対応 | 長いファイルも快適に閲覧 |
インストール
macOS(Homebrew)
brew install bat
Ubuntu/Debian
sudo apt install bat
注意: Ubuntu/Debian では
batcatというコマンド名になる場合があります。
その場合はalias bat='batcat'を設定すると便利です。
その他
詳しくは公式インストールガイドを参照してください。
基本的な使い方
シンプルな表示
bat ファイル名
ファイル名、行番号、シンタックスハイライトが表示されます。
cat との比較
cat の場合:
cat src/index.ts
bat の場合:
bat src/index.ts
同じファイルでも、色付けと行番号があると読みやすさが全然違います。
便利なオプション
シンプル表示(行番号・枠なし)
bat --style=plain ファイル名
cat と同じようなシンプルな出力で、シンタックスハイライトだけ有効になります。
行範囲を指定して表示
bat --line-range 0:2 ファイル名
大きなファイルの一部だけ確認したいときに便利です。
言語を明示的に指定
bat --language=json ファイル名
拡張子がないファイルや、正しく認識されない場合に使います。
複数ファイルを連結して表示
bat file1.ts file2.ts
複数のファイルをまとめて確認できます。
おすすめエイリアス設定
zsh の場合(~/.zshrc)
alias cat='bat --paging=never'
fish の場合(~/.config/fish/config.fish)
alias cat='bat --paging=never'
--paging=never をつけると、短いファイルでもページャーが起動せず、cat と同じ感覚で使えます。
設定後、以下のコマンドで反映します。
# zsh
source ~/.zshrc
# fish
source ~/.config/fish/config.fish
よく使うオプション
| オプション | 説明 |
|---|---|
--style=plain |
行番号・枠なしで表示 |
--style=numbers |
行番号のみ表示 |
--paging=never |
ページャーを無効化 |
--line-range N:M |
行範囲を指定 |
--language=LANG |
言語を明示的に指定 |
--theme=テーマ名 |
カラーテーマを変更 |
--list-themes |
利用可能なテーマ一覧 |
--list-languages |
対応言語一覧 |
対応言語
bat は多くの言語に対応しています。
bat --list-languages
TypeScript、Go、Python、Rust、SQL、YAML、JSON、Markdown など、主要な言語はほぼ対応しています。
cat と bat の比較表
| 機能 | cat | bat |
|---|---|---|
| シンタックスハイライト | ❌ | ✅ |
| 行番号 | ❌(nl が必要) | ✅ |
| Git連携 | ❌ | ✅ |
| ページャー | ❌(less が必要) | ✅ |
| 速度 | 速い | 速い |
まとめ
-
bat は
catにシンタックスハイライトを追加したツール - 行番号・ファイル名表示で、どこを見ているか分かりやすい
- Git連携で変更行も確認できる
- エイリアス設定で
catの代わりに使える
cat はそのままでも十分シンプルで良いコマンドですが、コードを読む機会が多い方は bat を試してみると、ターミナルでの作業が少し快適になるかもしれません。



