使用Cygwin设置默认路径

7

我已经安装了Cygwin,并且希望每次启动时都能在特定的目录下启动Bash。我该如何实现这个功能?

4个回答

6
在你的~/.bashrc文件中,你可以在文件末尾添加cd到该目录,或者将你的$HOME更改为该目录(已经尝试过但没有成功)。

~/.bashrc是什么鬼?编辑:整个文件似乎都是一个巨大的注释。 - Puppy
3
~ 是指代你的主目录,也就是你登录时所在的目录。通常为 /home/用户名,其中 用户名 就是你的实际用户名。.bashrc 是一个文件,在你登录时会被 bash 读取以设置你希望的环境配置。 - Kevin

3

在您的~/.bash_profile中,您可以简单地写入cd /cygdrive/c/path/to/where/you/want/cygwin/to/start。您将在cygwin安装文件夹下找到此文件,在<path_to_cygwin>\home\<user>\.bash_profile下。(在我的情况下:C:\cygwin64\home\User\.bash_profile)。


非常完美,非常感谢。 - undefined

0

Cygwin上的Bash在启动时会进入您的主文件夹,就像在Linux上一样,Cygwin尽可能地模仿它。因此,您只需要更改您的主文件夹

(请注意,您的Cygwin文件夹不必与Windows用户主文件夹相同。默认情况下,它们是不同的,但是您可以通过将类似/cygdrive/c/Users/myid的内容放入/etc/passwd中的Cygwin用户条目中使它们相同。)


0

Python脚本

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

使用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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接