Execute o comando em outra (nova) janela de terminal

21

Como executar qualquer comando em outra janela de terminal?

Exemplo: eu abri uma janela de terminal e, se eu executar o comando como apropos editor , ele será executado e sairá nessa janela. Mas quero executar o mesmo comando em outra janela de terminal (nova janela) em vez da janela atual do primeiro terminal .

Mais esclarecimentos :
Eu preciso de suggest-command <command> que abra uma nova janela de terminal e execute o mencionado <command> nessa janela (recém-aberta). (onde suggest-command é exemplo de sugestão de comando.)

Como fazer isso?

    
por Pandya 18.06.2014 / 14:03

5 respostas

23

Isso pode ser o que você pesquisa:

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

ou (brevemente):

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

Ele abre o gnome-terminal com seu último comando ( !! ) executado e permanece aberto com o comando output no shell, mesmo com um comando interativo como top ou less ...

No seu caso, é:

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

ou

gnome-terminal -x sh -c "apropos editor; bash"
    
por chaos 18.06.2014 / 14:34
7

Inicie outra instância de qualquer terminal em que você deseja executar:

xterm -hold -e 'apropos editor' & 

Observe o -hold . A maioria dos terminais sairá depois de executar o comando que você os alimenta. Já existem cerca de uma dúzia de perguntas sobre isso no site:

Uma alternativa para isso é usar um aplicativo que precisa ser encerrado. nano permanecerá aberto por conta própria. Se você está apenas saindo para a tela, você pode canalizá-lo para less :

xterm -e 'apropos editor | less' & 

Dito isto, no seu caso (como os outros dois disseram) parece mais fácil que você simplesmente abra outro terminal e execute o seu comando.

    
por Oli 18.06.2014 / 14:14
3

Cada terminal é até mesmo um programa que você pode executar como qualquer outro programa,  com & para colocar em segundo plano, dando uma lista de argumentos e assim por diante.

Qual terminal para usá-lo depende primeiro da disponibilidade do sistema que você está usando (se eles estão instalados ou não), depois de sua peculiaridade e depois de seu gosto pessoal.

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

Observe as diferenças entre -hold de xterm e --hold de konsole .

Cada realização tem opções diferentes que você precisa verificar com a ajuda. Até mesmo a ajuda pode ser invocada de maneira diferente. Você pode descobrir que man konsole não funciona e, portanto, é necessário perguntar diretamente ao executável com --help .

Esta é uma lista de terminais que você pode pesquisar no seu sistema

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
    
por Hastur 18.06.2014 / 14:35
2

Você pode usar a opção -e para o gnome-terminal da seguinte forma:

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

Aqui sh é o shell que o gnome-terminal abre. Observe que isso sairá do terminal assim que o comando for finalizado. Consulte a página de manual do gnome-terminal para saber mais.

    
por jobin 18.06.2014 / 14:13
2
  1. Abra dois terminais;
  2. Identificando cada terminal com o comando tty ;
  3. Supondo que eles se identificaram com / dev / pts / 0 e / dev / pts / 1;
  4. No terminal pts / 0, redirecionando o stdout para pts / 1 com o comando exec : exec 1>/dev/pts/1
  5. Agora cada saída de stdout de comando do terminal pts / 0 está sendo exibido em pts / 1;
  6. Redirecionando back stdout com commad: exec 1>/dev/pts/0
  7. Agora pts / 0 stdout funcionando como antes.

Vídeo do YouTube:

    
por Vitalie Ghelbert 29.09.2017 / 15:56