Wie ändere ich das Standard-Startverzeichnis in Cygwin?

36

Immer wenn ich cygwin starte, muss ich mehrere Ebenen auf das einzige Verzeichnis cd, das mir bei der Verwendung von cygwin wichtig ist.

Wie kann ich Cygwin dazu bringen, standardmäßig in diesem bestimmten Verzeichnis zu starten ... dh jedes Mal, wenn ich Cygwin starte, befindet es sich bereits in diesem Verzeichnis?

Ich habe einige Dinge gefunden, die es sein können, oder nahe, aber ich verstehe sie nicht, und es gibt wirklich keine Ergebnisse, wenn ich nach diesen (n00b) Begriffen suche. Jede Hilfe wäre toll!

Matt
quelle
Nur ein kleiner Tipp: Mit cygwin müssen Sie nicht mehrmals cden - Sie können dies mit einem Befehl tun (Vorschläge für Unterverzeichnisse werden weiterhin angezeigt).
Linie

Antworten:

48

Einfach hinzufügen

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

an den unteren Rand Ihrer ~ / .bashrc-Datei.

garyjohn
quelle
1
Wo ist die ~ / .bashrc-Datei in der Windows-Installation
Erdem Ece
4
Dies hängt davon ab, wie Sie Cygwin installiert haben. In der Regel lautet der Windows-Pfad zu Ihrem Cygwin-Ausgangsverzeichnis C:\cygwin\home\%USERNAME%, zu dem der Windows-Pfad führt ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
Garyjohn
Was ist, wenn das Ausgangsverzeichnis von dafault ein Verzeichnis ist, in dem keine Datei gespeichert werden soll?
Arturo
@Arturo Ich denke, Sie vermasseln zwei Dinge - Ihr Benutzer-Home-Verzeichnis und das Cygwin-Home-Verzeichnis. Die .bashrc- Datei ist trotzdem vorhanden, wenn Sie Cygwin installieren.
Linie
3

"Cygwin starten" definieren? Sie können Cygwin-Server ausführen, wenn Sie Ihren Computer einschalten, aber ich gehe davon aus, dass Sie das nicht meinen.

Wenn Sie also jedes Mal, wenn Sie eine Shell-Eingabeaufforderung öffnen, in einem bestimmten Ordner landen, können Sie diesen in Ihrem $ HOME / .bashrc ablegen

Bearbeiten Sie Ihr $ HOME / .bashrc mit einem Cygwin-Editor (der UNIX-Zeilenenden verwendet) und fügen Sie eine Zeile hinzu

cd /whatever/directory/you/want

Wenn Sie ständig in dieses Verzeichnis wechseln, ist es wahrscheinlich besser, auch einen Alias ​​zu erstellen.

Geben Sie in Ihrem $ HOME / .bashrc Folgendes ein:

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

Nennen Sie es wie Sie wollen; Ich habe GT nur für "go there" verwendet und Großbuchstaben, weil es das Trennen von eingebauten Befehlen erleichtert, die niemals in Großbuchstaben geschrieben werden.

Reiche Homolka
quelle
2

Geben Sie in die letzte Zeile Ihres .bash_profile (oder .profile) cd your/dirctory/here

Glenn Jackman
quelle
0

Python-Skript

!! Fügen Sie vor der Verwendung .bashrc eine beliebige Zeichenfolge zum Ende hinzu !!

verwenden name_script.py c:\path

path_bachrc - Pfad zu .bashrc

cmd - Pfad zu 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)
user236976
quelle
2
Bitte erkläre.
Roney Michael
Python-Skript verwenden name_script.py c: \ path \
user236976
path_bachrc - Pfad zu .bashrc
user236976
cmd - Pfad zu cygwin.bat
user236976
0

Diese Lösung erfordert keine Bearbeitung von .bashrc:

Unten ist ein Ausschnitt aus den offiziellen Dokumenten auf mkpasswd:

Zum Beispiel dieser Befehl:

Beispiel 3.11. Verwenden einer alternativen Heimatwurzel

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

würde lokale Benutzer Home-Verzeichnisse in das Windows-Verzeichnis "Profile" setzen.

(Beantwortet von ähnlicher Frage auf stackoverflow kopiert, da mir diese Lösung mehr gefällt als die hier)

Linie
quelle