Gibt es Windows, das der .bashrc-Datei in Linux entspricht?

65

Ich habe gerade doskey emacs = emacs -nw $ * entdeckt, aber ohne so etwas wie .bashrc muss ich das jedes Mal eingeben, wenn ich eine Shell starte, oder?

strupo
quelle
1
Diese Frage ist nicht identisch, aber die Antwort deckt Ihr Szenario ab.
Marcelo Cantos

Antworten:

69

Das ist eine sehr gute Frage. Ich fand diese . Ich nehme an, Sie könnten ein Cmd-Skript erstellen und beim Starten von Cmd ausführen lassen: -?

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

EDIT: Ich habe es gerade versucht. Ich habe AutoRun=C:\mini\bashrc.cmdund bashrc.cmd ist

@echo off
set TEST_VAR=something

wenn ich cmd starte und eingebe steht echo %TEST_VAR%drauf something. So funktioniert es :)

nc3b
quelle
10
Kleines Snippet, das ich benutze: doskey∙♦=exit(wo ist [char]4). Ermöglicht das Schließen der Shell mit Strg + D, Eingabetaste.
Joey
Das klappt super, netter Job nc3b.
Robert S Ciaccio
2
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor mit AutoRun =% HOMEPATH% \ bashrc.bat Damit jeder Benutzer seine eigene Startsequenz hat
bambam2174 18.07.13
5
Ich muss ein Idiot sein, aber wo soll ich diesen Code setzen?
Marcel
1
wahrscheinlich am einfachsten einzustellen ... AUTORUN=%USERPROFILE%\autorun.cmddamit es einen für den aktuellen Benutzer verwendet ... cooler Trick, werde es aber versuchen, wenn ich nach Hause komme ... Ich verwende in letzter Zeit meistens bash, aber das würde helfen.
Tracker1
21

Sie können eine Verknüpfung erstellen cmd.exeund den /kSchalter hinzufügen, um beim Start eine bestimmte .bat-Datei auszuführen.

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

cmd-startup.bat bei dir zu hause würde dir das dann genauso gehen .bashrc

Martin
quelle
14

Änderung der Antwort von mc3b für diejenigen, die Windows Noobs wie ich sind.

Erstellen Sie eine Datei in C:\bashrc.cmdoder an einem beliebigen Ort, an dem sich Ihre "rc" -Datei befinden soll.

@echo off
set TEST_VAR=something

Führen regeditvon danach zu suchen oder es in cmd ausgeführt wird .

Navigieren Sie in den Ordnern links zu:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Klicken Sie mit der rechten Maustaste auf den Command ProcessorOrdner und klicken Sie auf New -> String Value. Geben Sie den Schlüssel ein AutoRun. Doppelklicken Sie auf AutoRunund geben Sie den bashrc-Speicherort ein C:\bashrc.cmd.

Test: Öffnen Sie ein neues Cmd-Fenster und geben Sie Folgendes ein:

echo %TEST_VAR%

Wenn es heißt something, funktioniert es.

Humdinger
quelle
5

Angenommen, Ihre Shell ist Powershell und nicht cmd, können Sie ein Profil für Ihre Shell erstellen . Solche Profile sind im Grunde Skripte, die ausgeführt werden, wenn Sie eine Shell starten. Genau wie .bashrc. Ein wichtiger Teil dieses Beitrags könnte sein:

Die Speicherorte (unter Windows Vista) der Profile für den Host powershell.exe lauten wie folgt:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Dies gilt für alle Benutzer des Computers und für alle Shells.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Dies gilt für alle Benutzer des Computers, jedoch nur für die Microsoft.PowerShell-Shell.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Dies ist nur für den aktuellen Benutzer und alle Shells.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Dies gilt nur für den aktuellen Benutzer und nur für die Microsoft.PowerShell-Shell.

Diese Profile werden nicht standardmäßig erstellt. Sie existieren nur, wenn Sie sie erstellen.

Unter Windows 7, 8 und 10 scheint es dasselbe zu sein. Weitere Informationen finden Sie auch hier .


