Как использовать по умолчанию другой каталог вместо домашнего каталога

180

Я разрабатываю на машине Windows. Единственное место, которое мне нужно для командной строки Linux - это Git Bash. Проблема заключается в следующем: когда я открываю его, я нахожусь в домашнем каталоге. Я должен изменить каталог на мое рабочее пространство, например:

cd ../../../d/work_space_for_my_company/project/code_source

Могу ли я обернуть это в файл .sh, чтобы мне больше не приходилось вводить его вручную? Это должно быть просто, но я ничего не знаю о командной строке Linux. Я очень признателен, если вы сможете рассказать мне, как создать этот файл .sh.

Си Чжан
источник
5
Ответы ниже являются правильными для исправления этого навсегда, однако даже без них вы не должны каждый раз писать это вручную. Git Bash включает в себя историю команд, которая сохраняется между сессиями (в отличие от консолей Windows), поэтому всякий раз, когда вы хотите повторить эту команду, вместо того, чтобы вводить ее снова, просто введите Ctrl-r и затем часть команды, например. ctrl-r../dи команда придет, а затем введите Enter. В общем, потратьте несколько минут на изучение того, как использовать историю команд, и тогда вы будете часто ее использовать, повторяя различные команды git.
Стивен Хоскинг
К вашему сведению, вот альтернатива WSL bash C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(или если вы используете cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data), где -iзаставляет работать клавиши со стрелками
KCD

Ответы:

101

Просто напишите эту строку в файл "cd.sh", а затем сделайте это из командной строки:

. ./cd.sh

Или вы можете создать псевдоним или функцию в вашем $HOME/.bashrcфайле:

foo() { cd /d/work_space_for_my_company/project/code_source ; }

Если имя каталога содержит пробелы или другие метасимволы оболочки, вам понадобятся кавычки; добавить их не помешает, даже если они не нужны:

foo() { cd "/d/Work Space/project/code_source" ; }

(Обратите внимание, что я опустил ../../..; вам это не нужно.)

РЕДАКТИРОВАТЬ: если вы добавите строку

foo

к вашему .bashrcпосле определения функции, ваша оболочка начнет в этом каталоге. Или вы можете просто использовать cdкоманду прямо в вашем, .bashrcесли вам не понадобится использовать эту функцию позже.

(Имя fooявляется лишь примером; вы должны выбрать более значимое имя.)

Кит Томпсон
источник
5
Как указывает @orip, вы можете просто сделать это cdв вашем .bashrc. Но если вы сделаете это функцией, вы сможете использовать команду позже, после того, как вы перейдете в другой каталог.
Кит Томпсон
2
Чтобы объяснить "../../ ..", указанная вами команда указывает путь относительно вашего текущего каталога; "../../../d/work_space_for_my_company/project/code_source"поднимается на три уровня от вашего текущего каталога (который оказывается $HOME), затем до "d", затем до "работа ...". Среда оболочки git bash "/d"ссылается на то, что вызывает Windows "D:\". Использование абсолютного имени пути "/d/work_space_for_my_company/project/code_source"проще и не зависит от того, где вы $HOMEнаходитесь.
Кит Томпсон
2
Где я могу найти этот .bashrcфайл?
ptamzz
2
@ptamzz: Обычно при .bashrcсоздании учетной записи в вашем домашнем каталоге создается файл. Если нет, вы можете создать его самостоятельно.
Кит Томпсон
1
Где вы найдете "cd.sh"? И когда вы говорите домашний каталог. Вы говорите о домашнем каталоге для текущего приложения или ??
WowBow
374

Вот еще одно решение для Windows: щелкните правой кнопкой мыши ярлык Windows, который вы используете для запуска git bash, и выберите Свойства. Измените значение «Start In» на желаемый путь к рабочей области.

Редактировать: Также убедитесь, что значение Target не включает параметр --cd-to-home, как отмечено в комментариях ниже.

