Chạy lệnh trên cửa sổ terminal (mới) khác


32

Làm thế nào để chạy bất kỳ lệnh nào trong một cửa sổ đầu cuối khác?

Ví dụ: Tôi đã mở một cửa sổ đầu cuối và nếu tôi chạy lệnh như thế apropos editor, thì nó sẽ chạy và đặt ngoài cửa sổ đó. Nhưng tôi muốn chạy cùng một lệnh trên một cửa sổ đầu cuối khác (cửa sổ mới) thay vào đó trên cửa sổ hiện tại từ thiết bị đầu cuối đầu tiên .

Làm rõ thêm :
Tôi cần suggest-command <command>mở cửa sổ terminal mới và chạy được đề cập <command>trong cửa sổ (mới mở) đó. (trong đó suggest-commandlà ví dụ về gợi ý lệnh.)

Làm thế nào để làm điều đó?


1
Nhấp chuột phải vào biểu tượng thiết bị đầu cuối và nhấp vào "Mở thiết bị đầu cuối mới".
Raphael

Xin lỗi nếu tôi nghe giống như một lamen, nhưng đó là những gì tôi hiểu từ câu hỏi của bạn.
Raphael

gnome-terminal phải không?
Braiam

Trong khi mở một thiết bị đầu cuối mới có thể giải quyết vấn đề của bạn, bạn cũng có thể chỉ cần sử dụng nohup, định hướng lại đầu ra và đặt trình soạn thảo của bạn vào nền. nohup apropos editor &> /dev/null &
Panther

Tôi cũng không hiểu: tại sao không mở một thiết bị đầu cuối mới?
Josef Klimuk

Câu trả lời:


29

Đây có thể là những gì bạn tìm kiếm:

gnome-terminal -e "bash -c \"!!; exec bash\""

hoặc (ngắn):

gnome-terminal -x sh -c "!!; bash"

Nó mở gnome-terminal với lệnh cuối cùng ( !!) của bạn được thực thi và nó vẫn mở với đầu ra lệnh trong shell, ngay cả với một lệnh tương tác như tophoặc less...

Trong trường hợp của bạn:

gnome-terminal -e "bash -c \"apropos editor; exec bash\""

hoặc là

gnome-terminal -x sh -c "apropos editor; bash"

2
gnome-terminal -x sh -c "!!; bash"
Ngắn

10

Bắt đầu một phiên bản khác của bất kỳ thiết bị đầu cuối nào mà bạn muốn chạy:

xterm -hold -e 'apropos editor' & 

Lưu ý -hold. Hầu hết các thiết bị đầu cuối sẽ thoát sau khi chạy lệnh bạn cho chúng ăn. Đã có hàng tá câu hỏi về vấn đề này trên trang web:

Một thay thế cho điều đó là sử dụng một ứng dụng cần phải thoát. nanosẽ tự mở. Nếu bạn chỉ xuất ra màn hình, bạn có thể đưa nó vào less:

xterm -e 'apropos editor | less' & 

Điều đó nói rằng, trong trường hợp của bạn (như hai người kia đã nói) có vẻ dễ dàng hơn khi bạn chỉ cần mở một thiết bị đầu cuối khác và chạy lệnh của bạn.


Tôi có thể sử dụng gnome-terminalthay vì xtermsau đó Làm thế nào để?
Pandya

Tôi tò mò về cách thực hiện điều này với xfce4-terminal (xfce4-terminal mở ra một quy trình mới, trong khi xterm không dùng trong trường hợp của tôi, tôi thực sự không muốn một quy trình mới).
Shule

7

Mỗi thiết bị đầu cuối thậm chí là một chương trình mà bạn có thể khởi chạy như bất kỳ chương trình nào khác, với &nền tảng, đưa ra một danh sách các đối số, v.v.

Việc sử dụng thiết bị đầu cuối nào trước tiên phụ thuộc vào tính khả dụng của hệ thống mà bạn đang sử dụng (nếu chúng được cài đặt hay không), sau đặc thù của chúng và sau đó là theo sở thích cá nhân của bạn.

  konsole   --hold -e "ls" &  
  xterm      -hold -e "ls" &  
  gnome-terminal   -e "ls" & ...  

Lưu ý sự khác nhau giữa -holdcác xterm--holdcủa konsole.

Mỗi nhận thức có các tùy chọn khác nhau mà bạn phải kiểm tra với sự trợ giúp. Ngay cả sự giúp đỡ có thể được gọi theo cách khác nhau. Bạn có thể thấy rằng man konsolenó không hoạt động và vì vậy bạn phải hỏi trực tiếp để thực thi với --help.

Đây là danh sách các thiết bị đầu cuối bạn có thể tìm kiếm trên hệ thống của bạn

aterm          - AfterStep terminal with transparency support
gnome-terminal - default terminal for GNOME
guake          - A dropdown terminal for GNOME
konsole        - default terminal for KDE
Kuake          - a dropdown terminal for KDE
mrxvt          - Multi-tabbed rxvt clone
rxvt           - for the X Window System (and, in the form of a Cygwin port, 
                 for Windows) 
rxvt-unicode   - rxvt clone with unicode support
xfce4-terminal - default terminal for Xfce desktop 
                 environment with dropdown support
Terminator     - is a GPL terminal emulator. It is available on
                 Microsoft Windows, Mac OS X, Linux and other Unix X11 systems.
Terminology    - enhanced terminal supportive of multimedia 
                 and text manipulation for X11 and Linux framebuffer
tilda          - A drop down terminal
wterm          - It is a fork of rxvt, designed to be lightweight, but still
                 full of features
xterm          - default terminal for the X Window System
Yakuake        - (Yet Another Kuake), a dropdown terminal for KDE

3

Bạn có thể sử dụng -etùy chọn để gnome-terminal như sau:

gnome-terminal -e 'sh -c propose editor'

Đây shlà cái vỏ mà gnome-terminal mở ra. Lưu ý rằng điều này sẽ thoát khỏi thiết bị đầu cuối ngay khi lệnh kết thúc. Tham khảo trang hướng dẫn cho gnome-terminal để biết thêm.


Làm thế nào để giữ thiết bị đầu cuối mới mở, đang thoát sau khi lệnh kết thúc / kết thúc?
Pandya

3
  1. Mở hai thiết bị đầu cuối;
  2. Xác định từng thiết bị đầu cuối bằng ttylệnh;
  3. Giả sử họ đã xác định với / dev / pts / 0 và / dev / pts / 1;
  4. Trong thiết bị đầu cuối pts / 0 stdout chuyển hướng đến pts / 1 bằng execlệnh:exec 1>/dev/pts/1
  5. Bây giờ mọi đầu ra đầu ra lệnh từ pts / 0 terminal đều hiển thị ở pts / 1;
  6. Chuyển hướng stdout trở lại với dấu phẩy: exec 1>/dev/pts/0
  7. Bây giờ pts / 0 stdout hoạt động như trước.

Video trên YouTube:


1

Sau khi Ubuntu 18,04 LTS, bạn có thể muốn chuyển từ -eđể --, tức là gnome-terminal -eđến gnome-terminal ---e-xđều phản đối.


1

Đây là 50 xu của tôi với Terminator:

terminator -x "script.sh; bash"

Điều này cũng hoạt động, nhưng tôi không thể cho bạn biết sự khác biệt:

terminator -e "script.sh; bash"

Lưu ý rằng kịch bản cũng có thể là một lệnh.

Đã thử nghiệm trên Ubuntu 18.04 LTS.

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.