リモートマシンにssh-ingして戻るときにターミナルの色を変更する


8

リモートマシンにSSHで接続するときに端末の色を自動的に変更し、SSHセッションを終了するときにデフォルトの色に戻す方法を探しています。簡単に言うと、リモートマシンで作業しているときに別の色が必要です。

何か案が?

PS:iTerm2を使用したくないが、標準のTerminal.app

回答:


9

以下を使用しています。

次のmyssh内容のシェルコマンドを作成します。

PROFILE="$1";shift;
DEF="Basic" #the default profile name
echo "tell app \"Terminal\" to set current settings of first window to settings set \"${PROFILE}\""|osascript
ssh $@
echo "tell app \"Terminal\" to set current settings of first window to settings set \"${DEF}\""|osascript

次のように、接続にbashエイリアスを使用します。

alias ssweb='myssh Homebrew user@web.example.com'
alias ssmail='myssh Ocean me@mail.example.com'

Webサーバーにsshしたいときsswebは、ターミナルに書き込むだけで"Homebrew"プロファイルを取得しました。sshセッションが終了すると、AppleScriptは「基本」に戻ります。

エイリアスは$ HOME / .profileまたは同様のbash-startupファイルに配置する必要があります。

「Homebrew」、「Ocean」などは、Terminal.app設定からの設定プロファイルです。さまざまなフォント、エンコーディングなどを設定することもできます。

もちろん、次のように(エイリアスなしで)直接使用できます。

myssh Pro user@another.machine.example.com
       ^        ^
       |        ssh command arguments
       terminal profile name

iterm2でこれをどのように行いますか?ありがとう!
Cosu

私はそれがあるいくつかのテキストを選択した後、「VIM」のときITERMを使用して停止して、カットの代わりにコピーの選択を...;(だから、残念ながら、私はiTerm2ソリューションについてどんな考えを持っていない。
jm666

ありがとうございました!私はこれを行うためにさまざまな無愛想な方法をしばらく見てきましたが、あなたの方法はシンプルで柔軟です。ハードコードされた設定セットで個々のスクリプトの束をまき散らすのではなく、異なるエイリアスからプロファイルとコマンドを取得できる小さなフレームワークを開発することのボーナスポイント。
オクターン2012年

2

私はすでにいくつかの答えがあることを知っていますが、ここに代替があります:

背景色を変更する一般的な方法はありませんが、ウィンドウタイトルを変更する標準的な方法を使用できます。「Unixサーバー」以外の多くのデバイス(ネットワークデバイス、ルーター、スイッチ、ファイアウォールなど)にログインしている場合は、それらのシェルを使用する必要があり、独自のシェル変数をインストールできません。だから、ここに別の方法があります:

function ssh() {
  H=$(echo $@ | sed -e 's/.*@//g;s/ .*//g')
  echo $@ | grep '@' && U=$(echo $@ | sed -e 's/@.*//g;s/.* //g')
  echo -ne "\033]0;${U:=$(whoami)}@${H%%.*}\007"
  unset H
  unset U
  /usr/bin/ssh $@
}

これをに追加します.bashrc

基本的に、パスを調べるよりも関数とエイリアスが優先されるため、これはsshコマンドを使用し、「@」の前後のテキストを使用してHOST変数とUSER変数を設定し、HOST変数とUSER変数を使用して、ASCIIコードをエコーし​​ます。ターミナルとタイトルの設定に使用されます。

これには、「ssh -l user host.blah」ではなく、「ssh user@host.blah」を使用する必要があります。

ユーザー名を指定しない場合、それは現在のユーザー名として設定されます(明らかに、カスタムの.ssh / config(私が頻繁に使用します)を使用している場合)これは正確ではありませんが、それで十分だと思います役に立つ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.