ホスト名に基づいて端末の背景色を変更したいのですが。これについての私の推論は、主に自分がどのサーバーにいるのかを思い出させるための特別な方法があるため、私は愚かなことをしません。
ローカルマシン上にいる場合は、標準の茄子の背景を使用することができますが、運用Webサーバーまたは指定できる他のホストにsshすると赤に変わりますか?
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
を 既存のウィンドウに新しいタブを追加 する機能はないようです。しかし、あなたが望むものを達成するためのいくつかのオプションがあります。
SSHで接続するホストごとに新しいgnome-terminal
プロファイルを作成します。定期的に接続するホストが数台しかない場合は、これが最も簡単な方法です。各プロファイルには、異なるタイトル、前景色、背景色、カスタムコマンド、およびその他の設定を定義できます。次に、File -> Open Tab
を使用して、選択したプロファイルで新しいタブを開くことができます。
別のSSHホストに接続するたびに新しいウィンドウを開くために使用される新しいgnome-terminal
プロファイルを作成します(これに基づいて AskUbuntuの回答 その Stefano =指摘)。これは、多くの異なるホストに頻繁に接続する場合に有効です。これにより、背景/前景色のみで異なるホストに接続されている異なるgnome-terminal
ウィンドウを区別できなくなりますが、ウィンドウごとに異なるタイトルが表示されます。
Default
プロファイルに基づいて新しいgnome-terminal
プロファイル(File -> New Profile
)を作成し、「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
プロファイルを作成します。それはあなたの使用のために修正されるかもしれません。
リモートホストにSSH接続するときはいつでも、この StackOverflow Q&A およびより多くの "script-fu"アクロバットを使用して、gnome-terminal
タイトルを動的に変更できます。背景/前景色の変化ほど目立たないでしょうが、常に標準の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
がnew 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
は「Red」プロファイルを使用して新しいセッションウィンドウを開き、sshc Test
は「Green」プロファイルを使用して新しいセッションウィンドウを開き、他のホストは「Default」プロファイルを使用します。
ここでスタック***サイトからすべての情報を収集することは、私がミントメイト+メイトターミナル(gnomeと同じ)で見つけた最も簡単なソリューションです。
Sudo apt get install xdotool
/ etc/ssh/ssh_configを変更して、各sshセッションの確立後にプロファイルを変更できるようになりました。
Host *
PermitLocalCommand yes
LocalCommand xdotool key Alt+Page_Down
これで、ターミナルで各ssh接続が確立された後、プロファイルが変更され、不要なSQL更新を本番データベースに再度配置することがなくなります:)
ただし、ssh接続が閉じられた後にデフォルトのプロファイルに戻す簡単な解決策はありません。しかし、これは私には十分に見え、詳細については掘り出しませんでした。