===== 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!