web-dev-qa-db-fra.com

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

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 en sorte que cygwin démarre dans ce répertoire particulier par défaut ... c’est-à-dire, 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!

35
Matt

Il suffit d'ajouter

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

au bas de votre fichier ~/.bashrc.

46
garyjohn

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, placez-vous dans un dossier spécifique chaque fois que vous ouvrez une invite de 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 parce que cela facilite la séparation des commandes intégrées, qui ne sont jamais capitalisées.

3
Rich Homolka

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

2
glenn jackman

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 à partir d'une question similaire sur stackoverflow parce que j'aime plus cette solution que celles-ci)

0
Line

script python

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

utiliser name_script.py c:\path

path_bachrc - chemin d'accès à .bashrc

cmd - chemin d'accès à 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)
0
user236976