onglets lors de l'utilisation de «écran»


20

J'utilise Ubuntu 10.04. Après avoir installé screen:

sudo apt-get install screen

J'ai fait deux connexions ssh à deux serveurs distants en faisant les choses suivantes étape par étape (je fais les étapes suivantes selon le document ici ):

1. ouvrez une fenêtre terminale, exécutez la commandescreen

2. appuyez sur Ctrl+ A+ cpour créer une nouvelle console virtuelle

3. ssh usr@IP1

À ce stade, j'ai une console virtuelle qui montre que je me suis connecté au serveur distant (IP1).

4. appuyez sur Ctrl+ A+ cpour créer une nouvelle console virtuelle

5. ssh usr@IP2

Donc, maintenant je me suis connecté à deux serveurs distants (IP1 et IP2). Mais , je n'ai pas deux onglets sur une fenêtre de terminal, à la place, je dois utiliser Ctrl+ A+ pet Ctrl+ A+ npour basculer entre les deux consoles virtuelles dans une fenêtre de terminal.

N'est-ce pas ainsi qu'en utilisant screen, je pourrais avoir deux onglets dans une fenêtre de terminal, chaque onglet affichant une connexion à un serveur distant. Pourquoi je n'ai pas les onglets dans ma fenêtre de terminal?

Réponses:


26

Voici mon .screenrcque j'utilise partout pour voir mes screennuméros sous forme d' onglets en bas de la fenêtre et une ligne d'information au-dessus des onglets . La partie dont vous avez vraiment besoin se trouve sous "look and feel".

# skip the startup message
startup_message off

# go to home dir
chdir

# Automatically detach on hangup. 
autodetach on

# Change default scrollback value for new windows
defscrollback 10000

# start with visual bell as default
vbell on
vbell_msg "bell on %t (%n)"

# look and feel
caption always "%{= bb}%{+b w}%n %t %h %=%l %H %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"

activity "Activity in %t(%n)"

shelltitle "shell"
shell -$SHELL

Vous pouvez également ajouter les éléments suivants pour ajouter automatiquement deux onglets lors de la screencréation initiale de:

screen ssh usr@IP1
screen ssh usr@IP2

En outre, le contenu d'état peut être mis à jour à l'aide de codes d'échappement émis à partir de commandes et d'invites du shell. Par exemple, je mets à jour le statut avec le répertoire courant en utilisant ceci dans mon .bashrc:

if [ 'screen' == "${TERM}" ]; then
  export PROMPT_COMMAND='printf "\e]2;%s %s\a" "${USER}" "${PWD}" '
fi

4
Je me suis toujours demandé pourquoi il fallait invariablement une configuration hardcore pour que l'écran ne craigne pas de fonctionner. PS Essayez shelltitle "$ |shell:"d'ajouter le nom de la commande au titre.
amphetamachine

7

Lorsque vous appuyez sur Ctrl+ aet que "vous pouvez voir les "onglets" de l'écran, ils ne sont pas censés être des onglets sur l'interface graphique de votre terminal, vous pouvez le faire manuellement en créant un nouvel onglet sur l'interface graphique du terminal que vous utilisez, puis exécutez sur le nouveau onglet screen -rpour revenir à votre session d'écran puis accédez à votre session désirée avec Ctrl+ aet un numéro ou "pour voir un menu avec tous vos onglets.

Vous pouvez donner un nom à chacun de vous "onglets" d'écran en appuyant sur Ctrl + a puis A .


1
Doit avoir besoin de s'exécuter screen -r -xsi cet écran est déjà attaché dans le premier onglet.
Arcege

3

Je suppose que vous confondez les onglets des terminaux graphiques comme konsole avec ceux à l'écran. Dans l'écran, vous ne changez que le contenu d'une fenêtre avec les ^ A-Kombinations mentionnés. Cela fonctionne également sur un environnement non graphique.


2

Vous pouvez configurer screenpour afficher une ligne d'état qui peut vous informer de beaucoup de choses, je suppose aussi sur quelle fenêtre d'écran vous êtes, mais je n'utilise pas de ligne d'état, donc je ne peux pas le dire avec certitude.

Pour ce que je sais, screenne créez pas d'onglets, mais vous devez basculer entre les écrans avec la commande que vous avez indiquée, ou comme je préfère Ctrl- A 1, Ctrl- A 2, etc.

Pour avoir plus d'un onglet, vous pouvez utiliser des gnome-terminalfonctionnalités, également sans écran: Ctrl- Shift- Tcréera un nouvel onglet, et Alt- 1, Alt- 2, etc. basculera entre les onglets.

Je demande également pourquoi n'exécutez-vous pas d'écran sur le serveur, donc en utilisant une seule connexion ssh (mais dans ce cas sans aucun onglet).


2

Je sais que c'est assez ancien, mais puisque Google m'a conduit ici, d'autres peuvent le lire aussi. Voici donc mon hack de 0,02 $ pour imiter les onglets dans une session "écran":

Créez une ligne d'état avec:

  • à gauche: date / heure
  • à droite: nom d'hôte local + charge moyenne
  • au milieu: les noms de l'écran "windows"
    • fenêtre actuelle: texte rouge sur fond noir
    • autres fenêtres: texte blanc sur la couleur d'arrière-plan de la ligne d'état (bleu, ici)

Mettez ~/.screenrc:

hardstatus alwayslastline "%{kb}%{c}[%{w}%D %d/%m/%Y %c:%s%{c}] %{w}%-w%{rk}%n %t%{wb}%+w %=%{c}[%{W}%H %l%{c}]"

(Peut-être que cela vaut plus de 0,02 $ parce que j'ai eu beaucoup de mal à ce sujet ;-)

Pour passer de la fenêtre actuelle à la précédente / suivante avec les touches F6/ F7:

bindkey -k k6 prev
bindkey -k k7 next
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.