Définir un répertoire par défaut sur les fenêtres BASH

Le problème que j’ai est que chaque fois que j’ouvre bash, il me faut dans un répertoire indésirable, donc je dois taper les commandes cd / mnt / c pour accéder à mes fichiers PC comme les téléchargements, les documents, etc. répertoire par défaut quand j’ouvre bash?

L’exécutable Windows bash.exe qui démarre Bash sous Windows fait implicitement du répertoire courant son répertoire de démarrage.

Cela signifie que vous pouvez simplement modifier le fichier de raccourci qui ouvre Bash et modifier son champ Start in: pour ouvrir Bash dans le répertoire de votre choix (spécifiez un chemin Windows standard; il est automatiquement traduit en un chemin /mnt/c -prefixed lorsque Bash départs).

  • Avertissement : Le fichier de raccourci officiel Bash on Ubuntu on Windows (dans le menu Démarrer) transmet ~ tant que répertoire de démarrage dans le champ Target: :; Supprimez simplement ~ de la valeur C:\Windows\System32\bash.exe ~ dans Target: C:\Windows\System32\bash.exe ~ puis remplissez le champ Start in: C:\Windows\System32\bash.exe ~

Bien sûr, vous pouvez créer de nouveaux fichiers de raccourci, chacun avec son propre répertoire de démarrage, si vous le souhaitez.


Ajout d’une commande Bash Console Here au menu contextuel des dossiers dans l’Explorateur de fichiers

Mise à jour : La version préliminaire de la version 17666 est désormais fournie avec un menu contextuel intégré . Cependant, vous devez maintenir la touche Maj enfoncée avant de cliquer avec le bouton droit de la souris pour y accéder. La solution ci-dessous peut donc toujours vous intéresser si vous souhaitez que la commande s’affiche inconditionnellement .

Si vous enregistrez le texte suivant dans un *.reg et que vous l’ouvrez (double-cliquez) , vous serez invité à importer les définitions dans votre hive de Registre spécifique à l’utilisateur.

Après l’importation, vous trouverez une commande Bash Console Here dans le menu contextuel des dossiers de l’Explorateur de fichiers, ainsi que lorsque vous cliquez dans l’espace vide d’un dossier.
En sélectionnant cette commande, une fenêtre de la console Bash s’ouvrira dans ce dossier.

Avertissement : Parce qu’un aux. cmd.exe appel de cmd.exe doit être utilisé pour modifier le répertoire avant d’appeler bash.exe , la fenêtre de la console aura l’icône de cmd.exe et sera regroupée avec cmd.exe standard dans la barre des tâches.

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\BashConsoleHere] @="Bash Console Here" "Icon"=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,\ 00,54,00,41,00,25,00,5c,00,6c,00,78,00,73,00,73,00,5c,00,62,00,61,00,73,00,\ 68,00,2e,00,69,00,63,00,6f,00,00,00 [HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\BashConsoleHere\command] @="cmd /c cd \"%V\" && bash.exe" [HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\shell\BashConsoleHere] @="Bash Console Here" "Icon"=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,\ 00,54,00,41,00,25,00,5c,00,6c,00,78,00,73,00,73,00,5c,00,62,00,61,00,73,00,\ 68,00,2e,00,69,00,63,00,6f,00,00,00 [HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\shell\BashConsoleHere\command] @="cmd /c cd \"%1\" && bash.exe" 

Vous pouvez également utiliser l’ extrait de code PowerShell suivant pour créer les entrées de registre:

 $null = 0..1 | % { $key = New-Item -Force ('HKCU:\Software\Classes\Directory{0}\shell\BashConsoleHere' -f ('', '\Background')[$_]) $key | New-ItemProperty -Name '(Default)' -Value 'Bash Console Here' -Type Ssortingng $key | New-ItemProperty -Name 'Icon' -Value '%LOCALAPPDATA%\lxss\bash.ico' -Type ExpandSsortingng $key = New-Item -Force "$($key.PsPath)\command" $key | New-ItemProperty -Name '(Default)' -Value "cmd /c cd `"$(('%1', '%V')[$_])`" && bash.exe" -Type Ssortingng } 

Pour supprimer les entrées ultérieurement:

 0..1 | % { Remove-Item -Recurse -LiteralPath ('HKCU:\Software\Classes\Directory{0}\shell\BashConsoleHere' -f ('', '\Background')[$_]) } 

Vous devrez peut-être le créer, mais ajoutez cette ligne à votre .bashrc dans votre répertoire $HOME (généralement /home/user/ ):

cd /mnt/c

Gardez à l’esprit que, tout comme Jim avait dit, “Cela pourrait casser n’importe quel type de raccourci Open bash here .”

Vous pouvez en savoir un peu plus à ce sujet ici: https://unix.stackexchange.com/questions/140602/how-do-i-start-all-shell-sessions-in-a-directory-other- que chez soi

Une autre possibilité – et je dois souligner que vous devez vraiment comprendre ce que vous faites, est de définir votre répertoire $HOME sur /mnt/c .

Vous ne pouvez le faire que si

  • /mnt/c est toujours monté.
  • Votre utilisateur bash dispose de toutes les permissions en lecture / écriture / exécution sur /mnt/c
  • /mnt/c n’est pas accessible à toute personne à qui vous ne voulez pas avoir access – votre répertoire $HOME contiendra .ssh/ qui doit être privé.
  • Vous pouvez copier / déplacer tous les fichiers de votre répertoire original $HOME vers /mnt/c .

Vous pouvez le faire en utilisant

 usermod --home /mnt/c 

ou en changeant votre répertoire personnel dans /etc/passwd

Mise en garde: si vous vous trompez, vous ne pourrez pas vous connecter ou laisser votre compte vulnérable.