web-dev-qa-db-ja.com

接続しているホストのGnomeターミナルのタイトルを「user @ Host」に設定することはできますか?

端末のタイトルをuser@Hostに設定して、接続しているマシンがウィンドウのタイトルから簡単にわかるようにしたいと思います。 SSHまたはGNOMEターミナルからこれを行う方法はありますか?

22
Naftuli Kay

はい。ここでは、PS1を使用したbashの例を示します。

具体的には、エスケープシーケンス\[\e]0; __SOME_STUFF_HERE__ \a\]が重要です。より明確にするために、これを編集して別の変数に設定しました。

# uncomment for a colored Prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the Prompt
force_color_Prompt=yes

if [ -n "$force_color_Prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_Prompt=yes
    else
        color_Prompt=
    fi
fi

TITLEBAR='\[\e]0;\u@\h\a\]'
# Same thing.. but with octal ASCII escape chars
#TITLEBAR='\[\033]2;\u@\h\007\]'

if [ "$color_Prompt" = yes ]; then
    PS1="${TITLEBAR}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ "
else
    PS1="${TITLEBAR}\u@\h:\W\$ "
fi
unset color_Prompt force_color_Prompt

また、使用している端末プログラムやシェルによっては、xtermのタイトルを設定する方法がたくさんあることに注意してください。たとえば、KDEのKonsoleを使用している場合は、Settings-> Configure Profiles-> Edit Profile-> Tabsに移動して設定を変更することで、タイトル設定を上書きできます。 Tab title formatおよびRemote tab title format設定。

Konsole titlebar settings dialog

さらに、あなたはチェックアウトしたいかもしれません:

20
TrinitronX

リモートサーバーに変更を加えずにリモートサーバーのタイトルとコマンドプロンプトを設定するSSH bashスクリプトのバージョンを次に示します。

my_ssh.sh:

#!/bin/bash
SETTP='MY_Prompt="$HOSTNAME:$PWD\$ "'
SETTP="$SETTP;"'MY_TITLE="\[\e]0;$HOSTNAME:$PWD\a\]"'
SETTP="$SETTP;"'PS1="$MY_TITLE$MY_Prompt"'
ssh -t $1@$2 "export Prompt_COMMAND='eval '\\''$SETTP'\\'; bash --login"

./my_ssh.sh username hostnameを呼び出すことで呼び出すことができます

3
Austin Beer

以下は私のために機能します(おそらくgnome-terminalでのみ):

comp@home$ cat /usr/bin/ssh
#!/bin/bash    
echo -ne "\033]0;${1}\007"
ssh_bkup "$@"

ここで、ssh_bkupコマンドは、名前が変更された基本的な「ssh」であり、echoコマンドが現在の端末のタイトルを変更した直後に呼び出されます。

1

これはエイリアスバージョンです

SETTP='MY_Prompt="$HOSTNAME:$PWD\$ "'
SETTP="$SETTP;"'MY_TITLE="\[\e]0;$HOSTNAME:$PWD\a\]"'
SETTP="$SETTP;"'PS1="$MY_TITLE$MY_Prompt"'
SETPC="export Prompt_COMMAND='eval '\\''$SETTP'\\'; bash --login"

alias myssh='function _myssh(){ ssh -t $1@$2 $SETPC; };_myssh'
0
Pasquale