这个简短的指南解释了如何检查你是否在 屏幕 会话与否在 Linux 中。 您可能已经注意到,当您启动一个 多路复用器 session,你会在底部的状态栏中明显看到 session 的详细信息,例如当前的 SHELL 名称、主机名和当前日期和时间,如下图所示。
Tmux 会话详细信息
但是,当您在 Screen 会话中时,您不会看到此类详细信息。 这是屏幕会话在我的 Ubuntu 系统上的样子:
屏幕会话
您看得出来差别吗? 屏幕会话和正常会话看起来完全一样。 让我们运行“screen -ls”命令来列出正在运行的屏幕会话。
$ screen -ls
样本输出:
列出屏幕会话
看? 我在屏幕会话中,但它看起来像正常会话。 底部的状态栏中没有任何指示。 您如何知道您是否在 Screen 会话中工作? 这就是我们现在要发现的。
检查您是否在屏幕会话中或不在 Linux 中
有几种方法可以验证我们是否在 Screen 会话中。 这里我给出了三种方法。
方法 1 – 使用“echo”命令
要检查您是否处于 Screen 会话中,只需运行以下命令:
$ echo $STY
如果您在 Screen 会话中,您将看到如下输出。
18704.pts-0.ostechnix
这是检查您是否在 Screen 会话中的另一种方法:
$ echo $TERM
你会看到术语 “屏幕” 在输出中。
样本输出:
screen.xterm-256color
检查您是否在 Linux 中的屏幕会话中
如果没有正在运行的屏幕会话,您将看不到第一个命令。 对于第二个命令,输出中不会出现“屏幕”一词。 只需退出或从屏幕会话中分离并再次运行上述命令。 您将看到如下所示的输出。
检查屏幕会话
看? 我们不在 Screen 会话中。
仅当您处于本地系统上的正在运行的屏幕会话中时,上述两个命令才有效。 如果您在本地系统中启动 Screen 会话,然后通过 SSH 访问网络上的其他系统,它将无法工作。
在这种情况下,您可以使用下面给出的第二种方法。
方法 2 – 使用屏幕前缀键
要检查我们是否在屏幕会话中,只需按 Ctrl+a 进而 Ctrl+t 键。 如果您在 Screen 会话中,这将显示时间和主机名。
看看下面的演示。
使用 Screen 前缀键检查您是否在 Screen 会话中
正如您在上面的输出中一样,
- 首先,我启动了一个 Screen 会话并按 Ctrl+a 和 Ctrl+t 键来检查我是否在 Screen 会话中。
- 然后我通过按从屏幕会话中分离出来 Ctrl+a 和 d.
- 最后我重新连接到 Screen 会话并按 Ctrl+a 和 Ctrl+t 再次检查我是否在 Screen 会话中。
即使您已通过 SSH 连接到其他地方,此方法也可以使用。
方法 3 – 使用 Caption 命令
如果你不喜欢每次都按键,你可以在你的 ~/.screenrc 文件。 如果此文件不可用,只需创建它。
$ nano ~/.screenrc
添加代码:
caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"
Save 和 close 文件。
从现在开始,每当您启动 Screen 会话时,您都会在终端窗口底部看到一个小通知栏(包括主机名、时间和日期、系统负载等),如下所示。
Screen session on ubuntuserver (system load: 0.00 0.00 0.00) Sat 22.02.2020 12:37
使用 Caption 命令在终端窗口底部显示屏幕会话详细信息
此通知栏将在您退出 Screen 会话后消失。
方法 4 – 为 Screen 会话设置不同的 Bash 提示
这是另一种使 Screen 会话易于识别的方法,方法是在 ~/.bashrc 文件。 其实这不是推荐的方法. 如果像 zsh 这样的其他 shell 继承了您当前的 shell,可能会导致许多不必要的问题。 这仅用于教育目的。 需要您自担风险使用它!
首先,备份您当前的 ~/.bashrc 文件:
$ cp ~/.bashrc ~/.bashrc.bak
只需为普通会话和屏幕会话设置不同的 Bash 提示名称,如下所示。 为了 example 我在我的 ~/.bashrc 文件。
if [ -z $STY ] then PS1="This is normal session:~$ " else PS1="This is Screen session:~$ " fi
注销并重新登录。当您在正常会话和屏幕会话之间切换时,您的终端提示名称将根据您的设置进行更改。
为 Screen 会话设置不同的 Bash 提示
同样,更改 Bash 提示名称不是一个好习惯。 相反,只需使用上述任何一种方法来检查您是否处于 Screen 会话中。
相关阅读:
- 如何在 Linux 中自定义 Bash 提示
希望这可以帮助。
资源:
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!