multiple multi best linux console terminal gnome

linux - multi - Gnome-Terminal, ¿cómo empezar en un directorio diferente?



multi terminal linux (10)

Opción de directorio

Existe la opción --working-directory para especificar el directorio de inicio del terminal (sin formulario de opción corta).

El enfoque básico para abrir la terminal en /some/dir es

gnome-terminal --working-directory=/some/dir

pero hay una trampa ...

Mala trampa

Suponiendo que queremos iniciar el terminal en el directorio ~/dir .

Esto no funciona:

gnome-terminal --working-directory=~/dir

El comando se ve perfectamente bien de acuerdo con la sintaxis de la opción, pero el terminal se inicia en el directorio de inicio.
Esto se debe a que no expande la tilde ( ~ ), por razones confusas, ver más abajo.

Thesse hacer el trabajo:

gnome-terminal --working-directory=/home/auser/dir gnome-terminal --working-directory=$HOME/dir gnome-terminal --working-directory ~/dir

Expansión de tilde

Tenga en cuenta que no hay = en la última variante. Debido a esto, el ~ encuentra al comienzo de una palabra de shell, y por lo tanto está acompañado por la expansión de tilde.

El problema es que ~ no se expande en todas partes, sino solo en ciertos lugares. Uno de ellos está en asignaciones de variables, como directory=~/dir . Eso está bien, ~ se expande a $HOME , pero --working-directory=~/dir no expande ~ , porque no es una asignación de variable, solo se ve muy similar.

Cada vez que inicio mi consola gnome-terminal en Ubuntu, se inicia en el directorio de inicio. ¿Cómo puedo hacer que comience en un directorio diferente, digamos ~/myfolder ? Intenté escribir cd ~/myfolder en ~/.profile pero no pasa nada.


Agrega lo siguiente a tu ~ / .bashrc

cd ~ / myfolder


De hecho, así es como lo apago para todos por defecto.

gconftool-2 --direct / --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory/ / --set -- type=bool /apps/nautilus-open-terminal/desktop_opens_home_dir true


Desde la terminal de GNOME - Comenzando :

También puede especificar un comando que se ejecute automáticamente cuando inicie GNOME Terminal en el perfil.


Estoy impresionado por el comentario de Neil en Mayhew y la respuesta de Volker Siegel . He intentado no solo configurar el directorio predeterminado para gnome-terminal sino también preservar el comportamiento habitual del entorno de escritorio (estoy usando Linux Mint 17.1 Cinnamon , GNOME Terminal 3.6.2 , tal vez también se puede aplicar para otros congresos de Gnome). DEs). Así que déjame poner mis dos centavos.

  1. Agregar cd ~/myfolder al final de ~/.bashrc hace el trabajo. Pero como ya se mencionó afectará a cada shell interactivo. Más aún, si abre algún directorio en un administrador de archivos ( Nemo o Nautilus o algo así) y apela al menú contextual desde allí (por ejemplo, haga clic con el botón derecho y luego seleccione Abrir en la Terminal ), se iniciará una nueva instancia de gnome-terminal . ~/myfolder independientemente de la carpeta que se cargó en el administrador de archivos. Incluso si ejecuta gnome-terminal --working-directory=/some/other/folder explícitamente, todavía abrirá ~/myfolder . Parece que el enfoque con .bashrc es inutilizable.

  2. gnome-terminal --working-directory=myfolder funciona bien pero solo cuando usa una entrada de menú personalizada en su DE (o acceso directo personalizado en el escritorio) que ejecuta el terminal con este parámetro. Si desea ejecutar gnome-terminal desde la línea de comandos o desde el mini-launcher (presione Alt + F2 ), debe escribir el parámetro cada vez. De todos modos este enfoque es más o menos utilizable.

¿Cómo gnome-terminal determina qué carpeta abrir? Cuando no se especifica --working-directory se abre el directorio de trabajo actual (por ejemplo, $PWD ), de lo contrario se abre explícitamente el directorio especificado.

He encontrado la siguiente solución.

Cree un archivo llamado gnome-terminal en su carpeta ~/bin . Actuará como acceso directo pero desde todas partes (menú de inicio, mini-launcher, otra instancia de terminal, etc.) porque ~/bin ya está en $PATH (al menos en Linux Mint ...). Hacer este archivo ejecutable. Luego ponga el siguiente contenido en el script:

#!/bin/bash home_directory=~ if [ "$PWD" == "$home_directory" ]; then # When ''gnome-terminal'' was ran from either # - start menu # - mini-launcher # ... # parent directory is set to $HOME. # # We respect original command line arguments. # For example, when terminal is ran from another # terminal instance and ''--working-directory'' is # specified explicitly we should left it as it is. # If there are two ''--working-directory'' switches # in the command line ''gnome-terminal'' will pick up # the last one. # # Also we use full path to executable here in order # to prevent recursive calling of ''gnome-terminal'' from # ''~/bin''. /usr/bin/gnome-terminal --working-directory=/ "$@" else # ''gnome-terminal'' was from another directory. # We don''t change anything. /usr/bin/gnome-terminal "$@" fi

Si ejecuta gnome-terminal desde el menú de inicio, verá que la carpeta actual en el nuevo terminal es / (puede usar cualquier carpeta, por ejemplo, ~/myfolder porque nuestro contenedor personalizado es un script Bash, por lo que la expansión de la shell funciona bien) .

Si apela a Open in Terminal en un administrador de archivos, obtendrá el directorio actual en el nuevo terminal.

Si ejecuta gnome-terminal con un --working-directory explícito (quizás, desde una instancia de terminal existente), se abrirá una nueva instancia de terminal en el directorio que especificó.


Lo hice de esta manera: con el script: abra 3 pestañas en el mismo tamaño de ventana 170x40, cada "pestaña" comienza en un directorio diferente.

gnome-terminal --geometry = 170x40 --working-directory = myfolder1 /

--tab --working-directory = myfolder2 /

--tab --working-directory = myfolder3


Para abrir en mi directorio deseado como usuario root ejecuté:

gnome-terminal --working-directory=/home/my-project/ -x bash -c "sudo su"


Podría usar la extensión nautilus-open-terminal . Esto le permite hacer clic derecho en una carpeta en nautilus y abrir una ventana de terminal con ese directorio como su directorio de trabajo.

También puede ejecutar un terminal de la forma normal, escriba "cd" y arrastre un icono de carpeta desde nautilus a la ventana. Esto pegará la ruta de acceso de la carpeta en la línea de comandos y luego escribirá return para cambiar a ese directorio. Puede hacer lo mismo con los archivos normales para pegar su ruta y ejecutar comandos en ellos.


Si la carpeta tiene una ruta complicada, es decir, no solo ~/myfolder , puede crear un enlace simbólico a ella en su directorio de inicio para poder acceder a ella rápidamente. También puede configurar la variable de entorno CDPATH para decirle a bash que busque una lista de directorios cuando escribe cd myfolder .


si inicia gnome-terminal como "gnome-terminal --working-directory = myfolder" se iniciará con el directorio de trabajo en ~ / myfolder. para que pueda agregar una nueva entrada a su menú para usar ese comando en lugar del otro.