Lancement et fonctionnement de base de Screen. Configuration de l'utilitaire d'écran sous Linux Basculer entre les écrans

Screen est un programme très pratique si vous travaillez souvent dans la console tout en vous connectant au serveur via SSH. Dans ce cas écran vous permet de conserver plusieurs écrans différents dans une seule console, en basculant facilement entre eux.

Installation de l'écran

Pour installer sur, vous devez exécuter la commande

$ sudo apt-get écran d'installation

Après cela, vous devez exécuter screen :

$écran

Après le lancement, vous verrez soit une invite ligne de commande, ou « l’écran de bienvenue », en appuyant sur ESPACE ou ENTRÉE dans lequel vous serez également redirigé vers le shell. Dans ce cas, toutes les commandes seront lancées « à l’intérieur » de l’écran.

Si vous avez besoin d'écouter constamment un fichier journal et de l'afficher à l'écran. Créons une nouvelle console d'écran comme celle-ci :

Écran -d -m -S tail-log tail -f /var/log/nginx/error.log

Pour quitter l'écran (quitter, pas se déconnecter), quittez simplement tous les shells ouverts ou appuyez sur la combinaison de touches Ctrl+A, et répondez « y » à la question « est-ce que tu veux vraiment sortir ».

Vous pouvez vous déconnecter de l'écran actuel sans fermer ni mettre fin à la session en utilisant la combinaison Ctrl+A puis d.

Connexion à l'écran

S'il existe déjà une session d'écran en cours sur la machine et que vous souhaitez vous y connecter, alors

  1. s'il n'y a qu'une seule session, une seule commande suffit : Ctrl+A puis x
  2. s'il y a plusieurs sessions, alors : vous pouvez voir la liste des écrans en cours d'exécution avec la commande screen -ls : $ screen -ls Il y a des écrans sur : 2762.pts-0.debian (Détaché) 2743.pts-0.debian ( Détaché) 2 Prises dans /var/run/screen/S-diesel.

    Sélectionnez l'écran dont nous avons besoin et rejoignez-le :

    Écran -x 2762.pts-0.debian

    Les noms de session par défaut ne sont pas informatifs - il suffit de traiter les numéros ; si vous souhaitez lancer et utiliser plusieurs sessions d'écran pour différentes tâches, vous pouvez trouver des noms plus sensés. Nous trouvons un nom, puis lançons un nouvel écran comme celui-ci :

    $ écran -S "travail1"

    où job1 est le nom de notre session « nommée ». Maintenant, dans -ls, nous verrons quelque chose de beaucoup plus clair :

    $ screen -ls Il y a des écrans sur : 2762.pts-0.debian (Détaché) 2795.job1 (Détaché) 2743.pts-0.debian (Détaché) 3 Sockets dans /var/run/screen/S-diesel.

    et on peut se connecter à la session job1 simplement en précisant son nom :

    $ écran -x travail1

Basculer entre les fenêtres d'écran

Comme vous l'avez déjà compris, les sessions sont enregistrées même lorsque vous êtes déconnecté du serveur et tout ce qui s'y déroule continue de s'exécuter. Cependant, ce n’est pas la fin des capacités de l’écran. Parfois, lorsque vous travaillez via ssh, vous souhaitez vraiment que plusieurs terminaux soient ouverts en même temps. l'écran peut également vous aider.

Ctrl+A alors ?- afficher toutes les commandes et paramètres disponibles, pour quitter l'espace ou entrer
Ctrl+A puis c- créer créer une fenêtre d'écran
Ctrl+A puis p- strongvios passe à la fenêtre d'écran précédente
Ctrl+A puis n- prochain passage à la fenêtre d'écran suivante
Ctrl+A puis d- déconnexion détachée de l'écran laissant la session en cours d'exécution
Ctrl+A puis K- tuer, tuer la session d'écran
Ctrl+A puis x- verrouillage de l'écran, pour déverrouiller, vous devez saisir votre mot de passe Linux.
Ctrl+A puis w- liste des fenêtres en cours d'exécution dans la capture d'écran
Ctrl+A puis A- étiqueter les différentes fenêtres dans la capture d'écran
Ctrl+A puis |- diviser les fenêtres verticalement, après Ctrl+A une barre verticale (pas un petit L) ou saisir split -v
Ctrl+A puis S- diviser les fenêtres horizontalement
Ctrl+A puis Tab- transition entre les moitiés
Ctrl+AQ- masquer toutes les fenêtres et ne laisser que celle actuelle
Ctrl+D- quitter la session d'écran

Copier du texte entre les fenêtres et faire défiler l'écran

Ctrl+A puis [- fait passer l'écran en mode Copie, tandis que vous pouvez vous déplacer dans la fenêtre à l'aide des touches curseur ; pour déterminer le début d'un fragment de texte, appuyez sur la barre d'espace. Déplacez le curseur avec les flèches pour marquer la fin de la sélection et appuyez à nouveau sur Espace. Ça y est, le fragment a été copié. Il est inséré dans la même fenêtre ou dans une autre en cliquant sur ] .

Pour quitter ce mode, appuyez simplement sur Échap.

Surveillance de l'exécution des commandes

Si vous avez plusieurs fenêtres ouvertes, il peut être utile de pouvoir surveiller l'activité dans l'une d'entre elles. Par exemple, si vous exécutez une commande et souhaitez savoir quand elle se terminera. Allez dans la fenêtre avec cette commande, cliquez sur

Ctrl+A puis m- et activer la surveillance de l'activité des fenêtres. Désormais, si le texte de la fenêtre change, l'écran émettra un signal sonore, le symbole « @ » sera affiché dans la liste des fenêtres à côté de son nom et le message « Activité dans la fenêtre No... » apparaîtra en bas. de la fenêtre pendant quelques secondes !

