Uruchom polecenie w innym (nowym) oknie terminala


32

Jak uruchomić dowolne polecenie w innym oknie terminala?

Przykład: Otworzyłem jedno okno terminala i jeśli uruchomię polecenie jak apropos editor, to uruchomi się i wyświetli to okno. Ale chcę uruchomić to samo polecenie w innym oknie terminala (nowe okno) zamiast w obecnym oknie z pierwszego terminala .

Dalsze wyjaśnienia :
Potrzebuję suggest-command <command>tego otwartego nowego okna terminala i uruchomienia wymienionego <command>w tym (nowo otwartym) oknie. (gdzie suggest-commandjest przykład sugestii polecenia).

Jak to zrobić?


1
Kliknij prawym przyciskiem myszy ikonę terminala i kliknij „Otwórz nowy terminal”.
Raphael

Przepraszam, jeśli brzmię jak lamen, ale to zrozumiałem z twojego pytania.
Raphael

terminal gnome, prawda?
Braiam

Podczas otwierania nowego terminala możesz rozwiązać problem, możesz także po prostu użyć nohup, przekierować wyjście i umieścić edytor w tle. nohup apropos editor &> /dev/null &
Panther

Nie rozumiem też: dlaczego nie otworzyć nowego terminalu?
Josef Klimuk

Odpowiedzi:


29

Może to być to, czego szukasz:

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

lub (krótko):

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

Otwiera gnome-terminal z ostatniego polecenia ( !!) wykonanego i pozostaje otwarty z wyjściem polecenia w skorupkach, nawet z interaktywnym poleceniem toplub less...

W twoim przypadku jest to:

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

lub

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

2
Nieco krótszygnome-terminal -x sh -c "!!; bash"
TuKsn

10

Uruchom inną instancję dowolnego terminalu, który chcesz uruchomić:

xterm -hold -e 'apropos editor' & 

Uwaga -hold. Większość terminali zakończy działanie po uruchomieniu polecenia, którym je podajesz. Na stronie jest już kilkanaście pytań na ten temat:

Alternatywą jest użycie aplikacji, którą należy zamknąć. nanopozostanie otwarty sam. Jeśli tylko wyświetlasz obraz na ekranie, możesz go potokować do less:

xterm -e 'apropos editor | less' & 

To powiedziawszy, w twoim przypadku (jak powiedzieli pozostali dwaj) wydaje się, że łatwiej jest po prostu otworzyć inny terminal i uruchomić polecenie.


Czy mogę użyć gnome-terminalzamiast xtermtego Jak to zrobić?
Pandya

Jestem ciekawy, jak to zrobić za pomocą xfce4-terminal (xfce4-terminal otwiera nowy proces, podczas gdy xterm tego nie robi - w moim przypadku tak naprawdę nie chcę nowego procesu).
Shule,

7

Każdy terminal jest nawet programem, który można uruchomić jak każdy inny program, &aby umieścić go w tle, podając listę argumentów i tak dalej.

To, który terminal będzie z niego korzystać, zależy najpierw od dostępności używanego systemu (jeśli są zainstalowane, czy nie), następnie od ich osobliwości, a następnie od osobistego gustu.

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

Należy zwrócić uwagę na różnice między -holdof xterma --holdod konsole.

Każda realizacja ma inne opcje , które musisz sprawdzić przy pomocy. Nawet pomoc można przywołać na różne sposoby. Możesz znaleźć, że man konsoleto nie działa, więc musisz zapytać bezpośrednio do pliku wykonywalnego za pomocą --help.

To jest lista terminali, które możesz przeszukać w swoim systemie

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

Możesz użyć -eopcji gnome-terminal w następujący sposób:

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

Oto shpowłoka, którą otwiera terminal gnome. Zauważ, że spowoduje to wyjście z terminala, jak tylko polecenie zostanie zakończone. Więcej informacji znajduje się na stronie podręcznika gnome-terminal .


Jak zatrzymać nowy otwarty terminal, który kończy działanie po zakończeniu / zakończeniu polecenia?
Pandya

3
  1. Otwórz dwa terminale;
  2. Identyfikacja każdego terminala za pomocą ttypolecenia;
  3. Załóżmy, że utożsamiali się z / dev / pts / 0 i / dev / pts / 1;
  4. W terminalu pts / 0 przekierowujemy wyjście na pts / 1 za pomocą execpolecenia:exec 1>/dev/pts/1
  5. Teraz każde wyjście stdout polecenia z terminalu pts / 0 jest wyświetlane w pts / 1;
  6. Przekierowanie standardowego wyjścia za pomocą komendy: exec 1>/dev/pts/0
  7. Teraz pts / 0 stdout działa jak poprzednio.

Wideo na YouTube:


1

Po Ubuntu 18.04 LTS możesz chcieć przełączyć się z -ena --, tj. gnome-terminal -eNa gnome-terminal --ponieważ -ei -xoba są przestarzałe.


1

Oto moje 50 centów z Terminatorem:

terminator -x "script.sh; bash"

To również działa, ale nie mogę powiedzieć różnicy:

terminator -e "script.sh; bash"

Zauważ, że skrypt może być także poleceniem.

Testowane na Ubuntu 18.04 LTS.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.