Eu gosto de usar screen -d -RR
para criar / anexar automaticamente a uma determinada tela. Criei funções bash para tornar mais fácil ...
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;
}
Eles criam um alias para /usr/bin/screen -d -RR -S $name $command
. Por exemplo, gosto de usar o irssi em uma sessão de tela, portanto, em meu .bashrc (abaixo dessas funções), tenho:
mkscreen irc /usr/bin/irssi
Então eu posso apenas digitar irc
um terminal para entrar no irssi. Se a tela 'irc' ainda não existe, ela é criada e / usr / bin / irssi é executado a partir dela (que se conecta automaticamente, é claro). Se já estiver em execução, simplesmente reconecto-o, desanexando à força qualquer outra instância que já esteja anexada a ele. É muito bom.
Outro exemplo é a criação de aliases de tela temporários para perldocs à medida que os encontro:
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
A opção -a (deve ser o primeiro argumento) anexa o alias da tela a .bashrc (portanto, é persistente) e -d o remove (eles podem ser potencialmente destrutivos, portanto, use por sua conta e risco). xD
Acrescentar:
Outro bashismo que acho conveniente ao trabalhar muito com tela:
alias sls='/usr/bin/screen -ls'
Dessa forma, você pode listar suas telas com muito menos teclas. Não sei se sls
colide com algum utilitário existente, mas não colidia no momento em meu sistema, então fui em frente.