Gnome-Terminal, как запустить в другом каталоге? - PullRequest
25 голосов
/ 10 мая 2009

Каждый раз, когда я запускаю консоль gnome-terminal в Ubuntu, она запускается в домашнем каталоге. Как я могу запустить его в другом каталоге, скажем ~/myfolder? Я пытался написать cd ~/myfolder в ~/.profile, но ничего не происходит.

Ответы [ 10 ]

45 голосов
/ 10 мая 2009

если вы запустите gnome-терминал, например, "gnome-terminal --working-directory = myfolder", он начнется с рабочего каталога ~ / myfolder так что вы можете добавить новую запись в ваше меню, чтобы использовать эту команду вместо другой.

12 голосов
/ 08 июля 2009

Я так и сделал - со скриптом: Откройте 3 вкладки в одном и том же окне размером 170х40, каждая «вкладка» начинается в разных каталогах.

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

- вкладка --working-directory = myfolder2 \

- вкладка --working-directory = myfolder3

12 голосов
/ 10 мая 2009

Добавьте следующее к вашему ~ / .bashrc

cd ~ / myfolder

4 голосов
/ 18 июля 2010

Вы можете использовать расширение nautilus-open-Terminal . Это позволяет щелкнуть правой кнопкой мыши папку в nautilus и открыть окно терминала с этим каталогом в качестве рабочего каталога.

Вы также можете запустить терминал обычным способом, набрать «cd» и перетащить значок папки из nautilus в окно. Это вставит путь к папке в командную строку, а затем вы наберете команду return, чтобы перейти в этот каталог. Вы можете сделать то же самое с обычными файлами, чтобы вставить их путь и выполнить команды для них.

2 голосов
/ 19 августа 2013

Собственно, так я отключаю его для всех по умолчанию.

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 голосов
/ 10 мая 2009

С Терминал GNOME - Начало работы :

Вы также можете указать команду, которая запускается автоматически при запуске терминала GNOME в профиле.

1 голос
/ 30 декабря 2016

Чтобы открыть в желаемом каталоге как пользователь root, я запустил:

gnome-terminal --working-directory=/home/my-project/ -x bash -c "sudo su"
1 голос
/ 13 ноября 2016

Я впечатлен Комментарий Нейла Мэйхью а также Ответ Зигеля Фолькера . Я пытался не только установить каталог по умолчанию для gnome-терминал , но также сохраняет привычное поведение рабочего стола (я использую Linux Mint 17.1 Cinnamon , GNOME Terminal 3.6.2 , возможно, его также можно применять для других DE, связанных с Gnome). Итак, позвольте мне положить мои два цента.

  1. Добавление cd ~/myfolder в самом конце ~/.bashrc делает работу. Но, как уже упоминалось, это повлияет на каждый интерактивная оболочка. Более того, если вы откроете какой-нибудь каталог в файловом менеджере ( Nemo или Nautilus или что-то вроде это) и обратитесь к контекстному меню оттуда (например, щелкните правой кнопкой мыши и выберите Открыть в терминале ) новый экземпляр gnome-терминал будет запущен в ~/myfolder независимо от папки, которая была загружена в файловый менеджер. Даже если вы явно запустите gnome-terminal --working-directory=/some/other/folder, он все равно откроет ~/myfolder. Кажется, что сближение с .bashrc неприменимо.

  2. gnome-terminal --working-directory=myfolder работает нормально, но только когда вы используете пользовательский пункт меню в вашем DE (или пользовательский ярлык на рабочем столе), который запускает терминал с этим параметром. Если вы хотите запустить gnome-терминал из командной строки или из мини-лаунчера (нажмите Alt + F2 ), вы должны вводить параметр каждый раз. В любом случае, этот подход более или менее применим.


Как gnome-терминал определяет, какую папку открывать? Когда --working-directory не указан, он открывает текущий рабочий каталог (например, $PWD), в противном случае он открывает каталог, указанный явно.

Я нашел следующее решение.

Создайте файл с именем gnome-terminal в папке ~/bin. Это будет действовать как ярлык, но отовсюду (меню «Пуск», мини-лаунчер, другой экземпляр терминала и т. д.), поскольку ~/bin уже находится в $PATH (по крайней мере, в Linux Mint ...). Сделать этот файл исполняемый файл. Затем поместите в скрипт следующий контент:

#!/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

Если вы запустите gnome-терминал из меню «Пуск», вы увидите, что текущая папка в новом терминале - / (вы можете использовать любую папку, например, ~/myfolder, потому что наша пользовательская оболочка является Bash-скрипт, так что расширение оболочки работает нормально).

Если вы обращаетесь к Открыть в Терминале в файловом менеджере, вы получите текущий каталог в новом терминале.

Если вы запустите gnome-terminal с явным параметром --working-directory (возможно, из существующего экземпляра терминала), новый экземпляр терминала будет открыт в указанной вами директории.

1 голос
/ 22 ноября 2014

Опция каталога

Существует опция --working-directory для указания каталога запуска терминала (без краткой формы опции).

Основной подход к открытию терминала в /some/dir -

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

но есть ловушка ...

Плохая ловушка

Предполагая, что мы хотим запустить терминал в каталоге ~/dir.

Это не работает:

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

Команда выглядит отлично в соответствии с синтаксисом опции, но терминал запускается в домашнем каталоге.
Это потому, что он не расширяет тильду (~), из-за путаницы - см. Ниже.

Эти работы:

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

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

gnome-terminal --working-directory ~/dir

Расширение тильды

Обратите внимание, что в последнем варианте = нет. Из-за этого ~ находится в начале слова оболочки и, следовательно, управляется расширением тильды.

Проблема в том, что ~ расширяется не везде, а только в определенных местах. Один из них находится в переменных назначениях, например directory=~/dir. Это нормально, ~ расширяется до $HOME, но --working-directory=~/dir не расширяется ~, потому что это не переменное присваивание, оно выглядит только очень похоже.

1 голос
/ 18 июля 2010

Если папка имеет сложный путь, то есть не просто ~/myfolder, вы можете создать символическую ссылку на нее в вашем домашнем каталоге, чтобы вы могли быстро к ней добраться. Вы также можете установить переменную окружения CDPATH, чтобы bash велел искать список каталогов при вводе cd myfolder.

...