
Dynamiczne nazwy zakładek w Tmuxie z SSH i hostname
Chcesz, aby Twoje zakładki (okna) w Tmuxie automatycznie pokazywały hostname serwera, do którego się logujesz przez SSH? A po wylogowaniu wracały do nazwy lokalnego hosta? Ten poradnik pokaże Ci, jak to skonfigurować krok po kroku.
1. Konfiguracja Tmux – ~/.tmux.conf
W pliku konfiguracyjnym Tmuxa ustaw domyślną komendę startową na specjalny plik Bash (.bash_tmux
), który załatwi całą magię.
1 |
set-option -g default-command 'bash --rcfile ~/.bash_tmux' |
2. Skrypt startowy Bash – ~/.bash_tmux
Ten plik wykonuje się przy każdym starcie okna Tmux. Ustawia nazwę okna na hostname oraz nadpisuje polecenie ssh
, aby aktualizowało zakładkę przy połączeniu i po rozłączeniu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#!/bin/bash # ~/.bash_tmux # Custom Bash init file for Tmux sessions with dynamic tab naming # Override the default ssh command to dynamically rename the Tmux window ssh() { if [ -n "$TMUX" ]; then # Loop through arguments to find the target host (first non-flag argument) for arg in "$@"; do if [[ "$arg" != -* ]]; then if [[ "$arg" == *@* ]]; then host="${arg#*@}" # extract host from user@host else host="$arg" fi break fi done # Strip any trailing junk or whitespace host="$(echo "$host" | cut -d' ' -f1)" # Rename the Tmux window to the SSH target [ -n "$host" ] && tmux rename-window "$host" # Save the local hostname to restore later local_host="$(hostname -s)" # Run the actual SSH command command ssh "$@" # Restore the original window name after logout tmux rename-window "$local_host" else # Not in Tmux — just run ssh normally command ssh "$@" fi } # Load the user's regular bash configuration source ~/.bashrc # On shell start, if in Tmux, set the window name to the current hostname if [ -n "$TMUX" ]; then tmux rename-window "$(hostname -s)" fi |
3. Przeładowanie konfiguracji Tmux bez restartu
Aby zastosować zmiany bez restartowania całej sesji Tmux, użyj następującego polecenia:
1 |
tmux source-file ~/.tmux.conf |
Dodatkowo możesz przeładować bieżącą powłokę z .bash_tmux
ręcznie:
1 |
exec bash --rcfile ~/.bash_tmux |
4. Efekt końcowy
- Nowe okno Tmux ma automatycznie nazwę lokalnego hosta
- Po połączeniu przez SSH — zakładka zmienia się na nazwę zdalnego hosta
- Po wylogowaniu — zakładka wraca do lokalnego hostname
Prosto, czytelnie i mega wygodnie — idealne dla adminów, devopsów i fanów porządku w Tmuxie 💪