GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je enregistrer ma session à plusieurs onglets dans un terminal xfce4 ?

Vous pouvez créer un raccourci avec des onglets prédéfinis comme celui-ci :

Terminal --geometry=100x40 --hide-menubar --hide-toolbars -T "Host1" -e "ssh -t [email protected]" --tab -T "Host2" -e "ssh -t [email protected]"

Mais quelque chose comme ça dans la ligne de commande de la boîte de dialogue de l'éditeur de raccourcis.

Pour que chaque onglet ait un répertoire de travail différent, vous pouvez procéder comme suit :

Terminal --working-directory=$HOME/tmp --tab --working-directory=$HOME/src --tab --working-directory=$HOME/opt

Non pas que le premier n'ait pas de --tab avant, ce qui l'associe à la nouvelle fenêtre de niveau supérieur. Puis deux onglets supplémentaires avec des répertoires de travail différents.

Essayez d'éviter d'utiliser ~ expansion, car il s'agit d'une fonctionnalité du shell qui peut ne pas fonctionner dans d'autres contextes (comme les lanceurs personnalisés).


Cette solution déploie une fenêtre avec plusieurs onglets et processus.

J'ai créé un script de démarrage (xfce4-terminal-startup.sh ),

#!/bin/bash
xfce4-terminal --maximize --title='Neovim' -x bash -c "nvr -s; exec bash"
xfce4-terminal --tab --title='psql' -x bash -c "psql -d zzz; exec bash"
xfce4-terminal --tab --title='Cypher-shell' -x bash -c "cd /mnt/Vancouver/Programming/data/hmdb; exec bash"
xfce4-terminal --tab --title='Cycli' -x bash -c "source activate py35 && cycli -P *** -u *** -p ***; exec bash"
xfce4-terminal --tab --title='Py3' -x bash -c "source activate py35 && python; exec bash"
xfce4-terminal --tab --title='bc' -x bash -c "bc; exec bash"
xfce4-terminal --tab --title='ud' -x bash -c "pacaur -Syu; exec bash"

qui, une fois exécuté, démarre xfce4-terminal, le maximise et lance les différents programmes comme indiqué.

Concernant "exec bash", voir ci-dessus :

  • https://unix.stackexchange.com/questions/47271/prevent-gnu-screen-from-terminating-session-once-executed-script-ends*https://unix.stackexchange.com/questions/75902 /comment-exécuter-xfce-terminal-avec-différentes-commandes-par-onglet-et-continuer-à-utiliser-les-onglets

C'est-à-dire :si vous démarrez une fenêtre dans l'écran qui exécute une commande, gardez cette fenêtre ouverte ...

Voici un GIF animé, montrant ces onglets en action !

[lien vers une image plus grande]

  • Référence : https://askubuntu.com/questions/421421/how-can-i-make-a-terminal-with-3-tabs-appear-after-startup/422121#422121

Mettre à jour

Ceci est mon xfce4-terminal-startup.sh actuel script (vous pouvez le télécharger ici :https://persagen.com/files/misc/xfce4-terminal-startup.sh) :

#!/bin/bash
# vim: set filetype=sh :
# vim: syntax=sh

# /mnt/Vancouver/programming/scripts/xfce4-terminal-startup.sh

# https://web.archive.org/web/20110314180918/http://www.davidpashley.com/articles/writing-robust-shell-scripts.html
# https://stackoverflow.com/questions/2870992/automatic-exit-from-bash-shell-script-on-error/2871034#2871034
set -e

# ----------------------------------------------------------------------------
# This one first:

# Python as basic calculator: 1/3; import math; 2*math.pi; ...
xfce4-terminal --maximize --title='calculations' -x bash -c "python; exec bash"

# ... then (these will open as child tabs in the parent terminal window, above):

# Open my (current) project directory:
xfce4-terminal --tab --title='bash'  -x bash -c "cd /mnt/Vancouver/projects/ie/claws/; pwd; ls -l; echo ''; exec bash"

# Start Neovim:
xfce4-terminal --tab --title='neovim' -x bash -c "nvr -s; exec bash"

# Open ripgrep tab (echo sample command), for fast searches in that director:
xfce4-terminal --tab --title='ripgrep' -x bash -c "cd /mnt/Vancouver/domains/PERSAGEN.com/2.0/; echo rg . -i -e \'1903.03243\'; exec bash"

# Open an Arch Linux update tab:
xfce4-terminal --tab --title='ud' -x bash -c "yay -Syu; exec bash"

Linux
  1. Comment savoir si je suis dans une session Tmux à partir d'un script bash ?

  2. Vim :Comment ouvrir plusieurs fichiers dans différents onglets ?

  3. Comment puis-je utiliser des commandes aliasées avec xargs ?

  4. Comment puis-je tuer le port TCP 16969 dans Bash ?

  5. Comment puis-je obtenir des valeurs uniques à partir d'un tableau dans Bash ?

Comment puis-je rappeler l'argument de la commande bash précédente ?

Comment écrire une chaîne de plusieurs lignes en utilisant Bash avec des variables ?

Comment puis-je convertir des espaces en tabulations dans Vim ou Linux ?

Comment supprimer plusieurs fichiers à la fois dans Bash sous Linux ?

Comment modifier les lignes précédentes dans une commande à plusieurs lignes dans Bash ?

Comment puis-je enregistrer entièrement toutes les actions des scripts bash ?