Hinweis: Möglicherweise müssen Sie Folgendes ausführen. Andernfalls wird Ihr Profil möglicherweise nicht ausgeführt.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Sie können auch Folgendes als Administrator ausführen, um die Konfiguration für alle Benutzer zu ändern.

Set-ExecutionPolicy RemoteSigned
JojOatXGME
quelle
3

BEARBEITEN : Gefunden: http://msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx

Im Folgenden finden Sie das PowerShell-Äquivalent, um Martins Lösung (die Verknüpfung) zu erläutern.

HINWEIS : Die PowerShell-Skriptausführung muss aktiviert sein. Wenn dies deaktiviert ist, müssen Sie eine PowerShell mit erhöhten Rechten ausführen Set-ExecutionPolicy Unrestricted. Offensichtlich wird dies aus Sicherheitsgründen nicht empfohlen, aber los geht's.

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

Haben Sie eine Datei mit dem Namen ps-startup.ps1in Ihrem Benutzerverzeichnis und Ihre Verknüpfung führt sie beim Start als PowerShell-Datei aus. Führen Sie einfach PowerShell mit dieser Verknüpfung von hier aus.

lytedev
quelle
Dies kann durch Powershell-Profile "besser" erreicht werden. Sie finden den Speicherort Ihres aktuellen Profils unter: echo $ profile. Sie können dieser Datei Zeilen hinzufügen, und dies sollte für zukünftige Sitzungen der Fall sein. Für bestehende Sitzungen können Sie das Profil mit: & $ profile neu laden.
ashic
3

Grundsätzlich funktioniert die Antwort von nc3b, aber das DevBox-Common- Paket von Chocolatey wird es einfacher machen .

  1. Wenn Sie Chocolatey noch nicht installiert haben, installieren Sie es.
  2. Installieren Sie das DevBox-Common-Paket von choco install devbox-common -y
    • Sie sollten diesen Befehl in administrative cmd.exe oder PowerShell eingeben.
  3. Jetzt haben Sie .bashrc.batund .bashrc.include.aliases-common.batin Ihrem Heimatpfad. Jeder Dateiabgleich .bashrc.include.*.batwird bei jedem Start der Befehlsshell ausgeführt.
Hakatashi
quelle
3

An alle Leute, die aus einer Unix-ähnlichen Welt kommen und auf diese Frage stoßen (dh an alle, die danach fragen .bashrc): Verbessern Sie die Lebensdauer Ihrer Windows-Konsole radikal und verwenden Sie nicht mehr Stock cmd.exeund das Standard-Windows-Terminal !! Niemand, der diese Frage stellt oder Antworten auf diese Frage sucht, sollte die aktuelle Standardeinstellung cmd.exeund das aktuelle Terminal verwenden!

Wenn Sie bereit sind, den Lagerbestand auszuschalten cmd.exe(ich kenne keinen gültigen Grund, dies nicht zu tun), lautet eine einfache Antwort auf die ursprüngliche Frage:

Installieren und verwenden Sie Cmder und Ihre .bashrcEntsprechung wird %CMDER_ROOT%\config\user_profile.cmd, während Sie gleichzeitig Ihre Shell- / Konsolenerfahrung erheblich verbessern.

Meinungen, Erweiterungen und lose verwandte Empfehlungen folgen ...


Cmder ist ein Metapaket, das ConEmu , Clink und eine Menge zusätzlicher Einstellungen und Dinge zusammenfasst. ConEmu ist der Terminal-Emulator, der die Startskript-Funktion bereitstellt , die (über die von Cmder bereitgestellten Standardeinstellungen von ConEmu ) das Routing zum angegebenen Ende bewirkt%CMDER_ROOT%\config\user_profile.cmd .

Möglicherweise möchten Sie ConEmu und Clink nur explizit unabhängig voneinander verwenden, anstatt das mitgelieferte Cmder-Paket zu verwenden.

