端末に静的テキストレイヤー/列を追加する

端末に静的テキストレイヤー/列を追加する

SSHへのポート転送を自動的に生成するスクリプトがあります。一日中異なるサーバー上の複数のターミナルウィンドウで作業しているので、ポートが私の端にマップされていることを確認し、その場合はポートを+1に変更します。利用可能なポートが見つかりました。その後、ポート転送情報をエコーし​​て実行しますssh -L<port1>:localhost:<port2> <server>。単純な。

出力が多く、ポートが元々何にマッピングされたのか覚えていない場合は、最後までスクロールして検索する必要があります。これにより、上部に1行または複数行のテキストを追加し、その下にSSHセッションを追加する一種のラッパーがある可能性があると思いました。私は基本的なスケッチを自由に描きました。

スケッチ

私はインターネットを検索しようとしましたが、何も見つけるのが難しいです。存在する場合、コマンドは次のようになります。wrapper --text="Port forwards: L5901:localhost:5900, L8080:localhost:80" --command="ssh -L<port1>:localhost:<port2> <server>"

おそらくscreenを使用することも解決策かもしれませんが、1つのコマンドで「すべてのもの」を実行できることを願っています(テキスト行を追加+その下でSSHセッションを開始)。

答え1

Gnomeのタイトルバーを設定したところ、ウィンドウの上部に設定した内容が表示されます。

Bashがヘッダーを変更しないようにするには、次のようにします。

PROMPT_COMMAND=''
PS1='$ '

(PROMPT_COMMANDまたはPS1がタイトルバーを変更しようとする可能性があります)以下を使用してタイトルを設定します。

echo -ne "\033]0;new title with port number found\007"

サーバーのPS1にもタイトルが設定されていないことを確認してください。以下でこれを行うことができます~/.bashrc

if [ ! -z "$SSH_CLIENT" ] ; then
   PS1='$ '
fi

(上記はUbuntu 12.04を実行しているサーバーに必要です。)

コマンドを実行してくださいssh

ssh -t user@server "PROMPT_COMMAND='' bash -l"

PS1とPROMPT_COMMANDは、いくつかのエスケープシーケンスを介してタイトルバーを設定しようとしない限り、より複雑になることがあります(\033]0;または\e]0;

関連するすべてのソリューションとtmux呪いscreenベースの画面行の維持により、Gnome端末スクロールバーの適切なスクロールが無効になります。

関連情報