tmux is essential if you work with remote Linux servers.
Suppose you are in a coffee-shop. Then, got a emergency call to fix server. You ssh in and start to work on it. After 1 hour, the coffee-shop is closing and you have to leave. If you close your laptop, you'll be disconnected. But, if you are using
tmux, you can just press【Ctrl+b d】 to “detach” your session. Then, when you get on internet again, you can resume by
tmux a (“a” means “attach”). Btw, there's also GNU
screen for the same purpose, but tmux is better.
sudo apt-get install tmux
start it by
tmux. Then, you can just use it like a normal terminal.
from there, you can ssh to remote server.
tmux runs as a middle-man between your terminal input and output. Your keystrokes are sent to your terminal app, then to tmux (client), then to tmux (server), then the tmux server sends it to whatever the terminal is connected to, your shell or remote server. Likewise in reverse for receiving data.
to detach session, press 【Ctrl+b d】. Or, in another terminal, type
to resume (attach), type
tmux a in a terminal.
while in tmux, to scroll back previous screen, type 【Ctrl+b [】 to enter the “copy mode”, then you can use arrow keys or page up/down keys. Type 【q】 to exit “copy mode”.
That's the basics.
for detail, type