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

Создайте домашний каталог cygwin для профиля пользователя Windows

Поскольку я разрабатываю Ruby on Rails на компьютере под управлением Windows, мне нужно использовать cygwin для эмуляции командной строки Unix. Проблема в том, что каждый раз, когда я открываю терминал cygwin, меня переносят в этот каталог C:/cygwin/home/my_user_name, а не в каталог Windows по умолчанию C:/Users/my_user_name.

Кто-нибудь знает, как создать домашний каталог cygwin по умолчанию для каталога по умолчанию: C:/Users/my_user_name?

Я просмотрел различные решения, предоставляемые в Stack Overflow, но ни один из них не работает для меня, "mkpasswd" тоже не работает. Это имеет какое-то отношение к моей версии операционной системы или, возможно, что-то еще?

Я использую cygwin 1.7.5, а моя операционная система - это 64-разрядная версия Windows 7 Business.

4b9b3361

Ответ 2

Мне удалось изменить мой, просто установив переменную среды HOME в Windows на C:\Users\MyUsername. Когда я запускаю Cygwin, теперь он выглядит там. Это имеет дополнительное преимущество, заключающееся в том, что Emacs на обычном Win32 (то есть не через Cygwin) запускается в нужном месте, а не в C:\Users\MyUsername\AppData\Roaming (и, следовательно, ищет .emacs и .emacs.d)

Ответ 3

В соответствии с документацией Cygwin вы можете отредактировать /etc/nsswitch.conf и изменить параметр db_home.

  • % u - Имя пользователя Cygwin (в нижнем регистре u).
  • % U - Имя пользователя Windows (в верхнем регистре U).
  • % D - домен Windows в стиле NetBIOS.
  • % H - домашний каталог Windows в стиле POSIX. Обратите внимание, что для параметра db_home:
  • % _ - Поскольку для разделения схем используются символы пространства и TAB, пространство в имени файла должно быть указано как% _ (это подчеркивание).
  • %% - знак процента.

Вот содержимое моего /etc/nsswitch.conf для создания каталога home в каждом каталоге пользователя

# /etc/nsswitch.conf
#
#    This file is read once by the first process in a Cygwin process tree.
#    To pick up changes, restart all Cygwin processes.  For a description
#    see https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch    
# Defaults:
# passwd:   files db
# group:    files db
# db_enum:  cache builtin
# db_home: /home/%U <------ This was the default setting
db_home: /%H/home # db_home: /home/%U <- This was the default setting
# db_shell: /bin/bash
# db_gecos: <empty>

Перезапустите любой процесс Cygwin