是否有可能检查我现在是否在屏幕上? 我需要它来确定是否按Ctrl + D将断开我从服务器或只是closures当前屏幕。 谢谢。
你可以看看$STY
variables。 如果不是“”那么你正在屏幕会话中。 我在屏幕上
$ echo $STY 29624.pts-1.iain-10-04 $
我不在屏幕上
$ echo $STY $
你可以看看$ TERMvariables。
echo $TERM
如果是screen
会话,术语variables应该返回“屏幕”。
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
除非您更改了默认的键绑定,否则您可以执行Ctrl-a Ctrl-t
,这将显示时间,如果您在屏幕中。 即使你有ssh:d别的地方,这个也行,不像其他的build议。
~/.screenrc
的caption
命令是区分屏幕会话的好方法。
我个人使用这个:
$ 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
第一部分(系统名称+加载)为绿色,date为粉红色。 有用的,很难错过!
我find了另一个解决scheme:
修改.screenrc
,所以我的屏幕会话看起来完全不同于普通的terminal。
screen -ls
查看您的会话和
screen -r sessioninfo
重新连接到断开的连接,如果分离。
screen -D -r sessioninfo
重新连接到一个断开连接。
做一个screen -ls
。 它将明确指出“ Attached
与“ Detached
状态。
附加示例:
$ screen -ls | grep tached 3132.pts-0.esavo00 (Attached)
分离示例:
$ screen -ls |grep tached 3132.pts-0.esavo00 (Detached)