web-dev-qa-db-fra.com

Existe-t-il un équivalent Windows du fichier .bashrc sous linux?

Je viens de découvrir doskey emacs = emacs -nw $ *, mais sans quelque chose comme .bashrc, je vais devoir taper cela chaque fois que je lance un shell, non?

61
herrturtur

C'est une très bonne question. J'ai trouvé ceci . Je suppose que vous pouvez créer un script cmd et le lancer lorsque vous démarrez cmd: -?

; Run a command when CMD.exe starts
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor]
"AutoRun"=-

EDIT: Je viens d'essayer. J'ai AutoRun=C:\mini\bashrc.cmd et bashrc.cmd est

@echo off
set TEST_VAR=something

quand je lance cmd et saisis echo %TEST_VAR%, il dit something. Donc ça marche :)

64
nc3b

Vous pouvez créer un raccourci vers cmd.exe et ajouter le commutateur /k pour exécuter un certain fichier .bat au démarrage, à peu près comme ceci:

cmd.exe /k "%HOMEDRIVE%\%HOMEPATH%\cmd-startup.bat"

cmd-startup.bat dans votre répertoire personnel fonctionnerait alors exactement comme .bashrc

21
Martin

Modification de la réponse de mc3b pour ceux qui sont noobs Windows comme moi.

Créez un fichier dans C:\bashrc.cmd ou à l'emplacement souhaité pour votre fichier "rc".

@echo off
set TEST_VAR=something

Exécutez regedit en le recherchant ou en l'exécutant dans cmd.

Dans les dossiers de gauche, accédez à:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Faites un clic droit sur le dossier Command Processor et cliquez sur New -> String Value. Entrez la clé AutoRun. Double-cliquez sur AutoRun et entrez l'emplacement de base C:\bashrc.cmd.

Test: Ouvrez une nouvelle fenêtre cmd et tapez:

echo %TEST_VAR%

si elle dit something, cela fonctionne.

13
Humdinger

En supposant que votre shell est Powershell et non cmd, vous pouvez créer un profil pour votre shell. Ces profils sont essentiellement des scripts qui sont exécutés lorsque vous démarrez un shell. Tout comme .bashrc. Une partie importante de cet article pourrait être la suivante:

Les emplacements (sous Windows Vista) des profils de l'hôte powershell.exe sont les suivants:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Ceci s’applique à tous les utilisateurs de l’ordinateur et à tous les coques.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Ceci concerne tous les utilisateurs de l'ordinateur, mais uniquement le shell Microsoft.PowerShell.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Ceci est pour l'utilisateur actuel seulement et tous les shells.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Ceci concerne l'utilisateur actuel uniquement et uniquement le shell Microsoft.PowerShell.

Ces profils ne sont pas créés par défaut. Ils n'existent que si vous les créez.

Il semble que ce soit la même chose sur Windows 7, 8 et 10. Vous pouvez également trouver plus d’informations ici .


Remarque: Vous devrez peut-être exécuter les éléments suivants. Sinon, votre profil pourrait ne pas être exécuté.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Vous pouvez également exécuter les opérations suivantes en tant qu’administrateur pour modifier la configuration de tous les utilisateurs.

Set-ExecutionPolicy RemoteSigned
5
JojOatXGME

EDIT: trouvé ceci: http://msdn.Microsoft.com/en-us/library/bb613488 (VS.85) .aspx

Pour expliquer la solution de Martin (le raccourci), voici l'équivalent de PowerShell.

NOTE: l'exécution du script PowerShell doit être activée. Si cela est désactivé, vous devrez exécuter un PowerShell élevé et exécuter Set-ExecutionPolicy Unrestricted. Évidemment, ce n'est pas recommandé pour des raisons de sécurité, mais voilà.

powershell.exe -noexit -File "%HOMEDRIVE%\%HOMEPATH%\ps-startup.ps1"

Ayez un fichier nommé ps-startup.ps1 dans votre répertoire utilisateur et votre raccourci l’exécutera en tant que fichier PowerShell au démarrage. Il suffit de lancer PowerShell avec ce raccourci à partir de maintenant.

3
lytedev

En gros, la réponse de nc3b fonctionne, mais le package DevBox-Common de Chocolatey vous facilitera la tâche .

  1. Si vous n'avez pas encore installé Chocolatey, installez-le .
  2. Installez le package DevBox-Common avec choco install devbox-common -y
    • Vous devez taper cette commande dans administrative cmd.exe ou PowerShell.
  3. Vous avez maintenant .bashrc.bat et .bashrc.include.aliases-common.bat dans votre chemin personnel. Chaque fichier correspondant à .bashrc.include.*.bat sera exécuté à chaque commande du démarrage de Shell.
3
hakatashi

