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!


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.


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.


2

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


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

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.