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! đ