A toutes les personnes venant d'un monde semblable à Unix et se posant sur cette question (c'est-à-dire tout le monde, puisqu'elle pose des questions sur .bashrc): radicalementaméliorer votre Vie de la console Windows et arrêtez d'utiliser cmd.exe stock et le terminal Windows par défaut !! Personne ne posant cette question ni ne cherchant de réponses à cette question devrait utiliser le cmd.exe par défaut actuel et terminal!

Si vous êtes prêt à éteindre le stock cmd.exe (je ne connais aucune raison valable de ne pas le faire), voici une réponse simple à la question initiale:

Installez et utilisez Cmder et votre équivalent .bashrc devient %CMDER_ROOT%\config\user_profile.cmd, tandis quesignificativementaméliorer votre shell/expérience de la console.

Opinions, extensions et recommandations vaguement connexes suivent ...


Cmder est un méta-paquet qui emballe ConEmu , Clink et une pile des paramètres supplémentaires et des trucs. ConEmu est l'émulateur de terminal qui fournit la fonctionnalité de script de démarrage qui (via les paramètres ConEmu par défaut fournis par Cmder ) termine le routage vers le %CMDER_ROOT%\config\user_profile.cmd indiqué.

Vous souhaiterez peut-être simplement utiliser explicitement ConEmu et Clink, plutôt que d'utiliser le package Cmder fourni.

Pour faire cela, et pour ajouter un peu plus de "dois travailler sur les fenêtres, que dois-je faire" béatitude, voici quelques choses à faire. Celles-ci sont certes très vaguement liées à la question initiale, mais j'ai récemment revu une configuration Windows, j'en ai déjà saisi l'essentiel, et le public cible de cette question est correct, alors voilà ...

  1. Utilisez scoop.sh pourallvos installations
    • scoop est un excellent gestionnaire de paquets pour Windows (similaire à apt/yum/pacman/emerge/quoique) ... où tous les paquets sont installés chez l'utilisateur (sans privilèges d'administrateur)
    • installez définitivement le bucket extras pour de nombreuses choses non-console (scoop bucket add extras)
    • vous pouvez également utiliser Chocolatey , mais (à mon avis) uniquement si vous êtes sous la contrainte et que ce que vous voulez n'est pas dans un seau
    • ou tout simplement faire votre propre manifeste scoop
    • c'est un jour triste quand la chose que je veux n'est pas dans un seau à scoop :(
    • à la différence de scoop, chocolatey a besoin de privilèges d'administrateur pour ses installations
  2. Utilisez Clink comme shell au lieu de cmd.exe
    • scoop install clink
    • vous donne la bonté GNU readline (comme ctrl-r, navigation dans l'historique ctrl-s) et plus
    • assurez-vous également de clink autorun install pour le faire fonctionner lorsque cmd.exe est exécuté
  3. Utilisez ConEmu comme émulateur de terminal
    • scoop install conemu
    • le terminal Windows estterrible(mais ils y travaillent )
    • assurez-vous de le configurer comme terminal par défaut
      • "Forcer ConEmu" et "Enregistrer au démarrage du système d'exploitation" dans Settings::Integration->Default term
    • BEAUCOUP d’autres possibilités de configuration
      • si vous êtes submergé, restez peut-être juste avec Cmder et ses valeurs par défaut raisonnables (scoop install cmder), mais je pense personnellement qu'il est plus propre d'installer/exécuter Clink et ConEmu séparément.
  4. Installer Gow (comme,en ce moment )
    • scoop install gow
    • > 100 GNU outils (grep, vim, sed, ls, cat, curl, wc, less, find, ) que vous connaissez et aimez, directement dans votre terminal cmd.exe- sans étrangeté non native
    • surveillez les noms renommés tels que find->gfind et awk->gawk
    • J'utilise Gow à peu près exclusivement pour le travail de base de Windows au lieu de travailler avec WSL, Cygwin, MSYS, git bash, etc.
    • Les outils Gow s'approchent de GNU/* nix-on-Windows de ce que je connais jusqu'à présent tout en restant natif de Windows, sans les maux de tête des environnements Cygwin, la méchanceté des systèmes de fichiers WSL en cours de travail ), fenêtres gitbash, etc.
  5. Installez d’autres outils pratiques à votre convenance (avec pelle)
    • les godets principaux et ontmanyplusieurs bons outils et applications (python, openssh, ripgrep, fzf, sysinternals, sublime-text, meld, ccleaner, etc.)
      • bien que ce ne soit définitivement pas un truc GNU/Unix, sysinternals est une collection essentielle/classique d’outils natifs Windows.
    • utilisez scoop search et scoop info pour trouver ceux que vous voulez, ou parcourez les compartiments (il y a plusieurs compartiments , pas seulement les éléments principaux et extras)
0
Russ