This article shows you how to create a tmux session selection menu that automatically appears when you SSH into a remote Linux server. This menu lets you choose an existing tmux session or start a new one.
Table of Contents
Introduction
Tmux, a terminal multiplexer, lets you manage multiple terminal sessions in a single window. This is especially useful when working remotely via SSH. This guide enhances your remote SSH login experience by adding a Tmux session selector.
Step 1: Creating the Tmux Menu Script
Create a script named tmux_menu.sh
in your home directory (~/) with the following content:
#!/bin/bash TMUX_SESSIONS=$(tmux ls | awk -F: '{print $1}') if [[ -z "$TMUX_SESSIONS" ]]; then echo "No existing tmux sessions. Creating a new session called 'default'..." tmux new -s default else echo "Existing tmux sessions:" echo "$TMUX_SESSIONS" read -p "Enter session name to attach to, or 'new' for a new session: " user_input if [[ "$user_input" == "new" ]]; then read -p "Enter name for new session: " new_session_name tmux new -s "$new_session_name" else tmux attach -t "$user_input" fi fi
Script Breakdown:
This script first gets a list of existing tmux sessions using tmux ls
. If no sessions exist, it creates a "default" session. Otherwise, it presents a menu of existing sessions and prompts the user to choose one or create a new one. The script uses input validation to prevent errors.
Step 2: Making the Script Executable
Make the script executable:
chmod x ~/tmux_menu.sh
Step 3: Configuring Your Bash Profile
Open your ~/.bash_profile
(or ~/.bashrc
if ~/.bash_profile
doesn't exist) and add these lines:
if [[ -z "$TMUX" ]] && [[ $- == *i* ]]; then ~/tmux_menu.sh fi
This ensures the script runs only when you SSH in (not already in a tmux session) and your shell is interactive. Save and close the file.
Step 4: Testing the Tmux Session Selector
tmux new -s session_name -d
to create detached sessions.Ctrl b
then d
. (Replace with actual screenshot if available)
(Replace with actual screenshot if available)
Conclusion
This setup provides a convenient way to manage your tmux sessions when connecting to a remote server via SSH, improving workflow and organization. Remember to replace placeholder images with actual screenshots.
The above is the detailed content of Enhancing SSH Login With A Tmux Session Selection Menu In Linux. For more information, please follow other related articles on the PHP Chinese website!