Czy w systemie Linux istnieje system Windows odpowiadający plikowi .bashrc?

65

Właśnie odkryłem doskey emacs = emacs -nw $ *, ale bez czegoś takiego jak .bashrc będę musiał pisać to przy każdym uruchomieniu powłoki, prawda?

strupo
źródło
1
To pytanie nie jest identyczne, ale odpowiedź obejmuje Twój scenariusz.
Marcelo Cantos

Odpowiedzi:

69

To jest bardzo dobre pytanie. Znalazłem to . Podejrzewam, że możesz utworzyć skrypt cmd i uruchomić go podczas uruchamiania cmd: -?

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

EDYCJA: Właśnie próbowałem. Mam AutoRun=C:\mini\bashrc.cmdi bashrc.cmd jest

@echo off
set TEST_VAR=something

kiedy uruchamiam cmd i wpisuję echo %TEST_VAR%, mówi something. Więc to działa :)

nc3b
źródło
10
Mały fragment, którego używam: doskey∙♦=exit(gdzie jest [char]4). Umożliwia zamknięcie powłoki za pomocą Ctrl + D, Enter.
Joey
To działa świetnie, niezła robota nc3b.
Robert S Ciaccio,
2
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor with AutoRun =% HOMEPATH% \ bashrc.bat Tak więc każdy użytkownik miałby swoją własną sekwencję uruchamiania
bambam2174
5
Muszę być idiotą, ale gdzie mam umieścić ten kod?
Marcel,
1
prawdopodobnie najłatwiejszy do ustawienia na ... AUTORUN=%USERPROFILE%\autorun.cmdtak, aby używał jednego dla bieżącego użytkownika ... fajna sztuczka, spróbuje go, kiedy wrócę do domu ... Ostatnio używam głównie bash, ale to by pomogło.
Tracker1
21

Możesz utworzyć skrót do cmd.exei dodać /kprzełącznik, aby uruchomić określony plik .bat podczas uruchamiania, coś takiego:

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

cmd-startup.bat w twoim domu katalog działałby wtedy tak jak .bashrc

Jaskółka oknówka
źródło
14

Modyfikacja odpowiedzi MC3B dla tych, którzy są Windows Noobami, jak ja.

Utwórz plik w C:\bashrc.cmddowolnym miejscu lub w dowolnym miejscu, w którym ma się znajdować plik „rc”.

@echo off
set TEST_VAR=something

Uruchom regedit, wyszukując go lub uruchamiając w cmd.

W folderach po lewej stronie przejdź do:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Kliknij Command Processorfolder prawym przyciskiem myszy i kliknij New -> String Value. Wprowadź klucz AutoRun. Kliknij dwukrotnie AutoRuni wprowadź lokalizację bashrc C:\bashrc.cmd.

Test: Otwórz nowe okno cmd i wpisz:

echo %TEST_VAR%

jeśli to mówi something, to działa.

Humdinger
źródło
5

Zakładając, że twoja powłoka to Powershell, a nie cmd, możesz utworzyć profil dla swojej powłoki. Takie profile to w zasadzie skrypty uruchamiane po uruchomieniu powłoki. Podobnie jak .bashrc. Ważną częścią tego postu może być:

Lokalizacje (w systemie Windows Vista) profili dla hosta powershell.exe są następujące:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Dotyczy to wszystkich użytkowników komputera i wszystkich powłok.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Dotyczy to wszystkich użytkowników komputera, ale dotyczy tylko powłoki Microsoft.PowerShell.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Dotyczy to tylko bieżącego użytkownika i wszystkich powłok.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Dotyczy to tylko bieżącego użytkownika i tylko powłoki Microsoft.PowerShell.

Te profile nie są tworzone domyślnie. Istnieją tylko wtedy, gdy je utworzysz.

Wygląda tak samo w systemach Windows 7, 8 i 10. Więcej informacji można znaleźć tutaj .


Uwaga: Może być konieczne uruchomienie następujących czynności. W przeciwnym razie Twój profil może nie zostać uruchomiony.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Możesz również uruchomić następujące czynności jako administrator, aby zmienić konfigurację dla wszystkich użytkowników.

Set-ExecutionPolicy RemoteSigned
JojOatXGME
źródło
3

EDYCJA : Znaleziono to: http://msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx

Aby objaśnić rozwiązanie Martina (skrót), oto odpowiednik programu PowerShell.

UWAGA : Konieczne będzie włączenie wykonywania skryptu PowerShell. Jeśli ta opcja jest wyłączona, musisz uruchomić podniesioną wersję programu PowerShell i wykonać Set-ExecutionPolicy Unrestricted. Oczywiście nie jest to zalecane ze względów bezpieczeństwa, ale proszę bardzo.

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

Miej plik o nazwie ps-startup.ps1w katalogu użytkownika, a skrót uruchomi go jako plik PowerShell podczas uruchamiania. Po prostu uruchom PowerShell z tym skrótem odtąd.

lytedev
źródło
Można to osiągnąć w „lepszy” sposób dzięki profilom PowerShell. Możesz znaleźć lokalizację swojego aktualnego profilu przez: echo $ profile. Możesz dodać wiersze do tego pliku, i to powinno zrobić to w przyszłych sesjach. W przypadku istniejących sesji możesz ponownie załadować profil za pomocą: & $ profile.
ashic
3

