bash スクリプトの新しいターミナルインスタンスでコマンドを実行する

bash スクリプトの新しいターミナルインスタンスでコマンドを実行する

プロキシ設定を自動的に構成する bash スクリプトがあります。ファイル内にエイリアスをいくつか作成しました.bash_aliases。リモート サーバーに ssh して動的ポート転送を実行し、基本的に socks プロキシを作成するコマンドが 1 つあります。したがって、プロキシ設定をそれに応じて構成する必要があります。

コマンドは次のようになります。

proxy off && ssh -D <port> <username>@<hostaddress>

上記のコマンドにエイリアスを付けて、ターミナルでエイリアスを入力すると、リモート サーバーに正常に接続されます。ただし、これが完了したら、新しいターミナル ウィンドウで別のコマンドを実行して、新しく作成した socks プロキシを構成する必要があります。基本的には、次のコマンドを実行するだけです。

proxy socks #It configures my laptop to use the socks proxy

同じターミナル ウィンドウで ssh コマンドの後に実行することはできません。&&そうすると、リモート サーバーでコマンドを実行しようとしていることになります。このコマンドをラップトップで実行したいのです。

パイプや別のコマンドのように、2 番目のコマンドを新しいターミナル ウィンドウで 1 行で実行する方法はありますか? リモート サーバーに SSH 接続するたびにターミナルで新しいタブを開き、プロキシを構成するコマンドを 1 つ入力して、不要になったためそのタブを閉じるのは、非常に非効率的です。

答え1

代わりに次のように試してください:

port=1234
remote=username@host
proxy off && ssh -fND $port $remote && proxy socks

フラグはバックグラウンドに移行するように-f指示し、 はコマンドを実行せず、ポートを転送するだけにするように指示します。これにより、現在のターミナルで作業を継続できます。ssh-N

関連情報