Làm cách nào để mở terminal, tách thành 9 terminal và chuyển đổi giữa chúng bằng một script?


17

Tôi muốn mở một thiết bị đầu cuối, tách nó ra để nói 9 phần (3x3) và thực thi một số tập lệnh bash. Nhưng đối với mỗi phần thiết bị đầu cuối kịch bản khác nhau.

Điều này có thể được thực hiện bằng cách sử dụng perl, python hoặc thậm chí bash?

Làm thế nào tôi có thể chuyển đổi giữa các thiết bị đầu cuối nhỏ mà không cần sử dụng phím tắt?

Ồ, nhân tiện, tôi đang sử dụng terminator. Và nếu có một số trình giả lập thiết bị đầu cuối khác cho phép một chức năng như vậy, thì đó là gì?


terminatorkhông phải là một cái vỏ. Có hai trình giả lập thiết bị đầu cuối khác nhau được gọi terminator(chỉ một trong số đó tôi tin rằng có thể chia đôi màn hình).
Stéphane Chazelas

À, cảm ơn .. sau đó tôi muốn biết cách phân tách terminatorbằng script? :) Và chuyển đổi giữa các bộ phận?
jirislav

1
Tôi chưa bao giờ sử dụng nó và không có thời gian để nghiên cứu nó ngay bây giờ, nhưng tôi nghĩ (dù không chắc chắn) rằng byobu có thể giúp bạn nếu bạn đang chạy các thiết bị đầu cuối trên một hệ thống từ xa - xem help.ubfox. com / cộng đồng / Byobu . Byobu chạy trên nhiều bản phân phối * nix
Clive van Hilten 17/11/14

1
Như @ClivevanHilten đã đề cập và trả lời ở đây, nó có thể được thực hiện với Byobu thân thiện (theo mặc định là ngồi trên đầu của tmux).
Pablo A

Câu trả lời:


34

Để tự đạo văn , bạn có thể thiết lập một hồ sơ với các cài đặt mong muốn của bạn (hướng dẫn được điều chỉnh từ đây ):

  1. Chạy terminatorvà thiết lập bố cục bạn muốn. Bạn có thể sử dụng Ctrl+ Shift+ Eđể phân chia các cửa sổ theo chiều dọc và Ctrl+ Shift+ O(đó là O như trong oodles, không phải số 0) để phân chia theo chiều ngang. Trong ví dụ này, tôi đã tạo một bố cục với 6 tấm:

    nhập mô tả hình ảnh ở đây

  2. Nhấp chuột phải vào terminatorcửa sổ và chọn "Tùy chọn". Khi cửa sổ Tùy chọn được mở, hãy chuyển đến "Bố cục" và nhấp vào "Thêm":

    nhập mô tả hình ảnh ở đây

  3. Điều đó sẽ điền vào danh sách Bố cục với bố cục mới của bạn:

    nhập mô tả hình ảnh ở đây

  4. Tìm từng thiết bị đầu cuối bạn đã tạo trong bố cục và nhấp vào chúng, sau đó ở bên phải nhập lệnh bạn muốn chạy trong chúng khi khởi động:

    nhập mô tả hình ảnh ở đây

    QUAN TRỌNG: Lưu ý rằng lệnh được theo sau ; bash. Nếu bạn không làm điều đó thì các thiết bị đầu cuối sẽ không thể truy cập được vì chúng sẽ chạy lệnh bạn đưa ra và thoát. Bạn cần khởi chạy một shell sau mỗi lệnh để có thể sử dụng các thiết bị đầu cuối.

    Khi bạn đã thiết lập tất cả các lệnh, nhấp vào "Đóng" và sau đó thoát terminator.

  5. Mở terminatortệp cấu hình ~/.config/terminator/configvà xóa phần dưới bố cục cho cấu hình mặc định. Sau đó thay đổi tên của bố cục bạn đã tạo thành mặc định. Nó sẽ trông giống như thế này:

    [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 cchapple@139.124.66.43'
          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]

Kết quả cuối cùng là khi bạn chạy, terminatornó sẽ mở với 6 ô, mỗi ô đã chạy hoặc đang chạy các lệnh bạn đã chỉ định:

nhập mô tả hình ảnh ở đây

Ngoài ra, bạn có thể thiết lập nhiều cấu hình khác nhau theo ý muốn và khởi chạy terminator bằng công -ptắc đặt tên hồ sơ hoặc chuyển thủ công sang bất kỳ cấu hình nào bạn muốn sau khi khởi chạy.


Terdon, cảm ơn bạn! Đây có lẽ là nơi tôi học cách viết tập tin cấu hình đó!
dotancohen

@dotancohen rất vui khi biết tôi đã được giúp đỡ :)
terdon

1
Ôi! Cảm ơn rất nhiều, "; bash" đã cứu mạng tôi!
Etienne

"Bạn cần khởi chạy một shell sau mỗi lệnh để có thể sử dụng các thiết bị đầu cuối." Thật tuyệt vời - điều này hoàn toàn không trực quan khi tôi thử ban đầu. Chúng nên bao gồm một số loại hộp kiểm để tự động kích hoạt tính năng này.
dtmland


3

Quay lại khi tôi đang sử dụng terminatorđây là tập tin RC mà tôi đã sử dụng để mở một loạt các thiết bị đầu cuối và chạy các ứng dụng. Lưu nó vào .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]

EDIT: Lưu ý rằng thông tin này có thể đến từ bài đăng của Terdon trên một chủ đề sớm hơn nhiều. Tôi đã sử dụng thiết lập này được vài tháng, nhưng bài đăng của Terdon ở đây trông rất quen thuộc!


Đây là những gì tôi đang tìm kiếm - cách phân chia thiết bị đầu cuối và thực thi các tập lệnh cụ thể - cảm ơn! Nhưng tôi không muốn thực hiện nó mọi lúc như thế này. Có khả năng có thêm các cấu hình đó và mở từng tùy thuộc vào những gì tôi cần không? Hãy nói bằng cách thêm tham số --config2 hoặc --config1?
jirislav

Bạn không thêm tập tin cấu hình, bạn thêm phần vào tập tin cấu hình. Xem bài đăng của Terdon, anh ấy giải thích nó rất tốt, trên thực tế tôi đã học được điều này từ bài đăng của anh ấy trên một chủ đề trước đó.
dotancohen

Ồ, tôi hiểu rồi ... Vì vậy, tôi chấp nhận câu trả lời của anh ấy là hữu ích nhất. Nhưng dù gì cũng cảm ơn.
jirislav

Sự lựa chọn tốt! Tôi thực sự muốn đề nghị chấp nhận câu trả lời của anh ấy vì thông tin đã đến từ công việc khó khăn của anh ấy!
dotancohen

2

Kịch bản trình bao bọc để phân tách trình giả lập thiết bị đầu cuối Terminator https://github.com/AlekseyChudov/terminator-split


2
Bạn nên bao gồm các thông tin liên quan ở đây, khi github biến mất, câu trả lời của bạn sẽ mất tất cả giá trị tiềm năng của nó.
Anthon

1
có vẻ tốt .. nhưng làm thế nào để tôi chạy tập lệnh này?
Sachin

1
terminator-splitcó rất nhiều tiềm năng, nhưng dường như không có cách nào để chạy các lệnh khác nhau trong các phần tách khác nhau và -mđối số hiển thị trong các ví dụ không được liệt kê trong tóm tắt sử dụng
bitinerant
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.