Ayant un hébergeur avec un accès shell, j'effectue la plupart des développements directement dans mon vim par ssh. Seulement, il est souvent utile de faire des changements dans plusieurs fichiers en même temps, de se trimbaler dans plusieurs dossiers à la fois,...

Gnu Screen est un logiciel rêvé pour cette utilisation. Voyons ensemble comment il fonctionne.

Principe

Vous êtes connecté à irc en console chez vous et vous voudriez pouvoir vous connecter du boulot sans pour autant ouvrir une deuxième session irc et sans perdre la précédente conversation.

Chez vous, vous lancez alors un screen dans lequel vous faites tourner un client irc. Vous parlez, puis vient l'heure d'aller travailler. Vous détachez la fenêtre et vous délogguez votre session à la maison. Une fois au boulot, vous vous connectez en ssh à votre maison et rattachez alors le terminal. Vous retrouvez alors la conversation irc comme si vous ne l'aviez jamais quittée!

Trêve de bavardages voyons cela de plus près, ce sera sans doute plus clair.

Installation

S'il n'est pas déjà installé, tapez :

sudo aptitude install screen

récupérerez ensuite mon screenrc qui facilitera la navigation dans screen

wget http://blog.bmaron.net/public/screenrc

et copiez le dans votre répertoire home

mv screenrc ~/.screenrc

voilà c'est installé ;)

Utilisation

Sur l'ordinateur A, lancez un screen en utilisant simplement la commande "screen". Utilisez ensuite le shell comme bon vous semble.... lancez par exemple un irssi.

Ici, vous pouvez "détacher" votre console, à l'aide des touches Ctrl et la touche "a" suivie de la touche "d" (=> Ctrl-a + d). Ceci aura pour effet de quitter temporairement la discussion sur irc et vous retrouver dans le shell de départ.

Ensuite sur l'ordinateur B ( ça marche aussi depuis le même ordi, mais ça à moins d'intérêt :p), connectez vous en ssh sur votre machine A.

ssh A.com

Si vous aviez détaché la console, vous pouvez la "rattacher" grâce à la commande screen -r suivi du nom de la session ( screen -r seul vous donne la liste des sessions ouvertes et s'il n'y en a qu'une, va directement rattacher celle-ci).

Si la console n'était pas détachée, utilisez alors un screen -x qui va entrer dans le mode "muti-visualisation" permettant à deux personnes de voir la même console (extrêmement pratique pour le tutorat :p)

génial non?

vous pouvez aussi, dans un screen, créer plusieurs fenêtres et sauter de l'une à l'autre :

Ctrl-a +c pour créer une nouvelle fenêtre, Ctrl-a +n (comme next) pour aller à la fenêtre suivante et Ctrl-a + p (comme previous) pour la précédente.

Vous pouvez aussi utiliser Ctrl-a + " pour afficher la liste des fenêtres disponibles et choisir dans la liste!

Dernier raccourci pour aujourd'hui, Ctrl-a+UnChiffre va à la fenêtre UnChiffre ( ==>Ctrl-a +3 va à la fenêtre n°3).

Sympa nan? Et des millions d'autres choses sont encore possibles grâce à screen...

Je sais que tout n'est pas facile à retenir mais, je vous promets que le jeu en vaut la chandelle!

Gnu Screen