這個簡短的指南解釋瞭如何找出你是否在 屏幕 是 Linux 會話嗎?您可能在開始時已經註意到 復用器 當前shell名稱、主機名、當前日期和時間等會話詳細信息清晰地顯示在底部的狀態欄中,如下圖所示。

Tmux 會話詳細信息

但是,您不會在屏幕會話期間看到此類詳細信息。這看起來像我的 Ubuntu 系統上的屏幕會話:

屏幕會話

你能看到區別麼?屏幕會話和常規會話看起來完全一樣。 讓我們運行“screen -ls”命令來列出正在運行的屏幕會話。

$ screen -ls

樣本輸出:

屏幕會話列表

屏幕會話列表

看?我在屏幕會話中,但它看起來像一個正常會話。底部的狀態欄中不顯示任何內容。我如何知道我是否在屏幕會話中工作?這就是我們現在正在努力尋找的。

內容

  1. 檢查您在 Linux 上是否有屏幕會話
    1. 方法1-使用“echo”命令
    2. 方法2-使用屏幕前綴鍵
    3. 方法 3-使用字幕命令
    4. 方法 4 – 為屏幕會話設置另一個 Bash 提示符
    5. 請幫助我們幫助您:

檢查您在 Linux 上是否有屏幕會話

有幾種方法可以驗證您是否處於 Screen 會話中。這裡有三種方法。

方法1-使用“echo”命令

要檢查您是否在 Screen 會話中,只需運行以下命令:

$ echo $STY

如果您正在執行屏幕會話,您將看到類似於以下內容的輸出:

18704.pts-0.ostechnix

這是檢查您是否正在參加屏幕會議的另一種方法:

$ echo $TERM

顯示條款 “屏幕” 在輸出端。

樣本輸出:

screen.xterm-256color

檢查您在 Linux 上是否有屏幕會話

檢查您在 Linux 上是否有屏幕會話

如果沒有運行屏幕會話,則不會顯示第一個命令。 在第二個命令中,“screen”一詞不會出現在輸出中。結束或分離屏幕會話並再次運行上述命令。您應該會看到類似於以下內容的輸出:

檢查屏幕會話

檢查屏幕會話

看?不是屏幕會話。

僅當您在本地系統上運行屏幕會話時,上述兩個命令才有效。如果您在本地系統上啟動 Screen 會話,然後通過 SSH 連接到網絡上的另一個系統,它將無法正常工作。

在這種情況下,您可以使用下面顯示的第二種方法。

方法2-使用屏幕前綴鍵

按下以查看您是否在屏幕會話中。 Ctrl + 一個 在那之後 Ctrl + t 鑰匙。如果您正在參加屏幕會議,將顯示時間和主持人名稱。

請參閱下面的演示。

使用 Screen 前綴鍵查看您是否在 Screen 會話中

使用 Screen 前綴鍵查看您是否在 Screen 會話中

正如您在上面的輸出中看到的

  • 首先,我啟動了一個屏幕會話並按下 Ctrl + a 和 Ctrl + t 來查看我是否在屏幕會話中。
  • 然後按 斷開與屏幕會話的連接 Ctrl + 一個 什麼時候 d..
  • 最後,重新連接到 Screen 會話並按 Ctrl + a 和 Ctrl + t 仔細檢查您是否在 Screen 會話中。

即使您在其他地方有 SSH 連接,此方法也有效。

方法 3-使用字幕命令

如果你不想每次都按鍵 ~/.Screenrc 文檔。如果此文件不可用,請創建它。

$ nano ~/.screenrc

添加代碼。

caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"

保存並關閉文件。

從現在開始,每次啟動 screen session 時,都會在終端窗口底部看到一個小通知欄(包括主機名、日期和時間、系統負載等),如下圖所示。

Screen session on ubuntuserver (system load: 0.00 0.00 0.00)        Sat 22.02.2020 12:37

使用 Caption 命令在終端窗口底部顯示屏幕會話詳細信息

使用 Caption 命令在終端窗口底部顯示屏幕會話詳細信息

當您結束屏幕會話時,此通知欄會消失。

方法 4 – 為屏幕會話設置另一個 Bash 提示符

這是添加幾行代碼的另一種方法,可以更輕鬆地識別您的 Screen 會話。 ~/.bashrc 文檔。 事實上,這不是推薦的方法.. 如果像 zsh 這樣的另一個 shell 從當前 shell 繼承,可能會出現許多不需要的問題。這僅用於教育目的。使用風險自負!

首先,進行當前備份 ~/.bashrc 文檔:

$ cp ~/.bashrc ~/.bashrc.bak

只需為常規會話和屏幕會話設置不同的 Bash 提示名稱,如下所示。例如,我的 ~/.bashrc 文檔。

if [ -z $STY ]
then
        PS1="This is normal session:~$ "
else
        PS1="This is Screen session:~$ "
fi

註銷然後重新登錄。在普通會話和屏幕會話之間切換時,終端的提示名稱會根據設置而變化。

為屏幕會話設置不同的 Bash 提示

為屏幕會話設置不同的 Bash 提示

此外,重命名 Bash 提示也不是一個好習慣。相反,請使用上述方法之一來查看您是否處於 Screen 會話中。

相關閱讀:

  • 如何在 Linux 上自定義 Bash 提示符

如果有幫助。

資源:

  • 服務器故障論壇

謝謝你的到來!

請幫助我們幫助您:

  • 訂閱電子郵件通訊: 立即註冊
  • OSTechNix 支持: 通過貝寶捐款
  • 下載免費電子書和視頻: Trade Pub OS Tech Nix
  • 詢問: 紅迪網 | Facebook | 推特 | 領英 | RSS訂閱

祝你今天過得愉快! !!

CLIGNUScreen Linux 屏幕需要終端多路復用器