41 votes

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

Chaque fois que je démarre cygwin, je dois cd plusieurs niveaux vers le seul répertoire qui m'intéresse lorsque j'utilise cygwin.

Comment puis-je faire en sorte que cygwin démarre dans ce répertoire particulier par défaut... c'est-à-dire, chaque fois que je démarre Cygwin, il sera déjà dans ce répertoire?

J'ai trouvé quelques choses qui pourraient être ça, ou proche, mais je ne les comprends pas, et il n'y a vraiment aucun résultats lorsque je recherche ces termes (n00b). Toute aide serait appréciée!

57voto

Unnati Gutpa Points 11

Il suffit d'ajouter

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

au bas de votre fichier ~/.bashrc.

2voto

Lark Points 1640

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

Si vous voulez dire, finir dans un dossier spécifique à chaque fois que vous ouvrez une invite de commande, vous pouvez le mettre dans votre $HOME/.bashrc

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

cd /whatever/directory/you/want

Si vous allez constamment dans ce répertoire, vous feriez probablement mieux de créer un alias également.

Dans votre $HOME/.bashrc mettez:

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

Appelez-le comme vous le souhaitez; j'ai juste utilisé GT pour "aller là-bas", et je l'ai mis en majuscules parce que cela facilite la séparation avec les commandes intégrées, qui ne sont jamais en majuscules.

2voto

Abbas Points 3737

À la dernière ligne de votre .bash_profile (ou .profile), mettez cd votre/répertoire/ici

0voto

Nagib Points 1

script python

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

utilisez name_script.py c:\chemin

chemin_bachrc - chemin vers .bashrc

cmd - chemin vers cygwin.bat

#***********************************************#
#   gangelXXX@gmail.com                         #
#***********************************************#
import argparse
import subprocess
import os

chemin_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="Nouveau chemin dans .bachrc cygwin")
args = parser.parse_args();

delEndLineFromFile(chemin_bachrc);

p = args.newPath;
pNew = 'cd /cygdrive/' + p[:1] + p[2:].replace('\\', '/')
print(pNew)

with open(chemin_bachrc, 'a') as f:
    f.write(pNew)

PIPE = subprocess.PIPE
p = subprocess.Popen(cmd, shell = True)

0voto

Line Points 113

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

Voici un extrait de la documentation officielle sur mkpasswd :

Par exemple, cette commande :

Exemple 3.11. Utilisation d'une racine de dossier home alternative

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

mettrait les répertoires home des utilisateurs locaux dans le répertoire 'Profils' de Windows.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X