Estoy usando Ubuntu 9.04 64 y cuando escribo:

gnome-terminal --tab

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

Me enteré de que su intención es abrir una nueva pestaña en una ventana nueva, es decir, si yo escribo:

gnome-terminal --tab --tab

Se abrirá una nueva ventana con dos pestañas.

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

  • si usted está escribiendo el gnome-terminal de todos modos, ¿por qué no puedo, sólo tienes que pulsar ctrl+shift+t para abrir una nueva pestaña 😉
  • Y cómo se supone que voy a prensa Ctrl+Shift+T cuando el comando se ejecuta desde un archivo de secuencia de comandos? (Oído hablar de algo llamado D-Bus puede hacer que a pesar de)!
  • Cada vez que inicio mi PC, tengo que abrir varias pestañas en mi gnome-terminal. Y automatifying que me siento un poco más geek. (Como dicen) la Pereza es un programador de la característica.
  • threevirtues.com 🙂
  • Desbordamiento de la pila es un sitio para la programación y desarrollo de las preguntas. Esta pregunta parece ser off-topic porque no es acerca de la programación o de desarrollo. Consulte ¿Qué temas puedo preguntar aquí en el Centro de Ayuda. Tal vez Super Usuario o Unix & Linux Intercambio de la Pila sería un mejor lugar para preguntar.

