Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Howto] Screen
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Thu Nov 17, 2005 5:00 pm    Post subject: [Howto] Screen Reply with quote

Ce qui suit n'était pas directement déstiné à devenir un Howto proprement dit, c'est une copie intégrale d'un post de scout. Étant donné qu'il explique les commandes screen de base, il a tout à fait sa place ici.

scout wrote:
J'ai utilisé screen pour tous mes torrent: screen c'est incontournable
bon, pour ceux qui ont la flemme de lire la doc, voilà la méthode standard:
si on veux par exemple télécharger une knoppix:
  • on se loggue sur l'ordi en question
  • on donne un nom à son screen (comme le montre kernel_sensei), car si on a plein de torrents il faut pouvoir s'y retrouver:
    Code:
    screen -S knoppix

  • on télécharge le fichier .torrent
    Code:
    wget http://www.siteweb.net/torrent_knoppix.torrent

  • on commence le téléchargement
    Code:
    btdownloadcurses.py --max_uploads 2 --max_upload_rate 7 --ip sa.vraie.ip.sur.internet --url file:///chemin/vers/torrent_knoppix.torrent

  • on détache le screen: on effectue la séquence de touches
    Quote:
    CTRL+A puis D

    à ce moment là on voit affiché:
    Quote:
    [detached]

  • on se déloggue
  • on va faire la vaisselle
  • on se reloggue
  • bon on a pleins d'autres screens, alors pour afficher la liste
    screen -list
  • on réattache le screen:
    Code:
    screen -r knoppix

    ou si le seul screen ouvert qui commence par kno est knoppix, on peux même taper:
    Code:
    screen -r kno

  • on ouvre les yeux pour voir si c'est fini, si c'est le cas, CTRL+C pour arrêter le téléchargement
  • on stocke le fichier ailleurs si on a envie d'être propre
  • on supprime le .torrent (ah je suis gentil, je donne bien toutes les étapes, hein :wink:)
  • on tue le screen:
    Quote:
    CTRL+D

    comme pour se délogguer
    à ce moment là s'affiche:
    Quote:
    [screen is terminating]

Quelques astuces avec screen:
  • "Je veux envoyer CTRL+A dans mon screen, par exemple pour aller en début de ligne dans mon shell et ça marche pas :cry: "
    Arrête de pleurer, c'est normal: CTRL+A c'est la manière de parler à screen par défaut (on peux changer ce réglage): tout ce qui commence par CTRL+A suivie d'une lettre c'est pour screen, pas pour ce qu'il y a derrière. pour envoyer un CTRL+A à l'appli qui est derrière il faut faire CTRL+A puis A
    Donc pour revenir en début de ligne c'est CTRL+A puis A
  • "J'ai fait deux screen imbriquées les uns dans les autres:
    screen -S a
    puis dans le nouveau shell:
    Screen -S b
    là je veux détacher b, mais quand je fais CRTL+A puis D ça détache a"
    [EDIT]erreur corigée[/EDIT]
    pense avec ta tête et pas avec tes mains: tu fais CTRL+A puis A puis D comme ça tu dis au screen a d'envoyer la séquence de touches CRTL+A au screen b et quand tu tapes D qui n'est pas destiné au screen a, c'est envoyé au screen b qui soudain viens de comprends qu'on lui a envoyé une séquance de touches CRTL+A puis D et hop il se détache.
    Il est gentil ce b, non ?
  • "screen c'est nul quand je prends l'ascenseur de mon xterm et que je remonte je ne vois pas ce qu'il y avait avant"
    non d'abord screen c'est pas nul, ensuite on peux remonter voir l'hisotrique dans le screen:
    il faut taper
    CTRL+A puis ESC
    là on est en mode défilement: les touches flécheés ainsi que CTRL+B et CTRL+F permettent de se déplacer (pendant ce temps l'entrée/sortie de ce qui est lancé est bloquée). pour sortir de là retaper sur ESC
  • "dans screen mon shell me met un '-- Bell,Bell!! --' au lieu de me faire un bip sonore"
    eh bien va modifier le fichier /etc/screenrc pur y remplacer la ligne 'vbell on' en 'vbell off'
    un autre réglage intéressant une fois qu'on sait se balader dans l'historque est le paramètre defscrollback qui est le nombre de lignes d'historique.
    on peux bien sur faire ces modifications dans ~/.screenrc
  • "screen -list me dit que j'ai des screens qui sont 'Dead'"
    eh oui, tu a arrété ta machine ou killé le screen comme un sâle au lieu d'aller dedans et de te délogger du shell proprement pour le fermer. alors screen -wipe et hop, plus de cadavres de screens !


Allez ça suffit avec vos nohup, venez gouter à la puissance de screen !
et pour le coup du tty, eh bien non seulement c'est à mon avis non trivial à faire, mais en plus tes tty sont en nombre limités et il faut se souvenir que tty2 ou tty3 ça correspond au fichier bidule ou à machin, alors que les screen ont des noms qui sont affichés grâce au screen -list


Merci scout ;)
_________________
$ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join'
Back to top
View user's profile Send private message
xrtds1
n00b
n00b


