Aller au contenu
Infogérance Linux Debian en France

Infogérance Linux Debian en France

Kogitae : Ingéniérie de l'hébergement Internet

  • Accueil
  • Parcours
  • Presse
  • Portfolio
  • Blog

Screen? A must for SSH ~ Mattias Geniar

  • Accueil » Blog » Screen? A must for SSH ~ Mattias Geniar
DansDebian

Screen? A must for SSH ~ Mattias Geniar

Screen? A must for SSH

Posted on Wednesday, June 4, 2008 by Matti

If you’ve ever used SSH to connect to a server, you ‘ll know its limitations: if you want to open a new window, you’ll need to create a second SSH connection to the server. And if the connection breaks during the SSH tunnel, you’ve lost your progress. This is where Screen comes in.

Screen, which calls itself a “full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells).” is a usefull tool to use 1 SSH connection, but use multiple screens to work in. So you can have 1 screen to write some scripts in, another to tail a logfile and a third to check your IRC messages 😉

Screen is installed by default on most installations, you can verify this by running the “which screen” command. If it’s not installed, try to apt-get or yum it – it’s in most repositories.

You can start screen by typing:

[root@vps ~]# screen

This makes sense, right? 🙂

You’ll probably notice that not much happens if you type that. At least, it seems like not much as happened. In fact, you’ve just opened a new “screen” to type your commands. The program “screen” has a few commands of its own, in order to create a new window, and navigate through the open ones.

Once you’ve opened “screen“, you can see a command list by typing “CTRL + A”, followed by “?” (the question mark). By typing “CTRL + A” you state that the next signal is to be sent to the program “screen“, in stead of to the Shell (like you would in a normal shell). You’ll see a list of all bindings known to “screen“.

Start a new window by typing “CTRL + A” + “c”. The C stands for Create – I know, too obvious. A new window will be created. In order to test this, type the command “top”. Then create a new window, by using “CTRL + A” + “c”. You’ll see top disappear, and a new window will open. Type in some commands of your choice, and return to the previous window, by doing “CTRL + A” + “n”. The “n” stands for “Next”, and will open the next screen. “CTRL + A” + “p” would’ve opened the previous screen.

Closing a window, can be done by typing “exit” (like you would in a normal shell). This will cause you to fall back to the previous monitor you opened, or to your main prompt – where you started screen, showing you a message such as “[screen is terminating]” – so you’ll know you’ve hit the main shell.

The biggest advantage in using screen, is that you can “detach” a screen-session. This means you return to the normal shell, but the processes started in “screen” are still active in the background. You can detach yourself by typing “CTRL + A” + “d”. Again, obvious that “D” stands for Detach. This gives you more flexibility for managing your server(s): you can start a number of processes, quietly exit the shell and return a couple of hours later to pick up the session started in screen.

Should you disconnect by accident, during a screen-session, you can always pick up a previous (detached!) screen by relogging to the shell and typing:

[root@vps ~]# screen -ls

There are screens on:

27111.screen_untarring (Detached)

27097.screen_disking (Detached)

2 Sockets in /var/run/screen/S-root.

This will show a list of all running screen-sessions at any given time. You can pick up a previous screen-session, by typing

[root@vps ~]# screen -r <name_of_session>

Given the “screen -ls” output from above, you can restore your screen session by typing:

[root@vps~]# screen -r 27111.screen_untarring

It’s enough to type in the first unique characters of the screen name, it’ll automatically find the session you want. So in essence, “screen -r 271″ would have been enough.

If you see in your list of screens that one session is still attached, you can not resume it before you detach it.

[root@vps~]# screen -ls

There is a screen on:

27097.screen_disking (Attached)

1 Socket in /var/run/screen/S-root.

[root@vps~]# screen -d 270

[27097.screen_disking detached.]

[root@vps~]# screen -r 270

You can also expand your “screen experience”, by modifying the config-file to create a screen similar to the one shown below. (thanks to the comments)

~/.screenrc

~/.screenrc

You can get the extra “statusbar” at the bottom, by creating a file “~/.screenrc” and adding the following lines to it.

hardstatus alwayslastline

hardstatus string ‘%{= kG}[ %{G}%H %{g}][ %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]‘

defscrollback 1000

startup_message off

This will keep your current hostname, screen windows open & date-time at the bottom of each started screen. More screen tips can be found here: Screen power tips.

Probably known to most linux-administrators, but still an awesome tool 🙂

viaScreen? A must for SSH ~ Mattias Geniar.

admin-serveur-linux-freelance administrateur-systeme-en-infogrance backtrack-5-paris blog-administrateur-systeme blog-infogerance infogrance-administrateur infogrance-ubuntu irc kogiatae kogitae logwatch-conf-debian lxc-ubuntu openvz-debian-sysctl-conf screen screen-session-from-vps screen-ssh snmp-squeeze ssh ssh-screen-power-tips ubuntu-augmenter-le-quota-dun-compte

Étiquettes

administrateur-systeme-freelance (9) amazon (3) apache (14) asterisk (9) auth (3) bash (6) blog-administrateur-systeme (14) blog-administration-systeme (4) collectd (5) cpu (3) debian (30) dovecot (4) duplicate (3) f (6) freelance-asterisk (3) google (3) infogerance-linux (5) infogérance (4) ipv6 (7) kernel (4) kogitae (30) kogitae-com (3) kogitae-fr (6) lamp-or-linux-or-developpement-web-and-apache-or-php-or-mysql-or-adobe-or-eclipse-or-zend-or-mozilla-or-firefox (17) lenny (4) lighttpd (5) limit (4) linux (26) mail (7) mdadm (6) mysql (14) openvz (9) optimiser (4) php (5) postfix (11) privvmpages-openvz (3) pxe (3) raid (3) SEO (5) ssh (8) ssl (3) test (3) voip (4) wordpress (6) www-kogitae-fr (7)