Мені подобається використовувати screen -d -RR
для автоматичного створення / приєднання до певного екрану. Я створив функції bash, щоб полегшити ...
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;
}
Вони створюють псевдонім до /usr/bin/screen -d -RR -S $name $command
. Наприклад, я люблю використовувати irssi для екранного сеансу, тому в моєму .bashrc (під цими функціями) у мене є:
mkscreen irc /usr/bin/irssi
Тоді я можу просто набрати irc
термінал, щоб потрапити в irssi. Якщо екран 'irc' ще не існує, він створюється і з нього запускається / usr / bin / irssi (який, звичайно, підключається). Якщо вона вже запущена, я просто приєднаюся до неї, насильно від'єднуючи будь-який інший екземпляр, який уже приєднаний до неї. Це досить приємно.
Ще один приклад - створення тимчасових псевдонімів для perldocs, коли я стикаюся з ними:
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 (повинен бути першим аргументом) додає псевдонім екрана до .bashrc (тому він є стійким) і -d видаляє його (вони можуть бути руйнівними, тому використовуйте на власний ризик). xD
Додайте:
Ще один химерність, що мені здається зручним при роботі з екраном:
alias sls='/usr/bin/screen -ls'
Таким чином ви можете перелічити ваші екрани з набагато меншою кількістю натискань клавіш. Я не знаю, чи sls
стикаються якісь існуючі утиліти, але в той час у моїй системі це не відбулося, тому я пішов на це.