【发布时间】:2012-01-21 09:58:49
【问题描述】:
我有一个 Cygwin 安装,我希望它在我启动时在某个目录中启动 Bash。我怎样才能做到这一点?
【问题讨论】:
我有一个 Cygwin 安装,我希望它在我启动时在某个目录中启动 Bash。我怎样才能做到这一点?
【问题讨论】:
在您的~/.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)。
【讨论】:
Cygwin 上的 Bash 在您的主文件夹中启动,就像在 Linux 上一样,Cygwin 尽可能地模仿它。所以,你只需要change your home folder。
(请注意,您的 Cygwin 文件夹不必与您的 Windows 用户主文件夹相同。默认情况下,它们是不同的,但您可以通过将 /cygdrive/c/Users/myid 之类的内容放入 @987654323 中的 Cygwin 用户条目中来使它们相同@.)
【讨论】:
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)
【讨论】:
在您的~/.bashrc 中,您可以将您的 [尝试过,但没有成功] 在该目录中添加$HOME 更改为该目录,或者您可以cd文件结束。
【讨论】:
~/.bashrc 到底是什么地方?编辑:整个文件似乎是一个巨大的评论。
~ 是您的home directory 的快捷方式,这是您登录的地方。通常是/home/username,其中username 是您的实际用户名。 .bashrc 是 bash 在您登录时读取的文件,以按照您想要的方式设置环境。