Дэвид Сигал
источник
13
единственная проблема этого решения заключается в том, что вы не задаете путь по умолчанию для домашнего каталога, доступ к которому осуществляется с помощью~
worc
67
Это сработало для меня. Кроме того, мне также пришлось удалить опцию --cd-to-home в команде запуска.
ChinLoong
2
В случае, если у вас есть ярлык, закрепленный на панели задач Windows 7, вам нужно будет дважды щелкнуть правой кнопкой мыши по программе, как предложено lifehacker.com/5475752/…
манат
11
Договорились, что это наиболее прямолинейное решение, но абсолютно необходимо изменить его, добавив в цель удаление «--cd-to-home». Без этого последнего изменения вы всегда будете по умолчанию использовать папку C: \ Users [name] (если только вы не изменили свою настройку).
Zeus56
2
Чтобы уточнить, в ярлыке должна быть «Цель», %WINDIR%\System32\bash.exeа «Старт в» должен быть C:\Tempили любой другой путь, который вы хотите.
demoncodemonkey
45

Добавьте строку в .bashrcфайл в домашнем каталоге (создайте файл, если он не существует):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc
orip
источник
5
Я знаю, что я супер опоздал на вечеринку, но спасибо, что прекратили ерунду функции! :)
Фелипе Жерар
1
Это было прекрасно. Пошел к моему .bashrc.localи добавил cd ~/Desktop/repos/;ко дну. Работал как шарм! изменение дна .bashrcтакже будет работать.
Майкл Диммитт
Я только что создал файл .bashrc в ~ и в следующий раз, когда открыл git Bash, он пожаловался, что у меня нет .bash_profile и другого файла, поэтому он создал их для меня. И после повторного открытия Git Bash это работало без цветов!
Пини Чейни
удалить опцию --cd-to-home в команде запуска (Свойства ярлыка)
telebog
38

Я использую ConEmu (настоятельно рекомендуется для Windows), где у меня есть задача для запуска Git Bash, как

введите описание изображения здесь

Обратите внимание на кнопку «Startup dir ...» внизу. Это добавляет -new_console:d:<path>к команде запуска Git Bash. Сделайте так, чтобы он указывал на то, где вы хотите

Juri
источник
Спасибо, что поделились пользовательским заданием, я не смог заставить его работать. Как я могу после этого запускать простые команды Windows, например, пинговать Google.com?
Иман Мохамади
1
@ImanMohamadi Для подобных вещей я бы предпочел создавать сценарии, которые вы добавляете в переменную PATH env, чтобы вы могли выполнять команды cmd, например, p-gдля проверки связи с Google и т. Д.
Juri
23

Это может помочь вам.

Описание изображения

  1. Щелкните правой кнопкой мыши на git bash -> свойства
  2. На вкладке «Сокращения» -> «Начать в поле» -> введите пользовательский путь
  3. Убедитесь, что поле Target не содержит --go-to-homeили будет продолжать запуск в каталоге, указанном в переменной HOME

Это оно.

Криш
источник
Я пробовал это, но он не работает, когда путь находится на другом диске, как d: \ projects \ test
Рэй
Windows 10 не показывает эту вкладку для git bash, но вы можете взломать ее, используя эти 3 маленькие строчки кода, сохранить их в каком-нибудь **. Bat файле, 1. d: 2. cd data 3.git bashесли дважды щелкнуть файл bat, то он откроется в нужном месте
Krish
1
Посмотри это Targetполе, у него нет параметров. По умолчанию содержит то, -go-to-homeчто должно стереть оттуда, что работает.
Курапика
1
Это работает для меня Цель: "C: \ Program Files \ Git \ git-bash.exe" (ВАЖНО) Начать с: d: / xampp / htdocs /
raftaar1191
1
Он также работает для меня с той же целью, что и @ raftaar1191 (я удалил опцию «--cd-to-home»), и я настроил строку «start in» на «C: \ wamp \ www», что очень полезно!
Найфун
10

