サーバーに接続している場合、タブのタイトルはdebian 8
変更できません。自分で確認してください。gnome-terminal
$ ssh deb6-server
$ echo -en '\e]0;test\a'
# title changes
$ echo $TERM
xterm-256color
$ cat /etc/issue
Debian GNU/Linux 6.0 \n \l
$ exit
$ ssh deb8-server
# here the title changes to USER@HOST: CWD
$ echo -en '\e]0;test\a'
# title doesn't change
$ echo $PROMPT_COMMAND
$ echo -en '\e[0;34mtest\e[0m\n'
test # written in blue
$ echo $TERM
xterm-256color
$ cat /etc/issue
Debian GNU/Linux jessie/sid \n \l
本当に他の場所を見なければならないのか分からない。どんなアイデアがありますか?
答え1
ESC ] 0
ローカルで使用しているときにエスケープシーケンスがターミナルタイトルを変更すると、SSHを介しても機能します。 SSH はアプリケーションと端末間のトラフィックを変更しません。
スクリーンマルチプレクサ(screenやtmuxなど)でアプリケーションを実行すると、エスケープシーケンス自体が解釈され、他のシーケンスが端末に送信されます。これはSSHとは関係ありませんが、ローカルシステムではなくリモートシステムでスクリーンを使用する方が良いかもしれません。
リモートシステムのシェルは、コマンドを起動したり新しいプロンプトを表示したりするときにリモートヘッダーを設定するように設定できます。これは通常、プロンプトの一部としてタイトル変更エスケープシーケンスを印刷することによって行われますので、変数の内容を確認してくださいPS1
。
printf '%s\n' "$PS1" | cat -v
リモートシェルがbashの場合でも確認してくださいPROMPT_COMMAND
。DEBUG
罠:
echo "$PROMPT_COMMAND"
trap -p DEBUG
リモートシェルがzshの場合は、PS1
(RPS1
まれに)およびprecmd
機能preexec
を確認してください。
印刷 -rl $PS1 $RPS1 $functions[precmd] $functions[preexec]