Script ou iniciador para configurar várias guias do terminal em diferentes locais

14

Eu já estudei isso há algum tempo, mas não encontrei nenhuma solução que pudesse abrir guias de terminal, executar alguns comandos e permitir que eu continuasse usando essas guias de terminal. Todas as maneiras que encontrei ao iniciar guias do terminal a partir da linha de comando lançariam apenas as guias e não me permitiriam continuar usando-as depois disso.

O problema que estou tentando resolver é que toda vez que preciso inicializar minha máquina (ou máquina virtual neste caso), preciso configurar em torno de seis guias de terminal diferentes para apontar para pastas diferentes e exportar algumas variáveis ​​de ambiente em algumas delas.

Eu experimentei o terminal xfce e obtive alguma maneira com comandos como este:

terminal --disable-server -H --tab --title=1st_tab --tab --title=2nd_tab

Mas se eu adicionar argumento de comando, a guia não será mais utilizável quando for aberta:

terminal --disable-server -H --tab --title=1st_tab --tab --title=2nd_tab --command="cd ~/folder1"

http://docs.xfce.org/apps/terminal/command-line

Atualmente, estou usando o Red Hat Linux com o gnome 2.28.2.

user232548
fonte

Respostas:

18

Você pode fazer isso usando GNOME terminatorum ótimo terminal com, entre outras coisas, a capacidade de dividir os painéis na horizontal ou na vertical.

Depois de instalar, terminatorvocê pode configurar um perfil com as configurações desejadas (instruções adaptadas daqui ):

  1. Execute terminatore configure o layout desejado. Você pode usar Ctrl+ Shift+ Epara dividir as janelas verticalmente e Ctrl+ Shift+ O(que é O como em grande quantidade, não zero) para dividir horizontalmente. Para este exemplo, eu criei um layout com 6 painéis:

    insira a descrição da imagem aqui

  2. Clique com o botão direito na terminatorjanela e escolha "Preferências". Quando a janela Preferências estiver aberta, vá para "Layouts" e clique em "Adicionar":

    insira a descrição da imagem aqui

  3. Isso preencherá a lista Layout com seu novo layout:

    insira a descrição da imagem aqui

  4. Encontre cada um dos terminais que você criou no layout e clique neles; à direita, digite o comando que deseja executar neles na inicialização:

    insira a descrição da imagem aqui

    IMPORTANTE: Observe que o comando é seguido por ; bash. Se você não fizer isso, os terminais não estarão acessíveis, pois executarão o comando que você dá e sai. Você precisa iniciar um shell após cada comando para poder usar os terminais.

    Depois de definir todos os comandos, clique em "Fechar" e saia terminator.

  5. Abra o terminatorarquivo de configuração ~/.config/terminator/confige exclua a seção em layouts da configuração padrão. Em seguida, altere o nome do layout que você criou para o padrão. Deve ser algo como isto:

    [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]
    

O resultado final é que, quando você executa, terminatorele abre com 6 painéis, cada um dos quais foi executado ou está executando os comandos que você especificou:

insira a descrição da imagem aqui

Terdon
fonte
Depois de inserir meus comandos na Custom commandcaixa e clicar em Fechar, ele não é salvo quando reaberto. Posso saber porquê? Estou usando o Ubuntu 16 Desktop
Nam G VU
@NamGVU hmm, acabei de testar e tenho o mesmo problema. Parece um bug na versão atual do terminator (isso funcionou 3 anos atrás, quando esta resposta foi publicada). Ele ainda funciona se você editar o ~/.config/terminator/configarquivo, como mostrado na etapa 5.
terdon
2

Para ter o Terminator cdem um diretório na inicialização, o comando para configurar é:

cd ~/someFolder; bash

Isso abre um terminal no local cded para.

Na verdade, Terdon menciona isso em seu post, mas está enterrado em seu maravilhoso mini-tutorial. Não foi depois que eu descobri isso que notei que ele estava enterrado em seu post, então estou deixando esta resposta para enfatizar.

dotancohen
fonte
0

O comando deve ser seguido por "; bash". O resto deve ser conforme as respostas de terdon /superuser//a/610048

Dhruba Adhikari
fonte