Comment changer le répertoire de démarrage par défaut dans Cygwin?

36

Chaque fois que je lance cygwin, je dois copier plusieurs niveaux dans le seul répertoire qui me tient à cœur lors de l’utilisation de cygwin.

Comment faire pour que cygwin démarre dans ce répertoire particulier par défaut ... c.-à-d. Que chaque fois que je lance Cygwin, il sera déjà dans ce répertoire?

J'ai trouvé des choses qui peuvent être proches ou proches, mais je ne les comprends pas, et il n'y a vraiment aucun résultat lorsque je recherche ces termes (n00b). Toute aide est la bienvenue!

Mat
la source
Juste un petit conseil: en utilisant cygwin, vous n’avez pas besoin de cd à plusieurs reprises - vous pouvez le faire avec une commande (des suggestions apparaîtront toujours pour les sous-répertoires).
Ligne le

Réponses:

48

Ajoutez simplement

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

au bas de votre fichier ~ / .bashrc.

Garyjohn
la source
1
où est ce fichier ~ / .bashrc dans l'installation de Windows
Erdem Ece
4
Cela dépend de la manière dont vous avez installé Cygwin, mais le chemin Windows vers votre répertoire de base Cygwin est généralement C:\cygwin\home\%USERNAME%le même que le chemin Windows ~/.bashrc C:\cygwin\home\%USERNAME%\.bashrc.
garyjohn
Et si le répertoire principal de Dafault est un répertoire dans lequel je ne veux mettre aucun fichier.
Arturo
@Arturo Je pense que vous gâchez deux choses - votre répertoire de base utilisateur et le répertoire de base Cygwin. Le fichier .bashrc est quand même là si vous installez Cygwin.
Ligne
3

Définir "démarrer cygwin"? Vous pouvez utiliser des serveurs cygwin lorsque vous allumez votre ordinateur, mais je suppose que ce n'est pas ce que vous voulez dire.

Si vous voulez dire, mettez-vous dans un dossier spécifique chaque fois que vous ouvrez une invite du shell, vous pouvez le mettre dans votre $ HOME / .bashrc

Editez votre $ HOME / .bashrc en utilisant un éditeur cygwin (celui qui utilise les fins de ligne UNIX), ajoutez une ligne

cd /whatever/directory/you/want

Si vous consultez constamment ce répertoire, vous ferez probablement mieux de créer également un alias.

Dans votre $ HOME / .bashrc, mettez:

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

Appelez ça comme vous voulez; Je viens d'utiliser GT pour "allez-y", et je majuscule car cela facilite la séparation des commandes intégrées, qui ne sont jamais capitalisées.

Rich Homolka
la source
2

dans la dernière ligne de votre .bash_profile (ou .profile), mettez cd your/dirctory/here

Glenn Jackman
la source
0

script python

!! avant utilisation ajoutez .bashrc n'importe quelle chaîne à la fin !!

utilisation name_script.py c:\path

path_bachrc - chemin vers .bashrc

cmd - chemin vers 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)
utilisateur236976
la source
2
S'il vous plaît, expliquez.
Roney Michael
script python utilise name_script.py c: \ path \
user236976
path_bachrc - chemin d'accès à .bashrc
utilisateur236976
cmd - chemin d'accès à cygwin.bat
utilisateur236976
0

Cette solution ne nécessite pas de modification .bashrc:

Vous trouverez ci-dessous un extrait de la documentation officielle de mkpasswd:

Par exemple, cette commande:

Exemple 3.11. Utilisation d'une autre racine d'origine

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

placerait les répertoires de base des utilisateurs locaux dans le répertoire "Profils" de Windows.

(réponse copiée d'une question similaire sur stackoverflow parce que j'aime plus cette solution que celles ici)

Ligne
la source