Start a new detach session using tmux
In order to start a tmux session background, following command can be used
tmux new-session -d [-s <session_name>]
In order to start a tmux session background, following command can be used
tmux new-session -d [-s <session_name>]
Tmux is a command line tool to manage terminal sessions.
To run tmux on Windows, WSL is required to be installed.
To preset Tmux windows, following script can be used. It also issues ssh command to host which has same name as window name.
#!/bin/bash
WINDOWS="window_name1 window_name2 window_name3"
for each in $WINDOWS
do
if ! tmux has-session -t 0:$each; then
tmux new-window -n $each ssh $each
fi
done
tmux attach
Restore tmux session after reboot
Check If Window With a Specific Name Exists. If It Does Attach to it; Otherwise Create it and Run Command?
The unix command screen
and tmux
have similar goal, but tmux
is more complex than screen
.
In order to start using tmux
without worrying about forgetting keys, remember follows one after another.
Ctrl+b ?
Ctrl+b d
tmux a
Ctrl+b c
Ctrl+b w
, then arrow keysCtrl+b ,
<id>
Ctrl+b <id>
screen | tmux | |
---|---|---|
Startup | screen |
tmux |
Starting Named Session | screen -S session_name |
tmux new -s session_name |
List running session | screen -ls |
tmux ls |
Reattach | screen -r |
|
Reattach by id | screen -r <id> |
tmux attach-session -t <id> |
screen | tmux | |
---|---|---|
Help | Ctrl+a ? |
Ctrl+b ? |
Create a new shell (without window) | Ctrl+a c |
|
Switch to next shell | Ctrl+a space |
|
Switch to previous shell | Ctrl+a backspace |
|
Create a new window (with shell) | Ctrl+b c |
|
List all shells | Ctrl+a " |
|
Choose window from a list | Ctrl+b w |
|
Switch to N'th shell | Ctrl+a <n> |
|
Switch to N'th window | Ctrl+b <n> |
|
Rename the current window | Ctrl+a A |
Ctrl+b , |
Split current region horizontally into two regions | Ctrl+a S |
Ctrl+b % |
Split current region vertically into two regions | Ctrl+a | |
Ctrl+b " |
Switch the input focus to the next region | Ctrl+a tab |
Ctrl+b o |
Toggle between the current and previous windows | Ctrl+a Ctrl+a |
Ctrl+b ; |
Close all regions but the current one | Ctrl+a Q |
|
Close the current region | Ctrl+a X |
Ctrl+b x |
Detach from session | Ctrl+a d |
Ctrl+b d |
Sent Ctrl+a to region |
Ctrl+a a |
Customization can be done in /etc/screenrc
and ~/.screenrc
. Sample of contents is shown below.
# Turn off the welcome message
startup_message off
# Disable visual bell
vbell off
# Set scrollback buffer to 10000
defscrollback 10000
# Customize the status line
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
Customization can be done in ~/.tmux.conf
. Sample of contents is shown below.
# Improve colors
set -g default-terminal 'screen-256color'
# Set scrollback buffer to 10000
set -g history-limit 10000
# Customize the status line
set -g status-fg green
set -g status-bg black
How To Use Linux Screen
Getting started with Tmux
How to split the terminal into more than one "view"?