Я также только что изменил настройку «Начать в» ярлыка: %HOMEDRIVE%/xampp/htdocs/

Фрэнсис
источник
9

Это будет сделано, если вы хотите, чтобы это происходило каждый раз, когда вы открываете командную строку:

echo cd ../../../d/work_space_for_my_company/project/code_source >> ~/.bashrc

Теперь, когда вы откроете оболочку, она переместится вверх на три каталога из дома и изменится на code_source.

Этот код просто добавляет строку "cd ../../../d/work_space_for_my_company/project/code_source" в файл с именем ".bashrc". «>>» создает файл, если он не существует, а затем добавляет. Файл .bashrc полезен для запуска команд во время запуска / входа в систему (т.е. загрузки модулей и т. Д.)

Usagi
источник
9

(Пожалуйста, прочитайте предупреждение ниже)

Действительно простой способ сделать это в Windows (работает с git bash, возможно, с другими) - создать переменную окружения HOME, которая указывает на нужный домашний каталог.

  1. Щелкните правой кнопкой мыши на моем компьютере и выберите свойства
  2. Выберите дополнительные параметры системы (расположение зависит от версии Windows)
  3. В свойствах системы выберите вкладку «Дополнительно».
  4. На вкладке «Дополнительно» выберите «Переменные среды» (нижняя кнопка)
  5. В разделе «системная переменная» проверьте, есть ли у вас переменная с именем HOME. Если это так, отредактируйте эту переменную, выделив имя переменной и нажав кнопку «Изменить». Сделайте имя новой переменной желаемым путем.
  6. Если HOME еще не существует, нажмите «new» в системных переменных и создайте новую переменную с именем HOME, значением которой является требуемый путь.

Переменная среды

ПРИМЕЧАНИЕ: это может изменить способ работы других вещей. Например, для меня это меняет место расположения моих файлов конфигурации .ssh. В моем случае я хотел, чтобы моим домом был U: \, потому что это мое основное место, где я помещаю работу над проектом и настройки приложения (т.е. это действительно мой "домашний" каталог).

РЕДАКТИРОВАТЬ 23 июня 2017 г .: Этот ответ по-прежнему вызывает редкие отзывы, и я хочу предупредить людей, что, хотя это может «сработать», я согласен с @AnthonyRaymond, что он не рекомендуется. Это скорее временное исправление или исправление, если вам все равно, если что-то сломается. Смена дома не приведет к активному повреждению (например, удалению вашего жесткого диска), но может привести к коварным раздражениям позже. Когда у вас начнутся неприятные проблемы в будущем, вы, вероятно, не запомните это изменение ... поэтому вы, скорее всего, будете чесать голову позже!

geneorama
источник
Я не понимаю, почему правки, предложенные @asalle (в основном предполагающие, что вы также можете редактировать системные переменные пользователя) были отклонены Bamsworld fish_ball и greg-449, правки казались разумными.
Geneorama
Это слишком разрушительный способ быть хорошей идеей. Это может повлиять на многие другие приложения и даже окна. Это не рекомендуется
Энтони Рэймонд
@AnthonyRaymond Как я уже заметил, изменение «HOME» может иметь и другие последствия, однако я бы не сказал, что это обязательно разрушительно. На самом деле, это может быть полезно, если вы хотите, чтобы ваш HOME был определенным местом, или если другое приложение установило HOME в нежелательное местоположение. В любом случае, я думаю, что этот ответ проливает некоторый свет на то, как установлен каталог по умолчанию.
Geneorama
@AnthonyRaymond, хотя я согласен, что в контексте этого вопроса установка дома на конкретный проект (например ../../../d/work_space_for_my_company/project/code_source) является плохой идеей. Вообще говоря, бывают случаи, когда ДОМОЙ не нужно быть/c/Users/[current user name]/
genorama
Если вы хотите, чтобы специальная папка указывала на другое место, создайте символическую ссылку. technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx У нас нет способа узнать, какая программа использует переменную HOME, так как я чувствую, что это немного разрушительно.
Энтони Рэймонд
7

