man page farbig

Wie man Farbe ins Terminal bringt – ccat und farbige man pages

Wer häufiger auf der Kommandozeile unterwegs ist, kennt mit Sicherheit die folgenden Befehle: cat  und man. Diese beiden Werkzeuge sind äußerst hilfreich. Mit cat  kann man schnell (kleine) Dateien anschauen oder in Kombination mit Umleitungen (Pipes) nutzen. Ohne dem kleinen und feinen Programm man ist man häufig aufgeschmissen. Es ist das Werkzeug um Hilfe zu Programmen und Befehlen zu bekommen, z.B. welche Parameter es gibt oder man das Programm oder den Befehl einsetzen kann. Manchmal findet man auch hilfreiche Tipps. Verwendet man z.B. dmesg in Verbindung mit dem Parameter -T, zeigt es einem die genauen Zeitpunkte an! Solche Infos findet man i.d.R. in den man Pages.

Das Problem: die Ausgaben von cat und man  sind schwarz / weiß (oder welches Farbschema man auch immer verwendet) und man kann sich schnell in der Fülle der Informationen verlieren. Ich möchte deshalb zwei Lösungen für dieses Problem vorstellen.

ccat – cat mit Syntaxhervorhebungen

ccat ist catin Farbe. Es arbeitet ähnlich wie cat, zeigt aber die Ausgabe mit Syntaxhervorhebungen an.

Um ccat zu installieren, lädt man sich das Archiv von der Github-Seite des Projekts herunter. Das geht z.B. mit wget:

wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz

Nachdem man nun das Archiv heruntergeladen hat, entpackt man es, wechselt in das entsprechende Verzeichnis und kopiert das Programm in das Programmverzeichnis (z.B. /usr/local/bin ). Folgende Befehle sind dafür nötig:

tar xfz linux-amd64-1.1.0.tar.gz 
sudo cp linux-amd64-1.1.0/ccat /usr/local/bin/
# optional, falls das Programm nicht ausführbar ist
sudo chmod +x /usr/local/bin/ccat

Mit ccat Dateiname  kann man seine Dateien in Farbe ausgeben. Hier z.B. die Ausgabe einer USV / UPS Konfigurationsdatei:

ccat - farbige Ausage
Möchte man ccat immer verwenden, d.h. auch wenn man nur cat eingibt, kann man dazu einen Alias anlegen.

echo "alias cat='/usr/local/bin/ccat'" > ~/.profile
source ~/.profile

Nun bekommt man die farbige Ausgabe auch dann, wenn man nur cat verwendet.

Man Pages in Farbe

Man Pages sind eigentlich übersichtlich gestaltet, doch eine farbige Ausgabe verbessert die Orientierung noch mal deutlich. man verwendet als Pager entweder less oder more. Damit auch man Pages in Farbe erscheinen, sind folgende Anpassungen in der ~/.bashrc notwendig:

nano ~/.bashrc

und dann den folgenden Inhalt einfügen:

export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'
#damit es auch im gnome-terminal klappt
export GROFF_NO_SGR=1

Die Zahlen, die in der obigen Konfiguration verwendet wurden, bedeuten Folgendes:

  • 31 – rot
  • 32 – grün
  • 33 – gelb

Und hier sind die Bedeutungen der Escape-Codes, die in der obigen Konfiguration verwendet werden.

  • 0 – Reset/Normal
  • 1 – fett
  • 4 – unterstrichen

Damit die Änderungen wirksam werden, kann man entweder einen neuen Terminal starten oder die ~/.bashrc neu einlesen mit:

source ~/.bashrc

Nun sehen unsere man Pages viel hübscher aus!

man page farbig

Alternativ kann man neben less oder more auch most als Pager installieren, der noch einige Features mehr unterstützt:

sudo apt install most

Damit most standardmäßig verwendet wird (z.B. von man), muss noch folgende Variable gesetzt werden (ebenfalls in der ~/.bashrc)

export PAGER="most"

(via tecmint)

5 Comments:

  1. Die man-Pages sehen so wirklich sehr hübsch aus. Evtl. lohnt sich für Logfiles auch noch ein Blick auf grc, den generic colouriser.

  2. zefanja

    Danke Jens für den Hinweis. grc kannte ich bisher noch nicht – sieht aber auf den ersten Blick auch nach einem sehr nützlichem Tool aus!

  3. mg

    So sehen die man-pages gleich viel übersichtlicher aus.
    Musste noch folgendes ergänzen: „export GROFF_NO_SGR=1“ damit es in gnome-terminal funktioniert.

  4. get_well(soon)

    Äh, mit „ > ~/.profile“ wird die existierende Datei überschrieben. Sollte man das nicht für Anfänge freundlicher in ein „>>“ zum Anhängen ändern?
    jm2c

Leave a Reply:

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert