将cygwin主目录设为Windows的用户配置文件

时间:2012-04-10 10:37:08

标签: cygwin

当我在Windows机器上开发Ruby on Rails时,我需要使用cygwin来模拟Unix命令提示符。现在的问题是,每当我打开cygwin终端时,我都会被带到这个目录C:/ cygwin / home / my_user_name而不是Windows的默认用户目录C:/ Users / my_user_name。

有谁知道如何将cygwin的默认主目录设为Windows默认C:/ Users / my_user_name目录?

我已经浏览了Stack Overflow中提供的各种解决方案,但它们都不适合我,“mkpasswd”也不起作用。这是否与我的操作系统版本有关,或者可能与其他内容有关?

我使用的是cygwin 1.7.5,我的操作系统是Windows 7 Business 64位。

3 个答案:

答案 0 :(得分:20)

mount -f "$USERPROFILE" ~
mount -m > /etc/fstab

相关

Safely change home directory

答案 1 :(得分:9)

我只需将Windows中的HOME环境变量设置为C:\Users\MyUsername即可更改我的。当我启动Cygwin时,现在看起来就在那里。这有一个额外的好处,就是让常规Win32上的Emacs(即不通过Cygwin)在正确的位置启动,而不是在C:\Users\MyUsername\AppData\Roaming中启动(因此在那里寻找.emacs和.emacs.d)

答案 2 :(得分:8)

根据Cygwin documentation,您可以编辑/etc/nsswitch.conf并更改de db_home参数。

  • %u - Cygwin用户名('小写u)。
  • %U - Windows用户名(即大写的U)。
  • %D - NetBIOS风格的Windows域。
  • %H - POSIX样式的Windows主目录。请注意,对于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进程