Установка пути по умолчанию с помощью Cygwin - PullRequest
6 голосов
/ 15 декабря 2011

У меня установлена ​​Cygwin, и я бы хотел, чтобы Bash запускался в определенном каталоге при каждом запуске. Как мне этого добиться?

Ответы [ 4 ]

5 голосов
/ 15 декабря 2011

В вашем ~/.bashrc вы можете либо изменить $HOME на этот каталог, либо вы можете [попытался, и он не работал] добавить cd в этот каталог в конце файла.

1 голос
/ 18 ноября 2015

В вашем ~/.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).

0 голосов
/ 10 июля 2013

Bash на Cygwin запускается в вашей домашней папке, как и в Linux, что Cygwin имитирует настолько близко, насколько это возможно. Итак, вам просто нужно изменить домашнюю папку .

(Обратите внимание, что ваша папка Cygwin не обязательно должна совпадать с вашей домашней папкой пользователя Windows. По умолчанию они отличаются, но вы можете сделать их такими же, добавив что-то вроде /cygdrive/c/Users/myid в вашу пользовательскую запись Cygwin в /etc/passwd.)

0 голосов
/ 10 июля 2013

скрипт 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)
...