Jak zmienić domyślny katalog startowy w Cygwin?

36

Za każdym razem, gdy uruchamiam cygwin, muszę zapisać kilka poziomów na cd do jedynego katalogu, na którym mi zależy, kiedy używam cygwina.

Jak mogę skłonić cygwin do domyślnego uruchomienia w tym konkretnym katalogu ... tzn. Za każdym razem, gdy uruchamiam Cygwin, będzie już w tym katalogu?

Znalazłem kilka rzeczy, które mogą to być lub zamknąć, ale nie rozumiem ich i naprawdę nie ma wyników, gdy szukam tych (n00b) terminów. Każda pomoc byłaby świetna!

Matt
źródło
Mała wskazówka: używając cygwina nie musisz kilkakrotnie cd-cd - możesz to zrobić za pomocą jednego polecenia (sugestie nadal będą pojawiać się w podkatalogach).
Linia

Odpowiedzi:

48

Poprostu dodaj

cd /path/to/directory/you/care/about

na dole pliku ~ / .bashrc.

garyjohn
źródło
1
gdzie jest ten plik ~ / .bashrc w instalacji systemu Windows
Erdem Ece,
4
Zależy to od tego, jak zainstalowałeś Cygwin, ale zazwyczaj ścieżka systemu Windows do twojego katalogu domowego Cygwin jest taka C:\cygwin\home\%USERNAME%, co oznaczałoby ścieżkę systemu Windows ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
garyjohn
co jeśli katalog domowy dafault jest katalogiem, w którym nie chcę umieszczać żadnego pliku.
Arturo
@ Arturo Myślę, że popsułeś dwie rzeczy - katalog domowy użytkownika i katalog domowy Cygwin. Plik .bashrc już tam jest, jeśli zainstalujesz Cygwin.
Linia
3

Zdefiniować „start cygwin”? Możesz uruchomić serwery cygwin po włączeniu komputera, ale zakładam, że nie o to ci chodzi.

Jeśli masz na myśli, skończyć w określonym folderze za każdym razem, gdy otwierasz monit powłoki, możesz umieścić go w swoim $ HOME / .bashrc

Edytuj $ HOME / .bashrc za pomocą edytora cygwin (takiego, który używa zakończeń linii UNIX), dodaj linię

cd /whatever/directory/you/want

Jeśli ciągle przechodzisz do tego katalogu, prawdopodobnie lepiej jest również utworzyć alias.

W swoim $ HOME / .bashrc umieść:

alias GT='cd /whatever/directory/you/want'

Nazwij to jak chcesz; Właśnie użyłem GT do „idź tam” i pisałem dużymi literami, ponieważ ułatwia to oddzielenie od wbudowanych poleceń, które nigdy nie są pisane dużymi literami.

Rich Homolka
źródło
2

w ostatnim wierszu pliku .bash_profile (lub .profile) wpisz cd your/dirctory/here

Glenn Jackman
źródło
0

skrypt Pythona

!! przed użyciem dodaj .bashrc dowolny ciąg na końcu !!

posługiwać się name_script.py c:\path

path_bachrc - ścieżka do .bashrc

cmd - ścieżka do cygwin.bat

#***********************************************#
#   [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)
użytkownik236976
źródło
2
Proszę wytłumacz.
Roney Michael
Skrypt Pythona użyj name_script.py c: \ path \
user236976
path_bachrc - ścieżka do .bashrc
user236976
cmd - ścieżka do cygwin.bat
user236976
0

To rozwiązanie nie wymaga edycji .bashrc:

Poniżej znajduje się fragment oficjalnej dokumentacji na mkpasswd:

Na przykład to polecenie:

Przykład 3.11. Korzystanie z alternatywnego głównego katalogu głównego

$ mkpasswd -l -p "$(cygpath -H)" > /etc/passwd

umieści katalogi domowe użytkowników lokalnych w katalogu „Profile” systemu Windows.

(odpowiedź skopiowana z podobnego pytania na stackoverflow, ponieważ podoba mi się to rozwiązanie bardziej niż te tutaj)

Linia
źródło