現在のターミナルで新しいタブを開き、新しいタブで実行するコマンドを渡すコマンド

現在のターミナルで新しいタブを開き、新しいタブで実行するコマンドを渡すコマンド

新しいウィンドウが開くことはわかっていますgnome-terminalが、新しいウィンドウだけでなく、新しいタブを開く方法はあるのでしょうか?

その後、例えば新しいウィンドウにコマンドを渡す方法はありますか?

gnome-terminal && cd /

その結果、

  1. 新ターミナルオープン
  2. 新しいターミナルが実行されますcd /

[編集]これらの回答は、コマンドを別の端末に渡す方法については述べていますが、新しい端末を開く方法については答えていません。タブ私が求めているのは、複数の端末を開きたくないということです。

答え1

GNOME Terminal既存のウィンドウで新しいタブを開くための汎用的なコマンドラインソリューションは提供されていません。

(なぜ?それは5月複数のウィンドウが開いている場合、どのウィンドウに新しいタブを開くべきか分からない。あなたウィンドウは 1 つだけですが、そのような機能が実装されると、ソフトウェアは一貫性を保ち、複数のウィンドウがある場合に適切な処理を実行する必要がありますが、これは実際には不可能です。

ユーザーがキーを押すことをシミュレートするなどのハックは、すでに提出された回答に従って存在しますが、Wayland ではなく、X.Org でのみ機能します。

今後のバージョン3.28以降では、このコマンドはgnome-terminal --tab、このコマンドが実行されるGNOMEターミナルウィンドウに新しいタブを開きます。もしこのコマンドは GNOME ターミナル内から実行されます。

(この場合、どのウィンドウで新しいタブを開くかはどのようにしてわかるのでしょうか? 開くターミナルごとに特定の環境変数を事前に異なる値に設定することでわかります。その環境変数によって、目的のウィンドウを見つけることができます。)

したがって、あなたの特定のケースでは、次のようにすることができます。

gnome-terminal --tab -- bash -c 'cd /; exec bash'

この方法では、 が完了すると、新しいタブで実行中のシェルが表示されますcd /。 を実行した場合gnome-terminal --tab -- some command、タブは終了直後に閉じますsome command。 の代わりに を使用すると、 が完了すると、タブで実行中のプロセスbash -c 'some command; exec bash'が保持されます。bashsome command

答え2

ターミナルでshift+ ctrl+を押すことをシミュレートする必要があります。そのためのプログラムが存在します:T

コマンドラインから実行したい場合

たとえば、 xdotoolキーボード入力をシミュレートできるプログラムを使用できます。

sudo apt-get install xdotool

次にターミナルに次のように入力します:

xdotool key ctrl+shift+t

これにより、キーの組み合わせを押す操作がシミュレートされます。

関連情報