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:22] – [Splitting windows] 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''
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 88: Line 88:
 ''$ 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 =====
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 ===
Line 176: Line 176:
 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.1615872153.txt.gz · Last modified: 2021/03/16 05:22 by hc9