User Tools

Site Tools


screen

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
screen [2021/03/16 05:11] – [Keybindings] hc9screen [2021/03/16 21:39] (current) – [Multiple sessions] hc9
Line 3: Line 3:
 ===== Introduction ===== ===== Introduction =====
  
-[[http://savannah.gnu.org/projects/screen/|Screen]] is a terminal multiplexer, i.e., it will let you have multiple virtual terminals in a single window. You will also be able to 1) detach a screen session, and then detach it in a later moment; 2) share screen sessions.+[[http://savannah.gnu.org/projects/screen/|Screen]] is a "terminal multiplexer", i.e., it will let you have multiple virtual terminals in a single window. You will also be able to 1) "detacha screen session, and then detach it in a later moment; 2) share screen sessions.
  
-In this tutorial $   indicates a terminal prompt (just for visual convenience).+In this tutorial ''$'' indicates a terminal prompt (just for visual convenience).
  
-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's default escape key is CTRL-a.)+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's default escape key is **CTRL-a**.)
  
 You'll need to be a [[http://sdf.org/?join#meta|MetaARPA]] member in order to use Screen on SDF You'll need to be a [[http://sdf.org/?join#meta|MetaARPA]] member in order to use Screen on SDF
  
-If you want a screencast tutorial, type:+If you want a "screencasttutorial, type:
  
-"$ ttyplay /ftp/pub/users/jecxjo/howto/screen"+''$ ttyplay /ftp/pub/users/jecxjo/howto/screen''
  
 on a terminal connected to SDF. on a terminal connected to SDF.
Line 25: Line 25:
 ''$ screen'' ''$ screen''
  
-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 "Spaceor "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:
  
 ''$ screen -r'' ''$ screen -r''
Line 35: Line 35:
 ''$ screen -d -r'' ''$ screen -d -r''
  
-The -d flag will detach Screen, while -r will reattach. There are various types of detach and  flags. For instance, if you type the previous command and there was no screen session to be resumed, you'll get a There is no screen to be detached. message. In this case you'll probably need:+The "-dflag will detach Screen, while "-rwill reattach. There are various types of "detachand  flags. For instance, if you type the previous command and there was no screen session to be resumed, you'll get a "There is no screen to be detached.message. In this case you'll probably need:
  
 ''$ screen -d -R'' ''$ screen -d -R''
  
-which will first create a new session (or rettach an existing one).+which will first create a new session (or reattach an existing one).
  
 ===== Multiple windows ===== ===== Multiple windows =====
Line 47: Line 47:
 ''$ screen'' ''$ screen''
  
-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 **CTRL-a c**.
  
-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 **CTRL-a 1** will open window number 1, **CTRL-a 2**, to window 2, and so on.
  
-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's customization file) in your $HOME directory and write in it the following lines:+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 linethat shows you each window number. For doing this in a permanent manner, you'll have to create a ".screenrc(Screen's customization file) in your $HOME directory and write in it the following lines:
  
 <file config .screenrc> <file config .screenrc>
Line 66: Line 66:
 ===== Multiple sessions ===== ===== Multiple sessions =====
  
-It's possible to have various Screen sessions running, each one with their own set of windows open. If you started Screen by just typing screen, a new session is created. If you detach and type screen again, a new session will start. If you now type:+It's possible to have various Screen sessions running, each one with their own set of windows open. If you started Screen by just typing "screen", a new session is created. If you detach and type "screenagain, a new session will start. If you now type:
  
 ''$ screen -ls'' ''$ screen -ls''
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.HOSTsession. In this case you'll have to type:
  
 ''$ screen -r 4522.pts-8.HOST'' ''$ screen -r 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 "4522.pts-8.HOSTis not a very userfriendly session name. You can give a meaningful name by starting screen as:
  
 ''$ screen -S mysession'' ''$ screen -S mysession''
  
-where mysession is the name you want to give to your session (e.g., work).+where "mysessionis the name you want to give to your session (e.g., "work").
  
 ===== 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(previous) or "n(next), e.g., **CTRL-a 2**. You can always swith through regions with **CTRL-a TAB**.
  
-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 **CTRL-a S**
  
 If you want to split a window vertically, you'll have to either use a //patch(([[http://fungi.yuggoth.org/vsp4s/|Vertical Split for GNU Screen]] - provides a vertical split feature for current releases of GNU Screen))// or use a recent version of Screen. If you want to split a window vertically, you'll have to either use a //patch(([[http://fungi.yuggoth.org/vsp4s/|Vertical Split for GNU Screen]] - provides a vertical split feature for current releases of GNU Screen))// or use a recent version of Screen.
Line 170: Line 170:
 ===== .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 ".screenrcin your $HOME directory. We will now some useful Screen settings.
  
-==== 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> 
 + 
 +startup_message off 
 + 
 +</file>
  
 === Keybindings === === Keybindings ===
  
-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+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
  
-  bind m screen -t mail 1 mutt+<file config .screenrc> 
 + 
 +bind m screen -t mail 1 mutt 
 + 
 +</file>
  
-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's defaults (e.g., we just lost the lastmsg key).+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's defaults (e.g., we just lost the "lastmsgkey).
  
 ===== Cheat sheet ===== ===== Cheat sheet =====
screen.1615871511.txt.gz · Last modified: 2021/03/16 05:11 by hc9