En utilisant l'écran GNU avec des exemples

En utilisant l'écran GNU avec des exemples

Avez-vous même été dans la situation où vous exécutiez une copie ou un script de 3 heures sur une machine distante, seulement pour constater qu'elle a brisé à 2h 45 minutes parce que votre connexion réseau ou votre connexion SSH a chuté momentanément? Si c'est le cas, vous savez à quel point c'est douloureux 🙂 Bienvenue sur l'écran GNU, l'utilité qui vous permet de démarrer un shell séparé qui ne sera pas interrompu si votre connexion réseau se brise. Lisez la suite pour découvrir comment l'utiliser et plus!

Dans ce tutoriel, vous apprendrez:

  • Comment installer et utiliser l'utilitaire d'écran GNU
  • Comment configurer l'utilitaire d'écran GNU pour mieux fonctionner
  • Exemples d'utilisation de base sur la façon d'utiliser l'utilitaire d'écran GNU à partir de la ligne de commande bash
En utilisant l'écran GNU avec des exemples

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Indépendant de la distribution Linux
Logiciel Ligne de commande bash, système basé sur Linux
Autre L'utilitaire d'écran peut être installé en utilisant Écran d'installation Sudo Apt-Get (ou Miam au lieu de apt-get pour les systèmes basés sur Redhat)
Conventions # - nécessite que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - exige que les commandes Linux soient exécutées en tant qu'utilisateur régulier non privilégié

Exemple 1: Démarrage d'une session d'écran

$ sudo apt-get d'installation écran $ écran 

Une session d'écran démarre et Entrée peut être nécessaire pour fermer l'écran Splash. Ensuite, nous commençons un processus de sommeil à l'intérieur de la session d'écran:

$ sleep 3600 

Vous pouvez maintenant appuyer sur Ctrl + A + D (appuyez sur Ctrl, presse un, libérer un, presse d, libérer d, libérer Ctrl). Vous verrez ce qui suit, dans votre session de shell d'origine (avec un autre numéro d'identification de processus):

[détaché de 1130130.pts-10.abc] 

Maintenant que nous sommes détachés de la session d'écran, analysons les sessions d'écran en direct sur le système:

$ Screen -LS Il y a un écran sur: 1130130.pts-10.ABC (06/08/20 13:41:43) (détaché) 1 prise dans / run / écran / s-ABC. $ Screen -D -R 113 $ Sleep 3600 # Notre sommeil est toujours en cours d'exécution 

Ensuite, vous pouvez utiliser Ctrl + c Pour résilier le sommeil. Vous pouvez ensuite utiliser sortie Pour fermer notre session d'écran et revenir est à notre session de shell précédente / originale. Notez que vous auriez également pu utiliser écran -d -r sans le 112, Comme il n'y avait qu'un seul écran en cours d'exécution.

Dans son exemple, nous avons installé filtrer (peut être nécessaire ou non en fonction de votre distribution Linux utilisée), a ouvert une session d'écran et a commencé comme un long sommeil. Par la suite, nous nous sommes déconnectés de la session d'écran (que vous pouvez considérer comme un autre shell qui continuera d'exister même si l'utilisateur se déconnecte ou déconnecte), et nous avons remis en question le système lors de la session d'écran en cours d'exécution.

Nous avons ensuite reconnecté en utilisant le -d -r sténographie souvent utilisée. Ce sténographie signifie essentiellement Déconnecté toute connexion préexistante de la session qui est mentionnée et connectez-moi. Il est pratique d'apprendre et de toujours utiliser ce sténographie. La raison en est que si vous êtes connecté à distance à un serveur, vous aurez probablement plusieurs sessions de shell ouvertes et que vous avez peut-être déjà connecté à un filtrer Session à partir d'une autre session Shell.

Notre Écran -LS La session montre que notre actuel filtrer la session était Détaché ce qui devrait maintenant avoir un sens; Nous ne sommes pas connectés à / vivons dans la session d'écran.

Exemple 2: tuer et essuyer une session d'écran

