在目前終端機中開啟新分頁的命令並傳遞命令以在新分頁上執行

在目前終端機中開啟新分頁的命令並傳遞命令以在新分頁上執行

我知道gnome-terminal會打開一個新窗口,我想知道有沒有辦法打開一個新選項卡,而不僅僅是一個新窗口?

之後,有沒有辦法將命令傳遞到新窗口,例如

gnome-terminal && cd /

這將導致

  1. 新航廈啟用
  2. 然後運行新終端cd /

[編輯]這些答案會說如何將cmd傳遞到另一個終端,它不會回答如何打開一個新的終端標籤。這就是我所追求的,我不想打開多個終端。

答案1

GNOME Terminal不提供通用命令列解決方案來在現有視窗中開啟新選項卡。

(為什麼?因為它可能打開多個窗口,它不知道在哪一個窗口中打開新選項卡。你可能會說只有一個窗口,但如果實現這樣的功能,軟體需要保持一致,並且當它有多個窗口時需要做一些合理的事情,但它實際上無法做到。

根據已提交的答案,存在模擬使用者按鍵等駭客行為,但僅在 X.Org 下有效,而在 Wayland 下無效。

從即將發布的版本 3.28 開始,該命令gnome-terminal --tab將在執行該命令的 GNOME 終端機視窗中開啟一個新選項卡,如果該命令是從 GNOME 終端機執行的。

(在這種情況下,它如何知道在哪個視窗中開啟新選項卡?它透過在它打開的每個終端中預先將某個環境變數設定為不同的值來知道。該環境變數可以讓它找到所需的視窗。

因此,對於您的具體情況,您可以這樣做:

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

這樣,一旦cd /完成,您就可以在新分頁中獲得正在運行的 shell。如果您剛剛這樣做gnome-terminal --tab -- some command,那麼該選項卡將在退出後立即關閉some command。透過使用bash -c 'some command; exec bash'替代方法,該選項卡將bash在完成後有一個正在運行的進程some command

答案2

您必須在終端機中模擬按shift+ ctrl+ 。T存在執行此操作的程序:

如果您想從命令列執行此操作

例如,您可以使用 xdotool- 一個可以模擬鍵盤輸入的程式。

sudo apt-get install xdotool

然後在終端機輸入:

xdotool key ctrl+shift+t

這將模擬按下組合鍵。

相關內容