This comprehensive Linux guide expects that you run the following commands as root user but if you decide to run the commands as a different user then ensure that the user has
sudo
access and that you precede each of the privileged commands withsudo
Introduction
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. Each window occupies the entire screen and can be split into rectangular panes.
tmux
includes most features of GNU Screen. It allows users to start a terminal session with clients that are not bound to a specific physical or virtual console; multiple terminal sessions can be created within a single terminal session and then freely rebound from one virtual console to another, and each session can have several connected clients.
tmux
sessions are persistent which means that programs running in Tmux will continue to run even if you get disconnected.
All commands in Tmux start with a prefix, which by default is ctrl+b
.
Installing tmux
You can follow the instructions given below to install the tmux
on your system
On Debian Based Systems
Run the following command to install tmux
on your debian based system e.g. Ubuntu.
root@codesposts:~$ apt install tmux
On Red-Hat Based Systems
Run the following command to install tmux
on your red-hat based system e.g. CentOS and Fedora.
root@codespost:~$ yum install tmux
On MacOS
Run the fllowing command to install tmux
on your MacOS
root@codesposts:~$ brew install tmux
If you don’t have Homebrew installed yet, open either Terminal or iTerm and paste the below command:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Starting A tmux Session
To start a new session in tmux, simply type following command in your terminal.
root@codesposts:~$ tmux new -s name-of-session
If you invoke tmux
by itself, you’ll get dropped into a new session. And if you exit this session, you drop right back into your normal shell.
Detaching From A Session
To detach from a session you invoke the shortcut ctrl-b
followed by d
, for detatch, or by typing detach explicitly.
root@codesposts:~$ tmux detach
Using Prefix With tmux
All commands in tmux require the prefix shortcut, which by default is ctrl+b
. After entering ctrl+b
you can then run a tmux command, or type :
to get a tmux
prompt.
Displaying Sessions In tmux
If you want to display all the existing sessions in tmux, you can use the following command
root@codesposts:~$ tmux ls
Connecting To An Existing Session
If you want to connect to an existing session, you can use the following command
root@codesposts:~$ tmux attach -t session-ID
root@codesposts:~$ tmux attach -t 1
Killing An Existing Session
If you want to kill an existing session, you can run the following command
root@codesposts:~$ tmux kill-session -t session-name
root@codesposts:~$ tmux kill-session -t 1
Changing Name Of A Session
If you want to change the name of a session, you can use the following command
root@codesposts:~$ tmux a -t name-of-session
Managing Windows And Panes
Below are some most common commands for managing tmux
windows and panes:
Ctrl+b
c
Create a new window (with shell)Ctrl+b
w
Choose window from a listCtrl+b
0
Switch to window 0 (by number )Ctrl+b
,
Rename the current windowCtrl+b
%
Split current pane horizontally into two panesCtrl+b
"
Split current pane vertically into two panesCtrl+b
o
Go to the next paneCtrl+b
;
Toggle between the current and previous paneCtrl+b
x
Close the current pane
Managing Sessions
Below are some most common commands for managing tmux
sessions:
s
list sessions$
rename the current sessiond
detach from the current session
Customizing tmux
Customizing tmux is done primarily through the .tmux.conf
file.
Simply pick the one theme you want and copy the config into ~/.tmux.conf
and then source it with tmux source-file ~/.tmux.conf
.