screen
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
screen [2021/03/16 04:56] – [Multiple sessions] hc9 | screen [2021/03/16 05:31] – [.screenrc] hc9 | ||
---|---|---|---|
Line 5: | Line 5: | ||
[[http:// | [[http:// | ||
- | In this tutorial $ | + | In this tutorial |
- | A Screen command is usually of the form CTRL-a KEY, i.e., you'll have to press the CTRL key along with a, followed by a generic KEY. (Screen' | + | A Screen command is usually of the form **CTRL-a KEY**, i.e., you'll have to press the **CTRL** key along with a, followed by a generic KEY. (Screen' |
You'll need to be a [[http:// | You'll need to be a [[http:// | ||
Line 25: | Line 25: | ||
'' | '' | ||
- | When you run it, a window with some copyright and some other info will show up, with [Press Space or Return to end.] at the bottom. OK, as it says, you can now press Space or Enter. You will then see your shell prompt and nothing else. That's fine: you can now run your programs as usual, the difference is that they will run under a Screen session. You can detach it by typing CTRL-a d. Screen will keep your session running. Now if you logout, then log back in, and type: | + | When you run it, a window with some copyright and some other info will show up, with [Press Space or Return to end.] at the bottom. OK, as it says, you can now press Space or Enter. You will then see your shell prompt and nothing else. That's fine: you can now run your programs as usual, the difference is that they will run under a Screen session. You can detach it by typing |
'' | '' | ||
Line 39: | Line 39: | ||
'' | '' | ||
- | which will first create a new session (or rettach | + | which will first create a new session (or reattach |
===== Multiple windows ===== | ===== Multiple windows ===== | ||
Line 47: | Line 47: | ||
'' | '' | ||
- | will create a new window, leaving the previous window untouched, though not visible. Instead of typing screen, you can use the shortcut CTRL-a c. | + | will create a new window, leaving the previous window untouched, though not visible. Instead of typing screen, you can use the shortcut |
- | You can create as many windows as you want. You can swith between windows with CTRL-a n (next window) and CTRL-a p (previous window). It's also possible to select windows by number. Typing CTRL-a 1 will open window number 1, CTRL-a 2, to window 2, and so on. | + | You can create as many windows as you want. You can swith between windows with **CTRL-a n** (next window) and **CTRL-a p** (previous window). It's also possible to select windows by number. Typing |
- | How do you know what's a window number? Well, you can type CTRL-a " (yeah, that's a double quote). In that case a menu with a windows list will open. You can select a number and press enter to go to that screen. An easier way is to have a hard status line that shows you each window number. For doing this in a permanent manner, you'll have to create a .screenrc (Screen' | + | How do you know what's a window number? Well, you can type **CTRL-a "** (yeah, that's a double quote). In that case a menu with a windows list will open. You can select a number and press enter to go to that screen. An easier way is to have a hard status line that shows you each window number. For doing this in a permanent manner, you'll have to create a .screenrc (Screen' |
<file config .screenrc> | <file config .screenrc> | ||
Line 80: | Line 80: | ||
where HOST is the hostname and YOU is your username. | where HOST is the hostname and YOU is your username. | ||
- | You can reattach a screen session by name. Say for instance that you want to resume the 4522.pts-8.HOST session. In this case you'll have to type: | + | You can reattach a screen session by name. Say for instance that you want to resume the "4522.pts-8.HOST" |
'' | '' | ||
- | Obviously 4522.pts-8.HOST is not a very userfriendly session name. You can give a meaningful name by starting screen as: | + | Obviously |
'' | '' | ||
Line 92: | Line 92: | ||
===== Splitting windows ===== | ===== Splitting windows ===== | ||
- | It could be useful to split a window so that you can have two programs running on the viewport. In this case, type CTRL-a S and you'll see that the window will be split in two regions, with the one at the bottom blank. You can swith to it with CTRL-a TAB (TAB is the tab key) and then select a window by typing its number, or p (previous) or n (next), e.g., CTRL-a 2. You can always swith through regions with CTRL-a TAB. | + | It could be useful to split a window so that you can have two programs running on the viewport. In this case, type **CTRL-a S** and you'll see that the window will be split in two regions, with the one at the bottom blank. You can swith to it with **CTRL-a TAB** (TAB is the tab key) and then select a window by typing its number, or "p" |
- | It's possible to split the window in more then two regions, each time by typing CTRL-a S | + | It's possible to split the window in more then two regions, each time by typing |
- | If you want to split a window vertically, you'll have to either use a patch[1] or use a recent version of Screen. | + | If you want to split a window vertically, you'll have to either use a //patch(([[http:// |
===== Sharing screen sessions ===== | ===== Sharing screen sessions ===== | ||
Line 148: | Line 148: | ||
**CTRL-a: | **CTRL-a: | ||
- | //Some notes:// | + | //**Some notes:**// |
- | ** Screen version that was used " | + | |
- | ** At the time of writing ( Tue Apr 17 23:01:50 IST 2012 ) all attempts at achieving the above read only functionality by editing .screenrc failed, usually resulting in SOMEUSER having FULL access to HOSTUSER' | + | |
- | ** HOSTUSER might notice that screen resizes to fit the smaller of the two terminals. | + | |
- | ** After SOMEUSER is detachs HOSTUSER might try **CTRL-aF** to resize the screen windows to fit the terminal. | + | |
- | ** For convenience and to reduce typing in screen HOSTUSER might want to have " | + | |
- | ** HOSTUSER will hear/see lots of bells if SOMEUSER tries to type into the screen session. | + | |
- | ** HOSTUSER can check what window is being view by SOMEUSER by looking at the output of **CTRL-a*** | + | |
- | ** HOSTUSER might notice SOMEUSER appears to have rwx access in the output of **CTRL-a*** ...this is a bug or an undocumented feature. | + | |
- | ** SOMEUSER can remain attached even if HOSTUSER detachs. | + | |
===== .screenrc ===== | ===== .screenrc ===== | ||
- | As we previously saw, it is possible to customize Screen by writing settings in a file named .screenrc in your $HOME directory. We will now some useful Screen settings. | + | As we previously saw, it is possible to customize Screen by writing settings in a file named ".screenrc" |
- | ==== Avoiding the startup message | + | === Avoiding the startup message === |
A full screen message with copyright and other stuff is usually displayed at startup. This can get annoying. In order to avoid it, you can put in your .screenrc the following: | A full screen message with copyright and other stuff is usually displayed at startup. This can get annoying. In order to avoid it, you can put in your .screenrc the following: | ||
- | startup_message off | + | <file config .screenrc> |
- | ==== Keybindings ==== | + | startup_message off |
- | It's possible to bind keys so that when you type CTRL-a KEY Screen willl open a new window launching some program. For instance, if you write in your .screenrc | + | </file> |
- | bind m screen -t mail 1 mutt | + | === Keybindings === |
- | each time you'll type CTRL-a m a new window (named mail)with mutt will be created. Be careful: when you bind a key, you'll overwrite Screen' | + | It's possible to bind keys so that when you type **CTRL-a KEY** Screen will open a new window launching some program. For instance, if you write in your .screenrc file |
+ | |||
+ | <file config .screenrc> | ||
+ | |||
+ | bind m screen -t mail 1 mutt | ||
+ | |||
+ | </ | ||
+ | |||
+ | each time you'll type **CTRL-a m** a new window (named | ||
===== Cheat sheet ===== | ===== Cheat sheet ===== | ||
Line 196: | Line 204: | ||
* SDF has some [[http:// | * SDF has some [[http:// | ||
- | ===== Notes ===== | + | **Notes** |
- | + | ||
- | [1] http:// | + | |
---- | ---- | ||
$Id: screen.html, | $Id: screen.html, | ||
screen.txt · Last modified: 2021/03/16 21:39 by hc9