Lerne, wie du einen personalisierten Terminal-Banner mit Fish Shell erstellst. Vollständiges Script mit Anleitung, Screenshots und Anpassungstipps. In diesem Beitrag zeige ich, wie ich einen personalisierten Terminal-Banner für die Fish Shell erstellt habe. Das Script zeigt beim Aufruf ein farbiges ASCII-Art-Logo „TUXPLAYER“ zusammen mit Metadaten wie Autor, Version, Datum, Zeit und meiner Website an. Solche Banner sind perfekt für Screenshots, Präsentationen oder einfach zur Personalisierung des eigenen Terminals.
Warum ein eigener Banner?
Ein personalisierter Terminal-Banner bietet mehrere Vorteile:
- Professioneller Eindruck – besonders bei Screenshots für Tutorials oder Social Media
- Branding – zeigt deine Identität und Website
- Motivation – ein schöner Banner macht das Arbeiten im Terminal angenehmer
- Lernprojekt – perfekt um Shell-Scripting zu üben
Features des Scripts
- Dynamische Anpassung an die Terminal-Breite – der Banner passt sich automatisch an verschiedene Fenstergrößen an
- Farbige Darstellung mit ANSI-Codes – verwendet Cyan für Rahmen, Grün für Infotexte und Blau für das Logo
- Logging der Ausführungen – jeder Aufruf wird mit Zeitstempel in einer Log-Datei protokolliert
- Vollständiger Rahmen aus Rauten-Zeichen – saubere visuelle Begrenzung des Banners
- Saubere Funktion zur korrekten Ausrichtung – verhindert unschöne Zeilenumbrüche
Mein Banner – Endergebnis
So sieht das fertige Banner in Aktion aus:

Der vollständige Code
Hier ist das komplette Fish-Shell-Script. Du kannst es als Vorlage für deinen eigenen Banner verwenden:
#!/usr/bin/env fish
# Pfade und Metadaten
set LOG_FILE "./tuxplayer_execution.log"
set VERSION "1.0.0"
set AUTOR "Heiko Schäfer"
# Aktuelle Zeitdaten generieren
set DATUM (date '+%Y-%m-%d')
set UHRZEIT (date '+%H:%M:%S')
set TIMESTAMP "$DATUM $UHRZEIT"
# ANSI Farbcodes (Fish verwendet explizite Farb-Kommando set_color)
set C_FRAME (set_color cyan) # Rahmenfarbe
set C_INFO (set_color green) # Farbe für Infotext (| TUXPLAYER |)
set C_LOGO (set_color brblue) # Farbe für das Logo (dem Hex #00D3FF ähnlich)
set C_NORMAL (set_color normal) # Setzt die Farbe zurück
# Logging Funktion
function log_message
echo "[$TIMESTAMP] TUXPLAYER wurde ausgeführt." >> $LOG_FILE
end
# --- HILFSFUNKTIONEN FÜR KORREKTE AUSRICHTUNG ---
# Diese Funktion berechnet die benötigte Anzahl an Leerzeichen dynamisch.
function print_line_fish
set content $argv
# Terminal-Breite abfragen
set total_width (tput cols)
# Fish hat ein eingebautes 'string length --visible' Kommando
set visible_length (string length --visible $content)
# Anzahl der benötigten Leerzeichen berechnen
set padding_width (math $total_width - $visible_length)
# Ausgabe mit korrekter Anzahl an Leerzeichen am Ende
printf "%s%*s\n" "$content" "$padding_width" ""
end
# Funktion für die obere/untere Rahmenlinie (volle Rautenreihe)
function print_boundary
set total_width (tput cols)
# Zeichenkette aus Rauten dynamisch mit 'string repeat' erzeugen
set hash_line (string repeat -n $total_width "#")
echo $C_FRAME$hash_line$C_NORMAL
end
# --- Banner Ausgabe ---
print_boundary # Obere Rahmenlinie
# Logo Zeilen (mit print_line_fish Funktion für saubere Ränder)
print_line_fish "$C_FRAME#$C_NORMAL"
print_line_fish "$C_FRAME# $C_LOGO████████╗██╗ ██╗██╗ ██╗██████╗ ██╗ █████╗ ██╗ ██╗███████╗██████╗ $C_NORMAL"
print_line_fish "$C_FRAME# $C_LOGO╚══██╔══╝██║ ██║╚██╗██╔╝██╔══██╗██║ ██╔══██╗╚██╗ ██╔╝██╔════╝██╔══██╗$C_NORMAL"
print_line_fish "$C_FRAME# $C_LOGO██║ ██║ ██║ ╚███╔╝ ██████╔╝██║ ███████║ ╚████╔╝ █████╗ ██████╔╝$C_NORMAL"
print_line_fish "$C_FRAME# $C_LOGO██║ ██║ ██║ ██╔██╗ ██╔═══╝ ██║ ██╔══██║ ╚██╔╝ ██╔══╝ ██╔══██╗$C_NORMAL"
print_line_fish "$C_FRAME# $C_LOGO██║ ╚██████╔╝██╔╝ ██╗██║ ███████╗██║ ██║ ██║ ███████╗██║ ██║$C_NORMAL"
print_line_fish "$C_FRAME# $C_LOGO╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝$C_NORMAL"
print_line_fish "$C_FRAME#$C_NORMAL"
# Info Zeilen
print_line_fish "$C_FRAME# $C_INFO| TUXPLAYER |$C_NORMAL Heiko Schäfer"
print_line_fish "$C_FRAME# 👤 Autor: $AUTOR | Version: $VERSION"
print_line_fish "$C_FRAME# 📅 Datum: $DATUM | Zeit: $UHRZEIT"
print_line_fish "$C_FRAME# 🌐 Website: https://www.tuxhs.de"
print_line_fish "$C_FRAME#$C_NORMAL"
print_boundary # Untere Rahmenlinie
# Log schreiben
log_message
Installation und Verwendung
⚠️ Wichtiger Hinweis
In den folgenden Beispielen verwende ich den Platzhalter DEINSKRIPT. Du musst diesen durch deinen eigenen Scriptnamen ersetzen (z.B. farbiger_TUXPLAYER.fish oder einen Namen deiner Wahl). Dies dient dazu, dass du die Anleitung bewusst an deine Bedürfnisse anpasst.
Schritt 1: Script speichern
Speichere das Script in einem Verzeichnis deiner Wahl, z.B.:
~/scripts/tools/farbiger_text/fish/DEINSKRIPT.fish
Mache es ausführbar:
chmod +x ~/scripts/tools/farbiger_text/fish/DEINSKRIPT.fish
Schritt 2: Funktion für Fish Shell einrichten
Erstelle eine Funktion in ~/.config/fish/functions/tbt.fish:
function tbt
~/scripts/tools/farbiger_text/fish/DEINSKRIPT.fish
end
Alternativ kannst du auch einen Alias in ~/.config/fish/config.fish hinzufügen:
alias tbt='~/scripts/tools/farbiger_text/fish/DEINSKRIPT.fish'
Schritt 3: Funktion für Bash Shell einrichten (optional)
Falls du auch Bash verwendest, füge in ~/.bashrc hinzu:
alias tbt='~/scripts/tools/farbiger_text/bash/DEINSKRIPT.sh'
Aktiviere die Änderungen:
source ~/.bashrc
Schritt 4: Banner aufrufen
Gib einfach ein:
tbt
Der Banner wird sofort angezeigt!
Endergebnis in Fish Shell
So sieht das komplette Setup mit Banner und neofetch aus:

