Screen 指令將 shell 標題設定為目前主機名

Screen 指令將 shell 標題設定為目前主機名

我想知道如何將 shell 標題設定為我們目前登入的主機的名稱。我的場景是這樣的。我登入主機 A,然後打開螢幕並建立幾個新窗口,並透過 ssh 連接到這些窗口上的不同主機。所以我希望底部的螢幕標題顯示它所在的目前主機。 我正在談論底部的這個特定字串

答案1

實現此目的的一種方法是使用LocalCommand的功能ssh。使用此方法,在成功連接到遠端主機後,將列印用於更改終端標題的轉義序列。

編輯或建立~/.ssh/config以包含以下內容:

Host *
    PermitLocalCommand yes
    LocalCommand printf '\033]0;%%s\007' '%h'

此方法的缺點是註銷遠端伺服器後標題仍保持變更。您可以透過以下方式解決這個問題:

printf '\033]0;%s\007' "$(uname -n)"

如果你想自動執行此操作,可以使用函數:

lssh () {
    /path/to/ssh "$@"
    printf '\033]0;%s\007' "$(uname -n)"
}

這個答案假設您的終端模擬器使用相同的轉義序列作為 XTerm。如果不是這種情況,您應該檢查特定終端仿真器的文件。

對於 GNU 螢幕,需要注意的是單一終端機視窗可能包含多個虛擬視窗。在這種情況下,您可以使用不同的轉義序列 ( \033k%s\033\\) 來設定單一虛擬視窗的內部標題。

相關內容