2011-12-15 2 views
4

Cygwin 설치가 있고 시작할 때마다 특정 디렉토리에서 Bash를 시작하고 싶습니다. 이것을 어떻게 할 수 있습니까? 파일의 끝에 해당 디렉토리에 cd를 추가하려면 ~/.bashrc에서Cygwin에서 기본 경로 설정

답변

2

는, 당신은 중 하나를 당신의 $HOME 그 디렉토리로 이동하거나 [시도하고 작동하지 않았다] 수 있습니다.

+0

'~/.bashrc'는 어디에서 무엇입니까? 편집 : 전체 파일은 거대한 설명 인 것으로 보입니다. – Puppy

+0

'cd '를 붙이는 것이 효과적이었습니다. – Puppy

+2

'~'는 사용자가 로그인하는 곳인 [홈 디렉토리] (http://unix.stackexchange.com/questions/23375/what-exactly-is-a-home-directory)의 바로 가기입니다. 일반적으로 '/ home/username' 여기서'username'은 실제 사용자 이름입니다. '.bashrc'는 당신이 원하는 방식으로 환경을 설정하기 위해 로그인 할 때 bash가 읽는 파일입니다. – Kevin

0

파이썬 스크립트

! 끝으로 .bashrs 어떤 문자열을 추가 사용하기 전에!

사용 name_script.py의 C : \ 경로

path_bachrc -

cmd를 .bashrc에하는 경로 - Cygwin에서 귀하의 홈 폴더에서 시작에 경로가

#***********************************************# 
# [email protected]       # 
#***********************************************# 
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) 
0

배쉬를 cygwin.bat하기 위해, Cygwin이 할 수있는 것처럼 흉내낼 수있는 리눅스와 마찬가지입니다. 따라서 change your home folder이 필요합니다.

(Cygwin 폴더는 Windows 사용자 홈 폴더와 같을 필요는 없지만 기본적으로 다르지만 /cygdrive/c/Users/myid과 같은 것을 Cygwin 사용자 항목에 /etc/passwd으로 입력하면 동일하게 만들 수 있습니다.)

1

~/.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).