bat CLI installieren: Syntax-cat, Paging, --theme, Vergleich mit cat
bat installieren, Paging/Themes setzen, Pager in Skripten aus, cat für POSIX behalten.
cat gibt Bytes aus; Configs und Logs im Terminal brauchen Farbe und Zeilennummern. bat (Rust, sharkdp) ist ein cat mit Pager und Themes. Dieser Leitfaden:; reading configs, CI logs, or source in the terminal deserves syntax color and line numbers. bat (Rust, sharkdp) is a cat with language detection, paging, and themes. Installation macOS/Linux, Paging, --theme, bat vs cat für hereink neben ripgrep und fd.
The query is how to install bat CLI set paging and theme compare to cat. You should finish with bat on PATH, comfortable paging through a long file, --paging=never for scripts, and a theme picked via --theme or ~/.config/bat/config.
Was bat löst
Readable file previews
bat src/lib.rs highlights syntax, shows line numbers, and can show Git change markers. Lighter than opening an IDE for a quick peek over SSH or locally.
Passt rg and fd
rg -l pattern | xargs bat opens hits with color; fd -e md | xargs bat previews many paths. Our fd guide covers search; this article stays on reading with bat.
Upstream:
github.com/sharkdp/bat. Runbat --versionafter install.
Installation macOS und Linux
- 1macOS (Homebrew)
brew install bat. Verify withwhich batandbat --version. - 2Debian / Ubuntu
sudo apt update && sudo apt install bat. If packages lag, use GitHub Releases orcargo install bat. - 3Fedora / Arch
Fedora:
sudo dnf install bat. Arch:sudo pacman -S bat. - 4Windows (optional)
scoop install batorchoco install bat. Examples below focus on macOS/Linux. - 5First run
In any repo:
bat README.md. Tall terminals may page; short files print once.
Paging: less standardmäßig, in Skripten aus
When output exceeds one screen, bat hands off to a pager (usually less). Great for humans; pipes and scripts need plain stdout.
bat long.log
bat --paging=never package.json
export BAT_PAGER=""
bat --paging=never Dockerfile
bat --paging=always src/main.go--paging values include auto (default), never, and always. Inside less: space for next page, q to quit, /pattern to search.
Themes: --theme und Config
bat --list-themes
bat --theme=TwoDark src/app.ts
bat --theme=GitHub README.md
echo '--theme="TwoDark"' >> ~/.config/bat/config
echo '--style="numbers,changes,header"' >> ~/.config/bat/config
export BAT_THEME="Monokai Extended"
bat Cargo.toml--style toggles line numbers, headers, and Git bars. For a minimal cat-like view, use --style=plain or bat --plain.
Alltags-Flags
rg -n "ERROR" app.log | bat -l log
bat -r 10:25 src/config.yaml
bat src/*.rs
bat -A .env.examplebat vs cat
| Goal | bat | cat |
|---|---|---|
| Interactive source/config | bat file.ts | cat file.ts |
| Pipe to another tool | bat --paging=never --plain file | wc -l | cat file | wc -l |
| Concatenate files | bat a b c (headers) | cat a b c |
| Binary data | avoid | avoid; use xxd |
| POSIX minimal image | extra package | built in |
| Paging | auto + less | none; use less |
You may alias cat to bat --paging=never --plain for daily use; legacy scripts can call /bin/cat when compatibility matters.
- Fits
- Terminal reading of code and configs, log snippets, piping rg/fd hits into previews.
- Passt nicht
- Zero-dependency POSIX entrypoints or binary-safe byte streams—use
catorbat --plain --paging=neverafter checking output.
Overlap with the fd+bat article?
That guide pairs fd search with bat; this one goes deeper on install, --paging, --theme, and cat comparison.
Theme looks washed out?
Pick a light theme like GitHub or set BAT_THEME. Preview names with bat --list-themes | bat in your terminal.
Will bat break pipes?
Pagers and decorations can. Use --paging=never in scripts; add --plain when you need plain text.
Config geklärt — auf ein Board ausrichten
Once modules are clear in the terminal, service boundaries still belong on a shared canvas. See Raum erstellen.