Parfois, surtout lorsque vous commencez des travaux de haut niveau / intensif, votre session d'écran peut rencontrer des problèmes et se terminer - pas à cause d'un bogue dans le filtrer Utilité - mais à cause de votre travail en cours d'exécution par exemple dans les problèmes de l'OOM (hors mémoire), etc. Dans ce cas, vous verrez:

$ Screen -LS Il y a un écran sur: 1130130.pts-10.ABC (06/08/20 13:41:43) (mort???) 

Dès qu'une session d'écran est marquée comme Mort??? Il y a peu de choses à faire avec. Une façon de nettoyer cette session d'écran est de tuer la session, puis de l'essuyer:

$ kill -9 1130130 $ Screen -ipe Il y a un écran sur: 1130130.pts-10.ABC (06/08/20 13:41:43) (supprimé) 1 douille anéantie. Pas de prises trouvées dans / run / écran / s-ABC. 

Exemple 3: réglage de l'écran pour être plus convivial

L'un des défis à utiliser filtrer est-ce - hors de la boîte - il n'est pas très convivial. Par exemple, il ouvre un écran de démarrage à chaque fois que vous le démarrez. D'autres éléments incluent parfois des liaisons clés potentiellement frustrantes et un fait de défilement limité.

La plupart d'entre eux peuvent être résolus en créant un ~ /.screenrc déposer. Pour ce faire, utilisez votre éditeur de texte préféré pour créer un .screenrc dossier à l'intérieur de votre homedir. Notez que le point leader rend le fichier invisible et est significatif pour que les choses fonctionnent correctement. À l'intérieur du fichier, vous pouvez coller ce qui suit:

Defscrollback 20000 Startup_Message Off Autodetach sur VBell sur VBell_MSG 'Bell!'termcapinfo xterm * z0 = \ e [?3h: z1 = \ e [?3l: is = \ e [r \ e [m \ e [2j \ e [h \ e [?7h \ e [?1; 4; 6l TermCapinfo xterm * ol = 2000 libellé . lier h bind ^ h bind x bind ^ x bind ^ \ 

Le Defscrollback 20000 Définit le fait de défiler sur 20 000 lignes. Ensuite, nous éteignons l'écran des éclaboussures avec startup_message. Nous activons également l'auto-détachement et créons une cloche virtuelle (qui ne génère pas de son et utilise la sortie visuelle à la place), et définissons son message (pour l'affichage à l'écran) à `` Bell!'.

Ensuite, nous définissons deux termcapinfo pour xterm où le premier évite de redimensionner la fenêtre, et le second augmente le tampon de sortie pour la vitesse. Enfin, nous supprimons certains raccourcis clavier préexistants (en les réglant sur vide). Cela désactive DumpterMcap (lier .), désactivé en écrivant une copie de l'écran sur disque (H et ctrl + h ^ H), éteignez le verrouillage de l'écran (X et ctrl + x ^ x) et enfin tuer tout l'écran Windows / Exit (^ \).

Conseil final: si vous souhaitez accéder à l'écran à l'intérieur du fait de défiler, vous ne pouvez souvent pas simplement «faire défiler vers le haut». Au lieu de cela, appuyez sur Ctrl + a + esc (presse Ctrl, presse un, libérer un, presse ESC, libérer ESC, libérer Ctrl), puis utilisez le curseur clé pour faire défiler aussi loin que vous le souhaitez (jusqu'aux lignes de 20 km dans lesquelles vous avez défini ~ /.screenrc). Presse ESC encore pour quitter le mode défilement / copie.

Conclusion

Dans ce tutoriel, nous avons exploré comment installer et utiliser le filtrer utilité, et comment la configurer pour mieux. Nous avons également regardé de base filtrer Exemples d'utilisation sur la ligne de commande bash. filtrer Peut être un outil polyvalent dans la poche de tout développeur ou utilisateur bash, et nous vous invitons à publier le vôtre filtrer Exemples d'utilisation ou commentaires ci-dessous!

Apprécier!

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Choses à installer sur Ubuntu 22.04
  • Ubuntu 20.04 Guide
  • Système linux hung? Comment s'échapper vers la ligne de commande et…
  • Installez Arch Linux dans VMware Workstation
  • Comment profiter au maximum d'OpenSSH
  • Comment utiliser ADB Android Debug Bridge pour gérer votre Android…