Enregistrement et impression d'écran

Vous pouvez également retracer tout le texte affiché dans la fenêtre dans un fichier screenlog spécial. où N est le numéro de la fenêtre.

Ctrl+A puis H

Désormais, tous les résultats de votre travail seront enregistrés et vous pourrez voir l'historique non seulement des entrées, mais également des sorties.

Aussi la commande pour supprimer la fenêtre actuelle

Ctrl+A puis h

transferts vers un fichier papier. uniquement le contenu de la fenêtre actuelle, plutôt que de surveiller constamment les E/S. Analogue à un écran d'impression.

configuration de l'écran

Screen est configuré à l'aide du fichier ~/.screenrc dans votre répertoire personnel. Par exemple, vous pouvez y écrire :

Légende toujours "%(= 45)%(+b w)Écran : %n | %h %=%t %c" état dur toujours dernière ligne "%-Lw%(= BW)%50>%n%f* %t%( -)%+Lw%<"

Cela vous donnera une liste toujours visible des fenêtres ouvertes et d'autres informations utiles en bas de l'écran.

De plus, lorsque Screen est lancé, par défaut les commandes du fichier /etc/screenrc et le fichier .screenrc du répertoire personnel de l'utilisateur sont exécutées. De nombreuses commandes pouvant être utilisées dans les fichiers de configuration ont été abordées dans les tableaux ci-dessus dans le champ « Commande texte ». Vous trouverez ci-dessous un exemple de configuration d'écran à partir du fichier .screenrc :

# Désactiver l'affichage des informations de licence au démarrage Screen startup_message off # Ouvrir un shell pour travailler chdir screen -t Work # Ouvrir un shell pour gérer la configuration chdir /etc screen -t Configuration # Ouvrir un shell pour afficher les logs chdir /var/log screen -t Journaux # Sélectionnez la première fenêtre après le démarrage, sélectionnez 0

Ce fichier de configuration assez simple ouvre trois fenêtres nommées Work, Configuration, Logs, respectivement dans le répertoire personnel de l'utilisateur, le répertoire /etc et le répertoire /var/log. Après le lancement, la première fenêtre nommée Work apparaîtra à l'écran. La figure 1 montre un exemple de Screen fonctionnant avec ce fichier de configuration.

Écran de fin

Si, pour une raison quelconque, la session d'écran cesse de répondre, vous pouvez y mettre fin. Pour cela, vous devez vous connecter à la session souhaitée, puis cliquer sur Ctrl + A et entrez la commande « :quit ».

Pendant plus d'un an, un camarade de classe m'a encouragé à commencer à utiliser l'écran tout en travaillant. Avec le temps, je n’arrivais toujours pas à m’y mettre. Mais en vain...

Screen est un gestionnaire de fenêtres plein écran qui vous permet de travailler avec plusieurs fenêtres à la fois à partir d'une seule session de terminal. En d'autres termes, en vous connectant à une machine distante via ssh, vous pourrez travailler avec plusieurs de ses fenêtres à la fois au cours d'une même session, tout comme en appuyant sur ctrl+alt+f1, ctrl+alt+f2... Le programme en a une caractéristique importante : si la connexion est perdue ou déconnectée de « l'écran », les processus qui s'y déroulent ne s'arrêtent pas et vous pouvez y revenir à tout moment. Il existe de nombreuses utilisations pour cela. Par exemple, lorsque vous travaillez avec un serveur distant, vous pouvez être sûr que la compilation démarrée du programme sera terminée, même si la connexion est soudainement interrompue.

Installation

Le programme s'installe comme d'habitude, par exemple dans Ubuntu comme ceci :

écran d'installation apt-get

Il convient également de noter que dans mon bureau Ubuntu 10.04, ce package était déjà présent dans le système.

Utilisation de l'écran

Lancement du programme :

Après avoir démarré le programme, de brèves informations à ce sujet seront affichées. Pour le supprimer, appuyez sur Entrée ou sur la barre d'espace. Vous pourriez penser que rien ne s’est passé, cependant ce n’est pas le cas : vous êtes à l’intérieur d’un terminal fonctionnant en screen. Après cela, nous voyons la console à laquelle nous sommes habitués.

Pour émettre des commandes d'écran, utilisez la combinaison de touches ctrl+a. Vous trouverez ci-dessous une liste des principales commandes utilisées pour contrôler le shell :

  • c - créer une nouvelle fenêtre
  • n - passer à la fenêtre suivante
  • p - passer à la fenêtre précédente
  • k - ferme la fenêtre
  • d - se déconnecter de l'écran
  • » — liste des fenêtres en cours d'exécution dans la capture d'écran

Par exemple, pour créer une nouvelle fenêtre, vous devez appuyer sur ctrl+a et appuyer sur la touche c.

Lorsqu'ils sont déconnectés de l'écran, toutes les fenêtres et processus qui y sont exécutés continuent de s'exécuter. Pour afficher les écrans en cours d'exécution, utilisez la commande :

Le résultat de la commande ressemblera à ceci :

Il y a des écrans sur :
18388.pts-4.aside-ubuntu-vm (23.09.2010 05:05:30) (Détaché)
18272.pts-0.aside-ubuntu-vm (23.09.2010 04:54:23) (Détaché)
2 Sockets dans /var/run/screen/S-root.

Pour vous connecter à un écran en cours d'exécution, exécutez la commande screen -r . Par exemple, comme ceci :

