Мне нравится использовать 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
сталкивается ли с какими-либо существующими утилитами, но в то время в моей системе этого не было, поэтому я пошел на это.