Подтвердить что ты не робот

Gnome-Terminal, как начать работу в другом каталоге?

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

4b9b3361

Ответ 1

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

Ответ 2

Я сделал этот путь - с помощью script: откройте 3 вкладки в том же размере 170x40, каждая "вкладка" начнется в другом каталоге.

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

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

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

Ответ 3

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

cd ~/myfolder

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

Справочная опция

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

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

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

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

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

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

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

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

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

Thesse do work:

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

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

gnome-terminal --working-directory ~/dir

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

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

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

Ответ 9

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

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

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


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

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

Создайте файл с именем gnome-terminal в папке ~/bin. Он будет действовать как ярлык, но извне (начальное меню, мини-пусковая установка, другой терминал и т.д.), поскольку ~/bin уже находится в $PATH (по крайней мере, в Linux Mint...). Сделать этот файл исполняемый файл. Затем поместите следующее содержимое в 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=/ "[email protected]" 
else
    # 'gnome-terminal' was from another directory. 
    # We don't change anything.
    /usr/bin/gnome-terminal "[email protected]"
fi

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

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

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

Ответ 10

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

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