open consola commands comandos linux ubuntu console terminal

linux - consola - Abra una nueva pestaña en gnome-terminal usando la línea de comando



ubuntu commands pdf (9)

Cuando yo escribo

gnome-terminal --tab

en la terminal, espero que abra una nueva pestaña en la misma ventana de terminal. Pero abre una nueva ventana en su lugar.

Descubrí que su intención es abrir una nueva pestaña en una nueva ventana, es decir, si escribo

gnome-terminal --tab --tab

abrirá una nueva ventana con dos pestañas.

Entonces, la pregunta es, ¿cómo puedo abrir una nueva pestaña en la ventana actual usando un comando en gnome-terminal ?

Estoy usando Ubuntu 9.04 x64.


Considera usar Roxterm en su lugar.

roxterm --tab

abre una pestaña en la ventana actual.


Encontré la manera más simple:

gnome-terminal --tab -e ''command 1'' --tab -e ''command 2''

Uso tmux lugar de usar terminal directamente. Entonces, lo que quiero es realmente un simple y simple comando / shell para construir el env desarrollo con varias ventanas de tmux . El código de shell es el siguiente:

#!/bin/bash tabs="adb ana repo" gen_params() { local params="" for tab in ${tabs} do params="${params} --tab -e ''tmux -u attach-session -t ${tab}''" done echo "${params}" } cmd="gnome-terminal $(gen_params)" eval $cmd


No tengo instalado un gnome-terminal pero deberías poder hacer esto usando una llamada DBUS en la línea de comandos usando dbus-send .


Para abrir múltiples pestañas en la misma ventana de terminal, puede ir con la siguiente solución.

Script de ejemplo:

pwd=''/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/bin'' pwdlog=''/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/logs'' pwd1=''/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/bin'' logpwd1=''/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/standalone/log'' osascript -e "tell application /"Terminal/"" / -e "tell application /"System Events/" to keystroke /"t/" using {command down}" / -e "do script /"cd $pwd/" in front window" / -e "do script /"./startup.sh/" in front window" / -e "tell application /"System Events/" to keystroke /"t/" using {command down}" / -e "do script /"cd $pwdlog/" in front window" / -e "do script /"tail -f catalina.out /" in front window" / -e "tell application /"System Events/" to keystroke /"t/" using {command down}" / -e "do script /"cd $pwd1/" in front window" / -e "do script /"./standalone.sh/" in front window" / -e "tell application /"System Events/" to keystroke /"t/" using {command down}" / -e "do script /"cd $logpwd1/" in front window" / -e "do script /"tail -f core.log /" in front window" / -e "end tell" > /dev/null


Para cualquiera que busque una solución que no use la línea de comando: ctrl + shift + t


Para reunir una serie de diferentes puntos anteriores, aquí hay un script que ejecutará todos los argumentos pasados ​​al script vim new_tab.sh :

#!/bin/bash # # Dependencies: # sudo apt install xdotool WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk ''{print $5}'') xdotool windowfocus $WID xdotool key ctrl+shift+t wmctrl -i -a $WID sleep 1; xdotool type --delay 1 --clearmodifiers "$@"; xdotool key Return;

Luego chmod +x new_tab.sh ejecutable: chmod +x new_tab.sh

Ahora puede usarlo para ejecutar lo que desee en una nueva pestaña: ./new_tab.sh "watch ls -l"


También puede hacer que cada pestaña ejecute un comando establecido.

gnome-terminal --tab -e "tail -f somefile" --tab -e "some_other_command"


Una versión un poco más elaborada (para usar desde otra ventana):

#!/bin/bash DELAY=3 TERM_PID=$(echo `ps -C gnome-terminal -o pid= | head -1`) # get first gnome-terminal''s PID WID=$(wmctrl -lp | awk -v pid=$TERM_PID ''$3==pid{print $1;exit;}'') # get window id xdotool windowfocus $WID xdotool key alt+t # my key map xdotool sleep $DELAY # it may take a while to start new shell :( xdotool type --delay 1 --clearmodifiers "$@" xdotool key Return wmctrl -i -a $WID # go to that window (WID is numeric) # vim:ai # EOF #


#!/bin/sh WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk ''{print $5}'') xdotool windowfocus $WID xdotool key ctrl+shift+t wmctrl -i -a $WID

Esto determinará automáticamente el terminal correspondiente y abrirá la pestaña en consecuencia.