如何在Cygwin中更改默认的启动目录?


35

每当我启动cygwin时,都需要将CD级别降低到使用cygwin时我关心的唯一目录。

默认情况下,如何才能使cygwin在该特定目录中启动...即,每次我启动Cygwin时,它将已经在该目录中?

我发现了一些可能是或接近的东西,但我不理解它们,而且当我搜索这些(n00b)术语时实际上没有任何结果。任何帮助将是巨大的!


提示:使用cygwin,您无需多次CD-您可以使用一个命令来完成(建议仍会出现在子目录中)。
线

Answers:


46

只需添加

cd /path/to/directory/you/care/about

到〜/ .bashrc文件的底部。


1
Windows安装中的〜/ .bashrc文件在哪里
Erdem Ece 2014年

3
这取决于您如何安装Cygwin,但是通常您的Cygwin主目录C:\cygwin\home\%USERNAME%的Windows路径是Windows,这会使Windows路径变为~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc
garyjohn 2014年

如果dafault主目录是我不想放置任何文件的目录,该怎么办。
Arturo 2015年

@Arturo我认为您搞砸了两件事-用户主目录和Cygwin主目录。如果您安装Cygwin,则仍然存在.bashrc文件。
线路

3

定义“启动cygwin”?您可以在开机时运行cygwin服务器,但我假设这不是您的意思。

如果您的意思是,每次打开外壳程序提示符时都位于一个特定的文件夹中,则可以将其放入$ HOME / .bashrc中。

使用cygwin编辑器(使用UNIX行尾的编辑器)编辑$ HOME / .bashrc,添加一行

cd /whatever/directory/you/want

如果您经常访问此目录,则最好也设置一个别名。

在您的$ HOME / .bashrc中放:

alias GT='cd /whatever/directory/you/want'

随便你怎么称呼它;我只是将GT用于“去那里”,而我将其大写是因为它可以轻松地将其与永远不会大写的内置命令分开。



0

python脚本

!!在使用之前,将.bashrc任何字符串添加到末尾!

采用 name_script.py c:\path

path_bachrc -.bashrc的路径

cmd -cygwin.bat的路径

#***********************************************#
#   gangelXXX@gmail.com                         #
#***********************************************#
import argparse
import subprocess
import os

path_bachrc = 'c:/PP/cygwin/home/adm/.bashrc'
cmd = 'c:\PP\cygwin\Cygwin.bat'

def delEndLineFromFile(filename):
    with open(filename, 'r') as f:
        aList = f.readlines()

    bList = aList[0:-1]

    with open(filename, 'w') as fd:
        fd.writelines(bList)


parser = argparse.ArgumentParser()
parser.add_argument("newPath", type=str, help="New path in .bachrc cygwin")
args = parser.parse_args();

delEndLineFromFile(path_bachrc);

p = args.newPath;
pNew = 'cd /cygdrive/' + p[:1] + p[2:].replace('\\', '/')
print(pNew)

with open(path_bachrc, 'a') as f:
    f.write(pNew)

PIPE = subprocess.PIPE
p = subprocess.Popen(cmd, shell = True)

2
请解释。
罗尼·迈克尔

python脚本使用name_script.py c:\ path \
user236976 2013年

path_bachrc-.bashrc的路径
user2369762013年

cmd-cygwin.bat的路径
user236976 2013年

0

此解决方案不需要编辑.bashrc:

以下是mkpasswd上官方文档的摘录:

例如,此命令:

示例3.11 使用备用主根

$ mkpasswd -l -p "$(cygpath -H)" > /etc/passwd

会将本地用户的主目录放在Windows的“个人资料”目录中。

(答案是从关于stackoverflow的类似问题复制而来的,因为我比这里的人更喜欢这种解决方案)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.