J'aime utiliser screen -d -RRpour créer / attacher automatiquement à un écran donné. J'ai créé des fonctions bash pour vous faciliter la tâche ...
function mkscreen
{
local add=n
if [ "$1" == '-a' ]; then
add=y
shift;
fi
local name=$1;
shift;
local command="$*";
if [ -z "$name" -o -z "$command" ]; then
echo 'Usage: mkscreen [ -a ] name command
-a Add to .bashrc.' 1>&2;
return 1;
fi
if [ $add == y ]; then
echo "mkscreen $name $command" >> $HOME/.bashrc;
fi
alias $name="/usr/bin/screen -d -RR -S $name $command";
return 0;
}
function rmscreen
{
local delete=n
if [ "$1" == '-d' ]; then
delete=y
shift;
fi
local name=$1;
if [ -z "$name" ]; then
echo 'Usage: rmscreen [ -d ] name
-d Delete from .bashrc.' 1>&2;
return 1;
fi
if [ $delete == y ]; then
sed -i -r "/^mkscreen $name .*/d" $HOME/.bashrc;
fi
unalias $name;
return 0;
}
Ils créent un alias pour /usr/bin/screen -d -RR -S $name $command. Par exemple, j'aime utiliser irssi dans une session écran, donc dans mon .bashrc (sous ces fonctions), j'ai:
mkscreen irc /usr/bin/irssi
Alors je peux juste taper irc un terminal pour entrer dans irssi. Si l'écran 'irc' n'existe pas encore, il est créé et / usr / bin / irssi est exécuté à partir de celui-ci (qui se connecte automatiquement, bien sûr). S'il est déjà en cours d'exécution, je viens de le rattacher, en détachant de force toute autre instance qui y est déjà attachée. C'est assez sympa.
Un autre exemple est la création d'alias d'écran temporaires pour les perldocs au fur et à mesure que je les rencontre:
mkscreen perlipc perldoc perlipc
perlipc # Start reading the perldoc, ^A d to detach.
...
# Later, when I'm done reading it, or at least finished
# with the alias, I remove it.
rmscreen perlipc
L'option -a (doit être le premier argument) ajoute l'alias d'écran à .bashrc (donc il est persistant) et -d le supprime (ceux-ci peuvent être potentiellement destructeurs, donc utilisez à vos risques et périls). xD
Ajouter:
Un autre bash-ism que je trouve pratique lorsque je travaille beaucoup avec écran:
alias sls='/usr/bin/screen -ls'
De cette façon, vous pouvez lister vos écrans avec beaucoup moins de frappes. Je ne sais pas s'il slsentre en collision avec des utilitaires existants, mais ce n'était pas le cas à l'époque sur mon système, alors je me suis lancé.