Bird
Raised Fist0
Linux CLIscripting~5 mins

tmux for persistent sessions in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you start a task on a remote server and want it to keep running even if you disconnect. tmux helps by creating sessions that stay alive, so you can reconnect later and continue where you left off.
When you want to run a long script on a remote server but might lose connection.
When you need to switch between multiple command-line tasks without closing them.
When you want to share a terminal session with a teammate.
When you want to keep your work organized in separate windows and panes.
When you want to disconnect from a session and reconnect later without stopping your programs.
Commands
This command starts a new tmux session named 'mysession'. You can run your commands inside this session and it will stay alive even if you disconnect.
Terminal
tmux new -s mysession
Expected OutputExpected
myuser@server:~$ tmux new -s mysession [tmux starts with a new window showing your shell prompt]
→
-s - Names the tmux session for easy reconnecting
This command detaches you from the current tmux session, leaving it running in the background. You can safely close your terminal or disconnect now.
Terminal
tmux detach
Expected OutputExpected
[detaches from tmux session and returns to normal shell prompt] myuser@server:~$
This command reconnects you to the tmux session named 'mysession' so you can continue your work where you left off.
Terminal
tmux attach -t mysession
Expected OutputExpected
myuser@server:~$ tmux attach -t mysession [tmux session 'mysession' window appears with your previous shell state]
→
-t - Specifies the target session name to attach
Lists all active tmux sessions so you can see which sessions are running and their names.
Terminal
tmux ls
Expected OutputExpected
mysession: 1 windows (created Wed Jun 14 12:00:00 2024) [80x24]
Key Concept

If you remember nothing else from tmux, remember: tmux sessions keep your work running even if you disconnect, and you can reconnect anytime.

Common Mistakes
Closing the terminal without detaching the tmux session
If you don't detach, your session might close and stop running your tasks.
Always detach with 'tmux detach' or press Ctrl+b then d before closing the terminal.
Trying to attach to a session that does not exist
tmux will show an error because it cannot find the session name you typed.
Use 'tmux ls' to check existing sessions and use the correct session name with 'tmux attach -t sessionname'.
Summary
Start a new tmux session with 'tmux new -s sessionname' to keep your work persistent.
Detach safely from a session using 'tmux detach' so it keeps running in the background.
Reconnect anytime with 'tmux attach -t sessionname' to continue your work.
Use 'tmux ls' to list all running sessions and their names.

Practice

(1/5)
1. What is the main benefit of using tmux for command line sessions?
easy
A. It provides a graphical interface for Linux commands.
B. It automatically updates your system packages.
C. It allows you to keep sessions running and return to them later.
D. It replaces the need for a terminal emulator.

Solution

  1. Step 1: Understand tmux purpose

    tmux is a terminal multiplexer that lets you create, detach, and reattach sessions.
  2. Step 2: Identify main benefit

    This means you can keep your command line work running and come back anytime without losing progress.
  3. Final Answer:

    It allows you to keep sessions running and return to them later. -> Option C
  4. Quick Check:

    tmux keeps sessions persistent = A [OK]
Hint: tmux saves your work session to return anytime [OK]
Common Mistakes:
  • Thinking tmux updates software
  • Confusing tmux with GUI tools
  • Believing tmux replaces terminal emulator
2. Which of the following commands correctly creates a new named tmux session called work?
easy
A. tmux open -n work
B. tmux start work
C. tmux create session work
D. tmux new -s work

Solution

  1. Step 1: Recall tmux session creation syntax

    The correct syntax to create a named session is tmux new -s session_name.
  2. Step 2: Match command to syntax

    tmux new -s work matches this syntax exactly, creating a session named 'work'.
  3. Final Answer:

    tmux new -s work -> Option D
  4. Quick Check:

    tmux new -s name creates session = A [OK]
Hint: Use 'tmux new -s name' to start named session [OK]
Common Mistakes:
  • Using 'start' instead of 'new'
  • Omitting the '-s' flag for naming
  • Using incorrect verbs like 'create' or 'open'
3. What will be the output of the command tmux ls if you have two sessions named dev and test running?
medium
A. No sessions found
B. dev: 1 windows (created Thu Jun 1 10:00:00 2023)\ntest: 1 windows (created Thu Jun 1 10:05:00 2023)
C. Session dev attached\nSession test attached
D. Error: tmux command not found

Solution

  1. Step 1: Understand tmux ls output

    This command lists all active tmux sessions with their names and window counts.
  2. Step 2: Match output to sessions

    With two sessions 'dev' and 'test', it shows each with window count and creation time.
  3. Final Answer:

    dev: 1 windows (created Thu Jun 1 10:00:00 2023) test: 1 windows (created Thu Jun 1 10:05:00 2023) -> Option B
  4. Quick Check:

    tmux ls lists sessions = C [OK]
Hint: tmux ls lists all active sessions by name [OK]
Common Mistakes:
  • Expecting 'No sessions' when sessions exist
  • Confusing attached status with listing
  • Thinking tmux ls shows errors if tmux installed
4. You tried to reattach to a tmux session with tmux attach -t mysession but got the error: no sessions. What is the most likely cause?
medium
A. The session named 'mysession' does not exist.
B. You forgot to install tmux.
C. You need to use tmux new instead of attach.
D. The terminal emulator is not supported.

Solution

  1. Step 1: Analyze error message meaning

    The error 'no sessions' means tmux cannot find a session with the given name.
  2. Step 2: Identify cause of error

    This usually happens if the session was never created or was closed.
  3. Final Answer:

    The session named 'mysession' does not exist. -> Option A
  4. Quick Check:

    Attach error 'no sessions' means session missing = B [OK]
Hint: Check session exists before attaching [OK]
Common Mistakes:
  • Assuming tmux is not installed
  • Using attach instead of new incorrectly
  • Blaming terminal emulator
5. You want to create a tmux session named project, detach from it, and later reattach. Which sequence of commands achieves this correctly?
hard
A. tmux new -s project; Ctrl+b d; tmux attach -t project
B. tmux start project; Ctrl+c; tmux attach project
C. tmux create -n project; Ctrl+b x; tmux reattach project
D. tmux open project; Ctrl+d; tmux attach-session project

Solution

  1. Step 1: Create and detach session

    Use tmux new -s project to create session, then press Ctrl+b d to detach safely.
  2. Step 2: Reattach session

    Use tmux attach -t project to reattach to the named session later.
  3. Final Answer:

    tmux new -s project; Ctrl+b d; tmux attach -t project -> Option A
  4. Quick Check:

    Create, detach, attach with correct commands = D [OK]
Hint: Use Ctrl+b d to detach, attach with tmux attach -t name [OK]
Common Mistakes:
  • Using wrong tmux commands like start or create
  • Pressing wrong keys to detach
  • Omitting '-t' when attaching
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard