Juste pour développer ce qu'Ansgar a dit au cas où vous ne seriez pas très familier avec l'écran gnu, Avoir plusieurs "fenêtres" dans une seule session d'écran accomplirait probablement ce dont vous avez besoin.
ctrl+ a, ccréera une nouvelle "fenêtre" dans votre session d'écran active. Vous pouvez basculer entre plusieurs fenêtres (comme indiqué par Ansgar) avec ctrl+ a, npour la fenêtre suivante et ctrl+ a, ppour la fenêtre précédente.
ctrl+ a, "vous donnera une liste de toutes vos fenêtres ouvertes.
L'utilisation de ces raccourcis faciles vous permettra de basculer entre différents terminaux très rapidement et facilement, atteignant votre objectif sans utiliser plusieurs sessions d'écran.
Si vous ajoutez la ligne suivante à ~ / .screenrc, elle affichera toujours vos fenêtres ouvertes et celle qui est sélectionnée, vous n'avez donc pas besoin de garder une trace de la fenêtre sur laquelle vous vous trouvez en vous souvenant.
hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'
C'est la ligne hardstatus que j'aime utiliser, mais elle est entièrement personnalisable (voir la page de manuel ou rechercher sur google "gnu screen hardstatus").
Il y a une tonne d'autres choses que vous pouvez faire avec (nommer les différentes fenêtres ouvertes par exemple), donc ça vaut la peine de lire quelques tutoriels.
Voici un couple que j'ai trouvé avec une recherche rapide:
http://news.softpedia.com/news/GNU-Screen-Tutorial-44274.shtml
http://www.ibm.com/developerworks/aix/library/au-gnu_screen/
Et bien sûr le plus utile de tous:
# From your terminal:
$ man screen
J'espère que cela pourra aider.
Matthieu
^a
quelque chose d'autre, donc ce n'est pas ridiculement ennuyeux d'utiliser la modification de ligne de style emacs dans bash, quoi que ce soit d'autre. J'utilise^t
.Ce que les autres disent est correct. Je veux juste mentionner que
tmux
c'est une alternative àscreen
. Ils ont des commandes très similaires.Les deux
screen
ettmux
offrent plusieurs fenêtres pour une session en cours d' exécution, ce qui est probablement ce que vous voulez.tmux
propose également de sauter entre plusieurs sessions (chacune ayant sa propre fenêtre). Vous en auriez besoin très rarement.Voici quelques liens vers la documentation de screen et un cours intensif sur tmux .
la source
Après tant de temps, j'ai fait un script pour contourner cette fonctionnalité complètement manquante. Tout d'abord, il a besoin d'un fifo:
Ce canal nommé est utile pour la communication entre la session détachée et la session "Main-sans-écran".
Fichier sc (dans $ PATH):
Un exemple de "CONFIGFILE" est: ~ / .screen / Monitorrc
Le résultat est: lorsque vous souhaitez lancer le type d'écran:
ou une autre sessionrc que vous aimez inventer, j'utilise le Session Work pour diverses choses
Ex: ~ / .screen / Workrc
Maintenant, nous sommes dans le moniteur de session, lorsque nous tapons:
le moniteur de session se détache et écrit «Work» dans le tube nommé. Par conséquent, le premier script sc avance et attache la session "Work".
La sc invoquée depuis la fermeture du moniteur de session.
Lorsque nous détachons toutes les sessions, nous sommes dans une boucle infinie, nous devons donc faire Ctrl-c pour quitter.
la source
Vous pouvez le faire avec un simple script shell comme
Supposons que vous ayez peu d'écrans ouverts. Supposons également que vous les ayez classés comme travail et données.
En appliquant
screen -ls
, vous devriez avoir vos écrans comme celui-ciPermet maintenant d'isoler les écrans détachés à l'aide de
grep
.Vous devriez obtenir quelque chose comme ça
Permet maintenant de sélectionner celles que vous voulez (par exemple, les données), en utilisant à nouveau
grep
.Cela isolera uniquement les écrans de données. Vous pouvez changer le mot-clé grep avec des expressions régulières pour rechercher pour personnaliser votre recherche.
Heureusement, le résultat est bien structuré et délimité par des tabulations. Permet maintenant de diviser les colonnes en champs et de choisir le 2ème champ en utilisant
cut
.Vous devrez appuyer sur
ctrl+v
puis sur tab pour insérer untab
après le paramètre délimiteur-d
. Les résultats devraient être comme ça.Emballez maintenant ceci dans une commande en utilisant les
...
guillemets et faites une boucle sur les résultats comme celui-ci. Vérifiez toujours les commandes formulées avant de l'exécuter. j'ai utiliséecho screen -r
Si tout se passe bien, essayez-le sans
echo
.Voila. Chaque écran dont vous vous détachez vous amène au suivant.
Bonne projection !!
la source
J'ai écrit un script de nœud pour permettre à l'utilisateur de sélectionner la session d'écran à laquelle se connecter à partir d'une liste, à l'aide des touches fléchées. Je l'ai fait un paquet npm. Vous pouvez le vérifier ici: écran-commande . Ou tout simplement
npm i -g screen-command
pour l'essayer, en supposant que node.js est déjà installé. Après avoir installé le package, utilisez la commandesc
pour invoquer la liste des écrans.J'espère que cela facilitera le passage à l'écran exact que vous souhaitez.
la source