cygwin을 시작할 때마다 cygwin을 사용할 때주의해야하는 유일한 디렉토리까지 여러 레벨을 CD로 만들어야합니다.
cygwin이 기본적 으로이 특정 디렉토리에서 시작되도록하려면 어떻게해야합니까? 즉, Cygwin을 시작할 때마다 이미 해당 디렉토리에 있습니까?
나는 그와 비슷하거나 가까운 것을 발견했지만 이해하지 못하며이 (n00b) 용어를 검색 할 때 실제로 결과가 없습니다. 어떤 도움이라도 좋을 것입니다!
cygwin을 시작할 때마다 cygwin을 사용할 때주의해야하는 유일한 디렉토리까지 여러 레벨을 CD로 만들어야합니다.
cygwin이 기본적 으로이 특정 디렉토리에서 시작되도록하려면 어떻게해야합니까? 즉, Cygwin을 시작할 때마다 이미 해당 디렉토리에 있습니까?
나는 그와 비슷하거나 가까운 것을 발견했지만 이해하지 못하며이 (n00b) 용어를 검색 할 때 실제로 결과가 없습니다. 어떤 도움이라도 좋을 것입니다!
답변:
그냥 추가
cd /path/to/directory/you/care/about
~ / .bashrc 파일의 맨 아래에.
C:\cygwin\home\%USERNAME%
Windows 경로 ~/.bashrc
C:\cygwin\home\%USERNAME%\.bashrc
입니다.
"cygwin 시작"을 정의 하시겠습니까? 머신의 전원을 켤 때 cygwin 서버를 실행할 수 있지만 그게 당신의 의도가 아니라고 가정합니다.
셸 프롬프트를 열 때마다 특정 폴더에 들어가면 $ HOME / .bashrc에 넣을 수 있습니다.
cygwin 편집기 (UNIX 줄 끝을 사용하는 편집기)를 사용하여 $ HOME / .bashrc를 편집하고 줄을 추가하십시오.
cd /whatever/directory/you/want
이 디렉토리로 계속 가면 별칭을 만드는 것이 좋습니다.
$ HOME / .bashrc에 다음을 입력하십시오.
alias GT='cd /whatever/directory/you/want'
원하는대로 부르십시오. 방금 "go there"에 GT를 사용했고 대문자로하지 않는 내장 명령과 쉽게 분리 할 수 있기 때문에 대문자입니다.
파이썬 스크립트
!! 사용하기 전에 끝에 .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)
이 솔루션은 .bashrc를 편집 할 필요가 없습니다 :
아래는 mkpasswd의 공식 문서 스 니펫입니다.
예를 들어이 명령은 다음과 같습니다.
예 3.11. 대체 홈 루트 사용
$ mkpasswd -l -p "$(cygpath -H)" > /etc/passwd
로컬 사용자의 홈 디렉토리를 Windows 'Profiles'디렉토리에 넣습니다.
( 이 솔루션이 여기에있는 것보다 더 좋아하기 때문에 stackoverflow에 대한 비슷한 질문에서 답변했습니다 )