Gnome-Terminal, Comment démarrer dans un répertoire différent?

chaque fois que je démarre ma console gnome-terminal dans Ubuntu, elle commence dans le répertoire home. Comment puis-je le faire démarrer dans un autre répertoire dit ~/myfolder ? J'ai essayé d'écrire cd ~/myfolder dans ~/.profile mais rien ne se passe.

23
demandé sur Ken 2009-05-10 08:17:25

10 réponses

si vous démarrez gnome-terminal comme" gnome-terminal --working-directory=myfolder " il commencera avec le répertoire de travail à ~/myfolder. ainsi, vous pouvez ajouter une nouvelle entrée dans votre menu pour utiliser cette commande au lieu de l'autre.

42
répondu Cdsboy 2009-05-10 04:50:51

ajouter ce qui suit à votre ~/.bashrc

cd ~/mondossier

12
répondu mdec 2009-05-10 04:55:43

j'ai fait de cette façon - avec un script: ouvrez 3 onglets dans la même taille de fenêtre 170x40, chaque "onglet" commence dans un répertoire différent.

gnome-terminal-géométrie=170x40 --répertoire de travail=mon dossier1 \

--onglet --répertoire de travail=mondossier2 \

--onglet --répertoire de travail=mondossier3

12
répondu 2009-07-08 13:28:54

vous pouvez utiliser l'extension nautilus-open-terminal . Cela vous permet de cliquer avec le bouton droit de la souris sur un dossier dans nautilus et d'ouvrir une fenêtre de terminal avec ce répertoire comme répertoire de travail.

vous pouvez également exécuter un terminal de la manière normale, tapez "cd", et faites glisser une icône de dossier de nautilus à la fenêtre. Cela va coller le chemin d'accès du dossier dans la ligne de commande et tapez ensuite revenir à ce répertoire. Vous pouvez faire la même chose avec des fichiers réguliers pour coller leur chemin et exécuter des commandes sur eux.

4
répondu Neil Mayhew 2010-07-17 23:43:35

à Partir de Terminal GNOME - mise en route :

vous pouvez également spécifier une commande qui s'exécute automatiquement lorsque vous démarrez GNOME Terminal dans le profil.

2
répondu lothar 2009-05-10 04:36:57

en fait, c'est comme ça que je l'éteins pour tout le monde par défaut.

gconftool-2 --direct \
--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory/ \
--set -- type=bool /apps/nautilus-open-terminal/desktop_opens_home_dir true
2
répondu user2694870 2013-08-19 01:21:16

Si le dossier est compliqué chemin, c'est à dire pas juste ~/myfolder , vous pouvez créer un lien symbolique dans votre répertoire d'accueil de sorte que vous pouvez l'obtenir rapidement. Vous pouvez également définir la variable d'environnement CDPATH pour dire à bash de rechercher une liste de répertoires lorsque vous tapez cd myfolder .

1
répondu Neil Mayhew 2010-07-17 23:46:14

option répertoire

il y a l'option --working-directory pour spécifier le répertoire de démarrage du terminal (pas de forme d'option courte).

l'approche de base pour ouvrir le terminal dans /some/dir est

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

mais il y a un piège...

Mauvais piège

en supposant que nous voulons démarrer le terminal dans le répertoire ~/dir .

cela ne fonctionne pas:

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

la commande semble parfaitement correcte selon la syntaxe de l'option, mais le terminal démarre dans le répertoire d'origine.

C'est parce qu'il n'étend pas le tilde ( ~ ), pour des raisons confuses - voir ci-dessous.

Thess do work:

gnome-terminal --working-directory=/home/auser/dir

gnome-terminal --working-directory=$HOME/dir

gnome-terminal --working-directory ~/dir

Tilde expansion

Note il n'y a pas de = dans le la dernière variante. Pour cette raison, le ~ est au début d'un mot shell, et est donc handeled par expansion tilde.

le problème est que ~ ne s'étend pas partout, mais seulement dans certains endroits. L'un d'eux est en affectation variable, comme directory=~/dir . C'est ok, ~ est étendu à $HOME , mais --working-directory=~/dir n'étend pas ~ , parce que ce n'est pas une affectation variable, il semble seulement très similaire.

1
répondu Volker Siegel 2014-11-22 04:04:43

pour ouvrir dans le répertoire désiré en tant qu'utilisateur root j'ai couru:

gnome-terminal --working-directory=/home/my-project/ -x bash -c "sudo su"
1
répondu sytnei 2016-12-30 12:26:12

je suis impressionné par de Neil Mayhew commentaire et de Volker Siegel réponse . J'ai essayé non seulement de définir un répertoire par défaut pour gnome-terminal mais préserver le comportement habituel de l'environnement de bureau ainsi (j'utilise Linux Mint 17.1 cannelle , Terminal GNOME 3.6.2 , peut-être peut-il également être appliqué pour D'autres GNOME-congenered DEs). Alors laisse-moi mettre mes deux cents.

  1. ajouter cd ~/myfolder à la toute fin de ~/.bashrc fait le travail. Mais comme nous l'avons déjà dit, cela affectera tous les shell interactif. Encore plus, si vous ouvrez un répertoire dans un gestionnaire de fichiers ( Nemo ou Nautilus ou quelque chose comme ceci) et appel au menu contextuel à partir de là (par exemple clic droit, puis sélectionner Ouvrir dans le Terminal ) nouvelle instance de gnome-terminal sera lancé dans ~/myfolder quel que soit le dossier qui a été chargé dans le gestionnaire de fichiers. Même si vous lancez gnome-terminal --working-directory=/some/other/folder explicitement, il restera ouvert ~/myfolder . Semble que le approche avec .bashrc est inutilisable.

  2. gnome-terminal --working-directory=myfolder fonctionne très bien, mais seulement lorsque vous utilisez l'entrée de menu personnalisé en vous DE (ou raccourci personnalisé sur le bureau) qui exécute le terminal avec ce paramètre. Si vous souhaitez exécuter gnome-terminal à partir de la ligne de commande ou à partir de mini-lanceur (appuyez sur Alt + F2 ), vous devez taper le paramètre à chaque fois. De toute façon, cette approche est plus ou moins utilisable.


comment gnome-terminal détermine-t-il quel dossier ouvrir? Quand --working-directory n'est pas spécifié il s'ouvre courant répertoire de travail (par ex. $PWD ) sinon, il ouvre le répertoire spécifié explicitement.

j'ai trouvé la solution suivante.

créez un fichier nommé gnome-terminal dans votre dossier ~/bin . Il agira comme raccourci mais de partout (menu Démarrer, mini-lanceur, autre instance de terminal, etc) parce que ~/bin est déjà dans $PATH (au moins dans Linux Mint...). Faire de ce fichier exécutable. Puis mettez le contenu suivant dans le 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 vous lancez gnome-terminal à partir du menu Démarrer, vous verrez que le dossier courant dans le nouveau terminal est / (vous pouvez utiliser n'importe quel dossier, par exemple, ~/myfolder parce que notre wrapper personnalisé est un script Bash, donc l'expansion de shell avec le travail parfait).

si vous faites appel à Ouvrir dans le Terminal dans un gestionnaire de fichiers, vous obtiendrez répertoire courant dans le nouveau terminal.

si vous exécuter gnome-terminal avec le paramètre explicite --working-directory (peut-être, à partir d'une instance de terminal existante) nouvelle instance de terminal sera ouverte dans le répertoire que vous avez spécifié.

1
répondu flaz14 2017-05-23 11:54:56