Skip to main content

bat ist ein in Rust (nein, es ist nicht die Gemeinde mit dem Freizeitpark gemeint) geschriebenes, plattformunabhängiges Open-Source (Apache V2) Programm, welches an den Start gegangen ist, um mit Syntax Highlighting, automatischem Paging, Zeilennummerierungsanzeige, Theme- und Git-Support den alten und eingestaubten cat-Befehl in die Rente zu schicken.

bat auf Debian-basierten Systemen installieren:

# Ab Ubuntu 19.10
apt install bat

# Per Deb-Paket - https://github.com/sharkdp/bat/releases Momentan 0.18
wget https://github.com/sharkdp/bat/releases/download/v0.18.0/bat_0.18.0_amd64.deb
dpkg -i bat_0.18.0_amd64.deb

# Per Rust-Installer (Rustup)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install bat

bat per Kommandozeilen-Installer Scoop auf Windows installieren:

# Über den Kommandozeilen-Installer Scoop
scoop install bat

Screenshot bat-Ansicht Linux-Skript:
Bild - bat - Open-Source cat Firewall-Script

Einige scharfe bat-Beispiele:

# Anzeige ohne Tabellenansicht
bat -n

# Zeigt auch nicht druckbare Zeichen an
bat -A

# Anzeige ohne Tabellenansicht & Zeilennummer
bat -p

# Anzeige aller unterstützen Themes
bat --list-themes

# Anzeige GitHub-Syntax Theme
bat --theme=GitHub sec-ufw-firewall.sh

# Anzeige aller möglichen Syntax-Sprachen
bat --list-languages

# Zeigt die Zeilen 10 bis 20 in einem knusprigen Skript an
bat -l bash --line-range 10:20 sec-ufw-firewall.sh

# Zeigt das angegebene Logfile durchgehend/live an
tail -f /var/log/fail2ban.log | bat --paging=never -l log

# Zeigt alle out-Vorkommnisse in einem Skript an
grep out /root/scripts/sec-ufw-firewall.sh | bat -l bash

# Findet alle Shell-Skripte in einem Ordner und zeigt diese ungeniert an
find /root/scripts/ -iname *.sh -exec bat {} +

# Setzt MANPAGER Umgebungsvariable damit Manpage-Aufrufe bunt dagestellt werden
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
man find