Come posso cambiare la directory di avvio predefinita in Cygwin?


36

Ogni volta che avvio cygwin, ho bisogno di cd diversi livelli fino all'unica directory che mi interessa quando utilizzo cygwin.

Come posso fare in modo che cygwin si avvii in questa particolare directory di default ... cioè, ogni volta che avvio Cygwin sarà già in quella directory?

Ho trovato alcune cose che potrebbero essere, o chiuse, ma non le capisco, e davvero non ci sono risultati quando cerco questi termini (n00b). Qualsiasi aiuto sarebbe grande!


Un piccolo consiglio: usando cygwin non è necessario eseguire il cd più volte: è possibile farlo con un solo comando (i suggerimenti verranno comunque visualizzati per le sottodirectory).
Linea

Risposte:


48

Aggiungi

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

nella parte inferiore del file ~ / .bashrc.


1
dove si trova quel file ~ / .bashrc nell'installazione di Windows
Erdem Ece,

4
Dipende da come hai installato Cygwin, ma il percorso di Windows alla tua home directory di Cygwin è di solito C:\cygwin\home\%USERNAME%, il che renderebbe il percorso di Windows ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
garyjohn,

cosa succede se la home directory di Dafault è una directory in cui non voglio mettere alcun file.
Arturo

@Arturo Penso che rovini due cose: la tua home directory utente e la home directory di Cygwin. Il file .bashrc è comunque presente se si installa Cygwin.
Linea

3

Definire "start cygwin"? È possibile eseguire i server Cygwin quando si accende la macchina, ma suppongo che non sia quello che vuoi dire.

Se vuoi dire, finisci in una cartella specifica ogni volta che apri un prompt della shell, puoi metterlo nel tuo $ HOME / .bashrc

Modifica il tuo $ HOME / .bashrc usando un editor cygwin (uno che utilizza i finali di riga UNIX), aggiungi una riga

cd /whatever/directory/you/want

Se vai costantemente in questa directory, probabilmente stai anche facendo un alias.

Nel tuo $ HOME / .bashrc inserisci:

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

Chiamalo come vuoi; Ho appena usato GT per "vai lì", e ho scritto in maiuscolo perché rende facile separarsi dai comandi incorporati, che non sono mai scritti in maiuscolo.


2

nell'ultima riga del tuo .bash_profile (o .profile), metti cd your/dirctory/here


0

script Python

!! prima dell'uso aggiungi .bashrc alla fine !!

uso name_script.py c:\path

path_bachrc - percorso per .bashrc

cmd - percorso per 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
Spiega per favore.
Roney Michael,

python script use name_script.py c: \ path \
user236976

path_bachrc - percorso di .bashrc
user236976

cmd - path to cygwin.bat
user236976

0

Questa soluzione non richiede la modifica di .bashrc:

Di seguito è riportato un frammento dei documenti ufficiali su mkpasswd:

Ad esempio, questo comando:

Esempio 3.11. Utilizzo di una home root alternativa

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

inserisce le directory home degli utenti locali nella directory "Profili" di Windows.

(risposta copiata da una domanda simile su StackOverflow perché mi piace questa soluzione più di quelli qui)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.