Difference between revisions of "Linux multi window terminal Screen and Tmux"
Jump to navigation
Jump to search
m (Pio2pio moved page Linux screen multi window terminal to Linux multi window terminal Screen and Tmux without leaving a redirect) |
|||
Line 1: | Line 1: | ||
Screen allows for multi window connection using a single ssh session. It also allows to detach from the session screen while still running a remote session. | Screen allows for multi window connection using a single ssh session. It also allows to detach from the session screen while still running a remote session. | ||
= Install = | = Install Screen = | ||
sudo apt-get install screen | sudo apt-get install screen | ||
= Key terms = | == Key terms == | ||
* window -it's a separate window that you can switch between | * window -it's a separate window that you can switch between | ||
* region -your terminal screen can be divided in regions where each can hold multiple windows | * region -your terminal screen can be divided in regions where each can hold multiple windows | ||
= Useful key bindings = | == Useful key bindings == | ||
C^a c -create new prompt | C^a c -create new prompt | ||
C^a tab -move to a next window | C^a tab -move to a next window | ||
Line 113: | Line 113: | ||
|} | |} | ||
= Scroll back - a copy mode = | == Scroll back - a copy mode == | ||
In GNU Screen press <code>Ctrl + a + [</code> or <code>C^a C^ESC</code> to enter Copy Mode, then scroll up/down using keys j or k. Below are some other navigation keys: | In GNU Screen press <code>Ctrl + a + [</code> or <code>C^a C^ESC</code> to enter Copy Mode, then scroll up/down using keys j or k. Below are some other navigation keys: | ||
Line 134: | Line 134: | ||
Update: You can use activate copy mode of GNU Screen also by Ctrl + Esc that might be more useful than Ctrl + a + [ shortcut (thanks to Yu-Jie Lin for this tip). | Update: You can use activate copy mode of GNU Screen also by Ctrl + Esc that might be more useful than Ctrl + a + [ shortcut (thanks to Yu-Jie Lin for this tip). | ||
= Custom configuration = | == Custom configuration == | ||
By default the config is kept in <code>~/.screenrc</code> file but using -c option we can pass a custom config | By default the config is kept in <code>~/.screenrc</code> file but using -c option we can pass a custom config | ||
Revision as of 15:12, 1 September 2016
Screen allows for multi window connection using a single ssh session. It also allows to detach from the session screen while still running a remote session.
Install Screen
sudo apt-get install screen
Key terms
- window -it's a separate window that you can switch between
- region -your terminal screen can be divided in regions where each can hold multiple windows
Useful key bindings
C^a c -create new prompt C^a tab -move to a next window C^a | -split vertically C^a S -split horizontly C^a \ -kill all windows, terminate any ssh sessions and exit GNU Screen program
Key | Action | Notes |
---|---|---|
Ctrl+a c | new window | |
Ctrl+a n | next window | I bind F12 to this |
Ctrl+a p | previous window | I bind F11 to this |
Ctrl+a " | select window from list | I have window list in the status line |
Ctrl+a Ctrl+a | previous window viewed | |
Ctrl+a S | split terminal horizontally into regions | Ctrl+a c to create new window there |
split terminal vertically into regions | Requires screen >= 4.1 | |
Ctrl+a :resize | resize region | |
Ctrl+a :fit | fit screen size to new terminal size | Ctrl+a F is the same. Do after resizing xterm |
Ctrl+a :remove | remove region | Ctrl+a X is the same |
Ctrl+a tab | Move to next region | |
Ctrl+a d | detach screen from terminal | Start screen with -r option to reattach |
Ctrl+a A | set window title | |
Ctrl+a x | lock session | Enter user password to unlock |
Ctrl+a [ | enter scrollback/copy mode | Enter to start and end copy region. Ctrl+a ] to leave this mode |
Ctrl+a ] | paste buffer | Supports pasting between windows |
Ctrl+a > | write paste buffer to file | useful for copying between screens |
Ctrl+a < | read paste buffer from file | useful for pasting between screens |
Ctrl+a ? | show key bindings/command names | Note unbound commands only in man page |
Ctrl+a : | goto screen command prompt | up shows last command entered |
Scroll back - a copy mode
In GNU Screen press Ctrl + a + [
or C^a C^ESC
to enter Copy Mode, then scroll up/down using keys j or k. Below are some other navigation keys:
h - Move the cursor left by one character j - Move the cursor down by one line k - Move the cursor up by one line l - Move the cursor right by one character 0 - Move to the beginning of the current line $ - Move to the end of the current line. G - Moves to the specified line (defaults to the end of the buffer). C-u - Scrolls a half page up. C-b - Scrolls a full page up. C-d - Scrolls a half page down. C-f - Scrolls the full page down.
Define scrollback buffer size start screen with the following key (5000 lines in this example):
screen -h 5000
Update: You can use activate copy mode of GNU Screen also by Ctrl + Esc that might be more useful than Ctrl + a + [ shortcut (thanks to Yu-Jie Lin for this tip).
Custom configuration
By default the config is kept in ~/.screenrc
file but using -c option we can pass a custom config
~$ screen -c screen-4regions.screen
Example of a config file:
~$ cat screen-4regions.screen # Region 0 screen -t mail1-queue #creates new terminal/prompt select 0 #select window0 stuff "echo Window0^M" #echo a string between quotes, ^M translates to EOL means enter-return key stuff "sshpass -p 'password' ssh -o PubkeyAuthentication=no root@example.com^M" #ssh interactively split #split horizontally split -v #split vertically # Region 1 select 1 focus #get focus on a selected region screen -t mail2-queue sshpass -p 'password' ssh -o PubkeyAuthentication=no root@example.com #create a new terminal/prompt -t mail2-queue in the focus window and #executes the command stuff "echo Window1^M" # Region 2 select 2 focus screen -t mail1 stuff "echo Window2^M" split -v # Region 3 select 3 focus screen -t mail2 stuff "echo Window3^M" altscreen on term screen-256color bind ',' prev bind '.' next # #change the hardstatus settings to give an window list at the bottom of the #screen, with the time and date and with the current window highlighted hardstatus alwayslastline #hardstatus string '%{= kG}%-Lw%{= kW}%50> %n%f* %t%{= kG}%+Lw%< %{= kG}%-=%c:%s%{-}' hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
References
- User Guide HTML one page