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

65

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?

strupo
la source
1
Cette question n'est pas identique, mais la réponse couvre votre scénario.
Marcelo Cantos

Réponses:

69

C'est une très bonne question. J'ai trouvé ça . 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.cmdet bashrc.cmd est

@echo off
set TEST_VAR=something

quand je commence cmd et entrez echo %TEST_VAR%il dit something. Donc ça marche :)

nc3b
la source
10
Petit extrait que j'utilise: doskey∙♦=exit(où est [char]4). Vous permet de fermer le shell avec Ctrl + D, Entrée.
Joey
Cela fonctionne très bien, bon travail nc3b.
Robert S Ciaccio
2
HKEY_CURRENT_USER \ Software \ Microsoft \ Processeur de commande avec exécution automatique =% HOMEPATH% \ bashrc.bat Ainsi, chaque utilisateur aurait sa propre séquence de démarrage
bambam2174
5
Je dois être un idiot, mais où dois-je mettre ce code?
Marcel
1
C'est probablement plus facile à régler sur ... AUTORUN=%USERPROFILE%\autorun.cmdpour qu'il en utilise un pour l'utilisateur actuel ... astuce sympa, j'essaierai quand je rentrerai à la maison ... J'utilise surtout bash dernièrement, mais cela aiderait.
Tracker1
21

Vous pouvez créer un raccourci vers cmd.exeet ajouter le /kcommutateur pour exécuter un certain fichier .bat au démarrage, par exemple:

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

cmd-startup.bat dans votre maison dirais alors travailler comme .bashrc

Martin
la source
14

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

Créez un fichier C:\bashrc.cmdou à l’endroit où vous voulez que votre fichier "rc" réside.

@echo off
set TEST_VAR=something

Exécuter regediten 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 Command Processordossier et cliquez sur New -> String Value. Entrez la clé AutoRun. Double-cliquez sur AutoRunet entrez l'emplacement bashrc C:\bashrc.cmd.

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

echo %TEST_VAR%

si ça dit something, ça marche.

Humdinger
la source
5

En supposant que votre shell soit 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. Juste comme .bashrc. Une partie importante de ce post 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 est pour tous les utilisateurs de l'ordinateur et pour tous les coques.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Cela 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
    Cela concerne uniquement l'utilisateur actuel 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
JojOatXGME
la source
3

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.

REMARQUE : L'exécution du script PowerShell doit être activée. Si cette option est désactivée, vous devrez exécuter un PowerShell élevé et l'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.ps1dans 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.

Lytedev
la source
Ceci peut être réalisé de manière "meilleure" grâce aux profils PowerShell. Vous pouvez trouver l'emplacement de votre profil actuel par: echo $ profile. Vous pouvez ajouter des lignes à ce fichier, ce qui devrait le faire pour les sessions futures. Pour les sessions existantes, vous pouvez recharger le profil avec: & $ profile.
Ashic
3

Fondamentalement , les œuvres de réponse de NC3B, mais de chocolaté DevBox-Common paquet sera plus facile .

  1. Si vous n'avez pas encore installé Chocolatey, installez-le.
  2. Installez le paquet DevBox-Common en choco install devbox-common -y
    • Vous devez taper cette commande dans cmd.exe administratif ou PowerShell.
  3. Maintenant vous avez .bashrc.batet .bashrc.include.aliases-common.batdans votre chemin de la maison. Chaque correspondance de fichier .bashrc.include.*.batsera exécutée à chaque démarrage du shell de commande.
hakatashi
la source
3

À toutes les personnes venant d'un monde semblable à Unix et qui atterrissent sur cette question (c'est-à-dire tout le monde, puisqu'elle pose une question à propos de .bashrc): Améliorez radicalement la vie de votre console Windows et arrêtez d'utiliser Stock cmd.exeet le terminal Windows par défaut !! Personne ne posant cette question ou cherchant des réponses à cette question ne devrait utiliser le cmd.exeterminal et la configuration par défaut actuels !

Si vous êtes prêt à éteindre votre 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 .bashrcéquivalent devient %CMDER_ROOT%\config\user_profile.cmd, tout en améliorant considérablement votre expérience shell / console.

Opinions, extensions et recommandations vaguement connexes suivent ...


Cmder est un métapaquet qui regroupe ConEmu , Clink et une pile de paramètres et d'objets supplémentaires. ConEmu est l'émulateur de terminal qui fournit la fonction de script de démarrage qui (via les paramètres ConEmu par défaut fournis par Cmder ) termine l'acheminement vers l'indiqué %CMDER_ROOT%\config\user_profile.cmd.

Vous voudrez 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 la plupart, et le public cible de cette question est correct, alors allez-y ...

  1. Utilisez scoop.sh pour toutes vos 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 extrascompartiment pour de nombreuses choses non-console ( scoop bucket add extras)
    • vous pouvez aussi utiliser du chocolat , mais (à mon avis) seulement 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 coquille au lieu decmd.exe
    • scoop install clink
    • vous donne la bonté GNU readline (comme ctrl-r, navigation ctrl-s cmd historique) et plus
    • assurez-vous également clink autorun installde le faire fonctionner quand cmd.exeest exécuté
  3. Utilisez ConEmu comme émulateur de terminal
    • scoop install conemu
    • le terminal Windows est terrible (mais ils y travaillent )
    • assurez-vous de le configurer comme terminal par défaut
      • "Forcer ConEmu" et "S'inscrire 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, maintenant )
    • scoop install gow
    • > 100 outils GNU ( grep, vim, sed, ls, cat, curl, wc, less, find, etc, etc) que vous connaissez et amour, directement dans votre cmd.exeborne -comme sans bizarreries non natif
    • regarder pour les renom de collision comme find->gfindet commeawk->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 soucis des environnements Cygwin, la méchanceté des systèmes de fichiers WSL (sur laquelle on travaille également ), les fenêtres gitbash, etc.
  5. Installez d'autres outils pratiques comme bon vous semble (avec pelle)
    • les compartiments principaux et extras ont beaucoup plus de bons outils et applications (python, openssh, ripgrep, fzf, sysinternals, sublime-text, meld, ccleaner, etc.)
      • bien que certainement pas une chose GNU / unix, Sysinternals est une collection essentielle / classique des outils natifs de Windows.
    • utilisez scoop searchet scoop infopour trouver ceux que vous voulez, ou parcourez les seaux (il y a plusieurs seaux , pas seulement le contenu principal et les extras)
Russ
la source