User Tools

Site Tools


screen:index

Screen Tips

Launch command test.sh in screen (detached from the user's terminal)

$ screen -S sessionid -d -m  ./test.sh

List screen session

$ screen -ls

Attach a remote screen session to the user's terminal

$ screen -r sessionid

Attach to a not detached screen session (Multi display mode)

$ screen -x sessionid

Detach a “remote” screen session from the user's terminal

$ screen -d sessionid

Kill a remote screen session

$ screen -S sessionid -X quit

Launch several commands in several windows, but in the same session:

$ screen -S sessionid -t win1 -A -d -m bash
$ screen -S sessionid -X screen -t win2 -A -d -m bash
$ screen -ls sessionid

Reattach all windows (use “ctrl-a + w” to list all windows):

$ screen -r sessionid

Reattach a given window: ???

Shortcuts:

  • Ctrl+a d : detach

TMUX Tips

A tmux session can contain several windows and a tmux window can contain several panes (with a tiled layout for instance). The window ID of the window 'n' in session 'sessionid' is 'sessionid:n', and the pane ID of a pane 'k' in a window 'n' is 'sessonid:n.k'.

Start tmux server:

$ tmux start-server

Start a new session 'sessionid' and a first window in this session:

$ tmux new-session -s sessionid -n win0              # run an interactive shell in foreground
$ tmux new-session -s sessionid -n win0 ./test.sh    # run a command in foreground  
$ tmux new-session -d -s sessionid -n win0 ./test.sh # run a command in background (detached)

Start another window in this session:

$ tmux new-window -t sessionid -n win1 bash  

List windows and panes:

$ tmux list-windows -t sessionid    # list all windows in session
$ tmux list-panes -s -t sessionid   # list all panes in session
$ tmux list-panes -t sessionid:0    # list all panes in window 0 of session

Attach session to the end user's terminal (tmux in foreground). Then, you can get multiple displays of a session:

$ tmux attach-session -t sessionid

Enable mouse (useful to switch windows or select panes in tmux) :

$ tmux set-option -t sessionid -g mouse on 

Moving a source pane into a target window:

$ tmux list-panes -a
  pouet:0.0: ...
  pouet:1.0: ...   <- current one
# mv src pane 'pouet:1.0' to win 'pouet:0'
$ tmux join-pane -t pouet:0 
$ tmux list-panes -a
  pouet:0.0: ...
  pouet:0.1: ...   <- current one
  

In order to reverse the 'join-pane' operation, use break-pane:

$ tmux list-panes -a
  pouet:0.0: ...
  pouet:0.1: ...   <- current one
$ tmux break-pane # break src pane off its current window
$ tmux list-panes -a
  pouet:0.0: ...
  pouet:1.0: ...   <- current one
 

Instead of moving an existing pane, you can use 'split-window' to create a new pane:

$ tmux list-panes -a
  pouet:0.0: ...
  pouet:1.0: ...   <- current one
$ tmux split-window
$ tmux list-panes -a
  pouet:0.0: ...
  pouet:1.0: ...
  pouet:1.1: ...   <- current one

If you want to reverse the prevous

$ tmux break-pane

Kill session:

$ tmux kill-session -t sessionid

Link a window/pane in another session (multiple display):

$ tmux new-session -s pouet1
$ tmux new-session -s pouet2
$ tmux list-panes -a
  pouet1:0.0: ... %0 (active)
  pouet2:0.0: ... %1 (active)
$ tmux link-window -s pouet1:0.0 -t pouet2
$ tmux list-panes -a
  pouet1:0.0: ... %0 (active)
  pouet2:0.0: ... %1 (active)
  pouet2:0.0: ... %0 (active)
  

Useful Shortcuts

  • ctrl-b d ⇒ detach
  • ctrl-b w ⇒ list windows and select it
  • ctrl-b n ⇒ next window
  • ctrl-b p ⇒ previous window
  • ctrl-b # ⇒ go to window # (select by number)
  • ctrl-b ? ⇒ help
  • ctrl-b c ⇒ new shell window
  • ctrl-b x ⇒ kill current pane

I use to rebind 'ctrl-b x' to kill current session (or server), like that:

tmux bind-key x kill-session  

If you want to list current tmux sessions:

tmux ls

If you want to (re-)attach your session (assuming there is only one running session):

tmux a

If you want to kill all…

tmux kill-server

Enjoy!

screen/index.txt · Last modified: 2024/03/18 15:06 by 127.0.0.1