J'aime utiliser screen -d -RR
pour 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 sls
entre en collision avec des utilitaires existants, mais ce n'était pas le cas à l'époque sur mon système, alors je me suis lancé.