Answers:
您可以查看$STY
变量(由screen命令设置的变量)。如果不是“”,那么您正在进行屏幕会话。
我在屏幕上
$ echo $STY
29624.pts-1.iain-10-04
$
我不在屏幕上
$ echo $STY
$
if test -n "$STY"; then printf "This is a screen session named '$STY'.\n"; else printf "This is NOT a screen session.\n"; fi
您可以查看$ TERM变量。
echo $TERM
如果是screen
会话,则术语变量应返回“ screen”。
root@deore:/volumes# echo $TERM
screen
Ctrl-a -d(退出屏幕)
root@deore:/volumes# echo $TERM
xterm
另请检查:https : //stackoverflow.com/questions/3472287/how-do-you-tell-if-the-current-terminal-session-is-in-gnu-screen
"$TERM" = "screen"
sudo
与$STY
选项不同,进入环境时似乎被保留了。
除非您更改了默认键绑定,否则您可以执行Ctrl+ a-> Ctrl+ t,如果您在屏幕上,它将显示时间。即使您将ssh:d移到其他地方,这也将起作用,这与其他建议不同。
中的caption
命令~/.screenrc
是区分屏幕会话的好方法。
我个人使用的是:
$ cat ~/.screenrc
caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"
它在屏幕底部添加了这样的一行:
Screen session on gbook (system load: 1,75 1,74 1,68) Lun 05.01.2015 13:01
第一部分(系统名称+负载)为绿色,日期为粉红色。有用且不容错过!
做一个screen -ls
。它会明确指出Attached
与Detached
状态。
附带示例:
$ screen -ls | grep tached
3132.pts-0.esavo00 (Attached)
分离的示例:
$ screen -ls |grep tached
3132.pts-0.esavo00 (Detached)