Back to Blog

tmux - multi window session for linux

   Mariusz Antonik    General    3 min read    271 views

Tmux is very handy when working with linux

You can create session disconnect from server and then reconnect to this same session 

To easier manage session I wrote simple script which display list of available sesssions 

 

#!/bin/bash

 

# Function to display sessions and handle selection
select_tmux_session() {
    # Get list of tmux sessions and sort alphabetically
    sessions=$(tmux ls 2>/dev/null | cut -d: -f1 | sort)
    
    # Check if tmux is running and has sessions
    if [ $? -ne 0 ] || [ -z "$sessions" ]; then
        echo "No tmux sessions found or tmux server not running."
        echo "0 - Create new session"
        read -p "Enter your choice: " choice
        if [ "$choice" = "0" ]; then
            read -p "Enter new session name: " session_name
            if [ -n "$session_name" ]; then
                tmux new-session -s "$session_name"
            else
                echo "Session name cannot be empty."
            fi
        fi
        return
    fi
    
    # Display available sessions
    echo "Available tmux sessions:"
    echo "======================="
    
    # Convert sessions to array and display with numbers
    session_array=()
    counter=1
    
    while IFS= read -r session; do
        echo "$counter - $session"
        session_array+=("$session")
        ((counter++))
    done <<< "$sessions"
    
    echo "0 - Create new session"
    echo "======================="
    
    # Get user selection
    read -p "Enter your choice (0-$((counter-1))): " choice
    
    # Validate input
    if ! [[ "$choice" =~ ^[0-9]+$ ]]; then
        echo "Invalid input. Please enter a number."
        return 1
    fi
    
    # Handle selection
    if [ "$choice" = "0" ]; then
        # Create new session
        read -p "Enter new session name: " session_name
        if [ -n "$session_name" ]; then
            tmux new-session -s "$session_name"
        else
            echo "Session name cannot be empty."
        fi
    elif [ "$choice" -ge 1 ] && [ "$choice" -le "${#session_array[@]}" ]; then
        # Attach to selected session
        selected_session="${session_array[$((choice-1))]}"
        echo "Attaching to session: $selected_session"
        tmux attach -t "$selected_session"
    else
        echo "Invalid choice. Please select a number between 0 and $((counter-1))."
        return 1
    fi
}

 

# Run the function
select_tmux_session

 

 

Tags: #Guide
About the Author
Mariusz Antonik

Oracle Cloud Infrastructure expert and consultant specializing in database management and automation.

All Tags
#Advanced #alerts #Bash #bash cpu monitoring script #bash monitoring #bash scripting #Beginner #Best Practices #block volume backup #Capacity Planning #cloud backup strategy #cpu bottleneck #CPU Monitoring #cpu monitoring linux #cpu monitoring script linux #cpu trends #cpu usage trends #cpu usage trends linux #create oracle db system in oci #cron cpu monitoring #cron cpu monitoring linux #cron jobs #database monitoring #database performance #detect slow queries mysql #devops #disk capacity planning server #disk forecasting linux #disk growth trend linux #Disk Monitoring #disk usage #disk usage script linux #disk usage trends #Early Detection #easy infrastructure monitoring #free-tier #Guide #health dashboards #Health Reporting #historical server monitoring #how to monitor cpu usage linux #infrastructure #infrastructure health #infrastructure health dashboard #infrastructure health reporting #infrastructure monitoring #infrastructure monitoring report #infrastructure trends #infrastructure trends monitoring #Infrastructure Visibility #lightweight linux monitoring #lightweight monitoring #linux #linux administration #linux cpu monitoring #linux cpu usage #linux disk capacity planning #linux disk usage #Linux monitoring #linux monitoring setup #linux monitoring tools #linux performance #linux performance monitoring #linux server #linux server monitoring #linux servers #linux storage #linux tools #low maintenance monitoring #monitor cpu usage over time linux #monitor linux server health #monitor server trends #monitor small production server #monitoring without complexity #MySQL #mysql health reporting #MySQL monitoring #mysql optimization #MySQL Performance #mysql performance degradation #mysql performance monitoring #mysql performance trends #mysql query performance issues #mysql server monitoring #mysql slow queries #mysql slow query analysis #mysql slow query monitoring #mysql trends #mysql-health #networking #nsg #OCI #oci backup #oci bastion tutorial #oci block volume #oci infrastructure as code #OCI monitoring #oci networking #oci oracle database private subnet setup #oci oracle database tutorial #oci security #oci setup guide #oci terraform tutorial #oci tutorial for beginners #oci vcn terraform #oci virtual machine db system guide #oracle base database service tutorial #oracle cloud bastion #oracle cloud free tier tutorial #oracle cloud infrastructure step by step #oracle cloud infrastructure tutorial #oracle cloud storage #oracle database on oci setup #oracle-cloud #Performance #Performance Degradation #performance monitoring #performance trend monitoring #performance trends #plan disk growth server #practical server monitoring #predict disk usage growth #private instance access #query optimization #Security #security lists #server health #server health reporting #server health weekly report #server monitoring #Server Performance #server trend analysis #server-trends #simple cpu monitoring linux #simple linux monitoring #simple monitoring small business #simple monitoring system #simple ops monitoring #slow queries #slow query reporting mysql #small business infrastructure #small business IT #small business servers #small infrastructure monitoring #small server monitoring #ssh bastion #storage capacity planning linux #storage monitoring #subnets #system health reporting #terraform oci compute #terraform oracle cloud infrastructure #Trend Monitoring #trend-analysis #trends #Tutorial #vcn