10 Comentarios

  1. 65
    #!/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
    

    Este auto de determinar la terminal correspondiente y se abre la pestaña en consecuencia.

    • Gracias, funciona bien. En la forma adecuada – WID= xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}'; xdotool windowfocus $WID; xdotool key ctrl+shift+t $WID
    • si funciona esto que voy a poner fin a tantos meses de frustración. Muchas gracias.
    • xdotool, gran recurso. Yo estaba buscando el equivalente de la Ventana de AutoIt, pero para Linux.
    • Gracias por la solución. Sin embargo, no es claro para mí cómo me puede ejecutar diferentes comandos en diferentes pestañas. No importa dónde puedo agregar los comandos de todos ellos se ejecutan en la primera pestaña. Se puede incluir una solución para esto?
    • He nautilus secuencia de comandos que se abre ubicación actual en el terminal remoto github.com/umpirsky/nautilus-scripts/blob/master/…. Me gustaría abrir en terminal existente, si existe. Es allí cualquier manera de combinar con esta solución?
    • uso sleep 1; xdotool type --delay 1 --clearmodifiers "your Command"; xdotool key Return; para ejecutar un comando.
    • ¿Por qué el WID y windowfocus poco? No la ventana ya se centra?
    • Esto sólo funciona cuando se ejecuta desde dentro de gnome-terminal derecho? Hay una manera de conseguir que se cambie a la terminal si, por ejemplo, que se ejecuta como un script desde dentro de nautilus
    • ¿Dónde debo colocar este script?
    • En Ubuntu 16, xdotool key 'ctrl+shift+t' va a hacer el trabajo (en la actual terminal)

  2. 67

    Usted también puede tener cada pestaña ejecutar un conjunto de comandos.

    gnome-terminal --tab -e "tail -f somefile" --tab -e "some_other_command"
    
    • Me dan error al crear el proceso hijo para este terminal’ en respuesta a gnome-terminal --tab -e "cd /tmp"
    • Tengo una manera para que: gnome-terminal --tab --working-directory="/home/user/X/Y/". No sé por qué, pero "~/X/Y/" no funciona.
    • Estoy teniendo problemas con mi comandos, si yo sólo uso –ficha funciona, pero si puedo usar –ficha -e «my_bash_shorcut» no funciona. ¿Sabes por qué?
    • Un poco tarde, pero creo que he descubierto: si usted hace dos archivos con la jerga y, a continuación, ejecute este comando gnome-terminal --tab -e "tail -f file_a" --tab -e "tail -f file_b", el terminal de gnome se abrirá con dos pestañas, donde cada ficha tendrá respectivos contenido del archivo, pero se cerrará el momento de enviar ^C. Este espectáculo por qué no funciona, pero no sé cómo remediarlo.
    • Consulte stackoverflow.com/questions/17402152/…
    • Esto es bueno, por desgracia -e parece ser obsoleto ahora, tengo un warnging «la Opción «-e» es obsoleta y no puede ser removido en una versión posterior de gnome-terminal»., pero se puede separar fácilmente los comandos, como gnome-terminal --tab -- guard; gnome-terminal --tab -- rails runner MonitorRedisJob.perform_now

  3. 7

    He encontrado la manera más simple:

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

    Yo uso tmux en lugar de utilizar la terminal directamente. Así que lo que quiero realmente es una sola y simple comando/shell archivo para generar el desarrollo env con varios tmux de windows. El código de shell es la 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
    
    • Estas citas 'command 1' funcionan mejor que las comillas dobles que solo trabajan para mí cuando yo también especificar --working-directory="/some/path/"
  4. 3

    Un poco más elaborada versión (para el uso de una ventana a otra):

    #!/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 "[email protected]"
    xdotool key Return
    
    wmctrl -i -a $WID # go to that window (WID is numeric)
    
    # vim:ai
    # EOF #
    
  5. 1

    Reunir a un número de diferentes puntos de arriba, aquí es un script que se ejecute cualquiera de 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 "[email protected]"; xdotool key Return;
    

    Próximo hacerlo ejecutable:
    chmod +x new_tab.sh

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

  6. 1

    Sólo en caso de que usted desea abrir

    • una nueva ventana
    • con dos pestañas
    • y ejecutar el comando en el que hay
    • y tener a permanecer abiertos…

    aquí vamos:

    gnome-terminal --geometry=73x16+0+0 --window \
      --working-directory=/depot --title='A' --command="bash -c ls;bash" \
      --tab --working-directory=/depot/kn --title='B' --command="bash -c ls;bash"
    

    (el mismo para mate-terminal btw.)

  7. 0

    Para cualquier persona que busca una solución que no se utilice la línea de comandos: ctrl+shift+t

    • Que están pidiendo a la línea de comandos ., para automatizar las cosas. Estos accesos directos rara vez ayuda.
    • que era exactamente lo que estaba buscando. A la pregunta del título no se limita a ‘soluciones automatizadas’ @EAGER_STUDENT y para ser honesto, me resulta difícil encontrarse con un caso de uso cuando necesito una interfaz gráfica de usuario automatizados. Que como hacer una cirugía a corazón abierto a través de la columna vertebral.
    • Me alegro de que la solución ayudado a usted. Pero ya que la pregunta dice ‘uso de línea de comandos’ supuse que el uso de algunos automatizado de comandos, algo así como la alta votado respuestas… de todos Modos la respuesta en sí aclara ‘Para cualquier persona que busca una solución que no se utilice la línea de comandos’…. Felicitaciones a la respuesta…. Por otra parte, me resulta difícil encontrarse con un caso de uso cuando necesito una interfaz gráfica de usuario automatizados.’dicen que siempre necesito 5 pestañas abiertas en el inicio. En ese caso, sería útil. Pero en ese caso también podemos usar el atajo para automatizar todos modos 😉
    • Ejemplo donde tengo automatizado ficha de apertura; yo soy la automatización de secuencias de comandos de inicio en un robot, y quiero abrir pestañas para ejecutar comandos de forma que cuando los procesos de accidente (ya que todos eventualmente) puedo ssh desde mi laptop y tener una mirada en el registro de la salida de las consolas sin excavar a través de los directorios del archivo de registro.
  8. -2

    Para abrir varias pestañas en la misma ventana de terminal se 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 
    
    • Suena como esto es muy OSX centrada en la respuesta cuando la pregunta es claramente acerca de (gnome) terminal en linux. osascript es OSX(Apple)
    • Gracias—eso responde a mi ¿qué diablos es eso? la respuesta a esta respuesta. Pallavi: Incluso si la pregunta era acerca de Mac, codificar su propia casa camino de no hacer que tu respuesta sea muy útil. Le sugiero que use el $HOME variable de entorno, o el OSX equivalente, si es diferente.

Dejar respuesta

Please enter your comment!
Please enter your name here