Joined: 13 Oct 2005
Posts: 18

PostPosted: Fri Nov 18, 2005 5:48 pm    Post subject: Reply with quote

Merci beaucoup.
Back to top
View user's profile Send private message
fabienZ
n00b
n00b


Joined: 12 Oct 2004
Posts: 34
Location: France

PostPosted: Wed Nov 23, 2005 7:18 pm    Post subject: Petites commandes en plus Reply with quote

En général, je ne lance qu'un seul screen par machine. Je n'ai pas encore trouvé l'interêt d'en lancer plusieurs.
Comme je suis un gros fainéant, j'ai fait un petit script qui ouvre un screen, ou me logue dessus s'il y en a un d'ouvert, et efface les Dead :
Code:

#!/bin/bash

if [ ! $(screen -ls | grep "(Dead ???)") ]; then
        screen -wipe
fi
if [ $(screen -ls | grep "(Attached)" |awk '{print $1}' |head -n 1) ]; then
        screen -x $SCREEN_ID
else
        screen
fi

Dans ce script, j'utilise "screen -x" plutot que "screen -r" afin de pouvoir avoir le même affichage sur plusieurs terminaux.

A part ça, voici les commandes dont je me sers :


Code:

Ctrl-A puis S

permet de diviser l'écran.

Code:

Ctrl-A puis Tab

Pour switcher entre les différentes zones (trés utile si vous voulez avoir constament sous les yeux les logs de votre passerelle et un nload ;) )

Code:

Crtl-A puis c

Ouvre un nouveau term dans le screen

Code:

Ctrl-A puis Crtl-A

Permet de switcher entre les 2 derniers terms utilisés dans le screen

Code:

Ctrl-A puis "

Permet de voir une liste des term ouverts dans le screen

Code:

Ctrl-A puis numéro

Permet d'aller directement au term précisé par le numéro

et enfin
Code:

man screen

;)
Back to top
View user's profile Send private message
sebweb
Apprentice
Apprentice


Joined: 29 Jan 2003
Posts: 220
Location: Bordeaux - France

PostPosted: Thu Nov 24, 2005 12:47 pm    Post subject: Reply with quote

Pour aller un peu plus loin avec screen:


  • travailler a plusieur sur un même terminal:
    Code:
    screen -x

    permet d'acrocher une session screen déjà ouverte par quelqu'un. Le shell est alors partager par les deux personnes.
    Tout ce que fait l'un sera visible par l'autre. C'est INDISPENSABLE lors d'un dépanage par ssh ;)

  • Editer la sortie standard
    Code:
    C-a Esc

    dans une fenetre screen permet d'éditer le term, de se déplacer dedans, de sélectionner du texte ( espace pour commencer la sélection) et de le copier sur la ligne de commande
Back to top
View user's profile Send private message
fabienZ
n00b
n00b


Joined: 12 Oct 2004
Posts: 34
Location: France

PostPosted: Fri Dec 09, 2005 10:43 pm    Post subject: script un peu moins mauvais Reply with quote

je met à jour le script parce que le précédent est vraiment nul, j'avais fait quelques modifs, trop rapidement, avant de le poster.
Code:

#!/bin/bash

if [ ! $(screen -ls | grep "(Dead ???)") ]; then
        screen -wipe
fi

SCREEN_ID=$(screen -ls | egrep '(Attached)|(Detached)' |awk '{print $1}' |head -n 1)

if [ $SCREEN_ID ]; then
        exec screen -x $SCREEN_ID
else
        exec screen
fi
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum