web-dev-qa-db-ja.com

端末を開き、9つの端末に分割し、1つのスクリプトを使用してそれらを切り替える方法は?

ターミナルを開き、9つの部分(3x3)に分割して、bashスクリプトを実行します。ただし、各ターミナルパーツごとに異なるスクリプトです。

これはPerl、pythonまたはbashを使用しても可能ですか?

キーボードショートカットを使用せずにこれらの小さな端末を切り替えるにはどうすればよいですか?

ああ、ところで、私はterminatorを使用しています。そして、そのような機能を有効にする他の端末エミュレータがある場合、それはどれですか?

19
jirislav

自分を盗用する 、希望する設定でプロファイルを設定できます( ここ からの手順を適応):

  1. terminatorを実行し、必要なレイアウトを設定します。使用できます Ctrl+Shift+E ウィンドウを垂直に分割し、 Ctrl+Shift+O (それはゼロではなく、麺のOです)水平に分割します。この例では、6つのペインを持つレイアウトを作成しました。

    enter image description here

  2. terminatorウィンドウを右クリックして、[設定]を選択します。 [設定]ウィンドウが開いたら、[レイアウト]に移動して[追加]をクリックします。

    enter image description here

  3. 新しいレイアウトがレイアウトリストに追加されます。

    enter image description here

  4. レイアウトで作成した各端子を見つけてクリックし、右側に起動時に実行するコマンドを入力します。

    enter image description here

    重要:コマンドの後には; bashが続くことに注意してください。これを行わないと、ターミナルはアクセス可能になりません。ターミナルが指定したコマンドを実行して終了するからです。端末を使用できるようにするには、各コマンドの後にシェルを起動する必要があります。

    すべてのコマンドを設定したら、[閉じる]をクリックしてterminatorを終了します。

  5. terminator構成ファイル~/.config/terminator/configを開き、デフォルト構成のレイアウトの下のセクションを削除します。次に、作成したレイアウトの名前をデフォルトに変更します。次のようになります。

    [global_config]
    [keybindings]
    [profiles]
      [[default]]
    [layouts]
      [[default]]
        [[[child0]]]
          position = 446:100
          type = Window
          order = 0
          parent = ""
          size = 885, 550
        [[[child1]]]
          position = 444
          type = HPaned
          order = 0
          parent = child0
        [[[child2]]]
          position = 275
          type = VPaned
          order = 0
          parent = child1
        [[[child5]]]
          position = 219
          type = HPaned
          order = 1
          parent = child1
        [[[child6]]]
          position = 275
          type = VPaned
          order = 0
          parent = child5
        [[[child9]]]
          position = 275
          type = VPaned
          order = 1
          parent = child5
        [[[terminal11]]]
          profile = default
          command = 'df -h; bash'
          type = Terminal
          order = 1
          parent = child9
        [[[terminal10]]]
          profile = default
          command = 'export foo="bar" && cd /var/www/; bash'
          type = Terminal
          order = 0
          parent = child9
        [[[terminal3]]]
          profile = default
          command = 'ssh -Yp 24222 [email protected]'
          type = Terminal
          order = 0
          parent = child2
        [[[terminal4]]]
          profile = default
          command = 'top; bash'
          type = Terminal
          order = 1
          parent = child2
        [[[terminal7]]]
          profile = default
          command = 'cd /etc; bash'
          type = Terminal
          order = 0
          parent = child6
        [[[terminal8]]]
          profile = default
          command = 'cd ~/dev; bash'
          type = Terminal
          order = 1
          parent = child6
    [plugins]
    

最終結果は、terminatorを実行すると、6つのペインで開き、それぞれが指定したコマンドを実行したか、実行しています。

enter image description here

また、必要に応じてさまざまなプロファイルを設定し、-pスイッチでターミネーターを起動してプロファイル名を指定するか、起動後に手動で任意のプロファイルに切り替えることができます。

36
terdon

端末マルチプレクサtmuxを検索していますか。

https://github.com/tmux/tmux

5
Sujit Maharjan

私がterminatorを使用していたとき、これは一連の端末を開いてアプリケーションを実行するために使用したrcファイルです。 .config/terminator/configに保存します。

[global_config]
  title_hide_sizetext = True
  enabled_plugins = LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
[keybindings]
[profiles]
  [[default]]
    font = DejaVu Sans Mono 9
    cursor_blink = False
    scrollback_infinite = True
[layouts]
  [[default]]

    [[[root]]]
      position = -4:0
      type = Window
      order = 0 
      parent = ""
      size = 1072, 1884

    [[[grand]]]
      position = 536 
      type = HPaned
      order = 0 
      parent = root
    [[[left]]]
      position = 942 
      type = VPaned
      order = 0 
      parent = grand
    [[[right]]]
      position = 942 
      type = VPaned
      order = 1 
      parent = grand



    [[[terminal1]]]
      profile = default
      type = Terminal
      order = 0 
      parent = left
      command = "cd ~/code/foo; bash"
    [[[terminal2]]]
      profile = default
      type = Terminal
      order = 1 
      parent = left
      command = "cd ~/bar/baz; bash"



    [[[terminal3]]]
      profile = default
      type = Terminal
      order = 1 
      parent = right
      command = ""
    [[[terminal4]]]
      profile = default
      type = Terminal
      order = 0 
      parent = right
      command = "cmus; bash"



[plugins]

編集:この情報は、おそらく以前のスレッドのTerdonの投稿からのものであることに注意してください。私はこのセットアップを数か月間使用していますが、Terdonの投稿は非常によく知られています。

3
dotancohen

ターミネーターターミナルエミュレーターを分割するためのラッパースクリプト https://github.com/AlekseyChudov/terminator-split

2
Aleksey Chudov