Comment démarrer l'écran avec plusieurs divisions directement depuis la ligne de commande?

10

J'utilise screen après m'être connecté avec ssh à mon serveur. À partir de maintenant, je configure manuellement les divisions dans la fenêtre de l’écran et je lance les commandes à la main, comme illustré dans la capture d’écran suivante:

  • La partie supérieure doit exécuter tail -n 1 -f /home/server/log/access.log .
  • La partie inférieure droite doit exécuter htop
  • La partie inférieure gauche devrait simplement être une invite de commande

Y a-t-il un moyen de le faire via des commandes / scripts, donc je n'ai pas à le refaire chaque fois à la main?

    
posée Videonauth 28.11.2017 - 02:15
la source

2 réponses

14

Pour le cas spécifique des arrangements de fenêtres, il existe une commande écran pour les enregistrer dans un fichier: layout dump . De man screen :

layout dump [filename]

Write to a file the order of splits made in the current layout. This is
useful to recreate the order of  your  regions  used  in  your  current
layout.  Only  the  current  layout is recorded. While the order of the
regions are recorded, the sizes of  those  regions  and  which  windows
correspond  to  which regions are not. If no filename is specified, the
default is layout-dump, saved in the directory that the screen  process
was  started in. If the file already exists, layout dump will append to
that file. As an example:

           C-a : layout dump /home/user/.screenrc

will save or append the layout to the user's .screenrc file.

Une fois l’arrangement effectué manuellement, appuyez sur Ctrl a : , puis tapez layout dump /path/to/some/file . La mise en page sera enregistrée dans /path/to/some/file et vous pourrez ensuite la restaurer dans une nouvelle session avec:

screen -c /path/to/some/file
    
réponse donnée muru 28.11.2017 - 02:45
la source
8

Je suis venu avec ce qui suit pour créer la sortie indiquée dans ma question et en suivant L’excellente réponse de @ muru . En utilisant layout dump , j'ai reçu les informations suivantes:

split
focus
split -v
focus
  

Remarque: L’expansion Tilde ( ~ ) ne fonctionne pas avec layout dump . Par exemple, au lieu de ~/layout.dmp , vous devez utiliser /home/<username>/layout.dmp .

D'où j'ai alors créé le .screenrc

suivant
# create the top screen
chdir /home/server/log
screen -t "Apache Log" tail -n 1 -f access.log
# split the screen and focus onto the new created space
split
focus
#create the bash
chdir /home/server/log
screen
# split vertically and focus onto the new area
split -v
focus
# create the htop screen
screen -t "Htop" htop
# focus twice to end up with the bash area active
focus
focus

Il ne me reste plus qu'à taper screen et à lancer ma mise en page souhaitée. Je laisse cela ici comme exemple pour ceux qui se posent la question, mais n'oubliez pas de donner la réponse à @ muru, puisque c'est lui qui m'a permis de résoudre ce problème.

    
réponse donnée Videonauth 28.11.2017 - 03:26
la source

Lire d'autres questions sur les étiquettes