Anpassungsmöglichkeiten
Das Script lässt sich einfach an deine Bedürfnisse anpassen:
- Farben ändern: Passe die Variablen
C_FRAME,C_INFOundC_LOGOan (z.B.set C_FRAME (set_color red)) - ASCII-Art austauschen: Ersetze das TUXPLAYER-Logo durch dein eigenes Design (Tools: figlet, toilet, oder Online-Generatoren)
- Metadaten anpassen: Ändere Autor, Version, Website-URL nach deinen Wünschen
- Log-Datei-Pfad: Passe
LOG_FILEan deinen bevorzugten Speicherort an - Zusätzliche Infos: Füge weitere Zeilen hinzu, z.B. Git-Branch, System-Uptime, etc.
Troubleshooting
Banner wird zweimal angezeigt
Überprüfe, ob du das Script sowohl in ~/.config/fish/config.fish als auch in ~/.config/fish/functions/tbt.fish eingebunden hast. Verwende nur eine der beiden Methoden.
Farben werden nicht angezeigt
Stelle sicher, dass dein Terminal True Color oder zumindest 256-Farben unterstützt. Teste mit:
echo $TERM
Banner ist zu breit/zu schmal
Das Script passt sich automatisch an die Terminal-Breite an. Wenn Probleme auftreten, überprüfe ob tput cols die richtige Breite zurückgibt.
Fazit
Mit diesem Script habe ich eine einfache aber effektive Möglichkeit geschaffen, mein Terminal zu personalisieren. Der Banner ist schnell aufgerufen, sieht professionell aus und kann beliebig angepasst werden. Durch die parallele Bash-Version funktioniert der identische Befehl tbt in beiden Shells.
Perfekt für Screenshots, Präsentationen oder einfach zur Motivation beim täglichen Arbeiten im Terminal!
Viel Spaß beim Anpassen und Ausprobieren! 🚀
