tmux new -d -s my-session 'echo window-1 pane-1; sleep 8' \; \
split-window -d 'echo window-1 pane-2; sleep 6' \; down-pane \; \
new-window -d 'echo window-2; sleep 4' \; next-window \; \
attach \;
Eu queria lançar alguns comandos simultaneamente em tmux ou gnome-terminal ou xfterminal, cada guia diferente com um único comando em execução e feche essa guia quando o comando terminar.
Qualquer outro software é bem-vindo também
Eu queria criar um script único para fazer o trabalho, por exemplo, XX "cmd1" "cmd2" "cmd3"
Abra uma sessão do tmux e inicie o primeiro comando. Em seguida, inicie mais comandos em novas janelas e distribua uniformemente os tamanhos das janelas no final.
tmux \
new-session "command1 ; read" \; \
split-window "command2 ; read" \; \
split-window "command3 ; read" \; \
split-window "command4 ; read" \; \
select-layout even-vertical
O read
após cada comando faz com que a janela permaneça aberta após o término do comando, para que você possa ler a saída.
Com gnome-terminal
, seria:
gnome-terminal --window -e 'cmd1' --tab -e 'cmd2' --tab -e 'cmd3'
Cada guia será fechada após o término do seu comando.
Se é sempre a mesma configuração de programas, você pode usar uma ferramenta como teamocil .
Você precisará criar com uma configuração (por exemplo, ~/.teamocil/sample
), que contém algo como:
windows:
- name: my-first-window
root: ~/Projects/foo-www
filters:
before: "rvm use 1.9.2"
after: "echo 'I am done initializing this split.'"
splits:
- cmd: "git status"
- cmd: "bundle exec rails server --port 4000"
width: 50
- cmd:
- sudo service memcached start
- sudo service mongodb start
height: 50
E então você pode executar: tmux new-session -d "teamocil sample" \; attach