Um das zu tun und ein paar Dinge hinzuzufügen, die "an Windows arbeiten müssen, was soll ich tun", siehe unten, sind einige gute Dinge, die zu tun sind. Diese haben zwar sehr viel mit der ursprünglichen Frage zu tun, aber ich habe kürzlich ein Windows-Setup noch einmal durchlaufen, habe das meiste davon bereits getippt und die Zielgruppe in dieser Frage ist korrekt, also los geht's ...

  1. Verwenden Sie scoop.sh für alle Ihre Installationen
    • scoop ist ein großartiger Paketmanager für Windows (ähnlich wie apt / yum / pacman / emerge / whatever) ... bei dem alle Pakete für den Benutzer installiert werden (ohne dass Administratorrechte erforderlich sind)
    • Installieren Sie den extrasBucket auf jeden Fall für viele Dinge, die keine Konsole sind ( scoop bucket add extras)
    • Sie können auch chocolatey verwenden , aber (meiner Meinung nach) nur, wenn unter Zwang und das, was Sie wollen, nicht in einem Schaufeleimer ist
    • oder machen Sie einfach Ihr eigenes Schaufelmanifest
    • Es ist ein trauriger Tag, an dem das, was ich will, nicht in einem Eimer ist :(
    • Im Gegensatz zu scoop benötigt chocolatey Administratorrechte für die Installation
  2. Verwenden Sie stattdessen Clink als Shellcmd.exe
    • scoop install clink
    • gibt Ihnen GNU-Readline-Güte (wie Strg-R, Strg-S-Cmd-Verlaufsnavigation) und mehr
    • Stellen Sie sicher, clink autorun installdass es auch ausgeführt wird, wenn ausgeführt cmd.exewird
  3. Verwenden Sie ConEmu als Terminalemulator
    • scoop install conemu
    • das Windows-Terminal ist schrecklich (aber sie arbeiten daran )
    • Stellen Sie sicher, dass Sie es als Standardterminal konfigurieren
      • "ConEmu erzwingen" und "Beim Betriebssystemstart registrieren" in Settings::Integration->Default term
    • SO VIELE andere Konfigurationsmöglichkeiten
      • Wenn Sie überfordert sind, bleiben Sie vielleicht bei Cmder und seinen angemessenen Standardeinstellungen ( scoop install cmder), aber ich persönlich halte es für sauberer, Clink und ConEmu getrennt zu installieren / auszuführen.
  4. Installiere Gow (wie jetzt )
    • scoop install gow
    • > 100 GNU - Tools ( grep, vim, sed, ls, cat, curl, wc, less, find, etc, etc) Sie kennen und lieben, direkt in Ihrem cmd.exe-ähnlichen Terminal ohne nicht-native Seltsamkeit
    • Achten Sie auf Namenskollision Umbenennungen wie find->gfindundawk->gawk
    • Ich benutze Gow so ziemlich ausschließlich für die grundlegende Windows-Arbeit, anstatt mich mit WSL, Cygwin, MSYS, Git Bash usw. zu beschäftigen.
    • Gow-Tools kommen GNU / * nix-on-Windows so nahe, wie ich es bisher erlebt habe, während ich in Windows geblieben bin, ohne die Kopfschmerzen von Cygwin-Umgebungen, die Unangenehmkeit des WSL-Dateisystems (an dem auch gearbeitet wird ), Gitbash-Fenster usw
  5. Installieren Sie nach Belieben weitere nützliche Tools (mit Schaufel)
    • die wichtigsten und Extras Schaufel Eimer haben viele weitere gute Tools und Anwendungen (Python, OpenSSH, ripgrep, fzf, sysinternals, erhaben-Text, meld, ccleaner, usw.)
      • Obwohl sysinternals definitiv keine GNU / Unix-Sache ist, ist sie eine wesentliche / klassische Sammlung von nativen Windows-Tools.
    • Verwenden Sie scoop searchund scoop info, um die gewünschten zu finden, oder stöbern Sie in den Eimern (es gibt mehrere Eimer , nicht nur Haupt- und Extras).
Russ
quelle