Zasadniczo odpowiedź nc3b działa, ale pakiet DevyBox-Common firmy Chocolatey ułatwi to .

  1. Jeśli jeszcze nie zainstalowałeś Chocolatey, zainstaluj go.
  2. Zainstaluj pakiet DevBox-Common przez choco install devbox-common -y
    • Należy wpisać to polecenie w administracyjnym cmd.exe lub PowerShell.
  3. Teraz masz .bashrc.bati .bashrc.include.aliases-common.batna swojej domowej ścieżce. Każde dopasowanie pliku .bashrc.include.*.batbędzie wykonywane przy każdym uruchomieniu powłoki poleceń.
hakatashi
źródło
3

Do wszystkich ludzi pochodzących z uniksowego świata i lądujących na tym pytaniu (tj. Wszyscy, ponieważ pytają o to .bashrc): radykalnie popraw swoje życie konsoli Windows i przestań używać akcji cmd.exei domyślnego terminalu Windows !! Nikt, kto zadaje to pytanie ani nie szuka odpowiedzi na to pytanie, nie powinien używać bieżącej wartości domyślnej cmd.exei terminala!

Jeśli chcesz wyłączyć zapasy cmd.exe(nie znam żadnego ważnego powodu, aby tego nie robić), jedną prostą odpowiedzią na pierwotne pytanie jest:

Zainstaluj i używaj Cmdera, a jego .bashrcodpowiednik stanie się %CMDER_ROOT%\config\user_profile.cmd, jednocześnie znacznie poprawiając działanie powłoki / konsoli.

Opinie, rozszerzenia i luźno powiązane rekomendacje następują ...


Cmder to metapakiet, który zawiera ConEmu , Clink oraz stos dodatkowych ustawień i innych rzeczy. ConEmu jest emulatorem terminala, który zapewnia możliwość uruchomienia skryptu, który (poprzez domyślne ustawienia ConEmu, które zapewnia Cmder ) kończy routing do wskazanego %CMDER_ROOT%\config\user_profile.cmd.

Możesz po prostu jawnie używać ConEmu i Clink niezależnie, zamiast korzystać z dołączonego pakietu Cmder.

Aby to zrobić i dodać jeszcze „muszę pracować w systemie Windows, co powinienem zrobić” błogość, poniżej są pewne dobre / wyrażone opinie rzeczy do zrobienia. Są one wprawdzie BARDZO luźno związane z początkowym pytaniem, ale ostatnio przeszedłem przez konfigurację systemu Windows, już większość z nich napisałem, a grupa docelowa w tym pytaniu jest poprawna, więc proszę ...

  1. Użyj scoop.sh dla wszystkich swoich instalacji
    • scoop to świetny menedżer pakietów dla systemu Windows (podobny do apt / yum / pacman / emerge / cokolwiek) ... gdzie wszystkie pakiety instalują się dla użytkownika (bez wymaganych uprawnień administratora)
    • zdecydowanie zainstaluj extraswiadro dla wielu rzeczy nie konsolowych ( scoop bucket add extras)
    • możesz także użyć czekolady , ale (moim zdaniem) tylko pod przymusem, a tego, czego chcesz, nie ma w miarce
    • lub po prostu zrób manifestację
    • to smutny dzień, kiedy tego, czego chcę, nie ma w miarce :(
    • W przeciwieństwie do Scoop, Chocolatey potrzebuje uprawnień administratora do swoich instalacji
  2. Zamiast tego użyj Clink jako powłokicmd.exe
    • scoop install clink
    • daje ci dobroć do odczytu GNU (jak ctrl-r, ctrl-s cmd history navigation) i więcej
    • pamiętaj, aby clink autorun installuruchomić go również po cmd.exeuruchomieniu
  3. Użyj ConEmu jako emulatora terminala
    • scoop install conemu
    • terminal Windows jest okropny (ale pracują nad tym )
    • pamiętaj, aby skonfigurować go jako domyślny terminal
      • „Force ConEmu” i „Zarejestruj się przy starcie systemu operacyjnego” w Settings::Integration->Default term
    • TAK WIELE innych możliwości konfiguracji
      • jeśli zostanie przytłoczony, może po prostu trzymaj się Cmdera i jego rozsądnych wartości domyślnych ( scoop install cmder), ale osobiście uważam, że łatwiej jest zainstalować / uruchomić Clink i ConEmu osobno.
  4. Zainstaluj Gow (jak teraz )
    • scoop install gow
    • > 100 narzędzi GNU ( grep, vim, sed, ls, cat, curl, wc, less, find, etc, etc), które znamy i kochamy, bezpośrednio w cmd.exe-Jak terminalu bez nienatywnym dziwaczności
    • uważaj na nazwy kolizji nazw, takie jak find->gfindiawk->gawk
    • Używam Gow prawie wyłącznie do podstawowej pracy w systemie Windows zamiast mucking z WSL, Cygwin, MSYS, git bash itp.
    • Narzędzia Gow zbliżyć się do GNU / * nix-na-Windows jak ja nie doświadczyłem tak daleko podczas pobytu rodzime dla Windows, bez bólów głowy środowisk Cygwin złośliwość WSL systemu plików (które również są pracował nad ) gitbash okien itp
  5. Zainstaluj inne przydatne narzędzia według własnego uznania (z gałką)
    • te główne i dodatki łopatka łyżki posiadają wiele więcej dobrych narzędzi i aplikacji (python, OpenSSH, ripgrep, fzf, Sysinternals, wzniosły tekstu, meldunku, CCleaner, etc)
      • chociaż zdecydowanie nie jest rzeczą GNU / unix, sysinternals jest niezbędną / klasyczną kolekcją rodzimych narzędzi Windows.
    • użyj scoop searchi, scoop infoaby znaleźć te, które chcesz lub przeglądaj wiadra (jest kilka wiader , nie tylko główne i dodatki)
Russ
źródło