tmux is a terminal multiplexer for Unix-like operating systems. It allows multiple terminal sessions to be accessed simultaneously in a single window. It is useful for running more than one command-line program at the same time. It can also be used to detach processes from their controlling terminals, allowing remote sessions to remain active without being visible.
To invoke a new tmux session, simply use the following command in a terminal:
# tmux new
You can also name the session using the -s flag. In this instance I named the session mysession:
# tmux new -s mysession
If you need to end your ssh session, but want your processes to keep running you can detach the tmux session by using:
# Ctrl + b d
Then exit as normal.
If you have multiple tmux sessions you can detach and reattach them at any time. To list the current tmux sessions running, use:
# tmux ls
The output will be similar to this:
# user@machine:~$ tmux ls # mysession: 1 windows (created Thu Oct 22 10:11:44 2020) # session2: 1 windows (created Thu Oct 22 10:11:52 2020) # session3: 1 windows (created Thu Oct 22 10:11:58 2020)
To reconnect to a specific tmux session you may use the attach command:
# user@machine:~$ tmux attach -t mysession
In tmux, windows show up at the bottom of your session with a name and a sort number.
You can create a new window in your session by using:
# Ctrl-b c
You can navigate to the next window using:
# Ctrl-b n
You can navigate to the previous window using:
# Ctrl-b p
You can rename the current window using:
# Ctrl-b ,
You can close the current window using:
# Ctrl-b &
In order to navigate around a page in tmux, You must first enter Copy Mode and then you can start navigating:
To enter Copy Mode use:
# Ctrl-b [
Once in Copy Mode, you can navigate normally using the arrow keys as well as other functions.
To go to the top of the page type:
To go to the bottom of the page type: