Linux - screen
Alasta 10 Février 2014 linux Apps Bash cli Linux Open Source
Description : Voici une présentation de Screen.
Description :
Screen est un multiplexeur de terminaux (tout comme tmux) permettant d'ouvrir plusieurs terminaux dans une même console, de passer de l'un à l'autre et de les détacher. Extrêmement pratique la session reste en tâche de fond même lorsqu'on n'est plus connecté au serveur.
Un petit inconvénients c'est que de base screen ne gère pas les splits verticaux.
Installation :
yum -y install screen
Fichier de configuration :
Je ne ferai pas l'affront de détailler le fichier de configuration, car il y a des tas de tutos sur Internet.
Le fichier de configuration est .screenrc dans son home.
deflogin on autodetach on vbell off vbell_msg " !!! " hardstatus off defscrollback 44000 nethack on #Combinaison d echappement a la place de Ctrl + a car utilise en bash escape ^zz caption always "%{+b rk}%H%{gk}|%c@%{yk}%d.%m.%Y|%72=Load: %l %{wk}" hardstatus alwayslastline "%{= g} %{= w}%-Lw%{=r}%n%f* %t%{-}%+LW" termcapinfo xterm ti@:te@ #Racourcis # ne fonctionne pas toujours avec -k k1 (F1) bindkey "^[[11~" select 1 #bind F1 a tab 1 bindkey "^[[12~" select 2 #bind F2 a tab 2 bindkey "^[[13~" select 3 #bind F3 a tab 3 bindkey "^[[14~" select 4 #bind F4 a tab 4 bindkey "^[[15~" title #bindkey "^[[15~" split #bind F5 to split current screen bindkey -k k6 split bindkey -k k7 focus bindkey -k k8 remove bindkey -k k9 screen #binf F9 a creation de tab = Ctrl + a + c bindkey -k k; windowlist -b #bind F10 pour lister les tabs disponibles bindkey -k F1 kill # bind f11 to kill terminal bindkey -k F2 quit # bind f12 to quit screen bindkey -k kP prev #PageUp : tab precedent bindkey -k kN next #PageDown : tab suivant #Bash screen -t bash #path fabric chdir "$HOME/fabric" screen -t fabric 1 #set le cwd chdir $HOME #On fait le focus sur le tab 0 select 0
Commandes :
Lancer screen :
screen
Quitter screen :
Ctrl + d
Détacher "screen" (pour le récupérer plus tard) :
Ctrl + a + d
Attention : Ctrl + a est la combinaison par défaut, dans mon .screenrc c'est Ctrl + z (partie escape)
Lister les sessions screen sur le serveur :
screen -ls
ou
screen -list
Fournit une liste contenant le #_PID.Nom_de_session
Récupérer une session screen :
screen -r #_PID
ou
screen -r Nom_de_session
Créer une nouvelle session :
screen -S Production
Supprimer les sessions screen mortes (dead dans le screen -ls).
screen -wipe
Tuer une session spécifique.
screen -X -S Nom_de_session quit
Commande spécifique dans une session screen :
Ctrl + a + : + commande
Commande peut être : :screen, :title, :split, :focus, ...
Enregistrer les sorties d'écran dans un fichier :
Ctrl + a :log on
Par défaut il va génére un fichier de log screenlog.# ou # correspond au numéro du tab/window. La même commande avec off pour stopper le log.
Pour que le titre de votre tab soit le hostname de la machine distante lors d'une connexion SSH, il suffit d'ajouter le code suivant dans le .bash_profile de l'utilisateur distant.
case "$TERM" in screen*) printf %bk%s%b%b \033 "${HOSTNAME%%.*}" \033 \0134;; esac
Fichier source de .screenrc sur [GitHub]