écran -r 18388.pts-4.asid-ubuntu-vm

ou plus court :

Si vous avez oublié de vous déconnecter d'un écran d'une autre machine (dans la sortie de screen -ls il y aura un message en pièce jointe à côté), vous pouvez l'intercepter en utilisant le paramètre -rd :

écran -rd 18388

Pour vous connecter au dernier écran vous pouvez simplement :

Eh bien, cela semble être tout. Plus de détails sur ces commandes et d'autres, comme d'habitude, se trouvent dans le mana.

Screen est une application console qui vous permet d'utiliser plusieurs sessions de terminal dans une seule fenêtre. Le programme fonctionne au sein d'une session shell et agit comme un conteneur et un gestionnaire pour d'autres sessions de terminal, un peu comme un gestionnaire de fenêtres gère les fenêtres.

Dans de nombreux cas, la création de plusieurs fenêtres de terminal n'est pas possible. Vous devrez peut-être gérer plusieurs sessions de console sans exécuter le serveur X ; Vous devrez peut-être accéder rapidement à plusieurs serveurs cloud distants ou afficher un programme en cours d'exécution tout en travaillant sur une autre tâche. Tous ces besoins peuvent être facilement satisfaits avec la console Screen.

Installation

Ce guide utilise Ubuntu 12.04 ; sur chaque distribution moderne, toutes les commandes sauf l'installation seront les mêmes.

Pour installer la console sur Ubuntu, utilisez la commande "apt-get" :

sudo apt-get mise à jour
écran d'installation sudo apt-get

Bases d'utilisation

Pour démarrer une session écran, appelez simplement la commande "screen":

écran
Version d'écran 4.00.03jw4 (FAU) 2 mai 2006
Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann
Ce programme est un logiciel gratuit ; vous pouvez le redistribuer et/ou le modifier sous
les termes de la licence publique générale GNU telle que publiée par le logiciel libre
Fondation; soit la version 2, soit (à votre choix) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS
TOUTE GARANTIE ; sans même la garantie implicite de QUALITÉ MARCHANDE ou d'ADAPTATION
POUR UN USAGE PARTICULIER. Consultez la licence publique générale GNU pour plus de détails.
Vous devriez avoir reçu une copie de la licence publique générale GNU ainsi que
ce programme (voir le fichier COPIE) ; sinon, écrivez au logiciel libre
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 États-Unis.
Envoyez des rapports de bogues, des correctifs, des améliorations, des t-shirts, de l'argent, de la bière et des pizzas à
[email protégé]

Une fois lancé, la page de licence apparaîtra. Pour continuer, appuyez sur "Retour" ou "Entrée".

D'autres actions du programme peuvent être inattendues. L'invite de commande normale est fournie et rien ne semble se produire. Peut-être y a-t-il eu une erreur d'écran ? Pour le savoir, utilisez le raccourci clavier. Appuyez longuement sur la touche contrôle (Ctrl), appuyez sur "a", puis sur la touche "v" :

Cette action demande à Screen des informations sur la version ; la sortie montre que la console fonctionne.

