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.
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.
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
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.
à 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.
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
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
.
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.
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"
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.
-
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 lancezgnome-terminal --working-directory=/some/other/folder
explicitement, il restera ouvert~/myfolder
. Semble que le approche avec.bashrc
est inutilisable. -
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é.