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!


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.


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.


2

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


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

#***********************************************#
#   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)

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)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.