Vous devez maintenant vous familiariser avec les commandes de la console. L'écran est contrôlé principalement à l'aide de raccourcis clavier. Chacune de ces combinaisons doit être précédée de « Ctrl-a » (maintenez la touche « Ctrl » enfoncée avant d'appuyer sur « a »). Cette séquence de touches indique à Screen de prêter attention aux prochaines touches enfoncées.

Ce principe a déjà été utilisé lors de demandes d’informations sur Screen. Utilisez-le à nouveau pour obtenir des informations plus utiles.

Ctrl-a ?
Raccourcis des touches d'écran, page 1 sur 2.
Touche de commande : ^A Littéral ^A : a
briser la licence ^B b , supprimerbuf =
effacer l'écran de verrouillage C ^X x réinitialiser Z
deux points : écran de journal H ^C c
copier ^[ [ connexion L sélectionnez "
détacher ^D d méta un silence _
digraphe ^V moniteur M divisé S
affiche * suivant ^@ ^N sp n suspendre ^Z z
dumptermcap. nombre N temps ^T t
convient uniquement à F uniquement au titre Q A
flux ^F f autre ^A vbell ^G
focus ^I pow_break version B v
copie papier h pow_detach D largeur W
aide? précédent ^H ^P p ^? fenêtres ^W w
history ( ) quitter \ wrap ^R r
infos que j'ai lu< writebuf >
tuer K k réafficher ^L l xoff ^S s
lastmsg ^M m supprimer X xon ^Q q

Il s'agit d'une liste de raccourcis clavier internes. Il convient de rappeler la commande pour l'appeler, car c'est un excellent moyen d'obtenir rapidement de l'aide. Comme vous pouvez le voir au bas du fichier, pour obtenir plus de commandes, vous devez appuyer sur la barre d'espace.

Appelez maintenant la commande "top", qui fournit des informations sur les processus.

haut
haut - 16:08:07 jusqu'à 1:44, 1 utilisateur, charge moyenne : 0,00, 0,01, 0,05
Tâches : 58 au total, 1 en cours d'exécution, 57 en sommeil, 0 arrêtée, 0 zombie
Processeur(s) : 0,0 %us, 0,0 %sy, 0,0 %ni,100,0 %id, 0,0 %wa, 0,0 %hi, 0,0 %si, 0,0 %st
Mémoire : 507 620 000 au total, 262 920 000 utilisés, 244 700 000 libres, 8 720 000 tampons
Échange : 0 000 au total, 0 000 utilisés, 0 000 gratuits, 224 584 000 en cache
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMANDE
1 racine 20 0 3384 1836 1288 S 0.0 0.4 0:00.70 initialisation
2 racine 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 racine 20 0 0 0 0 S 0.0 0.0 0:00.11 ksoftirqd/0
5 racine 20 0 0 0 0 S 0.0 0.0 0:00.12 kworker/u:0
6 racine RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
7 racine RT 0 0 0 0 S 0.0 0.0 0:00.07 chien de garde/0
8 racine 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
9 racine 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
10 racine 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
11 racine 0 -20 0 0 0 S 0.0 0.0 0:00.00 réseaux
12 racine 20 0 0 0 0 S 0.0 0.0 0:00.03 sync_supers
13 racine 20 0 0 0 0 S 0.0 0.0 0:00.00 bdi-default
14 racine 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
15 racine 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
16 racine 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
17 racine 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd
18 racine 0 -20 0 0 0 S 0,0 0,0 0:00,00 md

Vous pouvez maintenant visualiser les processus sur le VPS. Mais quelles commandes utiliser pour en obtenir plus des informations détaillées sur l'exécution de programmes ? Vous n'êtes pas obligé de quitter la commande "top", mais créez simplement une nouvelle fenêtre pour exécuter ces commandes.

La séquence "Ctrl-a c" crée une nouvelle fenêtre. Vous pouvez désormais exécuter n'importe quelle commande sans perturber les commandes exécutées dans une autre fenêtre (dans ce cas, la surveillance des processus).

Où est passée cette autre fenêtre ? Vous pouvez y revenir à l'aide de la commande :

Cette séquence affiche la prochaine fenêtre en cours d'exécution. La liste des fenêtres est bouclée, donc s'il n'y a pas d'autres fenêtres derrière la fenêtre actuelle, elle renvoie la première fenêtre.

Cette séquence fait basculer les fenêtres vers ordre inverse. Si, par exemple, trois fenêtres sont en cours d'exécution et que la troisième est celle en cours, cette commande affichera la deuxième fenêtre.

Lorsque vous basculez constamment entre deux fenêtres, il est utile d'utiliser le raccourci clavier suivant :

Cette séquence amène l'utilisateur à la fenêtre la plus fréquemment visitée. Dans l’exemple précédent, la troisième fenêtre aurait été affichée à nouveau.

De nos jours, garder une trace de toutes les fenêtres créées peut sembler impossible. Heureusement, la console Screen propose plusieurs façons de gérer différentes sessions. Tout d'abord, créez trois nouvelles fenêtres (pour un total de 4 fenêtres), puis utilisez l'un des outils de gestion de fenêtres les plus simples - « Ctrl-a w ».

Ctrl-a c
Ctrl-a c
Ctrl-a c
Ctrl-a w
0$ de remise 1$ de remise 2-$ de remise 3*$ de remise

Cette commande fournit des informations utiles - une liste des fenêtres ouvertes. Dans ce cas, 4 fenêtres sont ouvertes. Chaque fenêtre possède son propre numéro, commençant à 0. Un astérisque à côté du numéro indique la fenêtre actuelle.

Comme vous pouvez le constater, la fenêtre n°3 est actuellement la fenêtre actuelle (en fait, c'est la quatrième, puisque la numérotation commence à 0). Comment passer rapidement à la fenêtre n°1 ?

Le numéro de séquence peut être utilisé pour accéder directement à la fenêtre souhaitée. Ouvrez à nouveau la liste des fenêtres :

Ctrl-a w
0$ de remise 1*$ de remise 2$ de remise 3-$ de remise

Comme vous pouvez le constater, la fenêtre n°1 est désormais celle actuelle. Essayez une autre manière de basculer entre les fenêtres.

Ctrl-a "
Nombre d'indicateurs de nom
0 coup$
1 coup$
2 coups$
3 coups$

Cette fois, le menu de navigation s'affiche. Vous pouvez maintenant naviguer à l'aide des flèches haut et bas ou des touches « j » et « k », comme vous le faites dans l'éditeur de texte vi. Vous pouvez basculer vers la fenêtre sélectionnée en appuyant sur le bouton « Retour » ou « Entrée ».

C'est très utile, mais pour le moment, toutes les fenêtres sont nommées "bash". Ce n'est pas très pratique. Vous devez maintenant donner un nom à la session. Basculez vers la fenêtre que vous souhaitez nommer et utilisez la séquence "Ctrl-a A".

Ctrl-a 0
Ctrl-a A
Définissez le titre de la fenêtre sur : bash

En utilisant cette séquence, vous pouvez donner un nom à la session. Utilisez la touche "retour arrière" pour effacer "bash" et entrez un nouveau nom. Par exemple, nommez la fenêtre n°0 « surveillance » et exécutez-y la commande « top ».

Définissez le titre de la fenêtre sur : surveillance
Ctrl-a "
Nombre d'indicateurs de nom
0 surveillance $
1 coup$
2 coups$
3 coups$

La fenêtre n°0 a un nom plus pratique.

Vous pouvez désormais créer et renommer des fenêtres ; mais comment se débarrasser d’une fenêtre inutile ?

Utilisez la séquence « Ctrl-a k », qui signifie « tuer » :

Ctrl-ak
Tue vraiment cette fenêtre

Gestion des sessions d'écran

Pour quitter Screen et fermer toutes les fenêtres, utilisez la séquence de commandes suivante :

Ctrl-a\
Arrêtez vraiment et tuez toutes vos fenêtres

Cela mettra fin à la session Screen. Toutes les fenêtres créées, ainsi que tout travail inachevé, seront perdus.

L'utilisation de Screen présente un énorme avantage. La session ne peut pas être supprimée, mais simplement supprimée. La suppression d'une session permet aux programmes exécutés dans Screen de continuer à fonctionner et donne également accès à la session de console principale (celle à partir de laquelle vous avez commencé à travailler avec Screen). Cette session Screen existe toujours, elle est juste gérée en arrière-plan.

Ctrl-a d

La séance est donc annulée. Comment puis-je revenir à cette session ?

L'indicateur "-r" signifie "rattacher" ou "restaurer". Mais que se passe-t-il s’il y a plusieurs sessions Screen ? Que se passe-t-il si une session Screen est créée et supprimée, puis qu'une nouvelle session est créée et également filmée ?

écran
Ctrl-a d
écran
Ctrl-a d

Comment puis-je indiquer à Screen quelle session restaurer ?

écran –ls
Il y a des écrans sur :
2171.pts-0.Blank (01/07/2013 17:00:39) (Détaché)
1835.pts-0.Blank (01/07/2013 15:50:43) (Détaché)
2 Prises dans /var/run/screen/S-justin.

La liste des sessions est maintenant affichée. Pour restaurer la deuxième session, entrez son numéro d'identification après le drapeau "-r".

écran –r 1835

Que faire si vous devez restaurer une session à deux ordinateurs distants ou des fenêtres de terminal ? Utilisez l'indicateur "-x", qui vous permet de diviser la session.

Gestion des terminaux dans Screen

Il existe un certain nombre de commandes qui vous permettent de gérer les sessions de terminal exécutées dans Screen.

Pour copier du texte, utilisez la séquence :

Cette séquence fournit un curseur qui peut être déplacé à l'aide des touches fléchées ou des touches h, j, k, l (comme dans vi). Déplacez le curseur au début du fragment de texte que vous souhaitez copier et appuyez sur Retour ou Entrée. Déplacez ensuite le curseur jusqu'à la fin du fragment et appuyez à nouveau sur « Retour » ou « Entrée ». Le texte sera copié dans le presse-papiers.

Une chose à retenir est qu’il s’agit également du mécanisme de défilement de cette console. Si vous avez besoin d'afficher du texte hors écran, tapez "Ctrl-a [" et faites défiler vers le haut.

Vous pouvez coller le texte copié en utilisant un crochet fermant

Vous devrez peut-être également afficher les programmes exécutés dans une autre fenêtre d'écran.

Par exemple, certaines données sont compilées dans une seule fenêtre et vous devez savoir quand la procédure est terminée. Vous pouvez demander à Screen de surveiller l'inactivité de cette fenêtre à l'aide de la séquence "Ctrl-a _", qui vous alertera si elle cesse d'afficher les données dans les 30 secondes.

Donnons un exemple plus simple. Dites à la console Screen de signaler lorsque la fenêtre a fini de cingler Google 4 fois.

ping –c 4 www.google.com
Ctrl-a_
La fenêtre est désormais surveillée pendant 30 secondes. silence.

Vous pouvez maintenant travailler dans une autre fenêtre et attendre la notification de l'achèvement de la tâche dans la fenêtre précédente.

Ctrl-a 1
Fenêtre 2 : silence pendant 30 secondes

Vous pouvez aussi au contraire demander une notification de l'activité d'une fenêtre spécifique. Cela se fait en utilisant la séquence « Ctrl-a M ».

dormir 20 && echo "sortie"
Ctrl-a M
La fenêtre 2 (bash) est désormais surveillée pour toutes les activités.

Une notification apparaîtra désormais lorsque les données seront sorties dans cette fenêtre.

Ctrl-a 1
Activité dans la fenêtre 2

Par exemple, vous devez apporter un certain nombre de modifications importantes et en même temps obtenir un journal des commandes lancées. Une session peut être enregistrée en utilisant :

Ctrl-a H
Création du fichier journal "screenlog.1".

Zones d'écran

Si vous avez besoin de voir plusieurs fenêtres à la fois, vous pouvez utiliser ce que l'on appelle des « zones ». De nouvelles régions sont créées lorsque la région actuelle est divisée. Pour diviser la zone actuelle horizontalement, vous pouvez saisir :

Cela déplacera la fenêtre actuelle vers le haut de l'écran et ouvrira une nouvelle zone vide en dessous. Pour accéder à la zone inférieure, utilisez « onglet » :

Maintenant, dans la zone inférieure, vous pouvez créer une nouvelle fenêtre ou passer à une autre fenêtre comme d'habitude.

Si vous devez détruire la zone actuelle, utilisez la séquence suivante :

Cela supprime la zone sans détruire la fenêtre actuelle. Autrement dit, si une commande a été lancée dans une zone donnée, vous pouvez toujours y accéder comme une fenêtre normale, c'est juste que la zone séparée est détruite.

Si vous devez réaliser une coupe verticale, vous pouvez utiliser la séquence :

Remarque : Il ne s'agit pas d'un caractère 1 (uns) ou d'un L. Il s'agit d'un caractère barre verticale, qui se trouve sur la même touche que le caractère "\" sur la plupart des claviers. Les commandes pour les zones verticales sont les mêmes que celles pour les zones horizontales. Si vous devez supprimer plusieurs zones différentes et revenir à une zone, vous pouvez utiliser cette séquence, qui détruit toutes les zones sauf celle actuelle :

Utiliser Byobu

Une amélioration significative pour Screen est un programme appelé « byobu ». Il agit comme un wrapper d'écran et offre une convivialité améliorée. Sur Ubuntu, il peut être installé en utilisant :

sudo apt-get install byobu

Avant de commencer, nous devons dire à byobu d'utiliser screen comme tampon de sortie. Cela peut être fait en utilisant la commande :

byobu-select-backend
Sélectionnez le backend byobu :
1. tmux
2.écran
Choisissez 1-2 :

Ici, vous pouvez définir l'écran comme gestionnaire de terminal par défaut.

Vous pouvez désormais saisir « byobu » au lieu de « screen » pour démarrer votre session.

byobu
Bienvenue sur Ubuntu 12.04 LTS (GNU/Linux 3.2.0-24-virtual i686)
* Documentation : https://help.ubuntu.com/
Bienvenue dans le gestionnaire de fenêtres de texte léger et puissant, Byobu.
Vous pouvez basculer le lancement de Byobu lors de la connexion avec :
"byobu-disable" et "byobu-enable"
Pour obtenir des conseils, des astuces et plus d’informations, consultez :
* http://bit.ly/byobu-help
justin@Blank : ~$
toi ? 12.04 0 :* 118 ! 3h55m 2,00 2,0GHz 496M6% 2013-07-01 18:19:21

Comme vous pouvez le constater, l'écran est désormais intégré dans une interface conviviale.

La première fois que vous tapez "Ctrl-a", vous devez dire à byobu de reconnaître cette commande comme une commande d'écran, et non comme une commande Emacs.

Ctrl-a
Configurez le comportement ctrl-a de Byobu...
Lorsque vous appuyez sur ctrl-a dans Byobu, voulez-vous qu'il fonctionne dans :
(1) Mode écran (séquence d'échappement par défaut de GNU Screen)
(2) Mode Emacs (aller au début de la ligne)
Noter que:
- F12 fonctionne également comme évasion à Byobu
- Vous pouvez appuyer sur F9 et choisir votre personnage d'échappement
- Vous pouvez exécuter "byobu-ctrl-a" à tout moment pour modifier votre sélection
Sélectionner:

Sélectionnez 1 pour utiliser byobu normalement.

L'interface fournit de nombreuses informations utiles, telles qu'une liste de fenêtres et des informations système. Sur Ubuntu, il vous indique même combien de packages contiennent des mises à jour de sécurité sous la forme d'un nombre suivi d'un point d'exclamation sur fond rouge.

La seule différence entre byobu et screen est que byobu gère les sessions. Après la déconnexion, si vous tapez simplement à nouveau « byobu », la session précédente sera restaurée au lieu d'en créer une nouvelle.

Pour créer une nouvelle session, vous devez taper :

byobu –S nom de session

Modifiez "sessionname" comme vous le souhaitez pour déclencher une nouvelle session. La liste des sessions en cours peut être consultée en utilisant :

byobu –ls
Il y a des écrans sur :
22961.new (01/07/2013 18:42:52) (Détaché)
22281.byobu (01/07/2013 18:37:18) (Détaché)
2 Sockets dans /var/run/screen/S-root.

S'il y a plusieurs sessions, après avoir entré « byobu », un menu apparaîtra dans lequel vous pourrez choisir à quelle session vous souhaitez vous connecter.

byobu
Séances Byobu...
1. écran : 22961.new (01/07/2013 18:42:52) (Détaché)
2. écran : 22281.byobu (01/07/2013 18:37:18) (Détaché)
3. Créez une nouvelle session Byobu (écran)
4. Exécutez un shell sans Byobu (/bin/bash)
Choisissez 1 à 4 :

Vous pouvez choisir n'importe laquelle des sessions existantes, créer une nouvelle session byobu ou même un nouveau shell qui n'utilise pas byobu.

L'une des fonctionnalités très utiles pour un serveur cloud distant est la possibilité de lancer byobu automatiquement à chaque fois que vous vous connectez à une session. Cela signifie que si vous déconnectez une session, votre travail ne sera pas perdu et vous pourrez facilement vous reconnecter à cette session.

Pour permettre à byobu de démarrer automatiquement à chaque fois que vous vous connectez, tapez dans le terminal :

byobu-activer
Le gestionnaire de fenêtres Byobu sera lancé automatiquement à chaque connexion textuelle.
Pour désactiver ce comportement ultérieurement, exécutez simplement :
byobu-désactiver
Appuyez pour continuer...

Comme indiqué ci-dessus, pour désactiver cette fonctionnalité, entrez simplement :

Ensuite, il ne démarrera pas automatiquement.

Mots clés: ,

Screen est une commande très utile qui offre la possibilité d'utiliser plusieurs fenêtres shell (sessions) à partir d'une seule. Lorsqu'une session est déconnectée ou en cas de perturbations du réseau, le processus en cours d'exécution dans la session d'écran continuera à s'exécuter et vous pourrez vous reconnecter à la session d'écran à tout moment. Ceci est également très pratique si vous souhaitez exécuter un processus de longue durée en continu ou vous connecter à des sessions shell à partir de plusieurs emplacements.

Dans cet article nous allons vous montrer les bases de l’installation et de l’utilisation de l’écran sur .

Comment installer l'écran

Screen est préinstallé sur certaines des distributions populaires. Vous pouvez vérifier s'il est installé ou non sur le serveur à l'aide de la commande suivante

Écran -v Version d'écran 4.00.03 (FAU)

Si vous n'avez pas d'écran VPS, vous pouvez facilement l'installer à l'aide du gestionnaire de packages fourni avec système opérateur.

/RedHat/Fedora

miam -y écran d'installation

/

apt-get -y écran d'installation

Comment démarrer une session d'écran

Vous pouvez démarrer un écran en tapant le mot « écran » sur la ligne de commande et une nouvelle session d'écran sera lancée et ressemblera à la ligne de commande.

C'est une bonne pratique de démarrer les sessions d'écran avec des noms descriptifs afin que vous puissiez facilement vous rappeler quel processus est en cours d'exécution dans la session. Pour créer une nouvelle session avec le nom de session, exécutez la commande suivante

Nom de l'écran -S

et remplacez ' nom‘ avec un titre clair pour votre session.

Détacher l'écran de la session

Pour vous déconnecter de la session d'écran en cours, vous pouvez appuyer sur la touche ' Ctrl-A' Et ' D' sur le clavier. Toutes les sessions d'écran seront toujours actives et vous pourrez vous y reconnecter à tout moment ultérieurement.

Revenir à l'écran de la session

Si vous êtes déconnecté de votre session ou si votre connexion est interrompue pour une raison quelconque, vous pouvez facilement vous reconnecter en exécutant la commande suivante :

Écran -r

Si vous avez plusieurs sessions d'écran, vous pouvez les lister avec ' '

Screen -ls Il y a des écrans sur : 7880.session (Détaché) 7934.session2 (Détaché) 7907.session1 (Détaché) 3 Sockets dans /var/run/screen/S-root.

Dans notre exemple, nous avons trois sessions d'écran actives. Donc, si vous souhaitez restaurer la session "session2", vous pouvez le faire

Écran -r 7934

ou vous pouvez utiliser un pseudonyme

Écran -r -S session2

Fin de la session d'écran

Il existe plusieurs façons de mettre fin à une session d'écran. Vous pouvez le faire en cliquant sur « Ctrl‘ + ‘ D' sur le clavier ou à l'aide d'une commande en ligne de commande ' sortie‘.

Pour voir toutes les propriétés utiles de l'écran de commande, vous pouvez consulter l'écran de la page de manuel.

Man screen NAME screen - gestionnaire d'écran avec émulation de terminal VT100/ANSI SYNOPSIS screen [ -options ] [ cmd [ args ] ] screen -r ] screen -r sessionowner/]

Vous vous êtes connecté à votre serveur distant via ssh, appuyez joyeusement sur le clavier, effectuez un travail d'administration et oups ! Les caractères ont cessé de s'imprimer et le même message est tombé, ce qui provoque parfois une irrésistible envie de casser le clavier. Connexion fermée. Situation courante ? Oui, oui, votre session vient de planter et vous devrez tout refaire... Cela peut être évité si vous utilisez screen. Cela gardera non seulement votre session saine et sauve, mais vous permettra également de garder plusieurs sessions ouvertes dans une seule fenêtre de terminal.

Qu'est-ce que l'écran ?
Tout d'abord, regardons la page de manuel : "Screen est un gestionnaire de fenêtres plein écran qui vous permet de partager un terminal physique entre plusieurs processus indépendants (généralement des shells interactifs)."
l'écran a plusieurs caractéristiques distinctives, ce qui peut être d'une grande aide lors de l'exécution de tâches sur des serveurs distants via ssh. Je parlerai des trois fonctionnalités les plus fréquemment utilisées par moi : le multi-fenêtrage, la journalisation et les sessions. Vous devrez vous référer à la page de manuel pour plus de détails.

Installation de l'écran
Très probablement, l'écran est déjà sur votre système. Vous pouvez vérifier cela avec la commande

Si cela ne donne pas de résultats, installez screen en utilisant directeur chargé d'emballage votre système. Mes serveurs sont principalement CentOS et Debian, j'ai donc configuré l'écran comme ceci :

# miam écran d'installation (pour CentOS)
# écran d'installation apt-get (pour Debian)

FreeBSD apparaît également, dans ce cas j'utilise les ports :

# cd /usr/ports/sysutils/écran
rendre l'installation propre

Utilisation de l'écran
Screen est lancé depuis la ligne de commande comme n'importe quelle application :)

Vous pouvez ou non recevoir un message indiquant que l'écran est en cours d'exécution... Cela dépend de votre système. Si vous ne recevez pas de message, vous pensez peut-être que rien ne s'est passé. Cependant, ce n’est pas le cas. Toi déjàà l'intérieur d'un terminal fonctionnant en écran. Il s'agit d'un shell normal et entièrement fonctionnel, à l'exception de quelques commandes spéciales. Screen utilise le raccourci clavier Ctrl+A pour émettre des commandes aux terminaux en son sein. Essayez d'appuyer sur Ctrl+A, puis ?
Vous verrez quelque chose comme ceci :

Raccourcis des touches d'écran, page 1 sur 2.

Touche de commande : ^A Littéral ^A : a

briser ^B b écran de verrouillage ^X x réinitialiser Z
effacer l'écran C log H ^C c
deux points : connexion L sélectionnez " '
copier ^[ [ méta un silence _
détacher ^D d moniteur M diviser S
digraphe ^V suivant ^@ ^N sp n suspendre ^Z z
affiche * nombre N temps ^T t
convient uniquement à F uniquement au titre Q A
flux ^F f autre ^A vbell ^G
focus ^I pow_break version B v
aide? pow_detach D largeur W
historique ( ) précédent ^P p ^? fenêtres ^W w
infos que j'ai lu< wrap ^R r
tuer K réafficher ^L l writebuf >
lastmsg ^M m supprimer X xoff ^S s
licence, removebuf = xon ^Q q

L'écran accepte les raccourcis clavier de commande après avoir appuyé sur Ctrl+A. Vous pouvez modifier ce comportement en utilisant le fichier de configuration $HOME/.screenrc

Multi fenêtre
Écran, comme la plupart gestionnaires de fenêtres, prend en charge plusieurs fenêtres. C'est très pratique pour effectuer des tâches parallèles sans ouvrir de nouvelles sessions ssh. Par exemple, j'ai toujours quatre ou cinq sessions ouvertes avec plusieurs tâches chacune. Auparavant, j'aurais dû ouvrir une quinzaine de terminaux, de logins, de sessions... Fatiguant, n'est-ce pas ? Ces inconvénients sont entièrement résolus par l'écran. Désormais, je peux facilement me débrouiller avec un seul terminal.

Une nouvelle fenêtre s'ouvre à l'aide de la combinaison de touches « Ctrl+ac ». Après avoir cliqué, vous verrez un nouveau terminal avec votre invitation dans la même fenêtre. Dans le même temps, les fenêtres précédentes continuent de fonctionner. Essayons : exécutez l'écran et en haut

Mémoire : 506028K av, 500596K utilisés, 5432K gratuits,
0K fragment, 11752K buff
393660K mis en cache


6538 racine 25 0 1892 1892 596 R 49,1 0,3
6614 racine 16 0 1544 1544 668 S 28,3 0,3
7198 administrateur 15 0 1108 1104 828 R 5,6 0,2

Ouvrez maintenant une nouvelle fenêtre en appuyant sur « Ctrl+ac »

Revenez en arrière en appuyant sur Ctrl+a n

Mémoire : 506028K av, 500588K utilisés, 5440K gratuits,
0K fragment, 11960K buff
Échange : 1020 116 K en moyenne, 53 320 K utilisés, 966 796 K gratuits
392 220 Ko mis en cache

PID UTILISATEUR PRI NI TAILLE RSS PARTAGE STAT %CPU %ME
6538 racine 25 0 1892 1892 596 R 48,3 0,3
6614 racine 15 0 1544 1544 668 S 30,7 0,3

le dessus est resté dans le même état. Vous pouvez créer plusieurs fenêtres et basculer entre elles en utilisant Ctrl+a n pour passer à la fenêtre suivante et Ctrl+a p pour passer à la précédente. Dans ce cas, chaque processus en cours restera en état de fonctionnement.

Se déconnecter de l'écran
Il existe deux manières de se déconnecter de l'écran : la première consiste simplement à se déconnecter. Vous pouvez utiliser le raccourci clavier Ctrl+a K ou simplement taper exit. Cette méthode « tuera » la fenêtre actuelle si vous en avez plusieurs ou arrêtera complètement l’écran.
La deuxième façon est de coupure. Cette méthode laisse le processus en cours en cours d’exécution et vous déconnecte simplement du terminal. Par exemple, si vous exécutez un processus très long via une session ssh qui ne nécessite pas votre attention, vous pouvez simplement vous déconnecter de l'écran en utilisant Ctrl+a d. Cela vous ramènera à votre shell d'origine. Tous les processus démarrés dans screen restent en cours d'exécution et vous pouvez vous y connecter ultérieurement.

Connexion à une session
Vous compilez un grand programme pour serveur distant en utilisant l'écran. Et bien sûr, selon les lois de Murphy, la connexion prend fin pour des raisons indépendantes de votre volonté. Pas de panique, l'écran a tout enregistré :) Connectez-vous simplement à nouveau au serveur et regardez les processus en cours d'exécution sous l'écran en utilisant

# écran -ls
Il y a des écrans sur :
31619.ttyp2.server (Détaché)
4731.ttyp2.server (détaché)
2 Sockets dans /tmp/screens/S-root.

Dans cet exemple, deux sessions d'écran sont en cours d'exécution. Pour vous connecter à celui souhaité, utilisez la commande

#screen -r 31619.ttyp2.server

Utilisez simplement screen avec le drapeau r et le nom de la session pour vous reconnecter. C'est très confortable. Vous pouvez, par exemple, exécuter un long processus au travail et, de retour chez vous, continuer à surveiller son exécution.

Enregistrement
Il me semble qu'il est parfois très important de tenir un journal complet de vos actions. Heureusement, Screen gère cela facilement. Activez simplement la journalisation en appuyant sur Ctrl+a H. Screen continuera la journalisation tout au long du processus. Il peut être très utile de revenir en arrière et de voir l'ordre des actions nécessaires.

Et un peu plus…
L'écran peut surveiller l'activité de la fenêtre. Si vous téléchargez quelque chose de volumineux, compilez un programme ou exécutez simplement un long processus, vous pouvez voir un terminal vide pendant une longue période sans aucun signe d'activité. Pendant ce temps, le processus continue de se dérouler. Ou, à l'inverse, regardez le flux d'informations de débogage en attendant la fin du processus. Pour démarrer le suivi, accédez au terminal que vous souhaitez surveiller et appuyez sur Ctrl+a M pour suivre l'activité (fonctionne lorsque de nouvelles informations apparaissent) ou Ctrl+a _ pour suivre l'inactivité (fonctionne lorsque les informations cessent de circuler dans le terminal). Ensuite, vous pouvez passer en toute sécurité à une autre fenêtre ou en créer une nouvelle. Lorsqu'un événement se produit, l'écran vous alerte avec un message avec le numéro de la fenêtre dans le titre du terminal. Pour basculer rapidement vers cette fenêtre, utilisez Ctrl+a » (c'est le caractère guillemet). Vous verrez une liste de toutes les fenêtres actuellement actives. Pour accéder à celle souhaitée, vous pouvez utiliser les flèches ou simplement composer le numéro de la fenêtre souhaitée. Pour arrêter la surveillance, accédez à la fenêtre souhaitée et annulez la surveillance à l'aide de la même commande. Par exemple, pour arrêter l'activité de surveillance, appuyez sur Ctrl+a M

mob_info