Щелкните правой кнопкой мыши ссылку приложения Git Bash, перейдите в «Свойства» и измените местоположение «Начать в», чтобы оно стало тем местом, с которого вы хотите начать.

Майкл Страмель
источник
5

Из закрепленного пункта меню «Пуск» в Windows 10

  1. Откройте расположение файла закрепленного ярлыка
  2. Откройте свойства ярлыка
    1. Удалить --cd-to-homeарг
    2. Обновить Start inпуть
  3. Повторно прикрепите, чтобы начать меню через недавно добавленные

скриншот местоположения открытого файла

открыть скриншот свойств ярлыка

обновить скриншот свойств ярлыка

закрепить через недавно добавленный скриншот


Спасибо всем другим ответам за то, как это сделать! Хотел предоставить Win 10 инструкции ...

spottedmahn
источник
4

Для окон: выполните следующие действия:

  1. Перейдите в Windows Home> Щелкните правой кнопкой мыши на приложении «Git Bash».
  2. Свойства> Ярлык
  3. Измените эти две настройки: (a) Удалить - cd-to-homeиз target (b) Введите путь к папке, которую вы хотите начать с git, в поле «Начать с».

Это сработало для меня :)

Нехалуддин Хайдер
источник
3

Если вы хотите иметь список выбора проектов, когда вы открываете GIT bash:

  • отредактируйте ppathв заголовке кода путь к вашим git-проектам , поместите этот код в файл .bashrc и скопируйте его в каталог $ HOME (в Win Vista / 7 обычно это c: \ Users \ $ YOU )

,

#!/bin/bash
ppath="/d/-projects/-github"
cd $ppath
unset PROJECTS
PROJECTS+=(".")
i=0

echo
echo -e "projects:\n-------------"

for f in *
do
    if [ -d "$f" ]
    then
        PROJECTS+=("$f")
        echo -e $((++i)) "- \e[1m$f\e[0m"
    fi
done


if [ ${#PROJECTS[@]} -gt 1 ]
then
    echo -ne "\nchoose project: "
    read proj
    case "$proj" in
        [0-`expr ${#PROJECTS[@]} - 1`]) cd "${PROJECTS[proj]}" ;;
        *) echo " wrong choice" ;;
    esac
else
    echo "there is no projects"
fi
unset PROJECTS
  • вы можете захотеть установить этот файл как исполняемый внутри GIT bash chmod + x .bashrc (но он, вероятно, избыточен, так как этот файл хранится в файловой системе ntfs )
s1w_
источник
2

Мой ярлык Git Bash в Windows жаловался, когда я помещал компакт-диск в свой рабочий каталог в ~ / .bashrc

WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.

This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.

Итак, git создал этот .bash_profile:

$ cat ~/.bash_profile
# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc

Который делает работу.

В качестве альтернативы, вы можете просто удалить .bashrc снова и поместить команду cd в .bash_profile:

$ rm ~/.bashrc
$ echo "cd Source/Repos" >~/.bash_profile

$ cat ~/.bash_profile
cd Source/Repos

Как только это будет сделано, вы можете закрыть окно и снова открыть его, используя ярлык на рабочем столе, и на запрос будет выведено, что ваше местоположение сейчас там, где вы его хотели - похоже, это мой случай:

Administrator@raptor1 MINGW64 ~/Source/Repos
$
др. RAI
источник
2

Если вы введете эту команду: echo cd d:/some/path >> ~/.bashrc

Добавляет строку cd d:/some/pathв .bashrc. >>Создает файл , если он не существует , а затем присоединяет.

mtpultz
источник
1

Это должно быть cd d:/work_space_for_....

без :меня это не сработает

larsbo
источник
1

Другое решение для пользователей Windows - скопировать файл Git Bash.lnk в каталог, из которого нужно начать, и запустить его оттуда.

skip405
источник