ホスト名に基づいて端末の背景色を変更したいのですが。この理由は主に、自分がどのサーバーにいるのかを思い出させるための特別な方法があるためです。
ローカルマシンにいる場合は標準のau子の背景を使用し、sshを本番Webサーバーまたは指定可能な他のホストに変更すると赤に変わりますか?
ホスト名に基づいて端末の背景色を変更したいのですが。この理由は主に、自分がどのサーバーにいるのかを思い出させるための特別な方法があるためです。
ローカルマシンにいる場合は標準のau子の背景を使用し、sshを本番Webサーバーまたは指定可能な他のホストに変更すると赤に変わりますか?
回答:
ssh / configのlocalcommandオプションを使用して、エイリアスが使用されるたびにコマンドを実行できます。私が使う
host hostname
user myusername
localcommand xtermcontrol --bg '#abc'
これは、xtermcontrolおよび用語がxtermであることに依存します。おそらく、他の用語のための他のアプリがあります。
このアプローチの唯一の問題は、sshを呼び出すときに発生することです。色の変更を元に戻すことは何もありません。私はsshの周りに関数をラップすることでそれをしましたが、それにも欠点があります。
function ssh() {
FG=$(xtermcontrol --get-fg)
BG=$(xtermcontrol --get-bg)
$(which ssh) "$@"
xtermcontrol --fg="$FG"
xtermcontrol --bg="$BG"
}
のいずれかの機能があることは思えないgnome-terminal
する既存のウィンドウに新しいタブを追加し、コマンドラインからは。しかし、あなたが望むものを達成するためのいくつかのオプションがあります。
gnome-terminal
SSHを使用するホストごとに新しいプロファイルを作成します。定期的に接続するホストが数台しかない場合は、これが最も簡単な場合があります。各プロファイルには、異なるタイトル、前景色、背景色、カスタムコマンド、その他の設定を定義できます。その後、を使用File -> Open Tab
して、選択したプロファイルで新しいタブを開くことができます。
新しい作成gnome-terminal
新しいウィンドウにあなたが(これに基づいて、異なるSSHホストに接続するたびに開くために使用されるプロファイルAskUbuntuの答えというステファノは指摘します)。これは、多くの異なるホストに頻繁に接続する場合に有効です。これによりgnome-terminal
、異なるホストに接続されている異なるウィンドウを背景/前景色だけで区別することはできませんが、ウィンドウごとに異なるタイトルが表示されます。
gnome-terminal
プロファイルにFile -> New Profile
基づいて新しいプロファイル()を作成し、Default
それを「RemoteHost」と呼びます(コマンドを簡単にするために「RemoteHost」にスペースを入れないでください)。Title and Command
タブで、次を変更します。
Initial title:
「リモートホスト」へWhen terminal commands set their own titles:
に Replace initial title
Colors
タブで、次を変更します。
Use colors from system theme
Build-in schemes:
に Custom
Text color:
そしてBackground color:
あなたの選んだ色に。一部のコマンド(などls
)は出力に色を使用し、出力を読みにくくするような色を選択したくないことを覚えておいてください。Close
ボタンをクリックして、新しいプロファイルを保存します。gnome-terminal
、コマンドを使用して各リモートSSHホストの新しいウィンドウを開くことができますgnome-terminal --window-with-profile=RemoteHost -t "Some Remote SSH Host" -x ssh user@somehost
。この-t
オプションはgnome-terminal
ウィンドウのタイトルを設定し、このオプション-x
はターミナルの残りのコマンドラインを実行します。alias
キーストロークの合計を短くすることもできます。私が見つかりました。このブログのエントリ使用しています次のスクリプトとxdotool
してwmctrl
使用する(あなたが最初にそれらをインストールする必要がある場合がありますので、彼らは、Ubuntuの上で、デフォルトではインストールされませんでした)コマンドをgnome-terminal
Ctrl+ Shift+ t現在で新しいタブを開くには、キーボードショートカットをgnome-terminal
ウィンドウ。特定のプロファイルで新しいタブを開き、いくつかのコマンドを実行するように変更できます。
#!/bin/bash
# Path: /usr/local/bin/gnome-terminal
if [ "x$*" != "x" ]; then
/usr/bin/gnome-terminal "$@"
else
pgrep -u "$USER" gnome-terminal | grep -qv "$$"
if [ "$?" == "0" ]; then
WID=`xdotool search --class "gnome-terminal" | head -1`
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
else
/usr/bin/gnome-terminal
fi
fi
あなたは創造的になり、他のことを試すことができます。
このスーパーユーザーの回答では、基本的に、「script-fu」アクロバットを少しgnome-terminal
使用して、新しいウィンドウを開くために使用される一時プロファイルを作成します。それはあなたの使用のために修正されるかもしれません。
このStackOverflowのQ&Aと「script-fu」アクロバットを使用gnome-terminal
して、リモートホストにSSHで接続するたびにタイトルを動的に変更することができます。背景/前景の色の変化ほど目立ちませんが、Terminal
常に標準のタイトルよりも優れています。
sshセッションごとに新しいgnome-terminalウィンドウを使用する場合、これはGnomeで機能します。
「リモート」という名前の新しいプロファイル(異なる背景色)を作成します
以下を.bash_aliases
に挿入する、または.bashrc
### add to .bash_aliases, for differentiating between local and remote hosts
sshhelper() {
gnome-terminal --window-with-profile=Remote -x bash -c "ssh $1";
}
alias sshc=sshhelper
今sshc remote-machine
開きます新しい「リモート」プロファイルを持つgnome-terminalのセッションを。これにより、ローカルプロファイルとリモートプロファイルが区別されます。
複数のプロファイル/ホストに対応するには、複数のプロファイルを作成し、.bash_aliases
代わりに次のようなものを配置します。
### add to .bash_aliases, for differentiating between multiple remote hosts
sshhelper() {
HOST=`echo $1 | cut -d'@' -f2`
case $HOST in
Production ) PROFILE="Red" ;;
Test ) PROFILE="Green" ;;
# ... if you have more cases ...
*) PROFILE="Default" ;;
esac
gnome-terminal --window-with-profile=$PROFILE -x bash -c "ssh $1";
}
# alias ssh=sshhelper # this will "override" the ssh command, but may break other stuff!
alias sshc=sshhelper
さてsshc Production
、「赤」プロファイルを使用して新しいセッション・ウィンドウを開きますsshc Test
「グリーン」プロファイルを使用して新しいセッション・ウィンドウを開き、他のホストは、「デフォルト」のプロファイルを使用します。
ここでstack ***サイトからすべての情報を収集することは、ミントメイト+メイト端末(gnomeと同じ)で見つけた最も簡単な解決策です。
sudo apt get install xdotool
/ etc / ssh / ssh_configを変更して、各sshセッションが確立された後にプロファイルを変更できるようになりました。
Host *
PermitLocalCommand yes
LocalCommand xdotool key Alt+Page_Down
これで、各ssh接続が端末で確立された後、プロファイルが変更され、本番データベースに不要なsql更新が再び追加されることはありません:)
ただし、ssh接続が閉じられた後、デフォルトのプロファイルに戻す簡単な解決策はありません。しかし、これは私には十分に見えます、そして、私は詳細について掘りませんでした。